From 757de03b121e716ba49b9ae3fcc89517f6e43d75 Mon Sep 17 00:00:00 2001 From: "G. Gibson" Date: Tue, 9 Jun 2026 14:52:44 -0700 Subject: [PATCH] web client tweaks --- Public/www/javascript/gxg.js | 942 ++++++++++++++++++++++++++++++++++- 1 file changed, 941 insertions(+), 1 deletion(-) diff --git a/Public/www/javascript/gxg.js b/Public/www/javascript/gxg.js index 9461cb7..60c544f 100644 --- a/Public/www/javascript/gxg.js +++ b/Public/www/javascript/gxg.js @@ -1 +1,941 @@ -(function(j){"use strict";var h,e,t,d,v,n,K,p,a,J,ak,r,f,x,ai,P,R,i,U,q,O,af;if(typeof globalThis!='undefined'?j=globalThis:typeof global!='undefined'?j=global:typeof window!='undefined'&&(j=window),j.console==null&&(j.console={}),typeof j.console=='object'?h=j.console:h={},'log'in h||(h.log=function(){}),'warn'in h||(h.warn=h.log),typeof j.Opal!='undefined')return h.warn('Opal already loaded. Loading twice can cause troubles, please fix your setup.'),j.Opal;a=j.Opal={},a.global=j,a.config={missing_require_severity:'error',unsupported_features_severity:'warning',experimental_features_severity:'warning',enable_stack_trace:!0},J=Function.prototype.call,ak=Function.prototype.bind,r=Object.hasOwn||J.bind(Object.prototype.hasOwnProperty),f=Object.setPrototypeOf,x=J.bind(Array.prototype.slice),ai=J.bind(Array.prototype.splice),P=4,R=P;function H(){return R+=2,R}a.uid=H,a.id=function(a){return a.$$is_number?a*2+1:(a.$$id==null&&b(a,'$$id',H()),a.$$id)},i=a.gvars={},a.exit=function(a){i.DEBUG&&h.log('Exited with status '+a)},a.exceptions=[],a.pop_exception=function(c){var b=a.exceptions.pop();b===c||(b?i["!"]=b:i["!"]=e)};function c(b,c){if(b||(b=a.Exception||Error),p&&p.$raise)arguments.length>2?p.$raise(b.$new.apply(b,x(arguments,1))):p.$raise(b,c);else throw b.$new?b.$new(c):new b(c)}U={value:void 0,enumerable:!1,configurable:!0,writable:!0};function b(a,b,c){typeof a=="string"?a[b]=c:(U.value=c,Object.defineProperty(a,b,U))}a.prop=b,a.defineProperty=a.prop,a.slice=x,q=a.truthy=function(a){return!1!==a&&e!==a&&void 0!==a&&null!==a&&(!(a instanceof Boolean)||!0===a.valueOf())},a.falsy=function(a){return!q(a)},a.type_error=function(b,e,f,d){b=b.$$class,d&&f?(d=d.$$class,c(a.TypeError,"can't convert "+b+" into "+e+" ("+b+"#"+f+" gives "+d+")")):c(a.TypeError,"no implicit conversion of "+b+" into "+e)},a.coerce_to=function(b,c,d,e){var f;return d==='to_int'&&c===a.Integer&&b.$$is_number?b<0?Math.ceil(b):Math.floor(b):d==='to_str'&&c===a.String&&b.$$is_string?b:a.is_a(b,c)?b:b['$respond_to?'].$$pristine&&b.$method_missing.$$pristine?(f=b[m(d)],(f==null||f.$$stub)&&a.type_error(b,c),f.apply(b,e)):(b['$respond_to?'](d)||a.type_error(b,c),e==null&&(e=[]),a.send(b,d,e))},a.respond_to=function(b,d,c){if(b==null||!b.$$class)return!1;c=!!c;var e=b[d];if(b['$respond_to?'].$$pristine){{if(typeof e=="function"&&!e.$$stub)return!0;if(!b['$respond_to_missing?'].$$pristine)return a.send(b,b['$respond_to_missing?'],[d.substr(1),c])}}else return a.send(b,b['$respond_to?'],[d.substr(1),c])},a.trace_class=!1,a.tracers_for_class=[];function V(e){var b,d,c;for(b=0,d=a.tracers_for_class.length;b=0;a--){e=c[a];for(b in e.$$cvars)d[b]=e.$$cvars[b]}return d},a.class_variable_set=function(d,c,a){var e=g(d),b,h=e.length,f;for(b=h-2;b>=0;b--)if(f=e[b],r(f.$$cvars,c))return f.$$cvars[c]=a,a;return d.$$cvars[c]=a,a},a.class_variable_get=function(f,b,k){var h,d,j,i;if(r(f.$$cvars,b))return f.$$cvars[b];h=g(f),j=h.length;for(d=0;d1||(g||e)&&b.length===1)&&(d=a.to_ary(d)),(b.length>1||e&&b.length===1)&&d.$$is_array?f?N(b.apply.bind(b,null),d,b.$$ret):b.apply(null,d):f?N(b,d,b.$$ret):b(d)},a.yieldX=function(b,d){return typeof b!="function"&&c(a.LocalJumpError,"no block given"),b.length>1&&d.length===1&&d[0].$$is_array&&(d=d[0]),b.$$is_lambda&&b.$$ret?N(b.apply.bind(b,null),d,b.$$ret):b.apply(null,d)},a.rescue=function(d,e){for(var c=0,b,f;c=0;e--){if(h=i[e],typeof h.$$refine_modules=='undefined')continue;if(g=h.$$refine_modules,typeof g[l]=='undefined')continue;if(f=g[l],typeof f.$$prototype[m(d)]!='undefined')return r=f.$$prototype[m(d)],a.send2(j,r,d,q,p,o)}}}return a.send(j,d,q,p,o)},a.lambda=function(a,b){return a.$$is_lambda=!0,z(a,b),a},a.def=function(b,d,c,e){return z(c,e),b===a.top?a.defn(a.Object,d,c):!b.$$eval&&b.$$is_a_module?a.defn(b,d,c):a.defs(b,d,c)},a.defn=function(c,e,f){var i,g,h,j,k,l,d;if(u(c),f.displayName=e,f.$$owner=c,i=e.substr(1),g=c.$$prototype,g.hasOwnProperty('$$dummy')&&(g=g.$$define_methods_on),b(g,e,f),c.$$is_module){c.$$module_function&&a.defs(c,e,f);for(h=0,j=c.$$iclasses,k=j.length;h=0,e=0,g=c.length,b;eb:a['$>'](b)},a.rb_le=function(a,b){return o(a,b)?a<=b:a['$<='](b)},a.rb_ge=function(a,b){return o(a,b)?a>=b:a['$>='](b)};function I(a,b){return typeof a=='number'&&typeof b=='number'||typeof a=='string'&&typeof b=='string'}function aj(a,b){return I(a,b)?a===b:q(a['$=='](b))}a.eqeq=aj,a.eqeqeq=function(a,b){return I(a,b)?a===b:q(a['$==='](b))},a.neqeq=function(a,b){return I(a,b)?a!==b:q(a['$!='](b))},a.not=function(a){return!!(void 0===a||null===a||!1===a||e===a)||(!(!0===a||a['$!'].$$pristine)&&q(a['$!']()))};function w(a){return function(){return a}}a.return_val=w,a.return_self=function(){return this},a.return_ivar=function(a){return function(){return this[a]==null?e:this[a]}},a.assign_ivar=function(a){return function(b){return u(this),this[a]=b}},a.assign_ivar_val=function(a,b){return function(){return u(this),this[a]=b}},a.ensure_kwargs=function(b){if(b==null)return new Map;if(b.$$is_hash)return b;c(a.ArgumentError,'expected kwargs')},a.get_kwarg=function(e,b){var d=a.hash_get(e,b);return d===void 0&&c(a.ArgumentError,'missing keyword: '+b),d},a.large_array_unpack=function(c){var b=c.split(","),d=b.length,a;for(a=0;a>>32-b}a.opal32_add=function(a,b){return a^=b,a=al(a,1),a},a.BasicObject=t=k('BasicObject',null),a.Object=d=k('Object',a.BasicObject),a.Module=v=k('Module',a.Object),a.Class=n=k('Class',a.Module),a.Opal=K=A('Opal'),a.Kernel=p=A('Kernel'),f(a.BasicObject,a.Class.$$prototype),f(a.Object,a.Class.$$prototype),f(a.Module,a.Class.$$prototype),f(a.Class,a.Class.$$prototype),t.$$const.BasicObject=t,l(d,"BasicObject",t),l(d,"Object",d),l(d,"Module",v),l(d,"Class",n),l(d,"Opal",K),l(d,"Kernel",p),t.$$class=n,d.$$class=n,v.$$class=n,n.$$class=n,K.$$class=v,p.$$class=v,b(d.$$prototype,'toString',function(){var a=this.$to_s();return a.$$is_string&&typeof a=='object'?a.valueOf():a}),b(d.$$prototype,'$require',a.require),a.top=new d,a.top.$to_s=a.top.$inspect=w('main'),a.top.$define_method=G;function G(){var b=G.$$p;return G.$$p=null,a.send(d,'define_method',arguments,b)}a.NilClass=k('NilClass',a.Object),l(d,'NilClass',a.NilClass),e=a.nil=new a.NilClass,e.$$id=P,e.call=e.apply=function(){c(a.LocalJumpError,'no block given')},e.$$frozen=!0,e.$$comparable=!1,Object.seal(e),a.thrower=function(b){var d={$thrower_type:b,$throw:function(d,f){throw d==null&&(d=e),this.is_orphan&&!f&&c(a.LocalJumpError,'unexpected '+b,d,b.$to_sym()),this.$v=d,this},is_orphan:!1};return d},Object.defineProperty(i,"@",{enumerable:!0,configurable:!0,get:function(){return q(i["!"])?i["!"].$backtrace():e},set:function(b){q(i["!"])?i["!"].$set_backtrace(b):c(a.ArgumentError,"$! not set")}}),a.t_eval_return=a.thrower("return"),TypeError.$$super=Error,a.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(a){var j=a.type_error,k=a.coerce_to,l=a.module,b=a.defs,i=a.slice,h=a.eqeqeq,f=a.Kernel,e=a.truthy,g=a.Opal,c=a.nil,d=a.$$$;return a.add_stubs('===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__'),function(o){var m=l(o,'Opal'),n;return b(m,'$bridge',function(b,c){return a.bridge(b,c)}),b(m,'$coerce_to!',function(l,b,e,m){var g,d,a=c;return g=i(arguments,3),d=g,a=k(l,b,e,d),h(b,a)||f.$raise(j(l,b,e,a)),a},-4),b(m,'$coerce_to?',function(g,b,d,n){var m,l,a=c;return m=i(arguments,3),l=m,!e(g['$respond_to?'](d))?c:(a=k(g,b,d,l),e(a['$nil?']()))?c:(h(b,a)||f.$raise(j(g,b,d,a)),a)},-4),b(m,'$try_convert',function(a,d,b){return h(d,a)?a:e(a['$respond_to?'](b))?a.$__send__(b):c}),b(m,'$compare',function(b,g){var a=c;return a=b['$<=>'](g),e(a===c)&&f.$raise(d('ArgumentError'),"comparison of "+b.$class()+" with "+g.$class()+" failed"),a}),b(m,'$destructure',function(a){var c,b,d;if(a.length==1)return a[0];if(a.$$is_array)return a;c=new Array(a.length);for(b=0,d=c.length;b=0;d--)g=e[d],b=h.$$prototype[a.jsid(g)],b&&!b.$$stub&&(b.$$pristine=!0);return c},-2),n=[],b(m,'$inspect',function(b){var f=c,e;return e=!1,function(){try{try{return b===null?'null':b===void 0?'undefined':typeof b.$$class=='undefined'?Object.prototype.toString.apply(b):typeof b.$inspect!='function'||b.$inspect.$$stub?"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">":n.indexOf(b.$__id__())!==-1?"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">":(n.push(b.$__id__()),e=!0,b.$inspect());return c}catch(c){if(a.rescue(c,[d('Exception')])){f=c;try{return"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">"}finally{a.pop_exception(c)}}else throw c}}finally{e&&n.pop()}}()},-1)}('::')},Opal.modules["corelib/module"]=function(a){var f=a.truthy,y=a.coerce_to,w=a.const_set,n=a.Object,E=a.return_ivar,F=a.assign_ivar,x=a.ivar,g=a.deny_frozen_access,G=a.freeze,I=a.prop,k=a.jsid,J=a.each_ivar,t=a.klass,i=a.Opal,e=a.Kernel,s=a.defs,j=a.send,b=a.def,l=a.eqeqeq,p=a.Module,r=a.rb_lt,z=a.rb_gt,h=a.slice,o=a.to_a,m=a.return_val,A=a.eqeq,B=a.not,C=a.rb_le,D=a.range,v=a.send2,u=a.find_super,q=a.alias,H=[],c=a.nil,d=a.$$$;return a.add_stubs('try_convert,raise,class,module_eval,to_proc,===,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,pristine,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,owner,!,<=,frozen?,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,copy_singleton_methods,class_exec,module_exec,inspect'),function(P,N,O){var H=t(P,N,'Module'),M=[H].concat(O),L=a.$r(M);function K(a){if(a.$$is_string)return a;var b=i.$try_convert(a,d('String'),"to_str");if(b.$$is_string)return b;b===c?e.$raise(d('TypeError'),""+a+" is not a symbol nor a string"):e.$raise(d('TypeError'),"can't convert "+a.$class()+" to String ("+a.$class()+"#to_str gives "+b.$class())}s(H,'$allocate',function(){var b=this,d=a.allocate_module(c,function(){});return b!==a.Module&&Object.setPrototypeOf(d,b.$$prototype),d}),b(H,'$initialize',function a(){var b=a.$$p||c,d=this;return a.$$p=null,b!==c?j(d,'module_eval',[],b.$to_proc()):c}),b(H,'$===',function(b){var c=this;return!f(b==null)&&a.is_a(b,c)}),b(H,'$<',function(h){var i=this,j,f,b,g;if(l(p,h)||e.$raise(d('TypeError'),"compared with non class/module"),j=i,j===h)return!1;for(b=0,f=a.ancestors(i),g=f.length;b',function(a){var b=this;return l(p,a)||e.$raise(d('TypeError'),"compared with non class/module"),r(a,b)}),b(H,'$>=',function(a){var b=this,d=c;return f(d=b['$equal?'](a))?d:z(b,a)}),b(H,'$<=>',function(a){var d=this,b=c;return d===a?0:l(p,a)?(b=r(d,a),f(b['$nil?']()))?c:f(b)?-1:1:c}),b(H,'$alias_method',function(b,c){var e=this;return g(e),b=y(b,d('String'),'to_str'),c=y(c,d('String'),'to_str'),a.alias(e,b,c),e}),b(H,'$alias_native',function(d,b){var c=this;return b==null&&(b=d),g(c),a.alias_native(c,d,b),c},-2),b(H,'$ancestors',function(){var b=this;return a.ancestors(b)}),b(H,'$append_features',function(b){var c=this;return g(b),a.append_features(c,b),c}),b(H,'$attr_accessor',function(e){var b,a,c=this;return b=h(arguments),a=b,j(c,'attr_reader',o(a)),j(c,'attr_writer',o(a))},-1),b(H,'$attr',function(f){var d,a,b=this;return d=h(arguments),a=d,a.length==2&&(a[1]===!0||a[1]===!1)?(b.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),a[1]?b.$attr_accessor(a[0]):b.$attr_reader(a[0]),c):j(b,'attr_reader',o(a))},-1),b(H,'$attr_reader',function(p){var j,d,e=this,m,b,i,n,l,f;j=h(arguments),d=j,g(e),m=e.$$prototype;for(b=d.length-1;b>=0;b--)i=d[b],n=k(i),l=x(i),f=E(l),a.prop(m,l,c),f.$$parameters=[],f.$$arity=0,a.defn(e,n,f);return c},-1),b(H,'$attr_writer',function(p){var j,d,e=this,m,b,i,n,l,f;j=h(arguments),d=j,g(e),m=e.$$prototype;for(b=d.length-1;b>=0;b--)i=d[b],n=k(i+'='),l=x(i),f=F(l),f.$$parameters=[['req']],f.$$arity=1,a.prop(m,l,c),a.defn(e,n,f);return c},-1),b(H,'$autoload',function(f,h){var b=this;return g(b),L('Opal')['$const_name?'](f)||e.$raise(d('NameError'),"autoload must be constant name: "+f),h==""&&e.$raise(d('ArgumentError'),"empty file name"),b.$$const.hasOwnProperty(f)||(b.$$autoload||(b.$$autoload={}),a.const_cache_version++,b.$$autoload[f]={path:h,loaded:!1,required:!1,success:!1,exception:!1},b.$const_added&&!b.$const_added.$$pristine&&b.$const_added(f)),c}),b(H,'$autoload?',function(a){var d=this,e,b,f;if(d.$$autoload&&d.$$autoload[a]&&!d.$$autoload[a].required&&!d.$$autoload[a].success)return d.$$autoload[a].path;e=d.$ancestors();for(b=0,f=e.length;b=0;f--)a=b[f],a.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+a.$class()+" (expected Module)"),a.$append_features(c),a.$included(c);return c},-1),b(H,'$included_modules',function(){var b=this;return a.included_modules(b)}),b(H,'$include?',function(c){var h=this,b,i,f,g;c.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+c.$class()+" (expected Module)"),g=a.ancestors(h);for(b=0,i=g.length;b=0;f--)a=b[f],a.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+a.$class()+" (expected Module)"),a.$prepend_features(c),a.$prepended(c);return c},-1),b(H,'$prepend_features',function(c){var b=this;return g(c),b.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+b.$class()+" (expected Module)"),a.prepend_features(b,c),b}),b(H,'$prepended',m(c)),b(H,'$remove_const',function(c){var b=this;return g(b),a.const_remove(b,c)}),b(H,'$to_s',function(){var b=this,d=c;return f(d=a.Module.$name.call(b))?d:"#<"+(b.$$is_module?'Module':'Class')+":0x"+b.$__id__().$to_s(16)+">"}),b(H,'$undef_method',function(i){var e,b,c=this,d,f;e=h(arguments),b=e;for(d=0;d=0;b--)a.append_features(c[b],e)}function S(d,e){for(var c=d.$$own_prepended_modules,b=c.length-1;b>=0;b--)a.prepend_features(c[b],e)}return b(H,'$initialize_copy',function(a){var b=this;return Q(a,b),R(a,b),S(a,b),b.$$cloned_from=a.$$cloned_from.concat(a),b.$copy_class_variables(a),b.$copy_constants(a)}),b(H,'$initialize_dup',function a(d){var e=a.$$p||c,b=this;return a.$$p=null,v(b,u(b,'initialize_dup',a,!1,!0),'initialize_dup',[d],e),b.$copy_singleton_methods(d)}),b(H,'$copy_class_variables',function(a){var c=this,b;for(b in a.$$cvars)c.$$cvars[b]=a.$$cvars[b]}),b(H,'$copy_constants',function(c){var d=this,b=c.$$const,a;for(a in b)w(d,a,b[a])}),b(H,'$refine',function i(k){var l=i.$$p||c,g,e=this,h=c,b=c,f=c;return i.$$p=null,g=[e,c,c],h=g[0],b=g[1],f=g[2],g,f=a.id(k),typeof e.$$refine_modules=="undefined"&&(e.$$refine_modules=Object.create(null)),typeof e.$$refine_modules[f]=="undefined"?b=e.$$refine_modules[f]=d('Refinement').$new():b=e.$$refine_modules[f],b.refinement_module=h,b.refined_class=k,j(b,'class_exec',[],l.$to_proc()),b}),b(H,'$refinements',function(){var d=this,a=d.$$refine_modules,b=new Map,c;if(typeof a=="undefined")return b;for(c in a)b['$[]='](a[c].refined_class,a[c]);return b}),b(H,'$using',function(b){return e.$raise("Module#using is not permitted in methods")}),q(H,"class_eval","module_eval"),q(H,"class_exec","module_exec"),q(H,"inspect","to_s")}('::',null,H),function(e,g){var a=t(e,g,'Refinement'),d=a.$$prototype;return d.refinement_module=d.refined_class=c,a.$attr_reader("refined_class"),b(a,'$inspect',function b(){var d=b.$$p||c,a=this;return b.$$p=null,f(a.refinement_module)?"#":v(a,u(a,'inspect',b,!1,!0),'inspect',[],d)})}('::',p)},Opal.modules["corelib/class"]=function(a){var s=a.klass,f=a.send,k=a.defs,c=a.def,i=a.ensure_kwargs,h=a.hash_get,d=a.eqeq,e=a.truthy,j=a.rb_plus,g=a.return_val,l=a.slice,m=a.send2,n=a.find_super,o=a.Kernel,p=a.alias,q=a.top,r=[],b=a.nil,t=a.$$$;return a.add_stubs('require,class_eval,to_proc,==,nil?,raise,class,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_dup,+,subclasses,flatten,map,allocate,name,to_s'),q.$require("corelib/module"),function(u,v,w){var q=s(u,v,'Class'),x=[q].concat(w),r=a.$r(x);return k(q,'$new',function e(c){var g=e.$$p||b,d;if(e.$$p=null,c==null&&(c=r('Object')),!c.$$is_class)throw a.TypeError.$new("superclass must be a Class");return d=a.allocate_class(b,c),c.$inherited(d),g!==b?f(d,'class_eval',[],g.$to_proc()):b,d},-1),c(q,'$allocate',function(){var c=this,b=new c.$$constructor;return b.$$id=a.uid(),b}),c(q,'$clone',function(j){var c,f=this,g=b;return j=i(j),c=h(j,"freeze"),c==null&&(c=b),e(c['$nil?']())||d(c,!0)||d(c,!1)||f.$raise(r('ArgumentError'),"unexpected value for freeze: "+c.$class()),g=a.allocate_class(b,f.$$super),g.$copy_instance_variables(f),g.$copy_singleton_methods(f),g.$initialize_clone(f,new Map([["freeze",c]])),(d(c,!0)||e(c['$nil?']())&&e(f['$frozen?']()))&&g.$freeze(),g},-1),c(q,'$dup',function(){var d=this,c=b;return c=a.allocate_class(b,d.$$super),c.$copy_instance_variables(d),c.$initialize_dup(d),c}),c(q,'$descendants',function(){var a=this;return j(a.$subclasses(),f(a.$subclasses(),'map',[],"descendants".$to_proc()).$flatten())}),c(q,'$inherited',g(b)),c(q,'$new',function f(i){var g=f.$$p||b,d,e,h=this,c;return f.$$p=null,d=l(arguments),e=d,c=h.$allocate(),a.send(c,c.$initialize,e,g),c},-1),c(q,'$subclasses',function(){var b=this,a,c,d;if(typeof WeakRef!='undefined'){d=[];for(a=0;a":c?"#>":m(e,n(e,'to_s',d,!1,!0),'to_s',[],null)}),c(q,'$attached_object',function(){var a=this;if(a.$$singleton_of!=null)return a.$$singleton_of;o.$raise(t('TypeError'),"`"+a+"' is not a singleton class")}),p(q,"inspect","to_s")}('::',null,r)},Opal.modules["corelib/basic_object"]=function(b){"use strict";var o=b.klass,e=b.slice,c=b.def,j=b.alias,i=b.return_val,h=b.Opal,d=b.truthy,p=b.range,f=b.Kernel,k=b.to_a,l=b.send,m=b.eqeq,n=b.rb_ge,a=b.nil,g=b.$$$;return b.add_stubs('==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller'),function(r,s){var q=o(r,s,'BasicObject');return c(q,'$initialize',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$==',function(a){var b=this;return b===a}),c(q,'$eql?',function(a){var b=this;return b['$=='](a)}),j(q,"equal?","=="),c(q,'$__id__',function(){var a=this;return a.$$id!=null?a.$$id:(b.prop(a,'$$id',b.uid()),a.$$id)}),c(q,'$__send__',function k(f,l){var d=k.$$p||a,j,h,c=this,i;return k.$$p=null,j=e(arguments,1),h=j,f.$$is_string||c.$raise(g('TypeError'),""+c.$inspect()+" is not a symbol nor a string"),i=c[b.jsid(f)],i?(d!==a&&(i.$$p=d),i.apply(c,h)):(d!==a&&(c.$method_missing.$$p=d),c.$method_missing.apply(c,[f].concat(h)))},-2),c(q,'$!',i(!1)),h.$pristine("!"),c(q,'$!=',function(a){var b=this;return b['$=='](a)['$!']()}),c(q,'$instance_eval',function y(B){var j=y.$$p||a,s,o,i,c=this,t=a,r=a,z=a,w=a,x=a,v=a,u=a,A,q;if(y.$$p=null,s=e(arguments),o=s,d(j['$nil?']())&&d(!!b.compile))d(p(1,3,!1)['$cover?'](o.$size()))||f.$raise(g('ArgumentError'),"wrong number of arguments (0 for 1..3)"),i=[].concat(k(o)),t=i[0]==null?a:i[0],r=i[1]==null?a:i[1],z=i[2]==null?a:i[2],i,w=new Map([["file",d(x=r)?x:"(eval)"],["eval",!0]]),v=new Map([['arity_check',!1]]).$merge(w),u=h.$compile(t,v),j=l(f,'proc',[],function a(){var c=a.$$s==null?this:a.$$s;return new Function("Opal,self","return "+u)(b,c)},{$$s:c});else if(d(j['$nil?']())&&d(n(o.$length(),1))&&m(o.$first()['$[]'](0),"@"))return c.$instance_variable_get(o.$first());else d(o['$any?']())&&f.$raise(g('ArgumentError'),"wrong number of arguments ("+o.$size()+" for 0)");if(A=j.$$s,j.$$s=null,c.$$is_a_module){c.$$eval=!0;try{q=j.call(c,c)}finally{c.$$eval=!1}}else q=j.call(c,c);return j.$$s=A,q},-1),c(q,'$instance_exec',function j(m){var b=j.$$p||a,k,i,c=this,l,h;if(j.$$p=null,k=e(arguments),i=k,d(b)||f.$raise(g('ArgumentError'),"no block given"),l=b.$$s,b.$$s=null,c.$$is_a_module){c.$$eval=!0;try{h=b.apply(c,i)}finally{c.$$eval=!1}}else h=b.apply(c,i);return b.$$s=l,h},-1),c(q,'$singleton_method_added',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$singleton_method_removed',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$singleton_method_undefined',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$method_missing',function b(c,l){var m=b.$$p||a,d,i,k=this,j=a;return b.$$p=null,d=e(arguments,1),i=d,j=h.$inspect(k),f.$raise(g('NoMethodError').$new("undefined method `"+c+"' for "+j,c,i),a,f.$caller(1))},-2),h.$pristine(q,"method_missing"),c(q,'$respond_to_missing?',function(c,a){return a==null&&(a=!1),!1},-2)}('::',null)},Opal.modules["corelib/kernel"]=function(b){"use strict";var f=b.truthy,q=b.coerce_to,u=b.respond_to,i=b.Opal,v=b.deny_frozen_access,B=b.freeze,C=b.freeze_props,t=b.jsid,G=b.each_ivar,F=b.module,p=b.return_val,c=b.def,g=b.Kernel,e=b.gvars,j=b.slice,h=b.send,k=b.to_a,m=b.ensure_kwargs,n=b.hash_get,o=b.eqeq,x=b.rb_plus,w=b.extract_kwargs,y=b.eqeqeq,r=b.return_self,z=b.rb_le,A=b.rb_lt,s=b.Object,l=b.alias,D=b.klass,E=[],a=b.nil,d=b.$$$;return b.add_stubs('!,=~,==,object_id,raise,new,class,coerce_to?,<<,map,caller,nil?,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,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,to_i,Integer,coerce_to!,===,enum_for,result,shift,write,format,puts,<=,length,[],print,readline,<,first,split,to_str,exception,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,is_a?,__send__,yield_self,include'),function(I,J){var D=F(I,'Kernel'),K=[D].concat(J),E=b.$r(K),H;return c(D,'$=~',p(!1)),c(D,'$!~',function(a){var b=this;return b['$=~'](a)['$!']()}),c(D,'$===',function(b){var c=this,d=a;return f(d=c.$object_id()['$=='](b.$object_id()))?d:c['$=='](b)}),c(D,'$<=>',function(d){var b=this,c;return b.$$comparable=!0,c=b['$=='](d),c&&c!==a?0:a}),c(D,'$method',function(a){var b=this,c=b[t(a)];return(!c||c.$$stub)&&g.$raise(d('NameError').$new("undefined method `"+a+"' for class `"+b.$class()+"'",a)),d('Method').$new(b,c.$$owner||b.$class(),c,a)}),c(D,'$methods',function(a){var c=this;return a==null&&(a=!0),f(a)?b.methods(c):b.own_methods(c)},-1),c(D,'$public_methods',function(a){var c=this;return a==null&&(a=!0),f(a)?b.methods(c):b.receiver_methods(c)},-1),c(D,'$Array',function(b){var c;return b===a?[]:b.$$is_array?b:(c=i['$coerce_to?'](b,d('Array'),"to_ary"),c!==a)?c:(c=i['$coerce_to?'](b,d('Array'),"to_a"),c!==a)?c:[b]}),c(D,'$at_exit',function b(){var c=b.$$p||a,d=a;return e.__at_exit__==null&&(e.__at_exit__=a),b.$$p=null,e.__at_exit__=f(d=e.__at_exit__)?d:[],e.__at_exit__['$<<'](c),c}),c(D,'$caller',function(f,e){var c,b,d,g;f==null&&(f=1),e==null&&(e=a),c=(new Error).$backtrace(),b=[];for(d=f+1,g=c.length;d0&&(c=b.shift()),c==null&&(c="each"),f=b,h(d('Enumerator'),'for',[g,c].concat(k(f)),i.$to_proc())},-1),c(D,'$equal?',function(a){var b=this;return b===a}),c(D,'$exit',function(c){var g=a,h=a;for(e.__at_exit__==null&&(e.__at_exit__=a),c==null&&(c=!0),e.__at_exit__=f(g=e.__at_exit__)?g:[];!f(e.__at_exit__['$empty?']());)h=e.__at_exit__.$pop(),h.$call();return c.$$is_boolean?c=c?0:1:c=q(c,d('Integer'),'to_int'),b.exit(c),a},-1),c(D,'$extend',function(k){var f,c,a=this,h,e,b;f=j(arguments),c=f,c.length==0&&a.$raise(d('ArgumentError'),"wrong number of arguments (given 0, expected 1+)"),v(a),h=a.$singleton_class();for(e=c.length-1;e>=0;e--)b=c[e],b.$$is_module||g.$raise(d('TypeError'),"wrong argument type "+b.$class()+" (expected Module)"),b.$append_features(h),b.$extend_object(a),b.$extended(a);return a},-1),c(D,'$freeze',function(){var a=this;return f(a['$frozen?']())?a:typeof a=="object"?(C(a),B(a)):a}),c(D,'$frozen?',function(){var a=this;switch(typeof a){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return a.$$frozen||!1;default:return!1}}),c(D,'$gets',function(f){var b,c;return e.stdin==null&&(e.stdin=a),b=j(arguments),c=b,h(e.stdin,'gets',k(c))},-1),c(D,'$hash',function(){var a=this;return a.$__id__()}),c(D,'$initialize_copy',p(a)),H=[],c(D,'$inspect',function(){var c=this,d=a,e=a,g=a,i=a;return function(){try{try{return d="",e=c.$__id__(),f(H['$include?'](e))?d=" ...":(H['$<<'](e),g=!0,h(c.$instance_variables(),'each',[],function c(b){var g=c.$$s==null?this:c.$$s,e=a,f=a;return b==null&&(b=a),e=g.$instance_variable_get(b),f=E('Opal').$inspect(e),d=x(d," "+b+"="+f)},{$$s:c})),"#<"+c.$class()+":0x"+e.$to_s(16)+d+">"}catch(a){if(b.rescue(a,[E('StandardError')])){i=a;try{return"#<"+c.$class()+":0x"+e.$to_s(16)+">"}finally{b.pop_exception(a)}}else throw a}}finally{f(g)?H.$pop():a}}()}),c(D,'$instance_of?',function(a){var b=this;return!a.$$is_class&&!a.$$is_module&&g.$raise(d('TypeError'),"class or module required"),b.$$class===a}),c(D,'$instance_variable_defined?',function(a){var c=this;return a=i['$instance_variable_name!'](a),b.hasOwnProperty.call(c,a.substr(1))}),c(D,'$instance_variable_get',function(c){var e=this,d;return c=i['$instance_variable_name!'](c),d=e[b.ivar(c.substr(1))],d==null?a:d}),c(D,'$instance_variable_set',function(a,d){var c=this;return v(c),a=i['$instance_variable_name!'](a),c[b.ivar(a.substr(1))]=d}),c(D,'$remove_instance_variable',function(a){var c=this,e,f;return a=i['$instance_variable_name!'](a),e=b.ivar(a.substr(1)),c.hasOwnProperty(e)?(f=c[e],delete c[e],f):g.$raise(d('NameError'),"instance variable "+a+" not defined")}),c(D,'$instance_variables',function(){var b=this,a=[],d;return G(b,function(b){b.substr(-1)==='$'&&(b=b.slice(0,b.length-1)),a.push('@'+b)}),a}),c(D,'$Integer',function(e,s,t){var l=j(arguments,1),o=w(l),c,h,i,k,p;if(o=m(o),l.length>0&&(c=l.shift()),h=n(o,"exception"),h==null&&(h=!0),h=f(h),!e.$$is_string){if(c!==void 0)if(h)g.$raise(d('ArgumentError'),"base specified for non string value");else return a;if(e===a)if(h)g.$raise(d('TypeError'),"can't convert nil into Integer");else return a;if(e.$$is_number){if(e===1/0||e===-(1/0)||isNaN(e))if(h)g.$raise(d('FloatDomainError'),e);else return a;return Math.floor(e)}if(e['$respond_to?']("to_int"))if(i=e.$to_int(),b.is_a(i,d('Integer')))return i;if(e['$respond_to?']("to_i"))if(i=e.$to_i(),b.is_a(i,d('Integer')))return i;if(h)g.$raise(d('TypeError'),"can't convert "+e.$class()+" into Integer");else return a}if(e==="0")return 0;if(c===void 0)c=0;else if(c=q(c,d('Integer'),'to_int'),c===1||c<0||c>36)if(h)g.$raise(d('ArgumentError'),"invalid radix "+c);else return a;if(k=e.toLowerCase(),k=k.replace(/(\d)_(?=\d)/g,'$1'),k=k.replace(/^(\s*[+-]?)(0[bodx]?)/,function(i,b,f){switch(f){case'0b':if(c===0||c===2)return c=2,b;case'0':case'0o':if(c===0||c===8)return c=8,b;case'0d':if(c===0||c===10)return c=10,b;case'0x':if(c===0||c===16)return c=16,b}if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a}),c=c===0?10:c,p='0-'+(c<=10?c-1:'9a-'+String.fromCharCode(97+(c-11))),!new RegExp('^\\s*[+-]?['+p+']+\\s*$').test(k))if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a;if(i=parseInt(k,c),isNaN(i))if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a;return i},-2),c(D,'$Float',function(e,h){var b,c;if(h=m(h),b=n(h,"exception"),b==null&&(b=!0),b=f(b),e===a)if(b)g.$raise(d('TypeError'),"can't convert nil into Float");else return a;if(e.$$is_string){if(c=e.toString(),c=c.replace(/(\d)_(?=\d)/g,'$1'),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(c))return g.$Integer(c);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(c))if(b)g.$raise(d('ArgumentError'),'invalid value for Float(): "'+e+'"');else return a;return parseFloat(c)}return b?i['$coerce_to!'](e,d('Float'),"to_f"):q(e,d('Float'),'to_f')},-2),c(D,'$Hash',function(a){return f(a['$nil?']())||o(a,[])?new Map:y(d('Hash'),a)?a:i['$coerce_to!'](a,d('Hash'),"to_hash")}),c(D,'$is_a?',function(a){var c=this;return!a.$$is_class&&!a.$$is_module&&g.$raise(d('TypeError'),"class or module required"),b.is_a(c,a)}),c(D,'$itself',r),c(D,'$lambda',function c(){var d=c.$$p||a;return c.$$p=null,b.lambda(d)}),c(D,'$load',function(a){return a=i['$coerce_to!'](a,d('String'),"to_str"),b.load(a)}),c(D,'$loop',function c(){var e=c.$$p||a,g=this,i=a;if(c.$$p=null,!(e!==a))return h(g,'enum_for',["loop"],function(){return d(d('Float'),'INFINITY')});while(f(!0))try{b.yieldX(e,[])}catch(a){if(b.rescue(a,[d('StopIteration')])){i=a;try{return i.$result()}finally{b.pop_exception(a)}}else throw a}return g}),c(D,'$nil?',p(!1)),c(D,'$printf',function(l){var c,b,g=this,d=a;return e.stdout==null&&(e.stdout=a),c=j(arguments),b=c,f(b['$empty?']())?a:(d=f(b[0].$$is_string)?e.stdout:b.$shift(),d.$write(h(g,'format',k(b))),a)},-1),c(D,'$proc',function c(){var b=c.$$p||a;return c.$$p=null,f(b)||g.$raise(d('ArgumentError'),"tried to create Proc object without a block"),b.$$is_lambda=!1,b}),c(D,'$puts',function(f){var b,c;return e.stdout==null&&(e.stdout=a),b=j(arguments),c=b,h(e.stdout,'puts',k(c))},-1),c(D,'$p',function(g){var c,b;return c=j(arguments),b=c,h(b,'each',[],function(b){return e.stdout==null&&(e.stdout=a),b==null&&(b=a),e.stdout.$puts(b.$inspect())}),f(z(b.$length(),1))?b['$[]'](0):b},-1),c(D,'$print',function(f){var b,c;return e.stdout==null&&(e.stdout=a),b=j(arguments),c=b,h(e.stdout,'print',k(c))},-1),c(D,'$readline',function(f){var b,c;return e.stdin==null&&(e.stdin=a),b=j(arguments),c=b,h(e.stdin,'readline',k(c))},-1),c(D,'$warn',function(u,v){var r,q,l,b,o,p,s=this,c=a;return e.VERBOSE==null&&(e.VERBOSE=a),e.stderr==null&&(e.stderr=a),r=j(arguments),q=w(r),q=m(q),l=r,b=n(q,"uplevel"),b==null&&(b=a),f(b)&&(b=i['$coerce_to!'](b,d('Integer'),"to_str"),f(A(b,0))&&g.$raise(d('ArgumentError'),"negative level ("+b+")"),c=(o=(p=s.$caller(x(b,1),1).$first(),p===a||p==null?a:p.$split(":in `")),o===a||o==null?a:o.$first()),f(c)&&(c=""+c+": "),l=h(l,'map',[],function(b){return b==null&&(b=a),""+c+"warning: "+b})),f(e.VERBOSE['$nil?']())||f(l['$empty?']())?a:h(e.stderr,'puts',k(l))},-1),c(D,'$raise',function(c,g,f){throw e["!"]==null&&(e["!"]=a),g==null&&(g=a),f==null&&(f=a),c==null&&e["!"]!==a?e["!"]:(c==null?c=d('RuntimeError').$new(""):u(c,'$to_str')?c=d('RuntimeError').$new(c.$to_str()):c.$$is_class&&u(c,'$exception')?c=c.$exception(g):c.$$is_exception||(c=d('TypeError').$new("exception class/object expected")),f!==a&&c.$set_backtrace(f),e["!"]!==a&&b.exceptions.push(e["!"]),e["!"]=c,c)},-1),c(D,'$rand',function(a){return a===void 0?d(d('Random'),'DEFAULT').$rand():(a.$$is_number&&(a<0&&(a=Math.abs(a)),a%1!==0&&(a=a.$to_i()),a===0&&(a=void 0)),d(d('Random'),'DEFAULT').$rand(a))},-1),c(D,'$respond_to?',function(c,a){var b=this,d;return!!(a==null&&(a=!1),d=b[t(c)],typeof d=="function"&&!d.$$stub)||(b['$respond_to_missing?'].$$pristine!==!0&&b['$respond_to_missing?'](c,a))},-2),c(D,'$respond_to_missing?',function(c,a){return a==null&&(a=!1),!1},-2),i.$pristine(D,"respond_to?","respond_to_missing?"),c(D,'$require',function(a){return typeof a!='string'&&b.String&&b.Array&&(a=i['$coerce_to!'](a,d('String'),"to_str")),b.require(a)}),c(D,'$require_relative',function(a){return i['$try_convert!'](a,d('String'),"to_str"),a=d('File').$expand_path(d('File').$join(b.current_file,"..",a)),b.require(a)}),c(D,'$require_tree',function(a,f){var c,g,e;f=m(f),c=n(f,"autoload"),c==null&&(c=!1),g=[],a=d('File').$expand_path(a),a=b.normalize(a),a==='.'&&(a='');for(e in b.modules)e['$start_with?'](a)&&(c?g.push([e,!0]):g.push([e,b.require(e)]));return g},-2),c(D,'$singleton_class',function(){var a=this;return b.get_singleton_class(a)}),c(D,'$sleep',function(c){var e,f;for(c==null&&(c=a),c===a&&g.$raise(d('TypeError'),"can't convert NilClass into time interval"),c.$$is_number||g.$raise(d('TypeError'),"can't convert "+c.$class()+" into time interval"),c<0&&g.$raise(d('ArgumentError'),"time interval must be positive"),e=b.global.performance?function(){return performance.now()}:function(){return new Date},f=e();e()-f<=c*1e3;);return Math.round(c)},-1),c(D,'$srand',function(a){return a==null&&(a=E('Random').$new_seed()),d('Random').$srand(a)},-1),c(D,'$String',function(b){var c=a;return f(c=i['$coerce_to?'](b,d('String'),"to_str"))?c:i['$coerce_to!'](b,d('String'),"to_s")}),c(D,'$tap',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b.yield1(e,d),d}),c(D,'$to_proc',r),c(D,'$to_s',function(){var a=this;return"#<"+a.$class()+":0x"+a.$__id__().$to_s(16)+">"}),c(D,'$catch',function h(c){var j=h.$$p||a,i=a,e=a;h.$$p=null,c==null&&(c=a);try{return c=f(i=c)?i:s.$new(),b.yield1(j,c)}catch(a){if(b.rescue(a,[d('UncaughtThrowError')])){e=a;try{return o(e.$tag(),c)?e.$value():g.$raise()}finally{b.pop_exception(a)}}else throw a}},-1),c(D,'$throw',function(c,b){return b==null&&(b=a),g.$raise(d('UncaughtThrowError').$new(c,b))},-2),c(D,'$open',function b(g){var f=b.$$p||a,c,e;return b.$$p=null,c=j(arguments),e=c,h(d('File'),'open',k(e),f.$to_proc())},-1),c(D,'$yield_self',function c(){var d=c.$$p||a,e=this;return c.$$p=null,!(d!==a)?h(e,'enum_for',["yield_self"],p(1)):b.yield1(d,e)}),l(D,"fail","raise"),l(D,"kind_of?","is_a?"),l(D,"object_id","__id__"),l(D,"public_send","__send__"),l(D,"send","__send__"),l(D,"then","yield_self"),l(D,"to_enum","enum_for")}('::',E),function(a,b){var c=D(a,b,'Object');return delete s.$$prototype.$require,c.$include(g)}('::',null)},Opal.modules["corelib/main"]=function(a){var c=a.return_val,b=a.def,d=a.Object,e=a.slice,f=a.Kernel,g=a.top,h=[],i=a.nil;return a.add_stubs('include,raise'),function(g,h){return b(g,'$to_s',c("main")),b(g,'$include',function(a){return d.$include(a)}),b(g,'$autoload',function(f){var b,c;return b=e(arguments),c=b,a.Object.$autoload.apply(a.Object,c)},-1),b(g,'$using',function(b){return f.$raise("main.using is permitted only at toplevel")})}(a.get_singleton_class(g),h)},Opal.modules["corelib/error/errno"]=function(a){var e=a.module,i=a.truthy,j=a.rb_plus,f=a.send2,g=a.find_super,d=a.def,h=a.klass,c=[],b=a.nil,k=a.$$$;return a.add_stubs('+,errno,class,attr_reader'),function(o,m){var l=e(o,'Errno'),n=[l].concat(m),h=b,k=b,c;h=[["EINVAL","Invalid argument",22],["EEXIST","File exists",17],["EISDIR","Is a directory",21],["EMFILE","Too many open files",24],["ESPIPE","Illegal seek",29],["EACCES","Permission denied",13],["EPERM","Operation not permitted",1],["ENOENT","No such file or directory",2],["ENAMETOOLONG","File name too long",36]],k=b;for(c=0;c0?c[0]:a,b=new f.$$constructor(g),b.name=f.$$name,b.message=g,b.cause=i["!"],d.send(b,b.$initialize,c),d.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(b,p),b},-1),p=m.$new,o(m,'$exception',function(e){var a,b,c=this;return a=n(arguments),b=a,l(c,'new',s(b))},-1),e(m,'$initialize',function(f){var c,b,d=this;return c=n(arguments),b=c,d.message=b.length>0?b[0]:a},-1),e(m,'$copy_instance_variables',function d(c){var e=d.$$p||a,b=this;d.$$p=null,g(b,h(b,'copy_instance_variables',d,!1,!0),'copy_instance_variables',[c],e),b.message=c.message,b.cause=c.cause,b.stack=c.stack});function q(e){for(var c=[],d=0,a,b;d"}),e(m,'$set_backtrace',function(c){var d=this,f=!0,e,g;if(c===a)d.backtrace=a,d.stack='';else if(c.$$is_string)d.backtrace=[c],d.stack=' from '+c;else{if(c.$$is_array){for(e=0,g=c.length;e,length,Rational,to_i'),function(p,q,r){var m=n(p,q,'NilClass'),s=[m].concat(r);return m.$$prototype.$$meta=m,function(c,g){return a(c,'$allocate',function(){var a=this;return e.$raise(f('TypeError'),"allocator undefined for "+a.$name())}),b.udef(c,'$new'),d}(b.get_singleton_class(m),s),a(m,'$!',c(!0)),a(m,'$&',c(!1)),a(m,'$|',function(a){return a!==!1&&a!==d}),a(m,'$^',function(a){return a!==!1&&a!==d}),a(m,'$==',function(a){return a===d}),a(m,'$dup',c(d)),a(m,'$clone',function(a){var b;return a=h(a),b=g(a,"freeze"),b==null&&(b=!0),d},-1),a(m,'$inspect',c("nil")),a(m,'$nil?',c(!0)),a(m,'$singleton_class',function(){return o}),a(m,'$to_a',function(){return[]}),a(m,'$to_h',function(){return new Map}),a(m,'$to_i',c(0)),a(m,'$to_s',c("")),a(m,'$to_c',function(){return f('Complex').$new(0,0)}),a(m,'$rationalize',function(d){var a,b;return a=i(arguments),b=a,j(k(b.$length(),1))&&e.$raise(f('ArgumentError')),e.$Rational(0,1)},-1),a(m,'$to_r',function(){return e.$Rational(0,1)}),a(m,'$instance_variables',function(){return[]}),l(m,"to_f","to_i")}('::',null,m)},Opal.modules["corelib/boolean"]=function(a){"use strict";var e=a.klass,o=a.Kernel,b=a.def,m=a.return_self,i=a.ensure_kwargs,g=a.hash_get,h=a.slice,p=a.truthy,j=a.send2,k=a.find_super,l=a.to_a,d=a.alias,n=[],c=a.nil,f=a.$$$;return a.add_stubs('raise,name,==,to_s,__id__'),function(v,s,t){var n=e(v,s,'Boolean'),u=[n].concat(t),r,q;a.prop(n.$$prototype,'$$is_boolean',!0),r=['$$class','$$meta'];for(q=0;q,<,===,raise,class,<=>,equal?'),function(o){var k=j(o,'Comparable'),m=b;function n(b){return a.is_a(b,a.Integer)?b:i(b,0)?1:h(b,0)?-1:0}function p(f,a){var c;e(b,m=a)||e(!0,m)||e(!1,m)||e(d('Integer'),m)||e(d('Float'),m)?c=a.$inspect():c=a.$$class,g.$raise(d('ArgumentError'),"comparison of "+f.$class()+" with "+c+" failed")}function l(a,b){var c=a['$<=>'](b);return f(c)||p(a,b),n(c)}return c(k,'$==',function(d){var c=this,e=b;return!!f(c['$equal?'](d))||(c["$<=>"]!=a.Kernel["$<=>"]&&(c.$$comparable?(c.$$comparable=!1,!1):!!f(e=c['$<=>'](d))&&n(e)==0))}),c(k,'$>',function(a){var b=this;return l(b,a)>0}),c(k,'$>=',function(a){var b=this;return l(b,a)>=0}),c(k,'$<',function(a){var b=this;return l(b,a)<0}),c(k,'$<=',function(a){var b=this;return l(b,a)<=0}),c(k,'$between?',function(b,c){var a=this;return!f(h(a,b))&&(!f(i(a,c)))}),c(k,'$clamp',function(c,e){var h=this,f,i;if(e==null&&(e=b),e===b&&(a.is_a(c,a.Range)||g.$raise(d('TypeError'),"wrong argument type "+c.$class()+" (expected Range)"),i=c.excl,e=c.end,c=c.begin,e!==b&&i&&g.$raise(d('ArgumentError'),"cannot clamp with an exclusive range")),c!==b&&e!==b&&l(c,e)>0&&g.$raise(d('ArgumentError'),"min argument must be smaller than max argument"),c!==b){if(f=l(h,c),f==0)return h;if(f<0)return c}if(e!==b)if(f=l(h,e),f>0)return e;return h},-2)}('::')},Opal.modules["corelib/regexp"]=function(b){var i=b.coerce_to,p=b.prop,v=b.freeze,l=b.klass,o=b.const_set,A=b.send2,z=b.find_super,c=b.def,f=b.truthy,d=b.gvars,m=b.slice,g=b.Kernel,n=b.Opal,j=b.alias,h=b.send,q=b.regexp,r=b.rb_plus,s=b.ensure_kwargs,t=b.hash_get,u=b.rb_ge,B=b.to_a,w=b.eqeqeq,x=b.rb_minus,y=b.return_ivar,k=[],a=b.nil,e=b.$$$;return b.add_stubs('nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,frozen?,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'),l('::',e('StandardError'),'RegexpError'),function(u,w,x){var k=l(u,w,'Regexp'),s=[k].concat(x),t=b.$r(s);return o(k,'IGNORECASE',1),o(k,'EXTENDED',2),o(k,'MULTILINE',4),b.prop(k.$$prototype,'$$is_regexp',!0),function(h,l){var o=[h].concat(l),k=b.$r(o);return c(h,'$allocate',function b(){var e=b.$$p||a,d=this,c=a;return b.$$p=null,c=A(d,z(d,'allocate',b,!1,!0),'allocate',[],e),c.uninitialized=!0,c}),c(h,'$escape',function(a){return a=i(a,e('String'),'to_str'),b.escape_regexp(a)}),c(h,'$last_match',function(b){return d["~"]==null&&(d["~"]=a),b==null&&(b=a),f(b['$nil?']())?d["~"]:f(d["~"])?d["~"]['$[]'](b):a},-1),c(h,'$union',function(n){var k,a,f=this,h,c,b,d,i,j;if(k=m(arguments),a=k,a.length==0)return/(?!)/;if(a.length==1&&a[0].$$is_regexp)return a[0];h=a[0].$$is_array,a.length>1&&h&&g.$raise(e('TypeError'),"no implicit conversion of Array into String"),h&&(a=a[0]),d=void 0,c=[];for(j=0;j=f)return d["~"]=e('MatchData').$new(l,h),j===a?d["~"]:b.yield1(j,d["~"]);l.lastIndex=h.index+1}},-2),c(k,'$match?',function(c,d){var f=this,h,j;if(f.uninitialized&&g.$raise(e('TypeError'),"uninitialized Regexp"),d===void 0)return c!==a&&f.test(i(c,e('String'),'to_str'));if(d=i(d,e('Integer'),'to_int'),c===a)return!1;if(c=i(c,e('String'),'to_str'),d<0)if(d+=c.length,d<0)return!1;return!(j=b.global_regexp(f),h=j.exec(c),h===null||h.index"]),new Map([["no_matchdata",!0]])),'map',[],"first".$to_proc()).$uniq()}),c(k,'$named_captures',function(){var b=this;return h(h(h(b.$source().$scan(q(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),'map',[],"first".$to_proc()).$each_with_index(),'group_by',[],"first".$to_proc()),'transform_values',[],function(b){return b==null&&(b=a),h(b,'map',[],function(b){return b==null&&(b=a),r(b.$last(),1)})})}),c(k,'$~',function(){var b=this;return d._==null&&(d._=a),b['$=~'](d._)}),c(k,'$source',function(){var a=this;return a.source}),c(k,'$options',function(){var a=this,b;return a.uninitialized&&g.$raise(e('TypeError'),"uninitialized Regexp"),b=0,a.multiline&&(b|=t('MULTILINE')),a.ignoreCase&&(b|=t('IGNORECASE')),b}),c(k,'$casefold?',function(){var a=this;return a.ignoreCase}),j(k,"eql?","=="),j(k,"to_s","source")}('::',RegExp,k),function(k,o,p){var i=l(k,o,'MatchData'),q=[i].concat(p),r=b.$r(q),v=i.$$prototype;return v.matches=a,i.$attr_reader("post_match","pre_match","regexp","string"),c(i,'$initialize',function(j,b,h){var e,c=this,g,k,i;h=s(h),e=t(h,"no_matchdata"),e==null&&(e=!1),f(e)||(d["~"]=c),c.regexp=j,c.begin=b.index,c.string=b.input,c.pre_match=b.input.slice(0,b.index),c.post_match=b.input.slice(b.index+b[0].length),c.matches=[];for(g=0,k=b.length;g"}),c(i,'$length',function(){var a=this;return a.matches.length}),c(i,'$to_a',y("matches")),c(i,'$to_s',function(){var a=this;return a.matches[0]}),c(i,'$values_at',function(k){var i,c,h=this,b,f,d,g;i=m(arguments),c=i,g=[];for(b=0;b,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,nil?,class,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,length,each_line,to_proc,to_a,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,dup,__id__,next,intern,pristine'),w.$require("corelib/comparable"),w.$require("corelib/regexp"),function(J,K,H){var t=D(J,K,'String'),I=[t].concat(H),E=d.$r(I),w;t.$include(a('Comparable')),d.prop(t.$$prototype,'$$is_string',!0),w=new Map,function(){'use strict';b(t,'$__id__',function b(){var f=b.$$p||c,a=this,e;return b.$$p=null,typeof a=='object'?A(a,z(a,'__id__',b,!1,!0),'__id__',[],f):w.has(a)?w.get(a):(e=d.uid(),w.set(a,e),e)}),b(t,'$hash',function(){var c=this,a=F(),d=c.length,b;a=r(a,5),a=r(a,d);for(b=0;b0&&(f=b.shift()),d=k(a,"encoding"),d==null&&(d=c),e=k(a,"capacity"),e==null&&(e=c),c},-1),b(t,'$%',function(c){var b=this;return n(a('Array'),c)?m(b,'format',[b].concat(q(c))):b.$format(b,c)}),b(t,'$*',function(b){var g=this,d,c;if(b=e(b,a('Integer'),'to_int'),b<0&&f.$raise(a('ArgumentError'),"negative argument"),b===0)return'';for(d='',c=g.toString(),c.length*b>=1<<28&&f.$raise(a('RangeError'),"multiply count must not overflow maximum string size");;){if((b&1)===1&&(d+=c),b>>>=1,b===0)break;c+=c}return d}),b(t,'$+',function(b){var c=this,f;return b=e(b,a('String'),'to_str'),b==""&&c.$$class===d.String?c:c==""&&b.$$class===d.String?b:(f=c+b,c.encoding===f.encoding&&b.encoding===f.encoding)?f:c.encoding.name==="UTF-8"||b.encoding.name==="UTF-8"?f:d.enc(f,c.encoding)}),b(t,'$<=>',function(a){var b=this,d;return h(a['$respond_to?']("to_str"))?(a=a.$to_str().$to_s(),b>a?1:b'](b),d===c)?c:d>0?-1:d<0?1:0}),b(t,'$==',function(a){var b=this;return a.$$is_string?b.toString()===a.toString():!!C(a,'$to_str')&&a['$=='](b)}),b(t,'$=~',function(b){var c=this;return b.$$is_string&&f.$raise(a('TypeError'),"type mismatch: String given"),b['$=~'](c)}),b(t,'$[]',function(b,d){var i=this,j,l,k,h;return j=i.length,b.$$is_range?(l=b.excl,k=b,d=b.end===c?-1:e(b.end,a('Integer'),'to_int'),b=b.begin===c?0:e(b.begin,a('Integer'),'to_int'),Math.abs(b)>j)?c:(b<0&&(b+=j),d<0&&(d+=j),(!l||k.end===c)&&(d+=1),d=d-b,d<0&&(d=0),i.substr(b,d)):b.$$is_string?(d!=null&&f.$raise(a('TypeError')),i.indexOf(b)!==-1?b:c):b.$$is_regexp?(h=i.match(b),h===null)?(g["~"]=c,c):(g["~"]=a('MatchData').$new(b,h),d==null)?h[0]:(d=e(d,a('Integer'),'to_int'),d<0&&-d=0&&d=j||b<0?c:i.substr(b,1):(d=e(d,a('Integer'),'to_int'),d<0)?c:b>j||b<0?c:i.substr(b,d)},-2),b(t,'$b',function(){var a=this;return new String(a).$force_encoding("binary")}),b(t,'$capitalize',function(){var a=this;return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}),b(t,'$casecmp',function(b){var d=this,f;return h(b['$respond_to?']("to_str"))?(b=e(b,a('String'),'to_str').$to_s(),f=/^[\x00-\x7F]*$/,f.test(d)&&f.test(b)&&(d=d.toLowerCase(),b=b.toLowerCase()),d['$<=>'](b)):c}),b(t,'$casecmp?',function(b){var d=this,a=d.$casecmp(b);return a===c?c:a===0}),b(t,'$center',function(d,b){var c=this,g,i;return b==null&&(b=" "),d=e(d,a('Integer'),'to_int'),b=e(b,a('String'),'to_str').$to_s(),h(b['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(d<=c.length)?c:(g=c.$ljust(x(y(d,c.length),2).$ceil(),b),i=c.$rjust(x(y(d,c.length),2).$floor(),b),i+g.slice(c.length))},-2),b(t,'$chomp',function(b){var d=this,e,f;return g["/"]==null&&(g["/"]=c),b==null&&(b=g["/"]),h(b===c||d.length===0)?d:(b=p['$coerce_to!'](b,a('String'),"to_str").$to_s(),b==="\n"?e=d.replace(/\r?\n?$/,''):b===""?e=d.replace(/(\r?\n)+$/,''):d.length>=b.length&&(f=d.substr(d.length-b.length,b.length),f===b&&(e=d.substr(0,d.length-b.length))),e!=null)?e:d},-1),b(t,'$chop',function(){var a=this,b=a.length,c;return b<=1?c="":a.charAt(b-1)==="\n"&&a.charAt(b-2)==="\r"?c=a.substr(0,b-2):c=a.substr(0,b-1),c}),b(t,'$chr',function(){var a=this;return a.charAt(0)}),b(t,'$clone',function(e){var a,d=this,b=c;return e=o(e),a=k(e,"freeze"),a==null&&(a=c),h(a['$nil?']())||s(a,!0)||s(a,!1)||d.$raise(E('ArgumentError'),"unexpected value for freeze: "+a.$class()),b=new String(d),b.$copy_singleton_methods(d),b.$initialize_clone(d,new Map([["freeze",a]])),s(a,!0)?b.$$frozen||(b.$$frozen=!0):h(a['$nil?']())&&d.$$frozen&&(b.$$frozen=!0),b},-1),b(t,'$dup',function(){var b=this,a=c;return a=new String(b),a.$initialize_dup(b),a}),b(t,'$count',function(h){var c,b,d=this,e;return c=i(arguments),b=c,b.length===0&&f.$raise(a('ArgumentError'),"ArgumentError: wrong number of arguments (0 for 1+)"),e=B(b),e===null?0:d.length-d.replace(new RegExp(e,'g'),'').length},-1),b(t,'$delete',function(h){var c,b,d=this,e;return c=i(arguments),b=c,b.length===0&&f.$raise(a('ArgumentError'),"ArgumentError: wrong number of arguments (0 for 1+)"),e=B(b),e===null?d:d.replace(new RegExp(e,'g'),'')},-1),b(t,'$delete_prefix',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.slice(0,b.length)===b?c.slice(b.length):c}),b(t,'$delete_suffix',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.slice(c.length-b.length)===b?c.slice(0,c.length-b.length):c}),b(t,'$downcase',function(){var a=this;return a.toLowerCase()}),b(t,'$each_line',function u(z,y){var q=u.$$p||c,n,p,b,l,j=this,m,f,w,s,t,x,r,h;if(g["/"]==null&&(g["/"]=c),u.$$p=null,n=i(arguments),p=v(n),p=o(p),n.length>0&&(b=n.shift()),b==null&&(b=g["/"]),l=k(p,"chomp"),l==null&&(l=!1),!(q!==c))return j.$enum_for("each_line",b,new Map([["chomp",l]]));if(b===c)return d.yield1(q,j),j;if(b=e(b,a('String'),'to_str'),b.length===0){for(m=j.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/),f=0,w=m.length;f=b.length&&d.substr(d.length-b.length,b.length)==b)return!0;return!1},-1),b(t,'$gsub',function m(d,h){var o=m.$$p||c,f=this,j,n,k,b,i,p;if(m.$$p=null,h===void 0&&o===c)return f.$enum_for("gsub",d);for(j='',n=c,k=0,d.$$is_regexp?d=l(d):(d=e(d,a('String'),'to_str'),d=new RegExp(d.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'),'gm'));!0;){if(b=d.exec(f),b===null){g["~"]=c,j+=f.slice(k);break}n=a('MatchData').$new(d,b),h===void 0?(p=d.lastIndex,i=o(b[0]),d.lastIndex=p):h.$$is_hash?i=h['$[]'](b[0]).$to_s():(h.$$is_string||(h=e(h,a('String'),'to_str')),i=h.replace(/([\\]+)([0-9+&`'])/g,function(e,a,d){if(a.length%2===0)return e;switch(d){case"+":for(var c=b.length-1;c>0;c--)if(b[c]!==void 0)return a.slice(1)+b[c];return'';case"&":return a.slice(1)+b[0];case"`":return a.slice(1)+f.slice(0,b.index);case"'":return a.slice(1)+f.slice(b.index+b[0].length);default:return a.slice(1)+(b[d]||'')}}).replace(/\\\\/g,'\\')),d.lastIndex===b.index?(j+=f.slice(k,b.index)+i+(f[b.index]||""),d.lastIndex+=1):j+=f.slice(k,b.index)+i,k=d.lastIndex}return g["~"]=n,j},-2),b(t,'$hex',function(){var a=this;return a.$to_i(16)}),b(t,'$include?',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.indexOf(b)!==-1}),b(t,'$index',function(d,b){var j=this,f,h,i;if(b===void 0)b=0;else if(b=e(b,a('Integer'),'to_int'),b<0)if(b+=j.length,b<0)return c;if(d.$$is_regexp)for(i=l(d);!0;){if(h=i.exec(j),h===null){g["~"]=c,f=-1;break}if(h.index>=b){g["~"]=a('MatchData').$new(i,h),f=h.index;break}i.lastIndex=h.index+1}else d=e(d,a('String'),'to_str'),d.length===0&&b>j.length?f=-1:f=j.indexOf(d,b);return f===-1?c:f},-2),b(t,'$inspect',function(){var a=this,c=/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b={'\u0007':'\\a','\u001b':'\\e','\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\v':'\\v','"':'\\"','\\':'\\\\'},d=a.replace(c,function(c){return b[c]?b[c]:(c=c.charCodeAt(0),c<=255&&(a.encoding["$binary?"]()||a.internal_encoding["$binary?"]()))?'\\x'+('00'+c.toString(16).toUpperCase()).slice(-2):'\\u'+('0000'+c.toString(16).toUpperCase()).slice(-4)});return'"'+d.replace(/\#[\$\@\{]/g,'\\$&')+'"'}),b(t,'$intern',function(){var a=this;return a.toString()}),b(t,'$length',function(){var a=this;return a.length}),j(t,"size","length"),b(t,'$lines',function l(p,q){var j=l.$$p||c,d,e,a,b,f=this,n=c;return g["/"]==null&&(g["/"]=c),l.$$p=null,d=i(arguments),e=v(d),e=o(e),d.length>0&&(a=d.shift()),a==null&&(a=g["/"]),b=k(e,"chomp"),b==null&&(b=!1),n=m(f,'each_line',[a,new Map([["chomp",b]])],j.$to_proc()),h(j)?f:n.$to_a()},-1),b(t,'$ljust',function(b,c){var d=this,i,g;if(c==null&&(c=" "),b=e(b,a('Integer'),'to_int'),c=e(c,a('String'),'to_str').$to_s(),h(c['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(b<=d.length))return d;for(i=-1,g="",b-=d.length;++i=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122)switch(a){case 57:c=!0,a=48;break;case 90:c=!0,a=65;break;case 122:c=!0,a=97;break;default:c=!1,a+=1}else f===-1?a===255?(c=!0,a=0):(c=!1,a+=1):c=!0;if(d=d.slice(0,b)+String.fromCharCode(a)+d.slice(b+1),c&&(b===0||b===f)){switch(a){case 65:break;case 97:break;default:a+=1}b===0?d=String.fromCharCode(a)+d:d=d.slice(0,b)+String.fromCharCode(a)+d.slice(b),c=!1}if(!c)break}return d}),b(t,'$oct',function(){var d=this,b=d,a=8,c;return/^\s*_/.test(b)?0:(b=b.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(c,e,d,b){switch(b.charAt(0)){case'+':case'-':return c;case'0':if(b.charAt(1)==='x'&&d==='0x')return c}switch(d){case'0b':a=2;break;case'0':case'0o':a=8;break;case'0d':a=10;break;case'0x':a=16;break}return e+b}),c=parseInt(b.replace(/_(?!_)/g,''),a),isNaN(c)?0:c)}),b(t,'$ord',function(){var a=this;return typeof a.codePointAt=="function"?a.codePointAt(0):a.charCodeAt(0)}),b(t,'$partition',function(b){var d=this,c,f;return b.$$is_regexp?(f=b.exec(d),f===null?c=-1:(a('MatchData').$new(b,f),b=f[0],c=f.index)):(b=e(b,a('String'),'to_str'),c=d.indexOf(b)),c===-1?[d,'','']:[d.slice(0,c),d.slice(c,c+b.length),d.slice(c+b.length)]}),b(t,'$reverse',function(){var a=this;return a.split('').reverse().join('')}),b(t,'$rindex',function(f,b){var j=this,h,d,i,k;if(b===void 0)b=j.length;else if(b=e(b,a('Integer'),'to_int'),b<0)if(b+=j.length,b<0)return c;if(f.$$is_regexp){for(d=null,i=l(f);!0;){if(k=i.exec(j),k===null||k.index>b)break;d=k,i.lastIndex=d.index+1}d===null?(g["~"]=c,h=-1):(a('MatchData').$new(i,d),h=d.index)}else f=e(f,a('String'),'to_str'),h=j.lastIndexOf(f,b);return h===-1?c:h},-2),b(t,'$rjust',function(c,b){var d=this,i,j,g,k;return b==null&&(b=" "),c=e(c,a('Integer'),'to_int'),b=e(b,a('String'),'to_str').$to_s(),h(b['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(c<=d.length)?d:(i=Math.floor(c-d.length),j=Math.floor(i/b.length),g=Array(j+1).join(b),k=i-g.length,g+b.slice(0,k)+d)},-2),b(t,'$rpartition',function(b){var f=this,c,d,g,h;if(b.$$is_regexp){for(d=null,g=l(b);!0;){if(h=g.exec(f),h===null)break;d=h,g.lastIndex=d.index+1}d===null?c=-1:(a('MatchData').$new(g,d),b=d[0],c=d.index)}else b=e(b,a('String'),'to_str'),c=f.lastIndexOf(b);return c===-1?['','',f]:[f.slice(0,c),f.slice(c,c+b.length),f.slice(c+b.length)]}),b(t,'$rstrip',function(){var a=this;return a.replace(/[\x00\x09\x0a-\x0d\x20]*$/,'')}),b(t,'$scan',function q(b,n){var i=q.$$p||c,h,p=this,m,j,f;for(q.$$p=null,n=o(n),h=k(n,"no_matchdata"),h==null&&(h=!1),m=[],j=c,b.$$is_regexp?b=l(b):(b=e(b,a('String'),'to_str'),b=new RegExp(b.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'),'gm'));(f=b.exec(p))!=null;)j=a('MatchData').$new(b,f,new Map([["no_matchdata",h]])),i===c?f.length==1?m.push(f[0]):m.push(j.$captures()):f.length==1?d.yield1(i,f[0]):d.yield1(i,j.$captures()),b.lastIndex===f.index&&(b.lastIndex+=1);return h||(g["~"]=j),i!==c?p:m},-2),b(t,'$singleton_class',function(){var a=this;return d.get_singleton_class(a)}),b(t,'$split',function(f,i){var o=this,t=c,b,k,s,j,r,n,m,q;if(g[";"]==null&&(g[";"]=c),o.length===0)return[];if(i===void 0)i=0;else if(i=p['$coerce_to!'](i,a('Integer'),"to_int"),i===1)return[o];if((f===void 0||f===c)&&(f=h(t=g[";"])?t:" "),b=[],k=o.toString(),s=0,r=0,n=0,f.$$is_regexp?f=l(f):(f=e(f,a('String'),'to_str').$to_s(),f===' '&&(f=/\s+/gm,k=k.replace(/^\s+/,''))),b=k.split(f),b.length===1&&b[0]===k)return[b[0]];while((m=b.indexOf(void 0))!==-1)b.splice(m,1);if(i===0){while(b[b.length-1]==='')b.pop();return b}if(f.$$is_regexp||(f=d.escape_regexp(f),f=new RegExp(f,'gm')),j=f.exec(k),i<0){if(j!==null&&j[0]===''&&f.source.indexOf('(?=')===-1)for(m=0,q=j.length;m=b.length)return b;while(j!==null){if(r++,s=f.lastIndex,n+=j.length,r+1===i)break;j=f.exec(k)}return b.splice(n,b.length-1,k.slice(s)),b},-1),b(t,'$squeeze',function(f){var c,a,b=this,d;return c=i(arguments),a=c,a.length===0?b.replace(/(.)\1+/g,'$1'):(d=B(a),d===null)?b:b.replace(new RegExp('('+d+')\\1+','g'),'$1')},-1),b(t,'$start_with?',function(o){var k,b,h=this,d,m,j,f,l;k=i(arguments),b=k;for(d=0,m=b.length;d=l.length&&h.startsWith(l))return!0;return!1},-1),b(t,'$strip',function(){var a=this;return a.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,'')}),b(t,'$sub',function l(i,h){var k=l.$$p||c,d=this,j,b;return l.$$p=null,i.$$is_regexp||(i=e(i,a('String'),'to_str'),i=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'))),b=i.exec(d),b===null?(g["~"]=c,j=d.toString()):(a('MatchData').$new(i,b),h===void 0?(k===c&&f.$raise(a('ArgumentError'),"wrong number of arguments (1 for 2)"),j=d.slice(0,b.index)+k(b[0])+d.slice(b.index+b[0].length)):h.$$is_hash?j=d.slice(0,b.index)+h['$[]'](b[0]).$to_s()+d.slice(b.index+b[0].length):(h=e(h,a('String'),'to_str'),h=h.replace(/([\\]+)([0-9+&`'])/g,function(f,a,e){if(a.length%2===0)return f;switch(e){case"+":for(var c=b.length-1;c>0;c--)if(b[c]!==void 0)return a.slice(1)+b[c];return'';case"&":return a.slice(1)+b[0];case"`":return a.slice(1)+d.slice(0,b.index);case"'":return a.slice(1)+d.slice(b.index+b[0].length);default:return a.slice(1)+(b[e]||'')}}).replace(/\\\\/g,'\\'),j=d.slice(0,b.index)+h+d.slice(b.index+b[0].length))),j},-2),b(t,'$sum',function(b){var f=this,c,g,d;for(b==null&&(b=16),b=e(b,a('Integer'),'to_int'),c=0,g=f.length,d=0;d36)&&f.$raise(a('ArgumentError'),"invalid radix "+b),/^\s*_/.test(c)?0:(c=c.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(d,c,e,a){switch(a.charAt(0)){case'+':case'-':return d;case'0':if(a.charAt(1)==='x'&&e==='0x'&&(b===0||b===16))return d}switch(e){case'0b':if(b===0||b===2)return b=2,c+a;break;case'0':case'0o':if(b===0||b===8)return b=8,c+a;break;case'0d':if(b===0||b===10)return b=10,c+a;break;case'0x':if(b===0||b===16)return b=16,c+a;break}return d}),g=parseInt(c.replace(/_(?!_)/g,''),b),isNaN(g)?0:g)},-1),b(t,'$to_proc',function g(){var k=g.$$p||c,j=this,b=c,h=c,e=c;return g.$$p=null,b=j.valueOf(),h=d.jsid(b),e=m(f,'proc',[],function l(m){var j=l.$$p||c,k,d,e,g;return l.$$p=null,k=i(arguments),d=k,d.length===0&&f.$raise(a('ArgumentError'),"no receiver given"),e=d[0],e==null&&(e=c),g=e[h],g?d=d.slice(1):(g=e.$method_missing,d[0]=b),typeof j=='function'&&(g.$$p=j),d.length===0?g.call(e):g.apply(e,d)},-1),e.$$source_location=c,e}),b(t,'$to_s',function(){var a=this;return a.toString()}),b(t,'$tr',function(q,s){var v=this,b,i,j,c,l,m,A,t,d,o,g,h,u,y,k,r,n,p,z,B,w,x;if(q=e(q,a('String'),'to_str').$to_s(),s=e(s,a('String'),'to_str').$to_s(),q.length==0||q===s)return v;t={},d=q.split(''),o=d.length,g=s.split(''),h=g.length,u=!1,y=null,d[0]==='^'&&d.length>1&&(u=!0,d.shift(),y=g[h-1],o-=1),k=[],r=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){n=[],p=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){B=h>0?g[h-1]:'';for(b=0;b1&&(u=!0,d.shift(),y=o[h-1],q-=1),n=[],g=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){k=[],B=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){C=h>0?o[h-1]:'';for(b=0;b0&&bd&&f.$raise(a('ArgumentError'),'invalid range "'+g+"-"+d+'" in string transliteration');for(h=g+1;h1,c=n(i?c.slice(1):c),i?g=m(g,c):d=m(d,c);if(d.length>0&&g.length>0){k='';for(b=0,h=d.length;b0?'['+a('Regexp').$escape(d)+']':g.length>0?'[^'+a('Regexp').$escape(g)+']':null}return b(t,'$instance_variables',function(){return[]}),u(t,'$_load',function(e){var a,b,c=this;return a=i(arguments),b=a,m(c,'new',q(b))},-1),b(t,'$unicode_normalize',function(b){var c=this;return b==null&&(b="nfc"),h(["nfc","nfd","nfkc","nfkd"]['$include?'](b))||f.$raise(a('ArgumentError'),"Invalid normalization form "+b),c.normalize(b.$upcase())},-1),b(t,'$unicode_normalized?',function(a){var b=this;return a==null&&(a="nfc"),b.$unicode_normalize(a)['$=='](b)},-1),b(t,'$unpack',function(b){return f.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")}),b(t,'$unpack1',function(b){return f.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")}),b(t,'$freeze',function(){var a=this;return typeof a=='string'?a:(G(a,"$$frozen",!0),a)}),b(t,'$-@',function(){var a=this;return typeof a=='string'?a:a.$$frozen?a:a.encoding.name=='UTF-8'&&a.internal_encoding.name=='UTF-8'?a.toString():a.$dup().$freeze()}),b(t,'$frozen?',function(){var a=this;return typeof a=='string'||a.$$frozen===!0}),j(t,"+@","dup"),j(t,"===","=="),j(t,"byteslice","[]"),j(t,"eql?","=="),j(t,"equal?","==="),j(t,"object_id","__id__"),j(t,"slice","[]"),j(t,"succ","next"),j(t,"to_str","to_s"),j(t,"to_sym","intern"),p.$pristine(t,"initialize")}('::',String,t),B(t[0],'Symbol',E('String'))},Opal.modules["corelib/enumerable"]=function(f){var c=f.truthy,q=f.coerce_to,k=f.yield1,o=f.yieldX,B=f.deny_frozen_access,u=f.module,b=f.send,h=f.slice,j=f.to_a,e=f.Opal,l=f.thrower,d=f.def,i=f.Kernel,C=f.return_val,p=f.rb_gt,z=f.rb_times,w=f.rb_lt,s=f.eqeq,n=f.rb_plus,r=f.rb_minus,v=f.rb_divide,t=f.rb_le,x=f.lambda,y=f.not,m=f.alias,A=[],a=f.nil,g=f.$$$;return f.add_stubs('each,public_send,destructure,to_enum,enumerator_size,new,yield,raise,slice_when,!,enum_for,flatten,map,to_proc,compact,to_a,warn,proc,==,nil?,respond_to?,coerce_to!,>,*,try_convert,<,+,-,ceil,/,size,select,__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,detect,find_all,collect_concat,collect,inject,entries'),function(E,F){var A=u(E,'Enumerable'),G=[A].concat(F),H=f.$r(G);function D(b){return b.length===0&&(b=[a]),b.length>1&&(b=[b]),b}return d(A,'$all?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))return a;d.$throw(!1,i.$$is_lambda)},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))return a;d.$throw(!1,g.$$is_lambda)},{$$arity:-1,$$ret:d}):b(g,'each',[],function g(i){var b,f;if(b=h(arguments),f=b,c(e.$destructure(f)))return a;d.$throw(!1,g.$$is_lambda)},{$$arity:-1,$$ret:d}),!0}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$any?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))d.$throw(!0,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))d.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):b(g,'each',[],function g(i){var b,f;if(b=h(arguments),f=b,c(e.$destructure(f)))d.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),!1}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$chunk',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'to_enum',["chunk"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b,c;d==null&&(d=a),b=a,c=[];function f(){c.length>0&&d.$yield(b,c)}h.$each.$$p=function(d){var g=k(e,d);g===a?(f(),c=[],b=a):(b===a||b===g?c.push(d):(f(),c=[d]),b=g)},h.$each(),f()},{$$s:c})}),d(A,'$chunk_while',function c(){var d=c.$$p||a,e=this;return c.$$p=null,d!==a||i.$raise(g('ArgumentError'),"no block given"),b(e,'slice_when',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.yieldX(d,[b,c])['$!']()})}),d(A,'$collect',function d(){var e=d.$$p||a,c=this,f;return d.$$p=null,!(e!==a)?b(c,'enum_for',["collect"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(f=[],c.$each.$$p=function(){var a=o(e,arguments);f.push(a)},c.$each(),f)}),d(A,'$collect_concat',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'enum_for',["collect_concat"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(c,'map',[],e.$to_proc()).$flatten(1)}),d(A,'$compact',function(){var a=this;return a.$to_a().$compact()}),d(A,'$count',function j(f){var d=j.$$p||a,k=this,g=a;return j.$$p=null,g=0,f!=null&&d!==a&&k.$warn("warning: given block not used"),c(f!=null)?d=b(i,'proc',[],function(d){var a,b;return a=h(arguments),b=a,e.$destructure(b)['$=='](f)},-1):c(d['$nil?']())&&(d=b(i,'proc',[],C(!0))),b(k,'each',[],function(i){var b,e;return b=h(arguments),e=b,c(o(d,e))?g++:a},-1),g},-1),d(A,'$cycle',function m(d){var j=m.$$p||a,l=this,h,f,i,n;if(m.$$p=null,d==null&&(d=a),!(j!==a))return b(l,'enum_for',["cycle",d],function b(){var f=b.$$s==null?this:b.$$s;return c(d['$nil?']())?c(f['$respond_to?']("size"))?g(g('Float'),'INFINITY'):a:(d=e['$coerce_to!'](d,g('Integer'),"to_int"),c(p(d,0)))?z(f.$enumerator_size(),d):0},{$$s:l});if(!c(d['$nil?']()))if(d=e['$coerce_to!'](d,g('Integer'),"to_int"),c(d<=0))return a;if(h=[],l.$each.$$p=function(){var a=e.$destructure(arguments),b=k(j,a);h.push(a)},l.$each(),h.length===0)return a;if(d===a)while(!0)for(f=0,i=h.length;f1){for(f=0,i=h.length;fd&&h.shift(),h.length==d&&k(l,h.slice(0,d))},f.$each(),f)}),d(A,'$each_entry',function f(l){var g=f.$$p||a,i,d,c=this;return f.$$p=null,i=h(arguments),d=i,!(g!==a)?b(c,'to_enum',["each_entry"].concat(j(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(c.$each.$$p=function(){var a=e.$destructure(arguments);k(g,a)},c.$each.apply(c,d),c)},-1),d(A,'$each_slice',function l(d){var j=l.$$p||a,h=this,f;return l.$$p=null,d=q(d,g('Integer'),'to_int'),c(d<=0)&&i.$raise(g('ArgumentError'),"invalid slice size"),!(j!==a)?b(h,'enum_for',["each_slice",d],function b(){var e=b.$$s==null?this:b.$$s;return c(e['$respond_to?']("size"))?v(e.$size(),d).$ceil():a},{$$s:h}):(f=[],h.$each.$$p=function(){var a=e.$destructure(arguments);f.push(a),f.length===d&&(k(j,f),f=[])},h.$each(),f.length>0&&k(j,f),h)}),d(A,'$each_with_index',function f(l){var g=f.$$p||a,i,d,c=this,k;return f.$$p=null,i=h(arguments),d=i,!(g!==a)?b(c,'enum_for',["each_with_index"].concat(j(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(k=0,c.$each.$$p=function(){var a=e.$destructure(arguments);g(a,k),k++},c.$each.apply(c,d),c)},-1),d(A,'$each_with_object',function f(d){var g=f.$$p||a,c=this;return f.$$p=null,!(g!==a)?b(c,'enum_for',["each_with_object",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(c.$each.$$p=function(){var a=e.$destructure(arguments);g(a,d)},c.$each(),d)}),d(A,'$entries',function(g){var b,c,a=this,d;return b=h(arguments),c=b,d=[],a.$each.$$p=function(){d.push(e.$destructure(arguments))},a.$each.apply(a,c),d},-1),d(A,'$filter_map',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'enum_for',["filter_map"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(b(c,'map',[],e.$to_proc()),'select',[],"itself".$to_proc())}),d(A,'$find_all',function f(){var g=f.$$p||a,d=this,h;return f.$$p=null,!(g!==a)?b(d,'enum_for',["find_all"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)&&h.push(a)},d.$each(),h)}),d(A,'$find_index',function n(k){var d,m,i,g;try{return d=l('return'),m=n.$$p||a,i=this,g=a,n.$$p=null,c(k===void 0&&m===a)?i.$enum_for("find_index"):(k!=null&&m!==a&&i.$warn("warning: given block not used"),g=0,c(k!=null)?b(i,'each',[],function c(f){var a,b;return a=h(arguments),b=a,s(e.$destructure(b),k)&&d.$throw(g,c.$$is_lambda),g+=1},{$$arity:-1,$$ret:d}):b(i,'each',[],function e(i){var a,b;return a=h(arguments),b=a,c(f.yieldX(m,j(b)))&&d.$throw(g,e.$$is_lambda),g+=1},{$$arity:-1,$$ret:d}),a)}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$first',function(f){var d,k,j,m;try{return d=l('return'),k=this,j=a,m=a,c(f===void 0)?b(k,'each',[],function c(b){b==null&&(b=a),d.$throw(b,c.$$is_lambda)},{$$ret:d}):(j=[],f=q(f,g('Integer'),'to_int'),c(f<0)&&i.$raise(g('ArgumentError'),"attempt to take negative size"),c(f==0))?[]:(m=0,b(k,'each',[],function i(k){var b,g;if(b=h(arguments),g=b,j.push(e.$destructure(g)),c(f<=++m))d.$throw(j,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),j)}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$grep',function e(i){var g=e.$$p||a,k=this,d=a;return e.$$p=null,d=[],b(k,'each',[],function(n){var k,e,l=a;return k=h(arguments),e=k,l=D(e),!c(b(i,'__send__',["==="].concat(j(l))))?a:(g!==a?(c(p(e.$length(),1))&&(e=[e]),e=f.yieldX(g,j(e))):c(t(e.$length(),1))&&(e=e['$[]'](0)),d.$push(e))},-1),d}),d(A,'$grep_v',function e(i){var g=e.$$p||a,k=this,d=a;return e.$$p=null,d=[],b(k,'each',[],function(n){var k,e,l=a;return k=h(arguments),e=k,l=D(e),c(b(i,'__send__',["==="].concat(j(l))))?a:(g!==a?(c(p(e.$length(),1))&&(e=[e]),e=f.yieldX(g,j(e))):c(t(e.$length(),1))&&(e=e['$[]'](0)),d.$push(e))},-1),d}),d(A,'$group_by',function h(){var i=h.$$p||a,d,f=this,g=a,j=a,l;return h.$$p=null,!(i!==a)?b(f,'enum_for',["group_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):(g=new Map,f.$each.$$p=function(){var a=e.$destructure(arguments),f=k(i,a);(c(j=g['$[]'](f))?j:(d=[f,[]],b(g,'[]=',d),d[d.length-1]))['$<<'](a)},f.$each(),l!==void 0)?l:g}),d(A,'$include?',function(f){var c,d;try{return c=l('return'),d=this,b(d,'each',[],function g(i){var b,d;if(b=h(arguments),d=b,s(e.$destructure(d),f))c.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:c}),!1}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}),d(A,'$inject',function h(c,d){var j=h.$$p||a,f=this,b;return h.$$p=null,b=c,j!==a&&d===void 0?f.$each.$$p=function(){var a=e.$destructure(arguments);if(b===void 0){b=a;return}a=o(j,[b,a]),b=a}:(d===void 0&&(g('Symbol')['$==='](c)||i.$raise(g('TypeError'),""+c.$inspect()+" is not a Symbol"),d=c,b=void 0),f.$each.$$p=function(){var a=e.$destructure(arguments);if(b===void 0){b=a;return}b=b.$__send__(d,a)}),f.$each(),b==void 0?a:b},-1),d(A,'$lazy',function(){var c=this;return b(g(g('Enumerator'),'Lazy'),'new',[c,c.$enumerator_size()],function(c,g){var d,e;return c==null&&(c=a),d=h(arguments,1),e=d,b(c,'yield',j(e))},-2)}),d(A,'$enumerator_size',function(){var b=this;return c(b['$respond_to?']("size"))?b.$size():a}),d(A,'$max',function k(d){var h=k.$$p||a,j=this,c,f;return k.$$p=null,d===void 0||d===a?(j.$each.$$p=function(){var b=e.$destructure(arguments);if(c===void 0){c=b;return}h!==a?f=o(h,[b,c]):f=b['$<=>'](c),f===a&&i.$raise(g('ArgumentError'),"comparison failed"),f>0&&(c=b)},j.$each(),c===void 0)?a:c:(d=q(d,g('Integer'),'to_int'),b(j,'sort',[],h.$to_proc()).$reverse().$first(d))},-1),d(A,'$max_by',function j(d){var h=j.$$p||a,f=this,g,i;return j.$$p=null,d==null&&(d=a),!c(h)?b(f,'enum_for',["max_by",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):c(d['$nil?']())?(f.$each.$$p=function(){var a=e.$destructure(arguments),b=k(h,a);if(g===void 0){g=a,i=b;return}b['$<=>'](i)>0&&(g=a,i=b)},f.$each(),g===void 0?a:g):b(f,'sort_by',[],h.$to_proc()).$reverse().$take(d)},-1),d(A,'$min',function l(h){var k=l.$$p||a,j=this,d;return l.$$p=null,h==null&&(h=a),!c(h['$nil?']())?k!==a?b(j,'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.yieldX(k,[b,c])}).$take(h):j.$sort().$take(h):(k!==a?j.$each.$$p=function(){var b=e.$destructure(arguments),c;if(d===void 0){d=b;return}c=k(b,d),c===a&&i.$raise(g('ArgumentError'),"comparison failed"),c<0&&(d=b)}:j.$each.$$p=function(){var a=e.$destructure(arguments);if(d===void 0){d=a;return}e.$compare(a,d)<0&&(d=a)},j.$each(),d===void 0?a:d)},-1),d(A,'$min_by',function j(d){var h=j.$$p||a,f=this,g,i;return j.$$p=null,d==null&&(d=a),!c(h)?b(f,'enum_for',["min_by",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):c(d['$nil?']())?(f.$each.$$p=function(){var a=e.$destructure(arguments),b=k(h,a);if(g===void 0){g=a,i=b;return}b['$<=>'](i)<0&&(g=a,i=b)},f.$each(),g===void 0?a:g):b(f,'sort_by',[],h.$to_proc()).$take(d)},-1),d(A,'$minmax',function j(){var d=j.$$p||a,k=this,l=a,f,h,m;return j.$$p=null,d=c(l=d)?l:b(i,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$<=>'](c)}),f=a,h=a,m=!0,k.$each.$$p=function(){var b=e.$destructure(arguments),c,j;m?(f=h=b,m=!1):(c=d.$call(f,b),c===a?i.$raise(g('ArgumentError'),"comparison failed"):c>0&&(f=b),j=d.$call(h,b),j===a?i.$raise(g('ArgumentError'),"comparison failed"):j<0&&(h=b))},k.$each(),[f,h]}),d(A,'$minmax_by',function l(){var h=l.$$p||a,d=this,i,j,g,f;return l.$$p=null,!c(h)?b(d,'enum_for',["minmax_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(i=a,j=a,d.$each.$$p=function(){var b=e.$destructure(arguments),a=k(h,b);(g===void 0||a['$<=>'](g)<0)&&(i=b,g=a),(f===void 0||a['$<=>'](f)>0)&&(j=b,f=a)},d.$each(),[i,j])}),d(A,'$none?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))d.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))d.$throw(!1,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):b(g,'each',[],function i(j){var b,f,g=a;if(b=h(arguments),f=b,g=e.$destructure(f),c(g))d.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),!0}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$one?',function m(o){var g,k,i,d;try{return g=l('return'),k=m.$$p||a,i=this,d=a,m.$$p=null,d=0,c(o!==void 0)?b(i,'each',[],function k(l){var e,f,i=a;if(e=h(arguments),f=e,i=D(f),c(b(o,'public_send',["==="].concat(j(i)))))if(d=n(d,1),c(p(d,1)))g.$throw(!1,k.$$is_lambda);else return a;else return a},{$$arity:-1,$$ret:g}):k!==a?b(i,'each',[],function i(l){var b,e;if(b=h(arguments),e=b,!c(f.yieldX(k,j(e))))return a;if(d=n(d,1),c(p(d,1)))g.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:g}):b(i,'each',[],function i(j){var b,f;if(b=h(arguments),f=b,!c(e.$destructure(f)))return a;if(d=n(d,1),c(p(d,1)))g.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:g}),d['$=='](1)}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}},-1),d(A,'$partition',function f(){var g=f.$$p||a,d=this,h,i,j;return f.$$p=null,!(g!==a)?b(d,'enum_for',["partition"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],i=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)?h.push(a):i.push(a)},d.$each(),[h,i])}),d(A,'$reject',function f(){var g=f.$$p||a,d=this,h;return f.$$p=null,!(g!==a)?b(d,'enum_for',["reject"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)||h.push(a)},d.$each(),h)}),d(A,'$reverse_each',function f(){var g=f.$$p||a,c=this,d,e;if(f.$$p=null,!(g!==a))return b(c,'enum_for',["reverse_each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c});d=[],c.$each.$$p=function(){d.push(arguments)},c.$each();for(e=d.length-1;e>=0;e--)o(g,d[e]);return d}),d(A,'$slice_before',function h(d){var f=h.$$p||a,j=this;return h.$$p=null,c(d===void 0&&f===a)&&i.$raise(g('ArgumentError'),"both pattern and block are given"),c(d!==void 0&&f!==a||arguments.length>1)&&i.$raise(g('ArgumentError'),"wrong number of arguments ("+arguments.length+" expected 1)"),b(g('Enumerator'),'new',[],function i(g){var h=i.$$s==null?this:i.$$s,b;g==null&&(g=a),b=[],f!==a?d===void 0?h.$each.$$p=function(){var a=e.$destructure(arguments),d=k(f,a);c(d)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)}:h.$each.$$p=function(){var a=e.$destructure(arguments),h=f(a,d.$dup());c(h)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)}:h.$each.$$p=function(){var a=e.$destructure(arguments),f=d['$==='](a);c(f)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)},h.$each(),b.length>0&&g['$<<'](b)},{$$s:j})},-1),d(A,'$slice_after',function h(d){var f=h.$$p||a,j=this;return h.$$p=null,c(d===void 0&&f===a)&&i.$raise(g('ArgumentError'),"both pattern and block are given"),c(d!==void 0&&f!==a||arguments.length>1)&&i.$raise(g('ArgumentError'),"wrong number of arguments ("+arguments.length+" expected 1)"),c(d!==void 0)&&(f=b(i,'proc',[],function(b){return b==null&&(b=a),d['$==='](b)})),b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b;d==null&&(d=a),h.$each.$$p=function(){var a=e.$destructure(arguments),g=k(f,a);b==null&&(b=[]),c(g)?(b.push(a),d.$yield(b),b=null):b.push(a)},h.$each(),b!=null&&d.$yield(b)},{$$s:j})},-1),d(A,'$slice_when',function d(){var f=d.$$p||a,h=this;return d.$$p=null,f!==a||i.$raise(g('ArgumentError'),"wrong number of arguments (0 for 1)"),b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b,i;d==null&&(d=a),b=a,i=a,h.$each_cons.$$p=function(){var h=e.$destructure(arguments),g=h[0],j=h[1],k=o(f,[g,j]);i=j,b===a&&(b=[]),c(k)?(b.push(g),d.$yield(b),b=[]):b.push(g)},h.$each_cons(2),b!==a&&(b.push(i),d.$yield(b))},{$$s:h})}),d(A,'$sort',function d(){var c=d.$$p||a,f=this,e=a;return d.$$p=null,e=f.$to_a(),c!==a||(c=x(function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$<=>'](c)})),b(e,'sort',[],c.$to_proc())}),d(A,'$sort_by',function g(){var h=g.$$p||a,c=this,d=a;return g.$$p=null,!(h!==a)?b(c,'enum_for',["sort_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(d=b(c,'map',[],function(){var b=a;return b=e.$destructure(arguments),[f.yield1(h,b),b]}),b(d,'sort!',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b[0]['$<=>'](c[0])}),b(d,'map!',[],function(b){return b==null&&(b=a),b[1]}))}),d(A,'$sum',function l(i){var m=l.$$p||a,o=this,d=a,k=a;return l.$$p=null,i==null&&(i=0),d=i,k=0,b(o,'each',[],function(q){var p,l,b=a,o=a,i=a;return p=h(arguments),l=p,b=m!==a?f.yieldX(m,j(l)):e.$destructure(l),y([g(g('Float'),'INFINITY'),g(g('Float'),'INFINITY')['$-@']()]['$include?'](b))&&c(b['$respond_to?']("-"))?(o=r(b,k),i=n(d,o),k=r(r(i,d),o),d=i):d=n(d,b)},-1),d},-1),d(A,'$take',function(a){var b=this;return b.$first(a)}),d(A,'$take_while',function k(){var d,i,j,g;try{return d=l('return'),i=k.$$p||a,j=this,g=a,k.$$p=null,!c(i)?j.$enum_for("take_while"):(g=[],b(j,'each',[],function l(m){var j,k,b=a;return j=h(arguments),k=j,b=e.$destructure(k),c(f.yield1(i,b))||d.$throw(g,l.$$is_lambda),g.push(b)},{$$arity:-1,$$ret:d}))}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}),d(A,'$uniq',function g(){var i=g.$$p||a,j=this,d=a;return g.$$p=null,d=new Map,b(j,'each',[],function(n){var l,m,g,j=a,k=a;return l=h(arguments),m=l,j=e.$destructure(m),k=i!==a?f.yield1(i,j):j,c(d['$key?'](k))?a:(g=[k,j],b(d,'[]=',g),g[g.length-1])},-1),d.$values()}),d(A,'$tally',function(d){var f=this,e=a;return d&&d!==a&&B(d),e=b(b(f,'group_by',[],"itself".$to_proc()),'transform_values',[],"count".$to_proc()),c(d)?(b(e,'each',[],function(c,f){var e;return c==null&&(c=a),f==null&&(f=a),(e=[c,n(d.$fetch(c,0),f)],b(d,'[]=',e),e[e.length-1])}),d):e},-1),d(A,'$to_h',function k(o){var l=k.$$p||a,m,d,c=this,n;return k.$$p=null,m=h(arguments),d=m,l!==a?b(b(c,'map',[],l.$to_proc()),'to_h',j(d)):(n=new Map,c.$each.$$p=function(){var b=e.$destructure(arguments),a=e['$coerce_to?'](b,g('Array'),"to_ary"),c,d;a.$$is_array||i.$raise(g('TypeError'),"wrong element type "+b.$class()+" (expected array)"),a.length!==2&&i.$raise(g('ArgumentError'),"element has wrong array length (expected 2, was "+a.$length()+")"),c=a[0],d=a[1],f.hash_put(n,c,d)},c.$each.apply(c,d),n)},-1),d(A,'$to_set',function e(l,k){var i=e.$$p||a,c,d,f,g=this;return e.$$p=null,c=h(arguments),c.length>0&&(d=c.shift()),d==null&&(d=H('Set')),f=c,b(d,'new',[g].concat(j(f)),i.$to_proc())},-1),d(A,'$zip',function c(g){var i=c.$$p||a,d,e,f=this;return c.$$p=null,d=h(arguments),e=d,b(f.$to_a(),'zip',j(e))},-1),m(A,"find","detect"),m(A,"filter","find_all"),m(A,"flat_map","collect_concat"),m(A,"map","collect"),m(A,"member?","include?"),m(A,"reduce","inject"),m(A,"select","find_all"),m(A,"to_a","entries")}('::',A)},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(c){var l=c.klass,b=c.truthy,t=c.to_a,p=c.eqeq,g=c.Kernel,d=c.def,f=c.rb_gt,k=c.rb_lt,o=c.rb_le,u=c.rb_ge,i=c.rb_plus,e=c.rb_minus,h=c.eqeqeq,q=c.not,m=c.rb_times,r=c.rb_divide,n=c.alias,s=[],a=c.nil,j=c.$$$;return c.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(v,w,x){var s=l(v,w,'Enumerator'),y=[s].concat(x);return function(A,B,y){var s=l(A,B,'ArithmeticSequence'),z=[s].concat(y),x=c.$r(z),w=s.$$prototype,v;return w.step_arg2=w.receiver_num=w.step_arg1=w.step=w.range=w.topfx=w.bypfx=w.creation_method=w.skipped_arg=a,c.prop(s.$$prototype,'$$is_arithmetic_seq',!0),v=1/0,d(s,'$initialize',function(f,h,i){var e,d=this,k=a;return i==null&&(i="step"),d.creation_method=i,b(f['$is_a?'](j('Array')))?(e=[].concat(t(f)),d.step_arg1=e[0]==null?a:e[0],d.step_arg2=e[1]==null?a:e[1],d.topfx=e[2]==null?a:e[2],d.bypfx=e[3]==null?a:e[3],e,d.receiver_num=h,d.step=1,d.range=b(d.step_arg2)?(d.step=d.step_arg2,c.Range.$new(d.receiver_num,d.step_arg1,!1)):b(d.step_arg1)?c.Range.$new(d.receiver_num,d.step_arg1,!1):c.Range.$new(d.receiver_num,a,!1)):(b(h)||(d.skipped_arg=!0),e=[f,b(k=h)?k:1],d.range=e[0],d.step=e[1],e),d.object=d,p(d.step,0)&&g.$raise(x('ArgumentError'),"step can't be 0"),b(d.step['$respond_to?']("to_int"))?a:g.$raise(x('ArgumentError'),""+("no implicit conversion of "+d.step.$class()+" ")+"into Integer")},-2),s.$attr_reader("step"),d(s,'$begin',function(){var a=this;return a.range.$begin()}),d(s,'$end',function(){var a=this;return a.range.$end()}),d(s,'$exclude_end?',function(){var a=this;return a.range['$exclude_end?']()}),d(s,'$_lesser_than_end?',function(d){var e=this,c=a,g=a;return c=b(g=e.$end())?g:v,b(f(e.$step(),0))?b(e['$exclude_end?']())?k(d,c):o(d,c):b(e['$exclude_end?']())?f(d,c):u(d,c)}),d(s,'$_greater_than_begin?',function(d){var e=this,c=a,g=a;return c=b(g=e.$begin())?g:v['$-@'](),b(f(e.$step(),0))?f(d,c):k(d,c)}),d(s,'$first',function(d){var g=this,c=a,h=a,j=a;if(c=b(h=g.$begin())?h:v['$-@'](),!b(d))return b(g['$_lesser_than_end?'](c))?c:a;for(j=[];b(b(h=g['$_lesser_than_end?'](c))?f(d,0):h);)j['$<<'](c),c=i(c,g.$step()),d=e(d,1);return j},-1),d(s,'$each',function j(){var k=j.$$p||a,d=this,f=a,e=a;if(j.$$p=null,!(k!==a))return d;for(h(a,f=d.$begin())?g.$raise(x('TypeError'),"nil can't be coerced into Integer"):a,e=b(f=d.$begin())?f:v['$-@']();b(d['$_lesser_than_end?'](e));)c.yield1(k,e),e=i(e,d.$step());return d}),d(s,'$last',function(k){var c=this,i=a,d=a,l=a;if(h(v,i=c.$end())||h(v['$-@'](),i)?g.$raise(j('FloatDomainError'),c.$end()):h(a,i)?g.$raise(j('RangeError'),"cannot get the last element of endless arithmetic sequence"):a,d=e(c.$end(),e(c.$end(),c.$begin())['$%'](c.$step())),b(c['$_lesser_than_end?'](d))||(d=e(d,c.$step())),!b(k))return b(c['$_greater_than_begin?'](d))?d:a;for(l=[];b(b(i=c['$_greater_than_begin?'](d))?f(k,0):i);)l['$<<'](d),d=e(d,c.$step()),k=e(k,1);return l.$reverse()},-1),d(s,'$size',function(){var c=this,g=a,d=a;return g=b(f(c.$step(),0))?1:-1,q(c['$_lesser_than_end?'](c.$begin()))?0:b([v['$-@'](),v]['$include?'](c.$step()))?1:b([m(v['$-@'](),g),a]['$include?'](c.$begin()))||b([m(v,g),a]['$include?'](c.$end()))?v:(d=e(c.$end(),e(c.$end(),c.$begin())['$%'](c.$step())),b(c['$_lesser_than_end?'](d))||(d=e(d,c.$step())),i(r(e(d,c.$begin()),c.$step()).$abs().$to_i(),1))}),d(s,'$==',function(c){var d=this,f=a,g=a,h=a,e=a;return b(f=b(g=b(h=b(e=d.$class()['$=='](c.$class()))?d.$begin()['$=='](c.$begin()):e)?d.$end()['$=='](c.$end()):h)?d.$step()['$=='](c.$step()):g)?d['$exclude_end?']()['$=='](c['$exclude_end?']()):f}),d(s,'$hash',function(){var a=this;return[x('ArithmeticSequence'),a.$begin(),a.$end(),a.$step(),a['$exclude_end?']()].$hash()}),d(s,'$inspect',function(){var c=this,d=a;return b(c.receiver_num)?(d=b(c.step_arg2)?"("+c.topfx+c.step_arg1.$inspect()+", "+c.bypfx+c.step_arg2.$inspect()+")":b(c.step_arg1)?"("+c.topfx+c.step_arg1.$inspect()+")":a,"("+c.receiver_num.$inspect()+"."+c.creation_method+d+")"):(d=b(c.skipped_arg)?a:"("+c.step+")","(("+c.range.$inspect()+")."+c.creation_method+d+")")}),n(s,"===","=="),n(s,"eql?","==")}(s,s,y)}('::',null,s)},Opal.modules["corelib/enumerator/chain"]=function(a){var j=a.deny_frozen_access,h=a.klass,e=a.slice,d=a.def,c=a.send,f=a.to_a,g=a.truthy,k=a.rb_plus,l=a.thrower,b=a.nil,i=a.$$$;return a.add_stubs('to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect'),function(m,n){var a=h(m,n,'Enumerator');return function(n,o){var a=h(n,o,'Chain'),m=a.$$prototype;return m.enums=m.iterated=b,d(a,'$initialize',function(f){var b,c,a=this;return b=e(arguments),c=b,j(a),a.enums=c,a.iterated=[],a.object=a},-1),d(a,'$each',function g(j){var h=g.$$p||b,i,d,a=this;return g.$$p=null,i=e(arguments),d=i,!(h!==b)?c(a,'to_enum',["each"].concat(f(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:a}):(c(a.enums,'each',[],function g(a){var e=g.$$s==null?this:g.$$s;return e.iterated==null&&(e.iterated=b),a==null&&(a=b),e.iterated['$<<'](a),c(a,'each',f(d),h.$to_proc())},{$$s:a}),a)},-1),d(a,'$size',function(n){var d,h,j,m,a;try{return d=l('return'),m=this,a=b,h=e(arguments),j=h,a=0,c(m.enums,'each',[],function l(h){var e=b;return h==null&&(h=b),e=c(h,'size',f(j)),g([b,i(i('Float'),'INFINITY')]['$include?'](e))&&d.$throw(e,l.$$is_lambda),a=k(a,e)},{$$ret:d}),a}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(a,'$rewind',function(){var a=this;return c(a.iterated,'reverse_each',[],function(a){return a==null&&(a=b),g(a['$respond_to?']("rewind"))?a.$rewind():b}),a.iterated=[],a}),d(a,'$inspect',function(){var a=this;return"#"})}(a,a)}('::',null)},Opal.modules["corelib/enumerator/generator"]=function(a){var g=a.deny_frozen_access,c=a.klass,j=a.truthy,k=a.Kernel,e=a.def,h=a.slice,i=a.send,f=[],b=a.nil,d=a.$$$;return a.add_stubs('include,raise,new,to_proc'),function(l,m,n){var o=c(l,m,'Enumerator'),f=[o].concat(n);return function(l,m,n){var f=c(l,m,'Generator'),o=[f].concat(n),p=a.$r(o),q=f.$$prototype;return q.block=b,f.$include(d('Enumerable')),e(f,'$initialize',function a(){var c=a.$$p||b,e=this;return a.$$p=null,g(e),j(c)||k.$raise(d('LocalJumpError'),"no block given"),e.block=c}),e(f,'$each',function d(k){var j=d.$$p||b,e,c,f=this,g=b;d.$$p=null,e=h(arguments),c=e,g=i(p('Yielder'),'new',[],j.$to_proc());try{c.unshift(g),a.yieldX(f.block,c)}catch(a){if(a&&a.$thrower_type=="breaker")return a.$v;throw a}return f},-1)}(f[0],null,f)}(f[0],null,f)},Opal.modules["corelib/enumerator/lazy"]=function(b){var d=b.truthy,q=b.coerce_to,p=b.yield1,j=b.yieldX,x=b.deny_frozen_access,m=b.klass,f=b.slice,o=b.send2,r=b.find_super,i=b.to_a,w=b.defs,h=b.Kernel,c=b.send,g=b.def,u=b.return_self,n=b.Opal,k=b.rb_lt,s=b.eqeqeq,t=b.rb_plus,l=b.alias,v=[],a=b.nil,e=b.$$$;return b.add_stubs('raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect,to_a,find_all,collect_concat,collect,enum_for'),function(y,z,A){var v=m(y,z,'Enumerator'),B=[v].concat(A);return function(z,A,B){var v=m(z,A,'Lazy'),C=[v].concat(B),y=b.$r(C),D=v.$$prototype;return D.enumerator=a,m(v,e('Exception'),'StopLazyError'),w(v,'$for',function b(h,k){var d,e,j=b.$$p||a,g=this,c=a;return b.$$p=null,d=f(arguments,1),e=d,c=o(g,r(g,'for',b,!1,!0),'for',[h].concat(i(e)),j),c.enumerator=h,c},-2),g(v,'$initialize',function g(l,k){var m=g.$$p||a,d=this;return g.$$p=null,k==null&&(k=a),x(d),m!==a||h.$raise(e('ArgumentError'),"tried to call lazy new without a block"),d.enumerator=l,o(d,r(d,'initialize',g,!1,!0),'initialize',[k],function(d,k){var e,g;d==null&&(d=a),e=f(arguments,1),g=e;try{return c(l,'each',i(g),function(e){var b,a;b=f(arguments),a=b,a.unshift(d),j(m,a)},-1)}catch(c){if(b.rescue(c,[y('StopLazyError')]))try{return a}finally{b.pop_exception(c)}else throw c}},-2)},-2),g(v,'$lazy',u),g(v,'$collect',function b(){var g=b.$$p||a,i=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy map without a block"),c(y('Lazy'),'new',[i,i.$enumerator_size()],function(b,i){var c,d,e;b==null&&(b=a),c=f(arguments,1),d=c,e=j(g,d),b.$yield(e)},-2)}),g(v,'$collect_concat',function b(){var g=b.$$p||a,i=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy map without a block"),c(y('Lazy'),'new',[i,a],function(d,l){var h,i,b,k;d==null&&(d=a),h=f(arguments,1),i=h,b=j(g,i),b['$respond_to?']("force")&&b['$respond_to?']("each")?c(b,'each',[],function(b){return b==null&&(b=a),d.$yield(b)}):(k=n.$try_convert(b,e('Array'),"to_ary"),k===a?d.$yield(b):c(b,'each',[],function(b){return b==null&&(b=a),d.$yield(b)}))},-2)}),g(v,'$drop',function(b){var l=this,g=a,m=a,j=a;return b=q(b,e('Integer'),'to_int'),d(k(b,0))&&h.$raise(e('ArgumentError'),"attempt to drop negative size"),g=l.$enumerator_size(),m=s(e('Integer'),g)?d(k(b,g))?b:g:g,j=0,c(y('Lazy'),'new',[l,m],function(e,m){var g,h;return e==null&&(e=a),g=f(arguments,1),h=g,d(k(j,b))?j=t(j,1):c(e,'yield',i(h))},-2)}),g(v,'$drop_while',function g(){var k=g.$$p||a,l=this,b=a;return g.$$p=null,d(k)||h.$raise(e('ArgumentError'),"tried to call lazy drop_while without a block"),b=!0,c(y('Lazy'),'new',[l,a],function(e,n){var h,g,l;if(e==null&&(e=a),h=f(arguments,1),g=h,d(b))l=j(k,g),d(l)||(b=!1,c(e,'yield',i(g)));else return c(e,'yield',i(g))},-2)}),g(v,'$enum_for',function e(l,k){var j=e.$$p||a,b,d,h,g=this;return e.$$p=null,b=f(arguments),b.length>0&&(d=b.shift()),d==null&&(d="each"),h=b,c(g.$class(),'for',[g,d].concat(i(h)),j.$to_proc())},-1),g(v,'$find_all',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy select without a block"),c(y('Lazy'),'new',[k,a],function(b,m){var h,e,k;b==null&&(b=a),h=f(arguments,1),e=h,k=j(g,e),d(k)&&c(b,'yield',i(e))},-2)}),g(v,'$grep',function e(g){var b=e.$$p||a,h=this;return e.$$p=null,d(b)?c(y('Lazy'),'new',[h,a],function(c,k){var i,j,e,h;c==null&&(c=a),i=f(arguments,1),j=i,e=n.$destructure(j),h=g['$==='](e),d(h)&&(h=p(b,e),c.$yield(p(b,e)))},-2):c(y('Lazy'),'new',[h,a],function(b,j){var c,e,h,i;b==null&&(b=a),c=f(arguments,1),e=c,h=n.$destructure(e),i=g['$==='](h),d(i)&&b.$yield(h)},-2)}),g(v,'$reject',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy reject without a block"),c(y('Lazy'),'new',[k,a],function(b,m){var h,e,k;b==null&&(b=a),h=f(arguments,1),e=h,k=j(g,e),d(k)||c(b,'yield',i(e))},-2)}),g(v,'$take',function(b){var l=this,g=a,m=a,j=a;return b=q(b,e('Integer'),'to_int'),d(k(b,0))&&h.$raise(e('ArgumentError'),"attempt to take negative size"),g=l.$enumerator_size(),m=s(e('Integer'),g)?d(k(b,g))?b:g:g,j=0,c(y('Lazy'),'new',[l,m],function(e,n){var g,l;return e==null&&(e=a),g=f(arguments,1),l=g,d(k(j,b))?(c(e,'yield',i(l)),j=t(j,1)):h.$raise(y('StopLazyError'))},-2)}),g(v,'$take_while',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy take_while without a block"),c(y('Lazy'),'new',[k,a],function(b,n){var k,e,l;b==null&&(b=a),k=f(arguments,1),e=k,l=j(g,e),d(l)?c(b,'yield',i(e)):h.$raise(y('StopLazyError'))},-2)}),g(v,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.enumerator.$inspect()+">"}),l(v,"force","to_a"),l(v,"filter","find_all"),l(v,"flat_map","collect_concat"),l(v,"map","collect"),l(v,"select","find_all"),l(v,"to_enum","enum_for")}(v,v,B)}('::',null,v)},Opal.modules["corelib/enumerator/yielder"]=function(a){var c=a.klass,b=a.def,d=a.slice,e=a.send,h=a.to_a,f=[],g=a.nil;return a.add_stubs('yield,proc'),function(f,i,j){var k=c(f,i,'Enumerator'),l=[k].concat(j);return function(i,j){var f=c(i,j,'Yielder'),k=f.$$prototype;return k.block=g,b(f,'$initialize',function a(){var c=a.$$p||g,b=this;return a.$$p=null,b.block=c,b}),b(f,'$yield',function(h){var c,e,f=this,b;if(c=d(arguments),e=c,b=a.yieldX(f.block,e),b&&b.$thrower_type=="break")throw b;return b},-1),b(f,'$<<',function(b){var a=this;return a.$yield(b),a}),b(f,'$to_proc',function(){var a=this;return e(a,'proc',[],function a(g){var b,c,f=a.$$s==null?this:a.$$s;return b=d(arguments),c=b,e(f,'yield',h(c))},{$$arity:-1,$$s:a})})}(l[0],null)}(f[0],null,f)},Opal.modules["corelib/enumerator"]=function(a){var g=a.slice,j=a.coerce_to,o=a.deny_frozen_access,v=a.klass,w=a.defs,c=a.truthy,e=a.send,r=a.not,d=a.def,h=a.rb_plus,i=a.to_a,m=a.Opal,n=a.send2,l=a.find_super,p=a.rb_ge,q=a.Kernel,k=a.rb_le,s=a.alias,t=a.top,u=[],b=a.nil,f=a.$$$;return a.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?,each_with_object,autoload'),t.$require("corelib/enumerable"),function(B,y,z){var t=v(B,y,'Enumerator'),A=[t].concat(z),x=a.$r(A),u=t.$$prototype;return u.size=u.args=u.object=u.method=u.values=u.cursor=b,t.$include(f('Enumerable')),t.$$prototype.$$is_enumerator=!0,w(t,'$for',function f(j,k,l){var i=f.$$p||b,d,c,e,h=this,a;return f.$$p=null,d=g(arguments,1),d.length>0&&(c=d.shift()),c==null&&(c="each"),e=d,a=h.$allocate(),a.object=j,a.size=i,a.method=c,a.args=e,a.cursor=0,a},-2),d(t,'$initialize',function d(l){var h=d.$$p||b,i,k,a=this;return d.$$p=null,i=g(arguments),k=i,o(a),a.cursor=0,c(h)?(a.object=e(x('Generator'),'new',[],h.$to_proc()),a.method="each",a.args=[],a.size=arguments[0]||b,c(a.size)&&r(a.size['$respond_to?']("call")))?a.size=j(a.size,f('Integer'),'to_int'):b:(a.object=arguments[0],a.method=arguments[1]||"each",a.args=g(arguments,2),a.size=b)},-1),d(t,'$each',function j(l){var f=j.$$p||b,k,d,a=this;return j.$$p=null,k=g(arguments),d=k,c(f['$nil?']())&&c(d['$empty?']())?a:(d=h(a.args,d),c(f['$nil?']()))?e(a.$class(),'new',[a.object,a.method].concat(i(d))):e(a.object,'__send__',[a.method].concat(i(d)),f.$to_proc())},-1),d(t,'$size',function(){var a=this;return c(a.size['$respond_to?']("call"))?e(a.size,'call',i(a.args)):a.size}),d(t,'$with_index',function g(a){var h=g.$$p||b,d=this,k,i;return g.$$p=null,a==null&&(a=0),a=c(a)?j(a,f('Integer'),'to_int'):0,!c(h)?e(d,'enum_for',["with_index",a],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:d}):(i=a,d.$each.$$p=function(){var a=m.$destructure(arguments),b=h(a,i);return i++,b},d.$each())},-1),d(t,'$each_with_index',function c(){var d=c.$$p||b,a=this;return c.$$p=null,!(d!==b)?e(a,'enum_for',["each_with_index"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:a}):(n(a,l(a,'each_with_index',c,!1,!0),'each_with_index',[],d),a.object)}),d(t,'$rewind',function(){var a=this;return a.cursor=0,a}),d(t,'$peek_values',function(){var a=this,d=b;return a.values=c(d=a.values)?d:e(a,'map',[],function(d){var a,b;return a=g(arguments),b=a,b},-1),c(p(a.cursor,a.values.$length()))&&q.$raise(f('StopIteration'),"iteration reached an end"),a.values['$[]'](a.cursor)}),d(t,'$peek',function(){var d=this,a=b;return a=d.$peek_values(),c(k(a.$length(),1))?a['$[]'](0):a}),d(t,'$next_values',function(){var a=this,c=b;return c=a.$peek_values(),a.cursor=h(a.cursor,1),c}),d(t,'$next',function(){var d=this,a=b;return a=d.$next_values(),c(k(a.$length(),1))?a['$[]'](0):a}),d(t,'$feed',function(c){var a=this;return a.$raise(x('NotImplementedError'),"Opal doesn't support Enumerator#feed")}),d(t,'$+',function(a){var b=this;return f(f('Enumerator'),'Chain').$new(b,a)}),d(t,'$inspect',function(){var a=this,d=b;return d="#<"+a.$class()+": "+a.object.$inspect()+":"+a.method,c(a.args['$any?']())&&(d=h(d,"("+a.args.$inspect()['$[]'](f('Range').$new(1,-2))+")")),h(d,">")}),s(t,"with_object","each_with_object"),t.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),t.$autoload("Chain","corelib/enumerator/chain"),t.$autoload("Generator","corelib/enumerator/generator"),t.$autoload("Lazy","corelib/enumerator/lazy"),t.$autoload("Yielder","corelib/enumerator/yielder")}('::',null,u)},Opal.modules["corelib/numeric"]=function(b){var s=b.klass,f=b.truthy,e=b.Kernel,a=b.def,A=b.to_ary,i=b.return_self,p=b.rb_minus,m=b.rb_times,k=b.rb_lt,y=b.eqeq,j=b.rb_divide,h=b.return_val,n=b.Opal,B=b.slice,r=b.extract_kwargs,q=b.ensure_kwargs,l=b.hash_get,o=b.not,t=b.send,u=b.rb_ge,v=b.rb_le,w=b.rb_plus,x=b.rb_gt,g=b.alias,z=b.top,d=b.nil,c=b.$$$;return b.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,>,angle,conj,imag,rect'),z.$require("corelib/comparable"),function(C,D){var z=s(C,D,'Numeric');return z.$include(c('Comparable')),a(z,'$coerce',function(a){var b=this;return f(a['$instance_of?'](b.$class()))?[a,b]:[e.$Float(a),e.$Float(b)]}),a(z,'$__coerced__',function(i,b){var a,g,j=this,h=d,k=d;if(f(b['$respond_to?']("coerce")))return g=b.$coerce(j),a=A(g),h=a[0]==null?d:a[0],k=a[1]==null?d:a[1],g,h.$__send__(i,k);switch(i.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return e.$raise(c('TypeError'),""+b.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return e.$raise(c('ArgumentError'),"comparison of "+j.$class()+" with "+b.$class()+" failed");default:return d}}),a(z,'$<=>',function(a){var b=this;return f(b['$equal?'](a))?0:d}),a(z,'$+@',i),a(z,'$-@',function(){var a=this;return p(0,a)}),a(z,'$%',function(a){var b=this;return p(b,m(a,b.$div(a)))}),a(z,'$abs',function(){var a=this;return f(k(a,0))?a['$-@']():a}),a(z,'$abs2',function(){var a=this;return m(a,a)}),a(z,'$angle',function(){var a=this;return f(k(a,0))?c(c('Math'),'PI'):0}),a(z,'$ceil',function(a){var b=this;return a==null&&(a=0),b.$to_f().$ceil(a)},-1),a(z,'$conj',i),a(z,'$denominator',function(){var a=this;return a.$to_r().$denominator()}),a(z,'$div',function(a){var b=this;return y(a,0)&&e.$raise(c('ZeroDivisionError'),"divided by o"),j(b,a).$floor()}),a(z,'$divmod',function(a){var b=this;return[b.$div(a),b['$%'](a)]}),a(z,'$fdiv',function(a){var b=this;return j(b.$to_f(),a)}),a(z,'$floor',function(a){var b=this;return a==null&&(a=0),b.$to_f().$floor(a)},-1),a(z,'$i',function(){var a=this;return e.$Complex(0,a)}),a(z,'$imag',h(0)),a(z,'$integer?',h(!1)),a(z,'$nonzero?',function(){var a=this;return f(a['$zero?']())?d:a}),a(z,'$numerator',function(){var a=this;return a.$to_r().$numerator()}),a(z,'$polar',function(){var a=this;return[a.$abs(),a.$arg()]}),a(z,'$quo',function(a){var b=this;return j(n['$coerce_to!'](b,c('Rational'),"to_r"),a)}),a(z,'$real',i),a(z,'$real?',h(!0)),a(z,'$rect',function(){var a=this;return[a,0]}),a(z,'$round',function(a){var b=this;return b.$to_f().$round(a)},-1),a(z,'$step',function E(K,L,J){var i=E.$$p||d,m,p,g,a,s,x,h=this,k=d,y,F,j,G,H,A,z;E.$$p=null,m=B(arguments),p=r(m),p=q(p),m.length>0&&(g=m.shift()),m.length>0&&(a=m.shift()),s=l(p,"to"),x=l(p,"by"),g!==void 0&&s!==void 0&&e.$raise(c('ArgumentError'),"to is given twice"),a!==void 0&&x!==void 0&&e.$raise(c('ArgumentError'),"step is given twice"),s!==void 0&&(g=s),x!==void 0&&(a=x),g===void 0&&(g=d);function C(){a===d&&e.$raise(c('TypeError'),"step must be numeric"),a!=null&&a['$=='](0)&&e.$raise(c('ArgumentError'),"step can't be 0"),(a===d||a==null)&&(a=1);var b=a['$<=>'](0);b===d&&e.$raise(c('ArgumentError'),"0 can't be coerced into "+a.$class()),(g===d||g==null)&&(g=b>0?c(c('Float'),'INFINITY'):c(c('Float'),'INFINITY')['$-@']()),n.$compare(h,g)}function D(){if(a>0&&h>g||a<0&&h.5&&(b=.5),e((g-h)/a+b)+1)}function I(){if(C(),a===0)return 1/0;if(a%1!==0)return D();if(a>0&&h>g||a<0&&h=g;j+=a)i(j);else for(;j<=g;j+=a)i(j);return h}if(G=h.$to_f().valueOf(),a=a.$to_f().valueOf(),g=g.$to_f().valueOf(),H=D(),isFinite(a))if(a===0)while(!0)i(G);else for(A=0;A=0?gz)&&(z=g),i(z);else H!==0&&i(G);return h}for(k=h;f(y?u(k,g):v(k,g));)b.yield1(i,k),k=w(k,a)},-1),a(z,'$to_c',function(){var a=this;return e.$Complex(a,0)}),a(z,'$to_int',function(){var a=this;return a.$to_i()}),a(z,'$truncate',function(a){var b=this;return a==null&&(a=0),b.$to_f().$truncate(a)},-1),a(z,'$zero?',function(){var a=this;return a['$=='](0)}),a(z,'$positive?',function(){var a=this;return x(a,0)}),a(z,'$negative?',function(){var a=this;return k(a,0)}),a(z,'$dup',i),a(z,'$clone',function(a){var b,c=this;return a=q(a),b=l(a,"freeze"),b==null&&(b=!0),c},-1),a(z,'$finite?',h(!0)),a(z,'$infinite?',h(d)),g(z,"arg","angle"),g(z,"conjugate","conj"),g(z,"imaginary","imag"),g(z,"magnitude","abs"),g(z,"modulo","%"),g(z,"phase","arg"),g(z,"rectangular","rect")}('::',null)},Opal.modules["corelib/array"]=function(e){var d=e.truthy,M=e.falsy,l=e.yield1,p=e.hash_get,n=e.hash_put,J=e.hash_delete,g=e.coerce_to,q=e.respond_to,i=e.deny_frozen_access,D=e.freeze,K=e.opal32_init,o=e.opal32_add,A=e.klass,j=e.slice,v=e.defs,f=e.Kernel,b=e.def,k=e.Opal,t=e.eqeqeq,r=e.send2,s=e.find_super,h=e.send,x=e.rb_gt,C=e.rb_times,z=e.eqeq,B=e.rb_minus,N=e.to_a,y=e.to_ary,u=e.gvars,E=e.rb_ge,F=e.assign_ivar,G=e.rb_lt,H=e.return_self,I=e.neqeq,m=e.alias,w=e.top,L=[],a=e.nil,c=e.$$$;return e.add_stubs('require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,join,to_str,===,<=>,==,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,frozen?,__id__,sort_by,&,to_s,new,item,max,min,!,>=,**,delete_if,rotate,rand,at,keep_if,shuffle!,<,sort,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,push,select,select!,collect,collect!,unshift,pristine,singleton_class'),w.$require("corelib/enumerable"),w.$require("corelib/numeric"),function(V,aa,$){var w=A(V,aa,'Array'),_=[w].concat($),P=e.$r(_),O,R;w.$include(c('Enumerable')),e.prop(w.$$prototype,'$$is_array',!0);function X(a){for(var c=a[0],b=1,d=a.length;b6&&c<32767)a.push.apply(a,b);else for(d=0;dc(c('Integer'),'MAX')&&f.$raise(c('ArgumentError'),"array size too big"),arguments.length>2&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..2)"),arguments.length===0)return b.length>0&&b.splice(0,b.length),b;if(arguments.length===1){if(d.$$is_array)return b.$replace(d.$to_a()),b;if(d['$respond_to?']("to_ary"))return b.$replace(d.$to_ary()),b}if(d=g(d,c('Integer'),'to_int'),d<0&&f.$raise(c('ArgumentError'),"negative array size"),b.splice(0,b.length),k===a)for(e=0;e',function(b){var e=this,h,f,g;if(t(c('Array'),b))b=b.$to_a();else if(d(b['$respond_to?']("to_ary")))b=b.$to_ary().$to_a();else return a;if(e===b)return 0;h=Math.min(e.length,b.length);for(f=0;f'](b[f]),g!==0)return g;return e.length['$<=>'](b.length)}),b(w,'$==',function(c){var d=this,a={};function b(c,d){var f,h,e,g;if(c===d)return!0;if(!d.$$is_array)return!!q(d,'$to_ary')&&d['$=='](c);if(c.$$constructor!==Array&&(c=c.$to_a()),d.$$constructor!==Array&&(d=d.$to_a()),c.length!==d.length)return!1;a[c.$object_id()]=!0;for(f=0,h=c.length;ff)return a;if(d<0)if(d+=f,d<0)return[];return(!i||b.end===a)&&(d+=1),j=h.slice(c,d),j}function Y(d,a){var b,e=[],c=0,f;for(a.step<0?(f={begin:a.range.end,end:a.range.begin,excl:!1,excl_rev:a.range.excl},b=S(d,f).$reverse()):b=S(d,a.range);c=f||b<0?a:d[b]:(c=g(c,e.Integer,'to_int'),c<0||b>f||b<0)?a:(h=d.slice(b,b+c),h)}b(w,'$[]',function(a,c){var b=this;return a.$$is_range?S(b,a):a.$$is_arithmetic_seq?Y(b,a):Z(b,a,c)},-2),b(w,'$[]=',function(b,d,p){var h=this,j=a,m=a,l,n,r,k,o,q;if(i(h),j=a,n=h.length,b.$$is_range){if(d.$$is_array?j=d.$to_a():d['$respond_to?']("to_ary")?j=d.$to_ary().$to_a():j=[d],r=b.excl,k=b.begin===a?0:g(b.begin,e.Integer,'to_int'),o=b.end===a?-1:g(b.end,e.Integer,'to_int'),k<0&&(k+=n,k<0&&f.$raise(c('RangeError'),""+b.$inspect()+" out of range")),o<0&&(o+=n),(!r||b.end===a)&&(o+=1),k>n)for(l=n;ln)for(l=n;l=d.length?a:d[b]}),b(w,'$bsearch_index',function j(){var m=j.$$p||a,i=this,g,h,d,k,b,e,n;if(j.$$p=null,!(m!==a))return i.$enum_for("bsearch_index");for(g=0,h=i.length,d,k,b,e=!1,n=a;g0){for(f=0,g=e.length;f0&&b>a?Q(b-1,a-1)+Q(b-1,a):0}b(w,'$combination',function n(q){var j=n.$$p||a,f=this,d=a,i,o,g,l,b,m,p;if(n.$$p=null,d=k['$coerce_to!'](q,c('Integer'),"to_int"),!(j!==a))return h(f,'enum_for',["combination",d],function a(){var b=a.$$s==null?this:a.$$s;return Q(b.length,d)},{$$s:f});if(d===0)e.yield1(j,[]);else if(d===1)for(i=0,o=f.length;i=0&&d=0&&i(b,0,[],d),d}),b(w,'$compact',function(){for(var c=this,d=[],b=0,f=c.length,e;b=d.length?a:(e=d[b],d.splice(b,1),e)}),b(w,'$delete_if',function c(){var d=c.$$p||a,b=this;return c.$$p=null,!(d!==a)?h(b,'enum_for',["delete_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(i(b),U(b,M,d),b)}),b(w,'$difference',function(f){var b,c,d=this;return b=j(arguments),c=b,h(c,'reduce',[d.$to_a().$dup()],function(b,c){return b==null&&(b=a),c==null&&(c=a),B(b,c)})},-1),b(w,'$dig',function(i,l){var g,e,k=this,b=a;return g=j(arguments,1),e=g,b=k['$[]'](i),b===a||e.length===0?b:(d(b['$respond_to?']("dig"))||f.$raise(c('TypeError'),""+b.$class()+" does not have #dig method"),h(b,'dig',N(e)))},-2),b(w,'$drop',function(a){var b=this;return a=g(a,c('Integer'),'to_int'),a<0&&f.$raise(c('ArgumentError')),b.slice(a)}),b(w,'$dup',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.$$class===e.Array&&b.$$class.$allocate.$$pristine&&b.$copy_instance_variables.$$pristine&&b.$initialize_dup.$$pristine?b.slice(0):r(b,s(b,'dup',c,!1,!0),'dup',[],d)}),b(w,'$each',function d(){var e=d.$$p||a,b=this,c;if(d.$$p=null,!(e!==a))return h(b,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b});for(c=0;c=0&&b2)&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+l.$length()+" for 0..2)"),n=l,h=y(n),k=h[0]==null?a:h[0],o=h[1]==null?a:h[1],n):(d(l.length==0)?f.$raise(c('ArgumentError'),"wrong number of arguments (0 for 1..3)"):d(l.length>3)&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+l.$length()+" for 1..3)"),n=l,h=y(n),s=h[0]==null?a:h[0],k=h[1]==null?a:h[1],o=h[2]==null?a:h[2],n),t(c('Range'),k)){if(d(o)&&f.$raise(c('TypeError'),"length invalid with range"),b=k.begin===a?0:g(k.begin,c('Integer'),'to_int'),d(b<0)&&(b+=this.length),d(b<0)&&f.$raise(c('RangeError'),""+k.$inspect()+" out of range"),e=k.end===a?-1:g(k.end,c('Integer'),'to_int'),d(e<0)&&(e+=this.length),d(k['$exclude_end?']())||(e+=1),d(e<=b))return m}else if(d(k))if(b=g(k,c('Integer'),'to_int'),d(b<0)&&(b+=this.length),d(b<0)&&(b=0),d(o)){if(e=g(o,c('Integer'),'to_int'),d(e==0))return m;e+=b}else e=this.length;else b=0,e=this.length;if(d(b>this.length))for(p=this.length;pthis.length)&&(this.length=e),d(q))for(v=this.length;b0){if(b<0&&(b+=d.length+1,b<0&&f.$raise(c('IndexError'),""+b+" is out of bounds")),b>d.length)for(h=d.length;hb.length&&(d=b.length),b.slice(b.length-d,b.length))},-1),b(w,'$length',function(){var a=this;return a.length}),b(w,'$max',function b(c){var d=b.$$p||a,e=this;return b.$$p=null,h(e.$each(),'max',[c],d.$to_proc())},-1),b(w,'$min',function b(){var c=b.$$p||a,d=this;return b.$$p=null,h(d.$each(),'min',[],c.$to_proc())});function ab(b,a){for(var c=a>=0?1:0;a;)c*=b,b--,a--;return c}return b(w,'$permutation',function o(b){var f=o.$$p||a,d=this,j=a,k=a,i,p,m,n;if(o.$$p=null,!(f!==a))return h(d,'enum_for',["permutation",b],function a(){var c=a.$$s==null?this:a.$$s;return ab(c.length,b===void 0?c.length:b)},{$$s:d});if(b===void 0?b=d.length:b=g(b,c('Integer'),'to_int'),b<0||d.lengthb.length)?b.splice(0,b.length):b.splice(b.length-e,b.length)},-1),b(w,'$product',function q(v){var t=q.$$p||a,s,o,p=this,l,d,i,r,k,b,h,n,m,u;q.$$p=null,s=j(arguments),o=s,l=t!==a?null:[],d=o.length+1,i=new Array(d),r=new Array(d),k=new Array(d),u=1,k[0]=p;for(b=1;b2147483647&&f.$raise(c('RangeError'),"too big to product"),r[b]=m,i[b]=0}outer_loop:for(;;){n=[];for(b=0;b0&&a.splice(0,a.length),T(a,b),a}),b(w,'$reverse',function(){var a=this;return a.slice(0).reverse()}),b(w,'$reverse!',function(){var a=this;return i(a),a.reverse()}),b(w,'$reverse_each',function d(){var e=d.$$p||a,b=this,c;if(d.$$p=null,!(e!==a))return h(b,'enum_for',["reverse_each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b});for(c=b.length-1;c>=0;c--)l(e,b[c]);return b}),b(w,'$rindex',function g(d){var e=g.$$p||a,c=this,b,f;if(g.$$p=null,d!=null&&e!==a&&c.$warn("warning: given block not used"),d!=null){for(b=c.length-1;b>=0;b--){if(b>=c.length)break;if(c[b]['$=='](d))return b}}else if(e!==a){for(b=c.length-1;b>=0;b--){if(b>=c.length)break;if(f=e(c[b]),f!==!1&&f!==a)return b}}else if(d==null)return c.$enum_for("rindex");return a},-1),b(w,'$rotate',function(a){var b=this,d,e,h,f;return a==null&&(a=1),a=g(a,c('Integer'),'to_int'),b.length===1?b.slice():b.length===0?[]:(d=b.slice(),e=a%d.length,h=d.slice(e),f=d.slice(0,e),h.concat(f))},-1),b(w,'$rotate!',function(d){var b=this,e=a;return d==null&&(d=1),i(b),b.length===0||b.length===1?b:(d=g(d,c('Integer'),'to_int'),e=b.$rotate(d),b.$replace(e))},-1),function(h,i){var e=A(h,i,'SampleRandom'),j=e.$$prototype;return j.rng=a,b(e,'$initialize',F("rng")),b(e,'$rand',function(e){var h=this,b=a;return b=g(h.rng.$rand(e),c('Integer'),'to_int'),d(b<0)&&f.$raise(c('RangeError'),"random value must be >= 0"),d(be.length&&(b=e.length),b){case 0:return[];break;case 1:return[e[i.$rand(e.length)]];break;case 2:return j=i.$rand(e.length),l=i.$rand(e.length-1),j<=l&&l++,[e[j],e[l]];break;default:if(e.length/b>3){for(o=!1,q=0,h=P('Array').$new(b),j=1,h[0]=i.$rand(e.length);j100){o=!0;break}p=i.$rand(e.length)}if(o)break;l++}if(o)break;h[j]=p,j++}if(!o){for(j=0;j=g&&f.$raise(c('RangeError'),"random number too big "+e)):e=d.$rand(g),j=d[--g],d[g]=d[e],d[e]=j;return d},-1),b(w,'$slice!',function(m,j){var b=this,l=a,h=a,k=a,f=a,e=a,n,p;if(i(b),l=a,d(j===void 0))if(t(c('Range'),m))h=m,l=b['$[]'](h),k=h.begin===a?0:g(h.begin,c('Integer'),'to_int'),f=h.end===a?-1:g(h.end,c('Integer'),'to_int'),k<0&&(k+=b.length),f<0?f+=b.length:f>=b.length&&(f=b.length-1,h.excl&&(f+=1)),n=f-k,h.excl&&h.end!==a?f-=1:n+=1,k=0&&f=0&&n>0&&b.splice(k,n);else{if(e=g(m,c('Integer'),'to_int'),e<0&&(e+=b.length),e<0||e>=b.length)return a;l=b[e],e===0?b.shift():b.splice(e,1)}else{if(e=g(m,c('Integer'),'to_int'),j=g(j,c('Integer'),'to_int'),j<0)return a;p=e+j,l=b['$[]'](e,j),e<0&&(e+=b.length),e+j>b.length&&(j=b.length-e),e=0&&b.splice(e,j)}return l},-2),b(w,'$sort',function g(){var b=g.$$p||a,e=this;return g.$$p=null,!d(e.length>1)?e:(b===a&&(b=function(a,b){return a['$<=>'](b)}),e.slice().sort(function(e,g){var d=b(e,g);return d===a&&f.$raise(c('ArgumentError'),"comparison of "+e.$inspect()+" with "+g.$inspect()+" failed"),x(d,0)?1:G(d,0)?-1:0}))}),b(w,'$sort!',function e(){var f=e.$$p||a,b=this,c,d,g;e.$$p=null,i(b),f!==a?c=h(b.slice(),'sort',[],f.$to_proc()):c=b.slice().$sort(),b.length=0;for(d=0,g=c.length;d=0;b--)c.splice(d[b],1);return d.length===0?a:c}),b(w,'$unshift',function(m){var h,f,a=this,g,b,k,e,c,d;if(h=j(arguments),f=h,i(a),g=a.length,b=f.length,b==0)return a;k=g-b;for(e=0;e=0;)a[c]=a[c-b],c--;for(d=0;d=,>,==,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,map,to_proc,flatten,frozen?,eql?,default,default_proc,default_proc=,default=,to_h,proc,!,select,select!,has_key?,indexes,index,length,[]=,has_value?'),z.$require("corelib/enumerable"),function(H,I,F){var z=C(H,I,'Hash'),G=[z].concat(F),E=c.$r(G),A,D;return z.$include(f('Enumerable')),z.$$prototype.$$is_hash=!0,s(z,'$[]',function(l){var i,c,h=this,d,g,b,e;if(i=m(arguments),c=i,g=c.length,g===1){if(d=k['$coerce_to?'](c['$[]'](0),f('Hash'),"to_hash"),d!==a)return h.$allocate()['$merge!'](d);c=k['$coerce_to?'](c['$[]'](0),f('Array'),"to_ary"),c===a&&n.$raise(f('ArgumentError'),"odd number of arguments for Hash"),g=c.length,d=h.$allocate();for(e=0;e=',function(b){var d=this,c=a;return!(b=k['$coerce_to!'](b,f('Hash'),"to_hash"),d.size',function(a){var b=this;return!(a=k['$coerce_to!'](a,f('Hash'),"to_hash"),b.size<=a.size)&&u(b,a)}),b(z,'$<',function(a){var b=this;return a=k['$coerce_to!'](a,f('Hash'),"to_hash"),w(a,b)}),b(z,'$<=',function(a){var b=this;return a=k['$coerce_to!'](a,f('Hash'),"to_hash"),u(a,b)}),b(z,'$[]',function(a){var b=this,c=l(b,a);return c!==void 0?c:b.$default(a)}),b(z,'$[]=',function(c,a){var b=this;return g(b),i(b,c,a),a}),b(z,'$assoc',function(b){var c=this;return d(c,a,function(c,d){return c['$=='](b)?[!0,[c,d]]:[!1,a]})}),b(z,'$clear',function(){var a=this;return g(a),a.clear(),a.$$keys&&a.$$keys.clear(),a}),b(z,'$clone',function(){var a=this,b=a.$class().$new();return t(a,b),a["$frozen?"]()?b.$freeze():b}),b(z,'$compact',function(){var c=this,b=new Map;return d(c,b,function(d,c){return c!==a&&i(b,d,c),[!1,b]})}),b(z,'$compact!',function(){var b=this,c;return g(b),c=a,d(b,c,function(d,e){return e===a&&(o(b,d),c=b),[!1,c]})}),b(z,'$compare_by_identity',function(){var a=this;return g(a),a.$$by_identity||(a.$$by_identity=!0,a.size!==0&&c.hash_rehash(a)),a}),b(z,'$compare_by_identity?',function(){var a=this;return a.$$by_identity===!0}),b(z,'$default',function(c){var b=this;return c!==void 0&&b.$$proc!==a&&b.$$proc!==void 0?b.$$proc.$call(b,c):b.$$none===void 0?a:b.$$none},-1),b(z,'$default=',function(c){var b=this;return g(b),b.$$proc=a,b.$$none=c,c}),b(z,'$default_proc',function(){var b=this;return b.$$proc!==void 0?b.$$proc:a}),b(z,'$default_proc=',function(d){var c=this,b;return g(c),b=d,b!==a&&(b=k['$coerce_to!'](b,f('Proc'),"to_proc"),b['$lambda?']()&&b.$arity().$abs()!==2&&n.$raise(f('TypeError'),"default_proc takes two arguments")),c.$$none=a,c.$$proc=b,d}),b(z,'$delete',function b(d){var e=b.$$p||a,f=this,h;return b.$$p=null,g(f),h=o(f,d),h!==void 0?h:e!==a?c.yield1(e,d):a}),b(z,'$delete_if',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["delete_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(g(b),d(b,b,function(c,e){var d=f(c,e);return d!==!1&&d!==a&&o(b,c),[!1,b]}))}),b(z,'$dig',function(g,i){var d,c,h=this,b=a;return d=m(arguments,1),c=d,b=h['$[]'](g),b===a||c.length===0?b:(j(b['$respond_to?']("dig"))||n.$raise(f('TypeError'),""+b.$class()+" does not have #dig method"),e(b,'dig',r(c)))},-2),b(z,'$dup',function(){var a=this;return t(a,a.$class().$new())}),b(z,'$each',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(a,c){return B(f,[a,c]),[!1,b]})}),b(z,'$each_key',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each_key"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(a,c){return f(a),[!1,b]})}),b(z,'$each_value',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each_value"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(c,a){return f(a),[!1,b]})}),b(z,'$empty?',function(){var a=this;return a.size===0}),b(z,'$except',function(f){var a,b,c=this;return a=m(arguments),b=a,e(c.$dup(),'except!',r(b))},-1),b(z,'$except!',function(g){var b,c,d=this;return b=m(arguments),c=b,e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$delete(b)},{$$s:d}),d},-1),b(z,'$fetch',function c(b,d){var e=c.$$p||a,g=this,h;return c.$$p=null,h=l(g,b),h!==void 0?h:e!==a?e(b):d!==void 0?d:n.$raise(f('KeyError').$new("key not found: "+b.$inspect(),new Map([["key",b],["receiver",g]])))},-2),b(z,'$fetch_values',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=m(arguments),d=c,e(d,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(d,'fetch',[b],f.$to_proc())},{$$s:g})},-1),b(z,'$flatten',function(b){var c=this,a;return b==null&&(b=1),b=k['$coerce_to!'](b,f('Integer'),"to_int"),a=[],d(c,a,function(d,c){return a.push(d),c.$$is_array?b===1?(a.push(c),[!1,a]):(a=a.concat(c.$flatten(b-2)),[!1,a]):(a.push(c),[!1,a])})},-1),b(z,'$freeze',function(){var a=this;return j(a['$frozen?']())?a:y(a)}),b(z,'$has_key?',function(a){var b=this;return l(b,a)!==void 0}),b(z,'$has_value?',function(a){var b=this;return d(b,!1,function(c,b){return b['$=='](a)?[!0,!0]:[!1,!1]})}),b(z,'$hash',function(){var e=this,g=A===void 0,j=e.$object_id(),a=v(),i=e.size,c=new Int32Array(i),b,h,f;if(a=p(a,4),a=p(a,i),g)A=Object.create(null);else if(A[j])return p(a,16843009);try{for(h in A)if(f=A[h],e['$eql?'](f))return p(a,16843009);A[j]=e,b=0,d(e,!1,function(a,d){return c[b]=[1883326802,a,d].$hash(),b++,[!1,!1]}),c=c.sort();for(b=0;b'+b),[!1,!1]}),'{'+f.join(', ')+'}');return a}finally{c&&(D=void 0)}}()}),b(z,'$invert',function(){var b=this,a=new Map;return d(b,a,function(b,c){return i(a,c,b),[!1,a]})}),b(z,'$keep_if',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["keep_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(g(b),d(b,b,function(c,e){var d=f(c,e);return(d===!1||d===a)&&o(b,c),[!1,b]}))}),b(z,'$keys',function(){var a=this;return Array.from(a.keys())}),b(z,'$length',function(){var a=this;return a.size}),b(z,'$merge',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=m(arguments),d=c,e(g.$dup(),'merge!',r(d),f.$to_proc())},-1),b(z,'$merge!',function n(p){var o=n.$$p||a,j,h,b=this,c,q,e;n.$$p=null,j=m(arguments),h=j,g(b);for(c=0;c,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,angle,to_s,is_a?,abs,next,coerce_to?'),B.$require("corelib/numeric"),function(G,I,J){var j=t(G,I,'Number'),K=[j].concat(J),w,H;h.$bridge(Number,j),d.prop(j.$$prototype,'$$is_number',!0),j.$$is_number_class=!0,w=new Map,function(c,g){return b(c,'$allocate',function(){var b=this;return e.$raise(a('TypeError'),"allocator undefined for "+b.$name())}),d.udef(c,'$new'),f}(d.get_singleton_class(j),K),b(j,'$coerce',function(b){var c=this;if(b===f)e.$raise(a('TypeError'),"can't convert "+b.$class()+" into Float");else if(b.$$is_string)return[e.$Float(b),c];else if(b['$respond_to?']("to_f"))return[h['$coerce_to!'](b,a('Float'),"to_f"),c];else if(b.$$is_number)return[b,c];else e.$raise(a('TypeError'),"can't convert "+b.$class()+" into Float")}),b(j,'$__id__',function(){var a=this,b;return a|0===a?a*2+1:w.has(a)?w.get(a):(b=d.uid(),w.set(a,b),b)}),b(j,'$hash',function(){var a=this;return a|0===a?a.$__id__():a.toString().$hash()}),b(j,'$+',function(a){var b=this;return a.$$is_number?b+a:b.$__coerced__("+",a)}),b(j,'$-',function(a){var b=this;return a.$$is_number?b-a:b.$__coerced__("-",a)}),b(j,'$*',function(a){var b=this;return a.$$is_number?b*a:b.$__coerced__("*",a)}),b(j,'$/',function(a){var b=this;return a.$$is_number?b/a:b.$__coerced__("/",a)}),b(j,'$%',function(b){var c=this;if(b.$$is_number){if(b==-(1/0))return b;if(b==0)e.$raise(a('ZeroDivisionError'),"divided by 0");else return b<0||c<0?(c%b+b)%b:c%b}else return c.$__coerced__("%",b)}),b(j,'$&',function(a){var b=this;return a.$$is_number?b&a:b.$__coerced__("&",a)}),b(j,'$|',function(a){var b=this;return a.$$is_number?b|a:b.$__coerced__("|",a)}),b(j,'$^',function(a){var b=this;return a.$$is_number?b^a:b.$__coerced__("^",a)}),b(j,'$<',function(a){var b=this;return a.$$is_number?b',function(a){var b=this;return a.$$is_number?b>a:b.$__coerced__(">",a)}),b(j,'$>=',function(a){var b=this;return a.$$is_number?b>=a:b.$__coerced__(">=",a)}),H=function(b,a){return a.$$is_number?isNaN(b)||isNaN(a)?f:b>a?1:b",a)},b(j,'$<=>',function(b){var c=this;try{return H(c,b)}catch(b){if(d.rescue(b,[a('ArgumentError')]))try{return f}finally{d.pop_exception(b)}else throw b}}),b(j,'$<<',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b>0?c<>-b}),b(j,'$>>',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b>0?c>>b:c<<-b}),b(j,'$[]',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b<0?0:b>=32?c<0?1:0:c>>b&1}),b(j,'$+@',function(){var a=this;return+a}),b(j,'$-@',function(){var a=this;return-a}),b(j,'$~',function(){var a=this;return~a}),b(j,'$**',function(b){var d=this;return g(a('Integer'),b)?A(a('Integer')['$==='](d))||c(p(b,0))?Math.pow(d,b):a('Rational').$new(d,1)['$**'](b):c(m(d,0))&&(g(a('Float'),b)||g(a('Rational'),b))?a('Complex').$new(d,0)['$**'](b.$to_f()):c(b.$$is_number!=null)?Math.pow(d,b):d.$__coerced__("**",b)}),b(j,'$==',function(a){var b=this;return a.$$is_number?b.valueOf()===a.valueOf():!!a['$respond_to?']("==")&&a['$=='](b)}),i(j,"===","=="),b(j,'$abs',function(){var a=this;return Math.abs(a)}),b(j,'$abs2',function(){var a=this;return Math.abs(a*a)}),b(j,'$allbits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)==b}),b(j,'$anybits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)!==0}),b(j,'$angle',function(){var a=this;return c(a['$nan?']())?a:a==0?1/a>0?0:Math.PI:a<0?Math.PI:0}),b(j,'$bit_length',function(){var b=this,c,d;if(g(a('Integer'),b)||e.$raise(a('NoMethodError').$new("undefined method `bit_length` for "+b+":Float","bit_length")),b===0||b===-1)return 0;for(c=0,d=b<0?~b:b;d!=0;)c+=1,d>>>=1;return c}),b(j,'$ceil',function(a){var e=this,b,d,c;return a==null&&(a=0),b=e.$to_f(),b%1===0&&a>=0?b:(d=Math.pow(10,a),c=Math.ceil(b*d)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$chr',function(a){var b=this;return d.enc(String.fromCharCode(b),a||"BINARY")},-1),b(j,'$denominator',function b(){var d=b.$$p||f,a=this;return b.$$p=null,c(a['$nan?']())||c(a['$infinite?']())?1:q(a,o(a,'denominator',b,!1,!0),'denominator',[],d)}),b(j,'$downto',function i(b){var j=i.$$p||f,d=this,h;if(i.$$p=null,!(j!==f))return u(d,'enum_for',["downto",b],function f(){var d=f.$$s==null?this:f.$$s;return g(a('Numeric'),b)||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed"),c(p(b,d))?0:r(l(d,b),1)},{$$s:d});b.$$is_number||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed");for(h=d;h>=b;h--)j(h);return d}),b(j,'$equal?',function(a){var b=this,d=f;return c(d=b['$=='](a))?d:isNaN(b)&&isNaN(a)}),b(j,'$even?',function(){var a=this;return a%2===0}),b(j,'$floor',function(a){var e=this,b,d,c;return a==null&&(a=0),b=e.$to_f(),b%1===0&&a>=0?b:(d=Math.pow(10,a),c=Math.floor(b*d)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$gcd',function(d){var f=this,b,c,h;for(g(a('Integer'),d)||e.$raise(a('TypeError'),"not an integer"),b=Math.abs(f),c=Math.abs(d);b>0;)h=b,b=c%b,c=h;return c}),b(j,'$gcdlcm',function(a){var b=this;return[b.$gcd(a),b.$lcm(a)]}),b(j,'$integer?',function(){var a=this;return a%1===0}),b(j,'$is_a?',function d(c){var e=d.$$p||f,b=this;return!!(d.$$p=null,k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Float'))&&g(a('Float'),b))||q(b,o(b,'is_a?',d,!1,!0),'is_a?',[c],e)))}),b(j,'$instance_of?',function d(c){var e=d.$$p||f,b=this;return!!(d.$$p=null,k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Float'))&&g(a('Float'),b))||q(b,o(b,'instance_of?',d,!1,!0),'instance_of?',[c],e)))}),b(j,'$lcm',function(b){var c=this;return g(a('Integer'),b)||e.$raise(a('TypeError'),"not an integer"),c==0||b==0?0:Math.abs(c*b/c.$gcd(b))}),b(j,'$next',function(){var a=this;return a+1}),b(j,'$nobits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)==0}),b(j,'$nonzero?',function(){var a=this;return a==0?f:a}),b(j,'$numerator',function b(){var d=b.$$p||f,a=this;return b.$$p=null,c(a['$nan?']())||c(a['$infinite?']())?a:q(a,o(a,'numerator',b,!1,!0),'numerator',[],d)}),b(j,'$odd?',function(){var a=this;return a%2!==0}),b(j,'$ord',x),b(j,'$pow',function(b,c){var d=this;return d==0&&e.$raise(a('ZeroDivisionError'),"divided by 0"),c===void 0?d['$**'](b):(a('Integer')['$==='](b)||e.$raise(a('TypeError'),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),b<0&&e.$raise(a('TypeError'),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),a('Integer')['$==='](c)||e.$raise(a('TypeError'),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),c===0&&e.$raise(a('ZeroDivisionError'),"divided by 0"),d['$**'](b)['$%'](c))},-2),b(j,'$pred',function(){var a=this;return a-1}),b(j,'$quo',function c(d){var e=c.$$p||f,b=this;return c.$$p=null,g(a('Integer'),b)?q(b,o(b,'quo',c,!1,!0),'quo',[d],e):n(b,d)}),b(j,'$rationalize',function(k){var h,j,b=this,i=f,d=f;return arguments.length>1&&e.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),g(a('Integer'),b)?a('Rational').$new(b,1):c(b['$infinite?']())?e.$raise(a('FloatDomainError'),"Infinity"):c(b['$nan?']())?e.$raise(a('FloatDomainError'),"NaN"):c(k==null)?(j=a('Math').$frexp(b),h=s(j),i=h[0]==null?f:h[0],d=h[1]==null?f:h[1],j,i=a('Math').$ldexp(i,a(a('Float'),'MANT_DIG')).$to_i(),d=l(d,a(a('Float'),'MANT_DIG')),a('Rational').$new(v(2,i),1['$<<'](l(1,d))).$rationalize(a('Rational').$new(1,1['$<<'](l(1,d))))):b.$to_r().$rationalize(k)},-1),b(j,'$remainder',function(a){var b=this;return l(b,v(a,n(b,a).$truncate()))}),b(j,'$round',function(b){var j,o,d=this,u=f,i=f,q,t;if(g(a('Integer'),d))return c(b==null)?d:(g(a('Float'),b)&&c(b['$infinite?']())&&e.$raise(a('RangeError'),"Infinity"),b=h['$coerce_to!'](b,a('Integer'),"to_int"),c(m(b,a(a('Integer'),'MIN')))&&e.$raise(a('RangeError'),"out of bounds"),c(b>=0))?d:(b=b['$-@'](),.415241*b-.125>d.$size())?0:(q=Math.pow(10,b),t=Math.floor((Math.abs(d)+q/2)/q)*q,d<0?-t:t);else{if(c(d['$nan?']())&&c(b==null)&&e.$raise(a('FloatDomainError'),"NaN"),b=h['$coerce_to!'](b||0,a('Integer'),"to_int"),c(C(b,0)))c(d['$nan?']())?e.$raise(a('RangeError'),"NaN"):c(d['$infinite?']())&&e.$raise(a('FloatDomainError'),"Infinity");else if(k(b,0))return Math.round(d);else if(c(d['$nan?']())||c(d['$infinite?']()))return d;return o=a('Math').$frexp(d),j=s(o),u=j[0]==null?f:j[0],i=j[1]==null?f:j[1],o,c(y(b,l(r(a(a('Float'),'DIG'),2),c(p(i,0))?n(i,4):l(n(i,3),1))))?d:c(m(b,(c(p(i,0))?r(n(i,3),1):n(i,4))['$-@']()))?0:Math.round(d*Math.pow(10,b))/Math.pow(10,b)}},-1),b(j,'$times',function d(){var e=d.$$p||f,a=this,b;if(d.$$p=null,!c(e))return u(a,'enum_for',["times"],function a(){var b=a.$$s==null?this:a.$$s;return b},{$$s:a});for(b=0;b=0?b:(d=Math.pow(10,a),c=parseInt(b*d,10)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$digits',function(b){var d=this,f,g;if(b==null&&(b=10),c(m(d,0))&&e.$raise(a(a('Math'),'DomainError'),"out of domain"),b=h['$coerce_to!'](b,a('Integer'),"to_int"),c(m(b,2))&&e.$raise(a('ArgumentError'),"invalid radix "+b),d!=parseInt(d)&&e.$raise(a('NoMethodError'),"undefined method `digits' for "+d.$inspect()),f=d,g=[],d==0)return[0];while(f!=0)g.push(f%b),f=parseInt(f/b,10);return g},-1),b(j,'$divmod',function d(g){var h=d.$$p||f,b=this;return d.$$p=null,c(b['$nan?']())||c(g['$nan?']())?e.$raise(a('FloatDomainError'),"NaN"):c(b['$infinite?']())?e.$raise(a('FloatDomainError'),"Infinity"):q(b,o(b,'divmod',d,!1,!0),'divmod',[g],h)}),b(j,'$upto',function i(b){var j=i.$$p||f,d=this,h;if(i.$$p=null,!(j!==f))return u(d,'enum_for',["upto",b],function f(){var d=f.$$s==null?this:f.$$s;return g(a('Numeric'),b)||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed"),c(m(b,d))?0:r(l(b,d),1)},{$$s:d});b.$$is_number||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed");for(h=d;h<=b;h++)j(h);return d}),b(j,'$zero?',function(){var a=this;return a==0}),b(j,'$size',z(4)),b(j,'$nan?',function(){var a=this;return isNaN(a)}),b(j,'$finite?',function(){var a=this;return a!=1/0&&a!=-(1/0)&&!isNaN(a)}),b(j,'$infinite?',function(){var a=this;return a==1/0?+1:a==-(1/0)?-1:f}),b(j,'$positive?',function(){var a=this;return a!=0&&(a==1/0||1/a>0)}),b(j,'$negative?',function(){var a=this;return a==-(1/0)||1/a<0});function B(b){var a=new Uint8Array(8);return new DataView(a.buffer).setFloat64(0,b,!0),a}function D(a){return new DataView(a.buffer).getFloat64(0,!0)}function F(c){for(var a=B(c),b=0;b,cover?,!,begin,end,exclude_end?,then,call,>=,>,==,max,<=,<,enum_for,size,upto,to_proc,respond_to?,class,succ,===,eql?,try_convert,is_a?,any?,last,to_a,-,coerce_to!,ceil,/,new,loop,+,*,each_with_index,%,step,bsearch,inspect,[],hash,include?'),y.$require("corelib/enumerable"),function(G,H,E){var y=A(G,H,'Range'),F=[y].concat(E),z=d.$r(F),C=y.$$prototype;C.begin=C.end=C.excl=b,y.$include(c('Enumerable')),y.$$prototype.$$is_range=!0,y.$attr_reader("begin","end"),e(y,'$initialize',function(d,e,g){var b=this;return g==null&&(g=!1),a(b.begin)&&f.$raise(c('NameError'),"'initialize' called twice"),a(d['$<=>'](e))||a(d['$nil?']())||a(e['$nil?']())||f.$raise(c('ArgumentError'),"bad value for range"),b.begin=d,b.end=e,b.excl=g},-3),e(y,'$===',function(b){var c=this;return!a(b.$$is_range)&&c['$cover?'](b)});function D(a){return!!(a.begin===b||a.end===b||a.begin===-(1/0)||a.end===1/0||a.begin===1/0||a.end===-(1/0))}return e(y,'$count',function d(){var f=d.$$p||b,e=this;return d.$$p=null,h(f!==b)&&a(D(e))?c(c('Float'),'INFINITY'):i(e,j(e,'count',d,!1,!0),'count',[],f)}),e(y,'$to_a',function d(){var g=d.$$p||b,e=this;return d.$$p=null,a(D(e))&&f.$raise(c('TypeError'),"cannot convert endless range to an array"),i(e,j(e,'to_a',d,!1,!0),'to_a',[],g)}),e(y,'$cover?',function(d){var c=this,e=b,f=b,i=b,p=b,j=b,q=b,s=b,r=b;return e=x(function(c,d){var e=b;return c==null&&(c=b),d==null&&(d=b),a(e=c['$<=>'](d))?e:1}),a(d.$$is_range)?!(f=d.$begin(),i=d.$end(),p=d['$exclude_end?'](),a(c.begin)&&a(f['$nil?']())||a(c.end)&&a(i['$nil?']())||a(f)&&a(i)&&a(g(e.$call(f,i),'then',[],function(c){return c==null&&(c=b),a(p)?m(c,0):k(c,0)}))||a(f)&&h(c['$cover?'](f)))&&(j=e.$call(c.end,i),l(c.excl,p)?m(j,0):a(c.excl)?k(j,0):!!a(m(j,0))||(q=d.$max(),a(s=q['$nil?']()['$!']())?n(e.$call(q,c.end),0):s)):!(a(c.begin)&&a(k(e.$call(c.begin,d),0)))&&(!!a(c.end['$nil?']())||(r=e.$call(d,c.end),a(c.excl)?o(r,0):n(r,0)))}),e(y,'$each',function p(){var j=p.$$p||b,e=this,i=b,m=b,n=b,k,q;if(p.$$p=null,!(j!==b))return g(e,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:e});if(e.begin.$$is_number&&e.end.$$is_number){(e.begin%1!==0||e.end%1!==0)&&f.$raise(c('TypeError'),"can't iterate from Float");for(k=e.begin,q=e.end+(a(e.excl)?0:1);k'](m),0));)d.yield1(j,i),i=i.$succ();return h(e.excl)&&l(i,m)&&d.yield1(j,i),e}),e(y,'$eql?',function(d){var e=this,f=b,g=b;return!!r(c('Range'),d)&&(a(f=a(g=e.excl['$==='](d['$exclude_end?']()))?e.begin['$eql?'](d.$begin()):g)?e.end['$eql?'](d.$end()):f)}),e(y,'$exclude_end?',B("excl")),e(y,'$first',function e(g){var h=e.$$p||b,d=this;return e.$$p=null,a(d.begin['$nil?']())&&f.$raise(c('RangeError'),"cannot get the minimum of beginless range"),a(g==null)?d.begin:i(d,j(d,'first',e,!1,!0),'first',[g],h)},-1),e(y,'$include?',function k(f){var l=k.$$p||b,d=this,e=b,h=b;if(k.$$p=null,a(d.begin.$$is_number||d.end.$$is_number)||a(d.begin['$is_a?'](c('Time')))||a(d.end['$is_a?'](c('Time')))||a(c('Integer').$try_convert(d.begin))||a(c('Integer').$try_convert(d.end)))return d['$cover?'](f);if(a(d.begin.$$is_string||d.end.$$is_string)){if(a(d.begin.$$is_string&&d.end.$$is_string))return g(d.begin.$upto(d.end,d.excl),'any?',[],function(a){return a==null&&(a=b),a['$=='](f)});if(a(d.begin['$nil?']()))return e=f['$<=>'](d.end),a(h=e['$nil?']()['$!']())?a(d.excl)?o(e,0):n(e,0):h;if(a(d.end['$nil?']()))return e=d.begin['$<=>'](f),a(h=e['$nil?']()['$!']())?n(e,0):h}return i(d,j(d,'include?',k,!1,!0),'include?',[f],l)}),e(y,'$last',function(d){var b=this;return a(b.end['$nil?']())&&f.$raise(c('RangeError'),"cannot get the maximum of endless range"),a(d==null)?b.end:b.$to_a().$last(d)},-1),e(y,'$max',function e(){var g=e.$$p||b,d=this;return e.$$p=null,a(d.end['$nil?']())?f.$raise(c('RangeError'),"cannot get the maximum of endless range"):g!==b?i(d,j(d,'max',e,!1,!0),'max',[],g):h(d.begin['$nil?']())&&(a(k(d.begin,d.end))||a(d.excl)&&l(d.begin,d.end))?b:d.excl?d.end-1:d.end}),e(y,'$min',function e(){var g=e.$$p||b,d=this;return e.$$p=null,a(d.begin['$nil?']())?f.$raise(c('RangeError'),"cannot get the minimum of beginless range"):g!==b?i(d,j(d,'min',e,!1,!0),'min',[],g):h(d.end['$nil?']())&&(a(k(d.begin,d.end))||a(d.excl)&&l(d.begin,d.end))?b:d.begin}),e(y,'$size',function(){var d=this.begin,a=this.end,e;if(c('Numeric')['$==='](d)){{if(c('Numeric')['$==='](a))return e=u(a,d),e<0?0:(this.excl||(e+=1),c('Float')['$==='](d)||c('Float')['$==='](a)?Math.floor(e):e);if(a===b)return 1/0}}else if(d===b)if(c('Numeric')['$==='](a))return 1/0;return b}),e(y,'$step',function o(i){var n=o.$$p||b,e=this,q=b,j=b;o.$$p=null;function r(){i==null?i=1:i.$$is_number||(i=s['$coerce_to!'](i,c('Integer'),"to_int")),i<0?f.$raise(c('ArgumentError'),"step can't be negative"):i===0&&f.$raise(c('ArgumentError'),"step can't be 0")}function u(){if(!e.begin['$respond_to?']("succ"))return b;if(e.begin.$$is_string&&e.end.$$is_string)return b;if(i%1===0)return t(e.$size(),i).$ceil();var a=e.begin,d=e.end,g=Math.abs,j=Math.floor,h=(g(a)+g(d)+g(d-a))/g(i)*c(c('Float'),'EPSILON'),f;return h>.5&&(h=.5),e.excl?(f=j((d-a)/i-h),f*i+a>',function a(c){var h=a.$$p||b,d=this;return a.$$p=null,g(e,'proc',[],function a(l){var i=a.$$p||b,d,e,k=a.$$s==null?this:a.$$s,h=b;return a.$$p=null,d=f(arguments),e=d,h=g(k,'call',j(e),i.$to_proc()),c.$call(h)},{$$arity:-1,$$s:d})}),c(r,'$<<',function a(c){var h=a.$$p||b,d=this;return a.$$p=null,g(e,'proc',[],function a(l){var i=a.$$p||b,d,e,k=a.$$s==null?this:a.$$s,h=b;return a.$$p=null,d=f(arguments),e=d,h=g(c,'call',j(e),i.$to_proc()),k.$call(h)},{$$arity:-1,$$s:d})}),c(r,'$to_proc',q),c(r,'$lambda?',function(){var a=this;return!!a.$$is_lambda}),c(r,'$arity',function(){var a=this;return a.$$is_curried?-1:a.$$arity!=null?a.$$arity:a.length}),c(r,'$source_location',function(){var a=this,c=b;return a.$$is_curried?b:i(c=a.$$source_location)?c:b}),c(r,'$binding',function(){var c,a=this;return a.$$is_curried&&e.$raise(d('ArgumentError'),"Can't create Binding"),i((c=d('::','Binding','skip_raise'))?'constant':b)?d('Binding').$new(b,[],a.$$s,a.$source_location()):b}),c(r,'$parameters',function(e){var d,a=this,g,c,f,b;if(e=l(e),d=m(e,"lambda"),a.$$is_curried)return[["rest"]];if(a.$$parameters){if(d==null?a.$$is_lambda:d)return a.$$parameters;g=[];for(c=0,f=a.$$parameters.length;cb&&a.$$is_lambda&&!a.$$is_curried&&e.$raise(d('ArgumentError'),"wrong number of arguments ("+i+" for "+b+")"),i>=b?a.$call.apply(a,h):(g=function(){return c.apply(null,h.concat(f(arguments)))},g.$$is_lambda=a.$$is_lambda,g.$$is_curried=!0,g)}return c.$$is_lambda=a.$$is_lambda,c.$$is_curried=!0,c},-1),c(r,'$dup',function(){var a=this,c=a.$$original_proc||a,b=function(){return c.apply(this,arguments)};return k(a,function(c){b[c]=a[c]}),b}),h(r,"===","call"),h(r,"clone","dup"),h(r,"yield","call"),h(r,"[]","call")}('::',Function)},Opal.modules["corelib/method"]=function(b){var f=b.klass,a=b.def,d=b.truthy,h=b.slice,g=b.alias,i=b.Kernel,j=b.send,k=b.to_a,c=b.nil,e=b.$$$;return b.add_stubs('attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc'),function(j,k){var b=f(j,k,'Method'),i=b.$$prototype;return i.method=i.receiver=i.owner=i.name=c,b.$attr_reader("owner","receiver","name"),a(b,'$initialize',function(b,c,d,e){var a=this;return a.receiver=b,a.owner=c,a.name=e,a.method=d}),a(b,'$arity',function(){var a=this;return a.method.$arity()}),a(b,'$parameters',function(){var a=this;return a.method.$$parameters}),a(b,'$source_location',function(){var b=this,a=c;return d(a=b.method.$$source_location)?a:["(eval)",0]}),a(b,'$comments',function(){var b=this,a=c;return d(a=b.method.$$comments)?a:[]}),a(b,'$call',function b(g){var f=b.$$p||c,d,e,a=this;return b.$$p=null,d=h(arguments),e=d,a.method.$$p=f,a.method.apply(a.receiver,e)},-1),a(b,'$curry',function(a){var b=this;return b.method.$curry(a)},-1),a(b,'$>>',function(a){var b=this;return b.method['$>>'](a)}),a(b,'$<<',function(a){var b=this;return b.method['$<<'](a)}),a(b,'$unbind',function(){var a=this;return e('UnboundMethod').$new(a.receiver.$class(),a.owner,a.method,a.name)}),a(b,'$to_proc',function(){var a=this,b=a.$call.bind(a);return b.$$unbound=a.method,b.$$is_lambda=!0,b.$$arity=a.method.$$arity==null?a.method.length:a.method.$$arity,b.$$parameters=a.method.$$parameters,b}),a(b,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.receiver.$class()+"#"+a.name+" (defined in "+a.owner+" in "+a.$source_location().$join(":")+")>"}),g(b,"[]","call"),g(b,"===","call")}('::',null),function(m,n){var g=f(m,n,'UnboundMethod'),l=g.$$prototype;return l.method=l.owner=l.name=l.source=c,g.$attr_reader("source","owner","name"),a(g,'$initialize',function(c,d,b,e){var a=this;return a.source=c,a.owner=d,a.method=b,a.name=e,a.$$method=b}),a(g,'$arity',function(){var a=this;return a.method.$arity()}),a(g,'$parameters',function(){var a=this;return a.method.$$parameters}),a(g,'$source_location',function(){var b=this,a=c;return d(a=b.method.$$source_location)?a:["(eval)",0]}),a(g,'$comments',function(){var b=this,a=c;return d(a=b.method.$$comments)?a:[]}),a(g,'$bind',function(c){var a=this;if(a.owner.$$is_module||b.is_a(c,a.owner))return e('Method').$new(c,a.owner,a.method,a.name);i.$raise(e('TypeError'),"can't bind singleton method to a different class (expected "+c+".kind_of?("+a.owner+" to be true)")}),a(g,'$bind_call',function a(e,i){var f=a.$$p||c,b,d,g=this;return a.$$p=null,b=h(arguments,1),d=b,j(g.$bind(e),'call',k(d),f.$to_proc())},-2),a(g,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.source+"#"+a.name+" (defined in "+a.owner+" in "+a.$source_location().$join(":")+")>"})}('::',null)},Opal.modules["corelib/variables"]=function(b){var a=b.gvars,c=b.const_set,e=b.Object,d=b.nil;return b.add_stubs('new'),a['&']=a['~']=a['`']=a["'"]=d,a.LOADED_FEATURES=a['"']=b.loaded_features,a.LOAD_PATH=a[":"]=[],a["/"]="\n",a[","]=d,c('::','ARGV',[]),c('::','ARGF',e.$new()),c('::','ENV',new Map),a.VERBOSE=!1,a.DEBUG=!1,a.SAFE=0},Opal.modules["corelib/io"]=function(c){var x=c.klass,h=c.const_set,m=c.not,b=c.truthy,d=c.def,w=c.return_ivar,v=c.return_val,l=c.slice,i=c.Kernel,e=c.gvars,k=c.send,o=c.to_a,j=c.rb_plus,p=c.neqeq,s=c.range,f=c.eqeq,t=c.to_ary,y=c.rb_gt,u=c.assign_ivar_val,r=c.alias,n,a=c.nil,g=c.$$$,q;return c.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?,each,eof,new,write_proc=,read_proc='),function(z,A){var n=x(z,A,'IO'),q=n.$$prototype;return q.read_buffer=q.closed=a,h(n,'SEEK_SET',0),h(n,'SEEK_CUR',1),h(n,'SEEK_END',2),h(n,'SEEK_DATA',3),h(n,'SEEK_HOLE',4),h(n,'READABLE',1),h(n,'WRITABLE',4),n.$attr_reader("eof"),n.$attr_accessor("read_proc","sync","tty","write_proc"),d(n,'$initialize',function(e,c){var d=this;return c==null&&(c="r"),d.fd=e,d.flags=c,d.eof=!1,b(c['$include?']("r"))&&m(c['$match?'](/[wa+]/))?d.closed="write":b(c['$match?'](/[wa]/))&&m(c['$match?'](/[r+]/))?d.closed="read":a},-2),d(n,'$fileno',w("fd")),d(n,'$tty?',function(){var a=this;return a.tty==!0}),d(n,'$write',function(a){var b=this;return b.write_proc(a),a.$size()}),d(n,'$flush',v(a)),d(n,'$<<',function(b){var a=this;return a.$write(b),a}),d(n,'$print',function(h){var d,b,g=this,c,f;e[","]==null&&(e[","]=a),d=l(arguments),b=d;for(c=0,f=b.length;c0&&k(e,'puts',o(g))):(b[c].$$is_string?d=b[c].valueOf():d=i.$String(b[c]),d.endsWith("\n")||(d+="\n"),e.$write(d));return a},-1),d(n,'$getc',function(){var c=this,e=a,d=a,f=a;c.read_buffer=b(e=c.read_buffer)?e:"",d="";do if(c.read_buffer=j(c.read_buffer,d),p(c.read_buffer,""))return f=c.read_buffer['$[]'](0),c.read_buffer=c.read_buffer['$[]'](s(1,-1,!1)),f;while(b(d=c.$sysread_noraise(1)))return a}),d(n,'$getbyte',function(){var b,c=this;return b=c.$getc(),b===a||b==null?a:b.$ord()}),d(n,'$readbyte',function(){var a=this;return a.$readchar().$ord()}),d(n,'$readchar',function(){var d=this,c=a;return b(c=d.$getc())?c:i.$raise(g('EOFError'),"end of file reached")}),d(n,'$readline',function(j){var c,d,f=this,e=a;return c=l(arguments),d=c,b(e=k(f,'gets',o(d)))?e:i.$raise(g('EOFError'),"end of file reached")},-1),d(n,'$gets',function(d,k,l){var g,r,i=this,o=a,n=a,u=a,s=a,h=a,q=a;e["/"]==null&&(e["/"]=a),d==null&&(d=!1),k==null&&(k=a),l==null&&(l=new Map),b(d.$$is_number)&&m(k)&&(g=[!1,d,k],d=g[0],k=g[1],l=g[2],g),b(d.$$is_hash)&&m(k)&&f(l,new Map)?(g=[!1,a,d],d=g[0],k=g[1],l=g[2],g):b(k.$$is_hash)&&f(l,new Map)&&(g=[d,a,k],d=g[0],k=g[1],l=g[2],g),o=d,f(d,!1)&&(d=e["/"]),f(d,"")&&(d=/\r?\n\r?\n/),d=b(n=d)?n:"",f(o,"")||(d=d.$to_str()),u=f(o,"")?2:d.$length(),f(d," ")&&(d=/ /),i.read_buffer=b(n=i.read_buffer)?n:"",s="",h=a;do if(i.read_buffer=j(i.read_buffer,s),p(d,"")&&b(b(d.$$is_regexp)?i.read_buffer['$match?'](d):i.read_buffer['$include?'](d))){q=i.read_buffer,r=i.read_buffer.$split(d,2),g=t(r),h=g[0]==null?a:g[0],i.read_buffer=g[1]==null?a:g[1],r,p(h,q)&&(h=j(h,q['$[]'](h.$length(),u)));break}while(b(s=i.$sysread_noraise(f(d,"")?65536:1)))return b(h)||(g=[b(n=i.read_buffer)?n:"",""],h=g[0],i.read_buffer=g[1],g,f(h,"")&&(h=a)),b(h)&&(b(k)&&(h=h['$[]'](c.Range.$new(0,k,!0)),i.read_buffer=j(h['$[]'](c.Range.$new(k,-1,!1)),i.read_buffer)),b(l['$[]']("chomp"))&&(h=h.$sub(/\r?\n$/,"")),f(o,"")&&(h=h.$sub(/^[\r\n]+/,""))),f(o,!1)&&(e._=h),h},-1),d(n,'$sysread',function(e){var c=this,d=a;return b(d=c.read_proc(e))?d:(c.eof=!0,i.$raise(g('EOFError'),"end of file reached"))}),d(n,'$sysread_noraise',function(b){var d=this;try{return d.$sysread(b)}catch(b){if(c.rescue(b,[g('EOFError')]))try{return a}finally{c.pop_exception(b)}else throw b}}),d(n,'$readpartial',function(i){var e,c=this,g=a,h=a,d=a;return c.read_buffer=b(g=c.read_buffer)?g:"",h=c.$sysread(i),e=[j(c.read_buffer,b(g=h)?g:""),""],d=e[0],c.read_buffer=e[1],e,f(d,"")&&(d=a),d}),d(n,'$read',function(f){var e,d=this,h=a,i=a,g=a;f==null&&(f=a),d.read_buffer=b(h=d.read_buffer)?h:"",i="",g=a;do if(d.read_buffer=j(d.read_buffer,i),b(f)&&b(y(d.read_buffer.$length(),f)))return e=[d.read_buffer['$[]'](c.Range.$new(0,f,!0)),d.read_buffer['$[]'](c.Range.$new(f,-1,!1))],g=e[0],d.read_buffer=e[1],e,g;while(b(i=d.$sysread_noraise(b(h=f)?h:65536)))return e=[d.read_buffer,""],g=e[0],d.read_buffer=e[1],e,g},-1),d(n,'$readlines',function(b){var c=this;return e["/"]==null&&(e["/"]=a),b==null&&(b=e["/"]),c.$each_line(b).$to_a()},-1),d(n,'$each',function m(n,p){var j=m.$$p||a,f,d,g,h=this,i=a;if(e["/"]==null&&(e["/"]=a),m.$$p=null,f=l(arguments),f.length>0&&(d=f.shift()),d==null&&(d=e["/"]),g=f,!(j!==a))return k(h,'enum_for',["each",d].concat(o(g)));while(b(i=k(h,'gets',[d].concat(o(g)))))c.yield1(j,i);return h},-1),d(n,'$each_byte',function e(){var f=e.$$p||a,d=this,g=a;if(e.$$p=null,!(f!==a))return d.$enum_for("each_byte");while(b(g=d.$getbyte()))c.yield1(f,g);return d}),d(n,'$each_char',function e(){var f=e.$$p||a,d=this,g=a;if(e.$$p=null,!(f!==a))return d.$enum_for("each_char");while(b(g=d.$getc()))c.yield1(f,g);return d}),d(n,'$close',u("closed","both")),d(n,'$close_read',function(){var a=this;return f(a.closed,"write")?a.closed="both":a.closed="read"}),d(n,'$close_write',function(){var a=this;return f(a.closed,"read")?a.closed="both":a.closed="write"}),d(n,'$closed?',function(){var a=this;return a.closed['$==']("both")}),d(n,'$closed_read?',function(){var c=this,d=a;return b(d=c.closed['$==']("read"))?d:c.closed['$==']("both")}),d(n,'$closed_write?',function(){var c=this,d=a;return b(d=c.closed['$==']("write"))?d:c.closed['$==']("both")}),d(n,'$check_writable',function(){var c=this;return b(c['$closed_write?']())?i.$raise(g('IOError'),"not opened for writing"):a}),d(n,'$check_readable',function(){var c=this;return b(c['$closed_read?']())?i.$raise(g('IOError'),"not opened for reading"):a}),r(n,"each_line","each"),r(n,"eof?","eof")}('::',null),h('::','STDIN',e.stdin=g('IO').$new(0,"r")),h('::','STDOUT',e.stdout=g('IO').$new(1,"w")),h('::','STDERR',e.stderr=g('IO').$new(2,"w")),q=c.global.console,g('STDOUT')['$write_proc='](typeof process=='object'&&typeof process.stdout=='object'?function(a){process.stdout.write(a)}:function(a){q.log(a)}),g('STDERR')['$write_proc='](typeof process=='object'&&typeof process.stderr=='object'?function(a){process.stderr.write(a)}:function(a){q.warn(a)}),(n=[function(c){var b=prompt();return b!==null?b+"\n":a}],k(g('STDIN'),'read_proc=',n),n[n.length-1])},Opal.modules["opal/regexp_anchors"]=function(b){var e=b.module,a=b.const_set,d=[],f=b.nil,c=b.$$$;return b.add_stubs('new'),function(g,h){var d=e(g,'Opal'),i=[d].concat(h),f=b.$r(i);return a(d,'REGEXP_START',"^"),a(d,'REGEXP_END',"$"),a(d,'FORBIDDEN_STARTING_IDENTIFIER_CHARS',"\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'FORBIDDEN_ENDING_IDENTIFIER_CHARS',"\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'INLINE_IDENTIFIER_REGEXP',f('Regexp').$new("[^"+c(d,'FORBIDDEN_STARTING_IDENTIFIER_CHARS')+"]*[^"+c(d,'FORBIDDEN_ENDING_IDENTIFIER_CHARS')+"]")),a(d,'FORBIDDEN_CONST_NAME_CHARS',"\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'CONST_NAME_REGEXP',f('Regexp').$new(""+c(d,'REGEXP_START')+"(::)?[A-Z][^"+c(d,'FORBIDDEN_CONST_NAME_CHARS')+"]*"+c(d,'REGEXP_END')))}(d[0],d)},Opal.modules["opal/mini"]=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require'),a.$require("opal/base"),a.$require("corelib/nil"),a.$require("corelib/boolean"),a.$require("corelib/string"),a.$require("corelib/comparable"),a.$require("corelib/enumerable"),a.$require("corelib/enumerator"),a.$require("corelib/array"),a.$require("corelib/hash"),a.$require("corelib/number"),a.$require("corelib/range"),a.$require("corelib/proc"),a.$require("corelib/method"),a.$require("corelib/regexp"),a.$require("corelib/variables"),a.$require("corelib/io"),a.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(c){var i=c.coerce_to,h=c.module,g=c.slice,e=c.truthy,l=c.eqeq,m=c.Opal,a=c.Kernel,d=c.gvars,j=c.def,k=c.alias,f=c.nil,b=c.$$$;return c.add_stubs('respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s,format'),function(n){var c=h(n,'Kernel');return j(c,'$format',function(p,_){var S,w,O=f,P,K,T,j,H,k,c,z,o,n,G,D,M,C,t,F,B,y,L,v,h,Y,r,u,q,x,s,I,R,J;d.DEBUG==null&&(d.DEBUG=f),S=g(arguments,1),w=S,l(w.$length(),1)&&e(w['$[]'](0)['$respond_to?']("to_ary"))&&(O=m['$coerce_to?'](w['$[]'](0),b('Array'),"to_ary"),e(O['$nil?']())||(w=O.$to_a())),P='',K=0,H=p.length,L=1,v=0,Y=0,r=1,u=2,q=4,x=8,s=16,I=32,R=64,J=128;function E(){h&I&&a.$raise(b('ArgumentError'),"flag after width"),h&J&&a.$raise(b('ArgumentError'),"flag after precision")}function U(){h&I&&a.$raise(b('ArgumentError'),"width given twice"),h&J&&a.$raise(b('ArgumentError'),"width after precision")}function X(c){return c>=w.length&&a.$raise(b('ArgumentError'),"too few arguments"),w[c]}function V(){switch(v){case-1:a.$raise(b('ArgumentError'),"unnumbered("+L+") mixed with numbered");case-2:a.$raise(b('ArgumentError'),"unnumbered("+L+") mixed with named")}return v=L++,X(v-1)}function W(c){return v>0&&a.$raise(b('ArgumentError'),"numbered("+c+") after unnumbered("+v+")"),v===-2&&a.$raise(b('ArgumentError'),"numbered("+c+") after named"),c<1&&a.$raise(b('ArgumentError'),"invalid index - "+c+"$"),v=-1,X(c-1)}function A(){return y===void 0?V():y}function N(e){for(var c,d='';;j++){if(j===H&&a.$raise(b('ArgumentError'),"malformed format string - %*[0-9]"),p.charCodeAt(j)<48||p.charCodeAt(j)>57)return j--,c=parseInt(d,10)||0,c>2147483647&&a.$raise(b('ArgumentError'),""+e+" too big"),c;d+=p.charAt(j)}}function Q(b){var a,c=N(b);return p.charAt(j+1)==='$'?(j++,a=W(c)):a=V(),a.$to_int()}for(j=p.indexOf('%');j!==-1;j=p.indexOf('%',j)){switch(c=void 0,h=Y,o=-1,n=-1,y=void 0,T=j,j++,p.charAt(j)){case'%':K=j;case'':case'\n':case'\0':j++;continue}format_sequence:for(;j':'}',D='',j++;;j++){if(j===H&&a.$raise(b('ArgumentError'),"malformed name - unmatched parenthesis"),p.charAt(j)===M){if(v>0&&a.$raise(b('ArgumentError'),"named "+D+" after unnumbered("+v+")"),v===-1&&a.$raise(b('ArgumentError'),"named "+D+" after numbered"),v=-2,(w[0]===void 0||!w[0].$$is_hash)&&a.$raise(b('ArgumentError'),"one hash required"),y=w[0].$fetch(D),M==='>')continue format_sequence;if(c=y.toString(),n!==-1&&(c=c.slice(0,n)),h&u)while(c.length=0){for(c=k.toString();c.length=0){for(c=k.toString(C);c.length>>0).toString(C).replace(F,B);c.length=0||isNaN(k)){if(k===1/0)c='Inf';else switch(p.charAt(j)){case'f':c=k.toFixed(n===-1?6:n);break;case'e':case'E':c=k.toExponential(n===-1?6:n);break;case'g':case'G':c=k.toExponential(),z=parseInt(c.split('e')[1],10),z<-4||z>=(n===-1?6:n)||(c=k.toPrecision(n===-1?h&r?6:void 0:n));break}if(h&u)for((h&q||h&s)&&(c=(h&q?'+':' ')+c);c.length=(n===-1?6:n)||(c=(-k).toPrecision(n===-1?h&r?6:void 0:n));break}if(h&u)for(c='-'+c;c.length=0&&L"}),b(g,'$charsize',function(b){for(var c=0,a=0,e=b.length,d;a=55296&&d<=56319||c++;return c}),b(g,'$each_char',function h(d){var i=h.$$p||c,g,f,j,e,b;h.$$p=null,g="";for(f=0,j=d.length;f=56320&&e<=57343){g=b;continue}e>=55296&&e<=56319&&(b=g+b),d.encoding.name!="UTF-8"&&(b=new String(b),b.encoding=d.encoding),a.yield1(i,b)}}),b(g,'$each_byte',function(e){var a,b;return a=p(arguments),b=a,n.$raise(d('NotImplementedError'))},-1),b(g,'$bytesize',function(e){var a,b;return a=p(arguments),b=a,n.$raise(d('NotImplementedError'))},-1),h('::',d('StandardError'),'EncodingError'),h('::',d('EncodingError'),'CompatibilityError'),(h(s[0],d('EncodingError'),'UndefinedConversionError'),c)}('::',null,m),e(d('Encoding'),'register',["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function i(j){var d=i.$$p||c,e,b,h,f,g;i.$$p=null,e=1/0,h=j.length,f=null;for(g=0;g55295&&b<57344){if(!f){if(b>56319){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));continue}if(g+1===h){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));continue}f=b;continue}if(b<56320){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189)),f=b;continue}b=(f-55296<<10|b-56320)+65536}else f&&(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));if(f=null,b<128){if((e-=1)<0)break;a.yield1(d,b)}else if(b<2048){if((e-=2)<0)break;a.yield1(d,b>>6|192),a.yield1(d,b&63|128)}else if(b<65536){if((e-=3)<0)break;a.yield1(d,b>>12|224),a.yield1(d,b>>6&63|128),a.yield1(d,b&63|128)}else if(b<1114112){if((e-=4)<0)break;a.yield1(d,b>>18|240),a.yield1(d,b>>12&63|128),a.yield1(d,b>>6&63|128),a.yield1(d,b&63|128)}}}),b(e,'$bytesize',function(a){return a.$bytes().$length()})},{$$s:g}),e(d('Encoding'),'register',["UTF-16LE"],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function d(e){var f=d.$$p||c,b,h,g;d.$$p=null;for(b=0,h=e.length;b>8)}),b(e,'$bytesize',function(a){return a.length*2})},{$$s:g}),e(d('Encoding'),'register',["UTF-16BE",new Map([["inherits",d(d('Encoding'),'UTF_16LE')]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function d(e){var f=d.$$p||c,b,h,g;d.$$p=null;for(b=0,h=e.length;b>8),a.yield1(f,g&255)})},{$$s:g}),e(d('Encoding'),'register',["UTF-32LE"],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function e(f){var b=e.$$p||c,d,h,g;e.$$p=null;for(d=0,h=f.length;d>8),a.yield1(b,0),a.yield1(b,0)}),b(e,'$bytesize',function(a){return a.length*4})},{$$s:g}),e(d('Encoding'),'register',["UTF-32BE",new Map([["inherits",d(d('Encoding'),'UTF_32LE')]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function e(f){var b=e.$$p||c,d,h,g;e.$$p=null;for(d=0,h=f.length;d>8),a.yield1(b,g&255)})},{$$s:g}),e(d('Encoding'),'register',["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],function e(){var d=e.$$s==null?this:e.$$s;return b(d,'$each_char',function e(b){var g=e.$$p||c,d,h,f;e.$$p=null;for(d=0,h=b.length;d171)return 1/0;for(f=b-2,e=b-1;f>1;)e*=f,f--;return e==0&&(e=1),e}if(b<.5)return Math.PI/(Math.sin(Math.PI*b)*a('Math').$gamma(l(1,b)));if(b>=171.35)return 1/0;if(b>85)return j=b*b,k=j*b,m=k*b,n=m*b,Math.sqrt(2*Math.PI/b)*Math.pow(b/Math.E,b)*(1+1/(12*b)+1/(288*j)-139/(51840*k)-571/(2488320*m)+163879/(209018880*n)+5246819/(75246796800*n*b));b-=1,h=g[0];for(d=1;d,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,hash,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational,rect,angle'),q.$require("corelib/numeric"),q.$require("corelib/complex/base"),function(A,x,y){var q=u(A,x,'Complex'),t=[q].concat(y),z=g.$r(t),w=q.$$prototype;return w.real=w.imag=c,o(q,'$rect',function(c,b){var g=this;return b==null&&(b=0),e(a('Numeric'),c)&&f(c['$real?']())&&e(a('Numeric'),b)&&f(b['$real?']())||d.$raise(a('TypeError'),"not a real"),g.$new(c,b)},-2),o(q,'$polar',function(c,b){var g=this;return b==null&&(b=0),e(a('Numeric'),c)&&f(c['$real?']())&&e(a('Numeric'),b)&&f(b['$real?']())||d.$raise(a('TypeError'),"not a real"),g.$new(h(c,a('Math').$cos(b)),h(c,a('Math').$sin(b)))},-2),q.$attr_reader("real","imag"),b(q,'$initialize',function(c,a){var b=this;return a==null&&(a=0),b.real=c,b.imag=a,b.$freeze()},-2),b(q,'$coerce',function(b){var c=this;return e(a('Complex'),b)?[b,c]:e(a('Numeric'),b)&&f(b['$real?']())?[a('Complex').$new(b,0),c]:d.$raise(a('TypeError'),""+b.$class()+" can't be coerced into Complex")}),b(q,'$==',function(b){var d=this,g=c;return e(a('Complex'),b)?f(g=d.real['$=='](b.$real()))?d.imag['$=='](b.$imag()):g:e(a('Numeric'),b)&&f(b['$real?']())?f(g=d.real['$=='](b))?d.imag['$=='](0):g:b['$=='](d)}),b(q,'$-@',function(){var a=this;return d.$Complex(a.real['$-@'](),a.imag['$-@']())}),b(q,'$+',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(i(c.real,b.$real()),i(c.imag,b.$imag())):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(i(c.real,b),c.imag):c.$__coerced__("+",b)}),b(q,'$-',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(k(c.real,b.$real()),k(c.imag,b.$imag())):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(k(c.real,b),c.imag):c.$__coerced__("-",b)}),b(q,'$*',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(k(h(c.real,b.$real()),h(c.imag,b.$imag())),i(h(c.real,b.$imag()),h(c.imag,b.$real()))):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(h(c.real,b),h(c.imag,b)):c.$__coerced__("*",b)}),b(q,'$/',function(b){var c=this;return e(a('Complex'),b)?e(a('Number'),c.real)&&f(c.real['$nan?']())||e(a('Number'),c.imag)&&f(c.imag['$nan?']())||e(a('Number'),b.$real())&&f(b.$real()['$nan?']())||e(a('Number'),b.$imag())&&f(b.$imag()['$nan?']())?a('Complex').$new(a(a('Float'),'NAN'),a(a('Float'),'NAN')):l(h(c,b.$conj()),b.$abs2()):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(c.real.$quo(b),c.imag.$quo(b)):c.$__coerced__("/",b)}),b(q,'$**',function(g){var b,j,s=this,t=c,u=c,z=c,y=c,B=c,A=c,o=c,v=c,q=c,x=c,w=c;if(m(g,0))return a('Complex').$new(1,0);if(e(a('Complex'),g))return j=s.$polar(),b=n(j),t=b[0]==null?c:b[0],u=b[1]==null?c:b[1],j,z=g.$real(),y=g.$imag(),B=a('Math').$exp(k(h(z,a('Math').$log(t)),h(y,u))),A=i(h(u,z),h(y,a('Math').$log(t))),a('Complex').$polar(B,A);if(e(a('Integer'),g)){if(f(r(g,0))){for(o=s,v=o,q=k(g,1);p(q,0);){for(j=q.$divmod(2),b=n(j),x=b[0]==null?c:b[0],w=b[1]==null?c:b[1],j;m(w,0);)o=d.$Complex(k(h(o.$real(),o.$real()),h(o.$imag(),o.$imag())),h(h(2,o.$real()),o.$imag())),q=x,j=q.$divmod(2),b=n(j),x=b[0]==null?c:b[0],w=b[1]==null?c:b[1],j;v=h(v,o),q=k(q,1)}return v}return l(a('Rational').$new(1,1),s)['$**'](g['$-@']())}else return e(a('Float'),g)||e(a('Rational'),g)?(j=s.$polar(),b=n(j),t=b[0]==null?c:b[0],u=b[1]==null?c:b[1],j,a('Complex').$polar(t['$**'](g),h(u,g))):s.$__coerced__("**",g)}),b(q,'$abs',function(){var b=this;return a('Math').$hypot(b.real,b.imag)}),b(q,'$abs2',function(){var a=this;return i(h(a.real,a.real),h(a.imag,a.imag))}),b(q,'$angle',function(){var b=this;return a('Math').$atan2(b.imag,b.real)}),b(q,'$conj',function(){var a=this;return d.$Complex(a.real,a.imag['$-@']())}),b(q,'$denominator',function(){var a=this;return a.real.$denominator().$lcm(a.imag.$denominator())}),b(q,'$eql?',function(b){var a=this,d=c,e=c;return f(d=f(e=z('Complex')['$==='](b))?a.real.$class()['$=='](a.imag.$class()):e)?a['$=='](b):d}),b(q,'$fdiv',function(b){var c=this;return e(a('Numeric'),b)||d.$raise(a('TypeError'),""+b.$class()+" can't be coerced into Complex"),l(c,b)}),b(q,'$finite?',function(){var a=this,b=c;return f(b=a.real['$finite?']())?a.imag['$finite?']():b}),b(q,'$hash',function(){var b=this;return[a('Complex'),b.real,b.imag].$hash()}),b(q,'$infinite?',function(){var a=this,b=c;return f(b=a.real['$infinite?']())?b:a.imag['$infinite?']()}),b(q,'$inspect',function(){var a=this;return"("+a+")"}),b(q,'$numerator',function(){var a=this,b=c;return b=a.$denominator(),d.$Complex(h(a.real.$numerator(),l(b,a.real.$denominator())),h(a.imag.$numerator(),l(b,a.imag.$denominator())))}),b(q,'$polar',function(){var a=this;return[a.$abs(),a.$arg()]}),b(q,'$rationalize',function(c){var b=this;return arguments.length>1&&d.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(b.imag,0)&&d.$raise(a('RangeError'),"can't convert "+b+" into Rational"),b.$real().$rationalize(c)},-1),b(q,'$real?',v(!1)),b(q,'$rect',function(){var a=this;return[a.real,a.imag]}),b(q,'$to_f',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Float"),b.real.$to_f()}),b(q,'$to_i',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Integer"),b.real.$to_i()}),b(q,'$to_r',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Rational"),b.real.$to_r()}),b(q,'$to_s',function(){var b=this,d=c;return d=b.real.$inspect(),d=i(d,e(a('Number'),b.imag)&&f(b.imag['$nan?']())||f(b.imag['$positive?']())||f(b.imag['$zero?']())?"+":"-"),d=i(d,b.imag.$abs().$inspect()),e(a('Number'),b.imag)&&(f(b.imag['$nan?']())||f(b.imag['$infinite?']()))&&(d=i(d,"*")),i(d,"i")}),s(t[0],'I',q.$new(0,1)),o(q,'$from_string',function(a){var c=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/,k=a.match(c),b,e,j;function g(){return c.test(a)}function h(){var d=a.match(c),b=d[0];return a=a.slice(b.length),b.replace(/_/g,'')}function f(){var b,c;return g()?(b=parseFloat(h()),a[0]==='/'?(a=a.slice(1),g())?(c=parseFloat(h()),d.$Rational(b,c)):(a='/'+a,b):b):null}return b=f(),!b?a[0]==='i'?d.$Complex(0,1):a[0]==='-'&&a[1]==='i'?d.$Complex(0,-1):a[0]==='+'&&a[1]==='i'?d.$Complex(0,1):d.$Complex(0,0):(e=f(),e?d.$Complex(b,e):a[0]==='i'?d.$Complex(0,b):d.$Complex(b,0))}),function(a,b){return j(a,"rectangular","rect")}(g.get_singleton_class(q),t),j(q,"arg","angle"),j(q,"conjugate","conj"),j(q,"divide","/"),j(q,"imaginary","imag"),j(q,"magnitude","abs"),j(q,"phase","arg"),j(q,"quo","/"),j(q,"rectangular","rect"),g.udef(q,'$negative?'),g.udef(q,'$positive?'),g.udef(q,'$step'),c}('::',a('Numeric'),t)},Opal.modules["corelib/rational/base"]=function(a){var d=a.module,b=a.def,e=a.klass,f=a.nil,c=a.$$$;return a.add_stubs('convert,from_string'),function(a){var e=d(a,'Kernel');return b(e,'$Rational',function(b,a){return a==null&&(a=1),c('Rational').$convert(b,a)},-2)}('::'),function(a,d){var f=e(a,d,'String');return b(f,'$to_r',function(){var a=this;return c('Rational').$from_string(a)})}('::',null)},Opal.modules["corelib/rational"]=function(f){var v=f.klass,i=f.eqeq,c=f.Kernel,h=f.truthy,l=f.rb_lt,j=f.rb_divide,n=f.defs,b=f.eqeqeq,r=f.not,u=f.Opal,e=f.def,o=f.return_ivar,k=f.rb_minus,g=f.rb_times,m=f.rb_plus,w=f.rb_gt,s=f.rb_le,t=f.return_self,q=f.alias,p=f.top,d=f.nil,a=f.$$$;return f.add_stubs('require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,freeze,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,hash,<=,truncate,send'),p.$require("corelib/numeric"),p.$require("corelib/rational/base"),function(x,y){var f=v(x,y,'Rational'),p=f.$$prototype;return p.num=p.den=d,n(f,'$reduce',function(e,b){var g=this,f=d;if(e=e.$to_i(),b=b.$to_i(),i(b,0))c.$raise(a('ZeroDivisionError'),"divided by 0");else if(h(l(b,0)))e=e['$-@'](),b=b['$-@']();else if(i(b,1))return g.$new(e,b);return f=e.$gcd(b),g.$new(j(e,f),j(b,f))}),n(f,'$convert',function(d,e){var f=this;return(h(d['$nil?']())||h(e['$nil?']()))&&c.$raise(a('TypeError'),"cannot convert nil into Rational"),b(a('Integer'),d)&&b(a('Integer'),e)?f.$reduce(d,e):((b(a('Float'),d)||b(a('String'),d)||b(a('Complex'),d))&&(d=d.$to_r()),(b(a('Float'),e)||b(a('String'),e)||b(a('Complex'),e))&&(e=e.$to_r()),h(e['$equal?'](1))&&r(a('Integer')['$==='](d)))?u['$coerce_to!'](d,a('Rational'),"to_r"):b(a('Numeric'),d)&&b(a('Numeric'),e)?j(d,e):f.$reduce(d,e)}),e(f,'$initialize',function(b,c){var a=this;return a.num=b,a.den=c,a.$freeze()}),e(f,'$numerator',o("num")),e(f,'$denominator',o("den")),e(f,'$coerce',function(c){var e=this,f=d;return b(a('Rational'),f=c)?[c,e]:b(a('Integer'),f)?[c.$to_r(),e]:b(a('Float'),f)?[c,e.$to_f()]:d}),e(f,'$==',function(c){var e=this,g=d,f=d;return b(a('Rational'),g=c)?h(f=e.num['$=='](c.$numerator()))?e.den['$=='](c.$denominator()):f:b(a('Integer'),g)?h(f=e.num['$=='](c))?e.den['$=='](1):f:b(a('Float'),g)?e.$to_f()['$=='](c):c['$=='](e)}),e(f,'$<=>',function(c){var e=this,f=d;return b(a('Rational'),f=c)?k(g(e.num,c.$denominator()),g(e.den,c.$numerator()))['$<=>'](0):b(a('Integer'),f)?k(e.num,g(e.den,c))['$<=>'](0):b(a('Float'),f)?e.$to_f()['$<=>'](c):e.$__coerced__("<=>",c)}),e(f,'$+',function(f){var e=this,h=d,i=d,j=d;return b(a('Rational'),h=f)?(i=m(g(e.num,f.$denominator()),g(e.den,f.$numerator())),j=g(e.den,f.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(m(e.num,g(f,e.den)),e.den):b(a('Float'),h)?m(e.$to_f(),f):e.$__coerced__("+",f)}),e(f,'$-',function(f){var e=this,h=d,i=d,j=d;return b(a('Rational'),h=f)?(i=k(g(e.num,f.$denominator()),g(e.den,f.$numerator())),j=g(e.den,f.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(k(e.num,g(f,e.den)),e.den):b(a('Float'),h)?k(e.$to_f(),f):e.$__coerced__("-",f)}),e(f,'$*',function(e){var f=this,h=d,i=d,j=d;return b(a('Rational'),h=e)?(i=g(f.num,e.$numerator()),j=g(f.den,e.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(g(f.num,e),f.den):b(a('Float'),h)?g(f.$to_f(),e):f.$__coerced__("*",e)}),e(f,'$/',function(e){var f=this,h=d,k=d,l=d;return b(a('Rational'),h=e)?(k=g(f.num,e.$denominator()),l=g(f.den,e.$numerator()),c.$Rational(k,l)):b(a('Integer'),h)?i(e,0)?j(f.$to_f(),0):c.$Rational(f.num,g(f.den,e)):b(a('Float'),h)?j(f.$to_f(),e):f.$__coerced__("/",e)}),e(f,'$**',function(e){var f=this,g=d;return b(a('Integer'),g=e)?i(f,0)&&h(l(e,0))?a(a('Float'),'INFINITY'):h(w(e,0))?c.$Rational(f.num['$**'](e),f.den['$**'](e)):h(l(e,0))?c.$Rational(f.den['$**'](e['$-@']()),f.num['$**'](e['$-@']())):c.$Rational(1,1):b(a('Float'),g)?f.$to_f()['$**'](e):b(a('Rational'),g)?i(e,0)?c.$Rational(1,1):i(e.$denominator(),1)?h(l(e,0))?c.$Rational(f.den['$**'](e.$numerator().$abs()),f.num['$**'](e.$numerator().$abs())):c.$Rational(f.num['$**'](e.$numerator()),f.den['$**'](e.$numerator())):i(f,0)&&h(l(e,0))?c.$raise(a('ZeroDivisionError'),"divided by 0"):f.$to_f()['$**'](e):f.$__coerced__("**",e)}),e(f,'$abs',function(){var a=this;return c.$Rational(a.num.$abs(),a.den.$abs())}),e(f,'$ceil',function(a){var b=this;return a==null&&(a=0),i(a,0)?j(b.num['$-@'](),b.den)['$-@']().$ceil():b.$with_precision("ceil",a)},-1),e(f,'$floor',function(a){var b=this;return a==null&&(a=0),i(a,0)?j(b.num['$-@'](),b.den)['$-@']().$floor():b.$with_precision("floor",a)},-1),e(f,'$hash',function(){var b=this;return[a('Rational'),b.num,b.den].$hash()}),e(f,'$inspect',function(){var a=this;return"("+a+")"}),e(f,'$rationalize',function(t){var g=this,r,h,i,l,f,n,e,p,q,d,b,o;if(arguments.length>1&&c.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),t==null)return g;for(r=t.$abs(),h=k(g,r),i=m(g,r),l=0,f=1,n=1,e=0;!0;){if(d=h.$ceil(),s(d,i))break;b=d-1,p=b*f+l,q=b*e+n,o=j(1,k(i,b)),i=j(1,k(h,b)),h=o,l=f,n=e,f=p,e=q}return c.$Rational(d*f+l,d*e+n)},-1),e(f,'$round',function(b){var a=this,e=d,f=d,c=d;return b==null&&(b=0),!i(b,0)?a.$with_precision("round",b):i(a.num,0)?0:i(a.den,1)?a.num:(e=m(g(a.num.$abs(),2),a.den),f=g(a.den,2),c=j(e,f).$truncate(),h(l(a.num,0)))?c['$-@']():c},-1),e(f,'$to_f',function(){var a=this;return j(a.num,a.den)}),e(f,'$to_i',function(){var a=this;return a.$truncate()}),e(f,'$to_r',t),e(f,'$to_s',function(){var a=this;return""+a.num+"/"+a.den}),e(f,'$truncate',function(a){var b=this;return a==null&&(a=0),i(a,0)?h(l(b.num,0))?b.$ceil():b.$floor():b.$with_precision("truncate",a)},-1),e(f,'$with_precision',function(k,f){var m=this,e=d,i=d;return b(a('Integer'),f)||c.$raise(a('TypeError'),"not an Integer"),e=10['$**'](f),i=g(m,e),h(l(f,1))?j(i.$send(k),e).$to_i():c.$Rational(i.$send(k),e)}),n(f,'$from_string',function(h){var a=h.trimLeft(),d=/^[+-]?[\d_]+(\.[\d_]+)?/,i=a.match(d),b,e;function f(){return d.test(a)}function g(){var c=a.match(d),b=c[0];return a=a.slice(b.length),b.replace(/_/g,'')}return f()?(b=parseFloat(g()),a[0]==='/'?(a=a.slice(1),f())?(e=parseFloat(g()),c.$Rational(b,e)):c.$Rational(b,1):c.$Rational(b,1)):c.$Rational(0,1)}),q(f,"divide","/"),q(f,"quo","/")}('::',a('Numeric'))},Opal.modules["corelib/time"]=function(c){var o=c.slice,t=c.deny_frozen_access,y=c.klass,h=c.Kernel,f=c.Opal,i=c.defs,l=c.eqeqeq,d=c.def,g=c.truthy,x=c.rb_gt,u=c.rb_lt,k=c.send,n=c.rb_plus,r=c.rb_divide,j=c.rb_minus,s=c.range,q=c.neqeq,m=c.rb_le,p=c.eqeq,e=c.alias,v=c.top,w=[],a=c.nil,b=c.$$$;return c.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,hash,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil,local,gm,asctime,getgm,gmt_offset,inspect,usec,gmtime,gmt?'),v.$require("corelib/comparable"),function(B,C,D){var v=y(B,C,'Time'),A=[v].concat(D),z=c.$r(A),E,F,G,H;v.$include(b('Comparable')),E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],F=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],G=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],H=["January","February","March","April","May","June","July","August","September","October","November","December"],i(v,'$at',function(a,c){var d;return b('Time')['$==='](a)?(c!==void 0&&h.$raise(b('TypeError'),"can't convert Time into an exact number"),d=new Date(a.getTime()),d.timezone=a.timezone,d):(a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),c===void 0)?new Date(a*1e3):(c.$$is_number||(c=f['$coerce_to!'](c,b('Integer'),"to_int")),new Date(a*1e3+c/1e3))},-2);function w(j,c,e,g,i,d){if(j.$$is_string?j=parseInt(j,10):j=f['$coerce_to!'](j,b('Integer'),"to_int"),c===a)c=1;else if(!c.$$is_number)if(c['$respond_to?']("to_str"))switch(c=c.$to_str(),c.toLowerCase()){case'jan':c=1;break;case'feb':c=2;break;case'mar':c=3;break;case'apr':c=4;break;case'may':c=5;break;case'jun':c=6;break;case'jul':c=7;break;case'aug':c=8;break;case'sep':c=9;break;case'oct':c=10;break;case'nov':c=11;break;case'dec':c=12;break;default:c=c.$to_i()}else c=f['$coerce_to!'](c,b('Integer'),"to_int");return(c<1||c>12)&&h.$raise(b('ArgumentError'),"month out of range: "+c),c=c-1,e===a?e=1:e.$$is_string?e=parseInt(e,10):e=f['$coerce_to!'](e,b('Integer'),"to_int"),(e<1||e>31)&&h.$raise(b('ArgumentError'),"day out of range: "+e),g===a?g=0:g.$$is_string?g=parseInt(g,10):g=f['$coerce_to!'](g,b('Integer'),"to_int"),(g<0||g>24)&&h.$raise(b('ArgumentError'),"hour out of range: "+g),i===a?i=0:i.$$is_string?i=parseInt(i,10):i=f['$coerce_to!'](i,b('Integer'),"to_int"),(i<0||i>59)&&h.$raise(b('ArgumentError'),"min out of range: "+i),d===a?d=0:d.$$is_number||(d.$$is_string?d=parseInt(d,10):d=f['$coerce_to!'](d,b('Integer'),"to_int")),(d<0||d>60)&&h.$raise(b('ArgumentError'),"sec out of range: "+d),[j,c,e,g,i,d]}return i(v,'$new',function(b,d,e,f,g,h,j){var m=this,c,i,l,k;return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),j==null&&(j=a),b===void 0?new Date:(c=w(b,d,e,f,g,h),b=c[0],d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],j===a)?(i=new Date(b,d,e,f,g,0,h*1e3),b<100&&i.setFullYear(b),i):(l=m.$_parse_offset(j),k=new Date(Date.UTC(b,d,e,f,g,0,h*1e3)),b<100&&k.setUTCFullYear(b),i=new Date(k.getTime()-l*36e5),i.timezone=l,i)},-1),i(v,'$_parse_offset',function(a){var c,d,e,f;return a.$$is_string?a=='UTC'?c=0:/^[+-]\d\d:[0-5]\d$/.test(a)?(d=a[0],e=+(a[1]+a[2]),f=+(a[4]+a[5]),c=(d=='-'?-1:1)*(e+f/60)):h.$raise(b('ArgumentError'),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+a):a.$$is_number?c=a/3600:h.$raise(b('ArgumentError'),"Opal doesn't support other types for a timezone argument than Integer and String"),c}),i(v,'$local',function(c,d,e,f,g,h,m,j,k,l){d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),m==null&&(m=a),j==null&&(j=a),k==null&&(k=a),l==null&&(l=a);var b,i;return arguments.length===10&&(b=o(arguments),c=b[5],d=b[4],e=b[3],f=b[2],g=b[1],h=b[0]),b=w(c,d,e,f,g,h),c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=new Date(c,d,e,f,g,0,h*1e3),c<100&&i.setFullYear(c),i},-2),i(v,'$gm',function(c,d,e,f,g,h,m,j,k,l){d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),m==null&&(m=a),j==null&&(j=a),k==null&&(k=a),l==null&&(l=a);var b,i;return arguments.length===10&&(b=o(arguments),c=b[5],d=b[4],e=b[3],f=b[2],g=b[1],h=b[0]),b=w(c,d,e,f,g,h),c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=new Date(Date.UTC(c,d,e,f,g,0,h*1e3)),c<100&&i.setUTCFullYear(c),i.timezone=0,i},-2),i(v,'$now',function(){var a=this;return a.$new()}),d(v,'$+',function(a){var c=this,d;return l(b('Time'),a)&&h.$raise(b('TypeError'),"time + time?"),a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),d=new Date(c.getTime()+a*1e3),d.timezone=c.timezone,d}),d(v,'$-',function(a){var c=this,d;return l(b('Time'),a)?(c.getTime()-a.getTime())/1e3:(a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),d=new Date(c.getTime()-a*1e3),d.timezone=c.timezone,d)}),d(v,'$<=>',function(d){var e=this,c=a;return l(b('Time'),d)?e.$to_f()['$<=>'](d.$to_f()):(c=d['$<=>'](e),g(c['$nil?']()))?a:g(x(c,0))?-1:g(u(c,0))?1:0}),d(v,'$==',function(c){var e=this,d=a;return g(d=b('Time')['$==='](c))?e.$to_f()===c.$to_f():d}),d(v,'$asctime',function(){var a=this;return a.$strftime("%a %b %e %H:%M:%S %Y")}),k([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],'each',[],function f(b,c,d,e){var g=f.$$s==null?this:f.$$s;return b==null&&(b=a),c==null&&(c=a),d==null&&(d=a),e==null&&(e=0),k(g,'define_method',[b],function b(){var a=b.$$s==null?this:b.$$s;return e+(a.timezone!=null?new Date(a.getTime()+a.timezone*36e5)[d]():a[c]())},{$$s:g})},{$$arity:-4,$$s:v}),d(v,'$yday',function(){var b=this,c=a,d=a,e=a;return c=z('Time').$new(b.$year()).$to_i(),d=z('Time').$new(b.$year(),b.$month(),b.$day()).$to_i(),e=86400,n(r(j(d,c),e).$round(),1)}),d(v,'$isdst',function(){var a=this,b=new Date(a.getFullYear(),0,1),c=new Date(a.getFullYear(),6,1);return a.getTimezoneOffset()'](c)['$zero?']():d}),k([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],'each',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),k(e,'define_method',[b],function a(){var b=a.$$s==null?this:a.$$s;return b.$wday()===c},{$$s:e})},{$$s:v}),d(v,'$hash',function(){var a=this;return[b('Time'),a.getTime()].$hash()}),d(v,'$inspect',function(){var a=this;return g(a['$utc?']())?a.$strftime("%Y-%m-%d %H:%M:%S UTC"):a.$strftime("%Y-%m-%d %H:%M:%S %z")}),d(v,'$succ',function(){var a=this,b=new Date(a.getTime()+1e3);return b.timezone=a.timezone,b}),d(v,'$usec',function(){var a=this;return a.getMilliseconds()*1e3}),d(v,'$zone',function(){var d=this,b,c;return d.timezone===0?"UTC":d.timezone!=null?a:(b=d.toString(),b.indexOf('(')==-1?c=b.match(/[A-Z]{3,4}/)[0]:c=b.match(/\((.+)\)(?:\s|$)/)[1],c=="GMT"&&/(GMT\W*\d{4})/.test(b))?RegExp.$1:c}),d(v,'$getgm',function(){var b=this,a=new Date(b.getTime());return a.timezone=0,a}),d(v,'$gmtime',function(){var a=this;return a.timezone!==0&&(t(a),a.timezone=0),a}),d(v,'$gmt?',function(){var a=this;return a.timezone===0}),d(v,'$gmt_offset',function(){var a=this;return a.timezone!=null?a.timezone*60:-a.getTimezoneOffset()*60}),d(v,'$strftime',function(b){var a=this;return b.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(t,f,e,u,r){var b="",g,h,i,d=f.indexOf('0')!==-1,q=f.indexOf('-')===-1,c=f.indexOf('_')!==-1,o=f.indexOf('^')!==-1,p=f.indexOf('#')!==-1,m=(f.match(':')||[]).length,k,l,n;switch(e=parseInt(e,10),d&&c&&(f.indexOf('0')=12?"pm":"am";break;case'p':b+=a.$hour()>=12?"PM":"AM";break;case'M':d=!c,b+=a.$min();break;case'S':d=!c,b+=a.$sec();break;case'L':d=!c,e=isNaN(e)?3:e,b+=a.getMilliseconds();break;case'N':e=isNaN(e)?9:e,b+=a.getMilliseconds().toString().$rjust(3,"0"),b=b.$ljust(e,"0");break;case'z':k=a.timezone==null?a.getTimezoneOffset():-a.timezone*60,l=Math.floor(Math.abs(k)/60),n=Math.abs(k)%60,b+=k<0?"+":"-",b+=l<10?"0":"",b+=l,m>0&&(b+=":"),b+=n<10?"0":"",b+=n,m>1&&(b+=":00");break;case'Z':b+=a.$zone();break;case'A':b+=E[a.$wday()];break;case'a':b+=F[a.$wday()];break;case'u':b+=a.$wday()+1;break;case'w':b+=a.$wday();break;case'V':b+=a.$cweek_cyear()['$[]'](0).$to_s().$rjust(2,"0");break;case'G':b+=a.$cweek_cyear()['$[]'](1);break;case'g':b+=a.$cweek_cyear()['$[]'](1)['$[]'](s(-2,-1,!1));break;case's':b+=a.$to_i();break;case'n':b+="\n";break;case't':b+=" ";break;case'%':b+="%";break;case'c':b+=a.$strftime("%a %b %e %T %Y");break;case'D':case'x':b+=a.$strftime("%m/%d/%y");break;case'F':b+=a.$strftime("%Y-%m-%d");break;case'v':b+=a.$strftime("%e-%^b-%4Y");break;case'r':b+=a.$strftime("%I:%M:%S %p");break;case'R':b+=a.$strftime("%H:%M");break;case'T':case'X':b+=a.$strftime("%H:%M:%S");break;case'J':if(g=a.$to_date().$jd(),g<2405160){b+=a.$strftime("%Y-%m-%d");break}g<2419614?(h='M',i=1867):g<2424875?(h='T',i=1911):g<2447535?(h='S',i=1925):g<2458605?(h='H',i=1988):(h='R',i=2018),b+=a.$format("%c%02d",h,j(a.$year(),i)),b+=a.$strftime("-%m-%d");break;default:return t}return o&&(b=b.toUpperCase()),p&&(b=b.replace(/[A-Z]/,function(a){a.toLowerCase()}).replace(/[a-z]/,function(a){a.toUpperCase()})),q&&(d||c)&&(b=b.$rjust(isNaN(e)?2:e,c?" ":"0")),b})}),d(v,'$to_a',function(){var a=this;return[a.$sec(),a.$min(),a.$hour(),a.$day(),a.$month(),a.$year(),a.$wday(),a.$yday(),a.$isdst(),a.$zone()]}),d(v,'$to_f',function(){var a=this;return a.getTime()/1e3}),d(v,'$to_i',function(){var a=this;return parseInt(a.getTime()/1e3,10)}),d(v,'$cweek_cyear',function(){var d=this,k=a,e=a,o=a,h=a,c=a,f=a,l=a,i=a;return k=b('Time').$new(d.$year(),1,1),e=k.$wday(),o=0,h=d.$year(),g(m(e,4))&&q(e,0)?c=j(e,1):(c=j(j(e,7),1),p(c,-8)&&(c=-1)),f=r(n(d.$yday(),c),7).$ceil(),g(m(f,0))?b('Time').$new(j(d.$year(),1),12,31).$cweek_cyear():(p(f,53)&&(l=b('Time').$new(d.$year(),12,31),i=l.$wday(),g(m(i,3))&&q(i,0)&&(f=1,h=n(h,1))),[f,h])}),function(a,b){return e(a,"mktime","local"),e(a,"utc","gm")}(c.get_singleton_class(v),A),e(v,"ctime","asctime"),e(v,"dst?","isdst"),e(v,"getutc","getgm"),e(v,"gmtoff","gmt_offset"),e(v,"mday","day"),e(v,"month","mon"),e(v,"to_s","inspect"),e(v,"tv_sec","to_i"),e(v,"tv_usec","usec"),e(v,"utc","gmtime"),e(v,"utc?","gmt?"),e(v,"utc_offset","gmt_offset")}('::',Date,w)},Opal.modules["corelib/struct"]=function(b){var z=b.klass,h=b.slice,A=b.extract_kwargs,u=b.ensure_kwargs,w=b.hash_get,e=b.truthy,s=b.neqeq,o=b.eqeq,k=b.Opal,d=b.send,v=b.Class,n=b.to_a,f=b.def,i=b.defs,g=b.Kernel,q=b.rb_gt,t=b.rb_minus,j=b.eqeqeq,r=b.rb_lt,p=b.rb_ge,l=b.rb_plus,m=b.alias,x=b.top,y=[],a=b.nil,c=b.$$$;return b.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,to_a,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,each_with_object,flatten,respond_to?,dig'),x.$require("corelib/enumerable"),function(F,C,D){var x=z(F,C,'Struct'),B=[x].concat(D),E=b.$r(B),y;return x.$include(c('Enumerable')),i(x,'$new',function r(g,x,y){var t=r.$$p||a,p,l,j,m,q=this,i=a;if(r.$$p=null,p=h(arguments,1),l=A(p),l=u(l),j=p,m=w(l,"keyword_init"),m==null&&(m=!1),e(g))if(o(g.$class(),c('String'))&&s(g['$[]'](0).$upcase(),g['$[]'](0)))j.$unshift(g),g=a;else try{g=k['$const_name!'](g)}catch(d){if(b.rescue(d,[c('TypeError'),c('NameError')]))try{j.$unshift(g),g=a}finally{b.pop_exception(d)}else throw d}return d(j,'map',[],function(b){return b==null&&(b=a),k['$coerce_to!'](b,c('String'),"to_str")}),i=d(v,'new',[q],function c(){var e=c.$$s==null?this:c.$$s;return d(j,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_struct_attribute(b)},{$$s:e}),function(b,c){return f(b,'$new',function(i){var c,e,f=this,b=a;return c=h(arguments),e=c,b=f.$allocate(),b.$$data={},d(b,'initialize',n(e)),b},-1),b.$alias_method("[]","new")}(b.get_singleton_class(e),B)},{$$s:q}),e(t)&&d(i,'module_eval',[],t.$to_proc()),i.$$keyword_init=m,e(g)&&c('Struct').$const_set(g,i),i},-2),i(x,'$define_struct_attribute',function(e){var b=this;return o(b,c('Struct'))&&g.$raise(c('ArgumentError'),"you cannot define attributes to the Struct class"),b.$members()['$<<'](e),d(b,'define_method',[e],function a(){var b=a.$$s==null?this:a.$$s;return b.$$data[e]},{$$s:b}),d(b,'define_method',[""+e+"="],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$$data[e]=b},{$$s:b})}),i(x,'$members',function(){var b=this,d=a;return b.members==null&&(b.members=a),o(b,c('Struct'))&&g.$raise(c('ArgumentError'),"the Struct class has no members"),b.members=e(d=b.members)?d:[]}),i(x,'$inherited',function(e){var b=this,c=a;return b.members==null&&(b.members=a),c=b.members,d(e,'instance_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return b.members=c},{$$s:b})}),f(x,'$initialize',function(n){var l,b,f=this,i=a,k=a,j=a;return l=h(arguments),b=l,e(f.$class().$$keyword_init)?(i=e(k=b.$last())?k:new Map,(e(q(b.$length(),1))||e(b.length===1&&!i.$$is_hash))&&g.$raise(c('ArgumentError'),"wrong number of arguments (given "+b.$length()+", expected 0)"),j=t(i.$keys(),f.$class().$members()),e(j['$any?']())&&g.$raise(c('ArgumentError'),"unknown keywords: "+j.$join(", ")),d(f.$class().$members(),'each',[],function e(b){var c,f=e.$$s==null?this:e.$$s;return b==null&&(b=a),(c=[b,i['$[]'](b)],d(f,'[]=',c),c[c.length-1])},{$$s:f})):(e(q(b.$length(),f.$class().$members().$length()))&&g.$raise(c('ArgumentError'),"struct size differs"),d(f.$class().$members(),'each_with_index',[],function g(e,f){var c,h=g.$$s==null?this:g.$$s;return e==null&&(e=a),f==null&&(f=a),(c=[e,b['$[]'](f)],d(h,'[]=',c),c[c.length-1])},{$$s:f}))},-1),f(x,'$initialize_copy',function(c){var d=this,e,a,f,b;d.$$data={},e=Object.keys(c.$$data);for(a=0,f=e.length;a"):(y['$<<'](f.$__id__()),g=!0,j(c('Struct'),f)&&e(f.$class().$name())&&(b=l(b,""+f.$class()+" ")),b=l(b,d(f.$each_pair(),'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+"="+E('Opal').$inspect(c)}).$join(", ")),b=l(b,">"),b)}finally{e(g)?y.pop():a}}()}),f(x,'$to_h',function c(i){var e=c.$$p||a,f,g,b=this;return c.$$p=null,f=h(arguments),g=f,e!==a?d(d(b,'map',[],e.$to_proc()),'to_h',n(g)):d(b.$class().$members(),'each_with_object',[new Map],function f(b,e){var c,g=f.$$s==null?this:f.$$s;return b==null&&(b=a),e==null&&(e=a),(c=[b,g['$[]'](b)],d(e,'[]=',c),c[c.length-1])},{$$s:b})},-1),f(x,'$values_at',function(m){var f,b,k=this,i,e,j;f=h(arguments),b=f,b=d(b,'map',[],function(b){return b==null&&(b=a),b.$$is_range?b.$to_a():b}).$flatten(),i=[];for(e=0,j=b.length;e"}),b(o,'$==',function(b){var d=this;return!!e(d['$equal?'](b))||(e(b['$instance_of?'](d.$class()))?d.hash['$=='](b.$instance_variable_get("@hash")):!!(e(b['$is_a?'](g('Set')))&&j(d.$size(),b.$size()))&&c(b,'all?',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash['$include?'](b)},{$$s:d}))}),b(o,'$add',function(b){var a=this;return a.hash['$[]='](b,!0),a}),b(o,'$classify',function f(){var h=f.$$p||a,b=this,e=a;return f.$$p=null,!(h!==a)?b.$enum_for("classify"):(e=c(g('Hash'),'new',[],function f(d,e){var b,g=f.$$s==null?this:f.$$s;return d==null&&(d=a),e==null&&(e=a),(b=[e,g.$class().$new()],c(d,'[]=',b),b[b.length-1])},{$$s:b}),c(b,'each',[],function(b){return b==null&&(b=a),e['$[]'](d.yield1(h,b)).$add(b)}),e)}),b(o,'$collect!',function f(){var g=f.$$p||a,b=this,e=a;return f.$$p=null,!(g!==a)?b.$enum_for("collect!"):(e=b.$class().$new(),c(b,'each',[],function(b){return b==null&&(b=a),e['$<<'](d.yield1(g,b))}),b.$replace(e))}),b(o,'$compare_by_identity',function(){var a=this;return e(a.hash['$respond_to?']("compare_by_identity"))?(a.hash.$compare_by_identity(),a):a.$raise(v('NotImplementedError'),""+a.$class().$name()+"#"+"compare_by_identity"+" is not implemented")}),b(o,'$compare_by_identity?',function(){var b=this,c=a;return e(c=b.hash['$respond_to?']("compare_by_identity?"))?b.hash['$compare_by_identity?']():c}),b(o,'$delete',function(b){var a=this;return a.hash.$delete(b),a}),b(o,'$delete?',function(c){var b=this;return e(b['$include?'](c))?(b.$delete(c),b):a}),b(o,'$delete_if',function e(){var f=e.$$p||a,b=this;return e.$$p=null,!(f!==a)?b.$enum_for("delete_if"):(c(c(b,'select',[],function(b){return b==null&&(b=a),d.yield1(f,b)}),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash.$delete(b)},{$$s:b}),b)}),b(o,'$freeze',function(){var a=this;return e(a['$frozen?']())?a:(a.hash.$freeze(),p(a))}),b(o,'$keep_if',function e(){var f=e.$$p||a,b=this;return e.$$p=null,!(f!==a)?b.$enum_for("keep_if"):(c(c(b,'reject',[],function(b){return b==null&&(b=a),d.yield1(f,b)}),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash.$delete(b)},{$$s:b}),b)}),b(o,'$reject!',function d(){var e=d.$$p||a,b=this,f=a;return d.$$p=null,!(e!==a)?b.$enum_for("reject!"):(f=b.$size(),c(b,'delete_if',[],e.$to_proc()),j(b.$size(),f))?a:b}),b(o,'$select!',function d(){var e=d.$$p||a,b=this,f=a;return d.$$p=null,!(e!==a)?b.$enum_for("select!"):(f=b.$size(),c(b,'keep_if',[],e.$to_proc()),j(b.$size(),f))?a:b}),b(o,'$add?',function(b){var c=this;return e(c['$include?'](b))?a:c.$add(b)}),b(o,'$each',function d(){var e=d.$$p||a,b=this;return d.$$p=null,!(e!==a)?b.$enum_for("each"):(c(b.hash,'each_key',[],e.$to_proc()),b)}),b(o,'$empty?',function(){var a=this;return a.hash['$empty?']()}),b(o,'$eql?',function(d){var b=this;return b.hash['$eql?'](c(d,'instance_eval',[],function c(){var b=c.$$s==null?this:c.$$s;return b.hash==null&&(b.hash=a),b.hash},{$$s:b}))}),b(o,'$clear',function(){var a=this;return a.hash.$clear(),a}),b(o,'$include?',function(a){var b=this;return b.hash['$include?'](a)}),b(o,'$merge',function(d){var b=this;return c(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$add(b)},{$$s:b}),b}),b(o,'$replace',function(b){var a=this;return a.$clear(),a.$merge(b),a}),b(o,'$size',function(){var a=this;return a.hash.$size()}),b(o,'$subtract',function(d){var b=this;return c(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$delete(b)},{$$s:b}),b}),b(o,'$|',function(a){var b=this;return e(a['$respond_to?']("each"))||h.$raise(g('ArgumentError'),"value must be enumerable"),b.$dup().$merge(a)});function r(a){e(s=a['$is_a?'](g('Set')))?s:h.$raise(g('ArgumentError'),"value must be a set")}return b(o,'$superset?',function(b){var d=this;return!(r(b),e(i(d.$size(),b.$size())))&&c(b,'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$proper_superset?',function(b){var d=this;return!(r(b),e(k(d.$size(),b.$size())))&&c(b,'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$subset?',function(b){var d=this;return!(r(b),e(i(b.$size(),d.$size())))&&c(d,'all?',[],function(c){return c==null&&(c=a),b['$include?'](c)})}),b(o,'$proper_subset?',function(b){var d=this;return!(r(b),e(k(b.$size(),d.$size())))&&c(d,'all?',[],function(c){return c==null&&(c=a),b['$include?'](c)})}),b(o,'$intersect?',function(b){var d=this;return r(b),e(i(d.$size(),b.$size()))?c(d,'any?',[],function(c){return c==null&&(c=a),b['$include?'](c)}):c(b,'any?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$disjoint?',function(a){var b=this;return b['$intersect?'](a)['$!']()}),b(o,'$to_a',function(){var a=this;return a.hash.$keys()}),f(o,"+","|"),f(o,"<","proper_subset?"),f(o,"<<","add"),f(o,"<=","subset?"),f(o,">","proper_superset?"),f(o,">=","superset?"),f(o,"difference","-"),f(o,"filter!","select!"),f(o,"length","size"),f(o,"map!","collect!"),f(o,"member?","include?"),f(o,"union","|")}('::',null,o)},Opal.modules["corelib/dir"]=function(a){var d=a.klass,b=a.def,e=a.truthy,f=a.alias,g=[],c=a.nil,h=a.$$$;return a.add_stubs('[],pwd'),function(i,j,k){var g=d(i,j,'Dir'),l=[g].concat(k);return function(d,g){return b(d,'$chdir',function b(e){var f=b.$$p||c,d=c;return b.$$p=null,function(){try{return d=a.current_dir,a.current_dir=e,a.yieldX(f,[])}finally{a.current_dir=d}}()}),b(d,'$pwd',function(){return a.current_dir||'.'}),b(d,'$home',function(){var a=c;return e(a=h('ENV')['$[]']("HOME"))?a:"."}),f(d,"getwd","pwd")}(a.get_singleton_class(g),l)}('::',null,g)},Opal.modules["corelib/file"]=function(b){var c=b.truthy,r=b.klass,h=b.const_set,l=b.Opal,d=b.regexp,f=b.rb_plus,e=b.def,k=b.Kernel,j=b.eqeq,o=b.rb_lt,m=b.rb_minus,s=b.range,i=b.send,p=b.slice,n=b.alias,q=[],a=b.nil,g=b.$$$;return b.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?,expand_path,exist?'),function(v,w,x){var u=r(v,w,'File'),q=[u].concat(x),t=a;return h(q[0],'Separator',h(q[0],'SEPARATOR',"/")),h(q[0],'ALT_SEPARATOR',a),h(q[0],'PATH_SEPARATOR',":"),h(q[0],'FNM_SYSCASE',0),t=/^[a-zA-Z]:(?:\\|\/)/,function(q,v){var w=[q].concat(v),h=b.$r(w);e(q,'$absolute_path',function(b,e){var j=a,k=a,i=a,v=a,w=a,u=a,o=a,s=a,n=a,p=a,m,q,x;e==null&&(e=a),j=h('SEPARATOR'),k=r(),i=[],b=c(b['$respond_to?']("to_path"))?b.$to_path():b,b=l['$coerce_to!'](b,g('String'),"to_str"),e=c(v=e)?v:g('Dir').$pwd(),w=b.substr(0,j.length)===j||t.test(b),u=e.substr(0,j.length)===j||t.test(e),c(w)?(o=b.$split(d(["[",k,"]"])),s=t.test(b)?'':b.$sub(d(["^([",k,"]+).*$"]),"\\1"),n=!0):(o=f(e.$split(d(["[",k,"]"])),b.$split(d(["[",k,"]"]))),s=t.test(e)?'':e.$sub(d(["^([",k,"]+).*$"]),"\\1"),n=u);for(q=0,x=o.length;q",0]))},Opal.modules["corelib/irb"]=function(a){var r=a.module,d=a.truthy,m=a.Kernel,k=a.defs,c=a.gvars,q=a.lambda,s=a.hash_rehash,f=a.send,j=a.rb_plus,t=a.const_set,l=a.klass,h=a.def,g=a.Opal,n=a.range,o=a.eqeq,p=a.thrower,i=[],b=a.nil,e=a.$$$;a.add_stubs('include?,raise,attr_accessor,singleton_class,output=,browser?,each,dup,write_proc=,proc,+,output,join,last,split,end_with?,call,write_proc,tty=,read_proc,read_proc=,freeze,new,string,ensure_loaded,prepare_console,loop,print,gets,puts,start_with?,[],==,silence,message,empty?,warnings,warn,full_message,eval_and_print,irb'),function(i,n){var o=r(i,'Opal'),g=[o].concat(n);return function(o,p){var g=r(o,'IRB'),i=[g].concat(p),n=a.$r(i);return k(g,'$ensure_loaded',function(c){var f=b,g=b,h,e;return d(a.loaded_features['$include?'](c))?b:(f=d(n('RUBY_ENGINE_VERSION')['$include?']("dev"))?"master":n('RUBY_ENGINE_VERSION'),g="https://cdn.opalrb.com/opal/"+f+"/"+c+".js",typeof XMLHttpRequest!='undefined'?(e=new XMLHttpRequest,e.open("GET",g,!1),e.send(''),h=e.responseText):m.$raise("You need to provision "+c+" yourself in this environment"),new Function('Opal',h)(a),a.require(c),d(a.loaded_features['$include?'](c)))?b:m.$raise("Could not load "+c+" for some reason")}),g.$singleton_class().$attr_accessor("output"),k(g,'$prepare_console',function i(){var l=i.$$p||b,e,g=this,h=b,k=b;return c.stdout==null&&(c.stdout=b),c.stderr==null&&(c.stderr=b),c.stdin==null&&(c.stdin=b),i.$$p=null,function(){try{return g['$output='](""),h=s(new Map([[c.stdout,q(function(a){return a==null&&(a=b),c.stdout=a})],[c.stderr,q(function(a){return a==null&&(a=b),c.stderr=a})]])),d(g['$browser?']())&&(f(h,'each',[],function g(a,e){var h=g.$$s==null?this:g.$$s,c=b;return a==null&&(a=b),e==null&&(e=b),c=a.$dup(),c['$write_proc='](f(h,'proc',[],function f(e){var c=f.$$s==null?this:f.$$s;return e==null&&(e=b),c['$output='](j(c.$output(),e)),c['$output='](c.$output().$split("\n").$last(30).$join("\n")),d(e['$end_with?']("\n"))&&c['$output='](j(c.$output(),"\n")),a.$write_proc().$call(e)},{$$s:h})),c['$tty='](!1),e.$call(c)},{$$s:g}),k=c.stdin.$read_proc(),c.stdin['$read_proc='](function(c){var a=prompt(g.$output());return a!==null?a+"\n":b})),a.yieldX(l,[])}finally{f(h,'each',[],function(a,c){return a==null&&(a=b),c==null&&(c=b),c.$call(a)}),(e=[k],f(c.stdin,'read_proc=',e),e[e.length-1]),(e=[""],f(g,'output=',e),e[e.length-1])}}()}),k(g,'$browser?',function(){return typeof document!='undefined'&&typeof prompt!='undefined'}),t(i[0],'LINEBREAKS',["unexpected token $end","unterminated string meets end of file"].$freeze()),function(g,i){var d=l(g,i,'Silencer'),f=d.$$prototype;return f.collector=f.stderr=b,h(d,'$initialize',function(){var a=this;return c.stderr==null&&(c.stderr=b),a.stderr=c.stderr}),h(d,'$silence',function f(){var g=f.$$p||b,d=this;return f.$$p=null,function(){try{return d.collector=e('StringIO').$new(),c.stderr=d.collector,a.yieldX(g,[])}finally{c.stderr=d.stderr}}()}),h(d,'$warnings',function(){var a=this;return a.collector.$string()})}(i[0],null)}(g[0],g)}(i[0],i),function(i,k,m){var c=l(i,k,'Binding'),q=[c].concat(m),r=a.$r(q);return h(c,'$irb',function(){var c,i,h;try{return c=p('return'),i=this,h=b,e(g,'IRB').$ensure_loaded("opal-replutils"),h=e(e(g,'IRB'),'Silencer').$new(),f(e(g,'IRB'),'prepare_console',[],function i(){var k=i.$$s==null?this:i.$$s;return function(){try{var i=p('break');return f(k,'loop',[],function q(){var l=q.$$s==null?this:q.$$s,k=b,m=b,p=b,s=b,t=b;l.$print(">> "),k=l.$gets(),d(k)||i.$throw(b,q.$$is_lambda),m="",d(e(g,'IRB')['$browser?']())&&l.$puts(k),d(k['$start_with?']("ls "))?(m=k['$[]'](n(3,-1,!1)),p="ls"):o(k,"ls\n")?(m="self",p="ls"):d(k['$start_with?']("show "))?(m=k['$[]'](n(5,-1,!1)),p="show"):(m=k,p="inspect"),s=b;do{try{f(h,'silence',[],function(){return s=a.compile(m,{irb:!0})})}catch(f){if(a.rescue(f,[r('SyntaxError')])){t=f;try{if(d(e(e(g,'IRB'),'LINEBREAKS')['$include?'](t.$message()))){l.$print(".. "),k=l.$gets(),d(k)||c.$throw(b,q.$$is_lambda),d(e(g,'IRB')['$browser?']())&&l.$puts(k),m=j(m,k);continue}d(h.$warnings()['$empty?']())?l.$warn(t.$full_message()):l.$warn(h.$warnings())}finally{a.pop_exception(f)}}else throw f}break}while(1)return o(p,"show")&&(l.$puts(s),c.$throw(b,q.$$is_lambda)),l.$puts(e('REPLUtils').$eval_and_print(s,p,!1,l))},{$$s:k,$$ret:c})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}()},{$$s:i})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})}('::',null,i),a.irb=function(a){e('Binding').$new(a).$irb()},a.load_parser=function(){a.Opal.IRB.$ensure_loaded('opal-parser')},typeof a.eval=='undefined'&&(a.eval=function(b){return a.load_parser(),a.eval(b)}),typeof a.compile=='undefined'&&(a.compile=function(b,c){return a.load_parser(),a.compile(b,c)})},Opal.modules.opal=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require,autoload'),a.$require("opal/base"),a.$require("opal/mini"),a.$require("corelib/kernel/format"),a.$require("corelib/string/encoding"),a.$autoload("Math","corelib/math"),a.$require("corelib/complex/base"),a.$autoload("Complex","corelib/complex"),a.$require("corelib/rational/base"),a.$autoload("Rational","corelib/rational"),a.$require("corelib/time"),a.$autoload("Struct","corelib/struct"),a.$autoload("Set","corelib/set"),a.$autoload("Dir","corelib/dir"),a.$autoload("File","corelib/file"),a.$require("corelib/process/base"),a.$autoload("Process","corelib/process"),a.$autoload("Random","corelib/random"),a.$require("corelib/unsupported"),a.$require("corelib/binding"),a.$require("corelib/irb")},Opal.load_normalized("opal"),Opal.modules.opal=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require,autoload'),a.$require("opal/base"),a.$require("opal/mini"),a.$require("corelib/kernel/format"),a.$require("corelib/string/encoding"),a.$autoload("Math","corelib/math"),a.$require("corelib/complex/base"),a.$autoload("Complex","corelib/complex"),a.$require("corelib/rational/base"),a.$autoload("Rational","corelib/rational"),a.$require("corelib/time"),a.$autoload("Struct","corelib/struct"),a.$autoload("Set","corelib/set"),a.$autoload("Dir","corelib/dir"),a.$autoload("File","corelib/file"),a.$require("corelib/process/base"),a.$autoload("Process","corelib/process"),a.$autoload("Random","corelib/random"),a.$require("corelib/unsupported"),a.$require("corelib/binding"),a.$require("corelib/irb")},Opal.modules["opal/paths"]=function(a){var j=a.module,c=a.defs,k=a.slice,f=a.rb_plus,d=a.gvars,e=a.send,l=a.to_a,g=a.def,h=a.truthy,i=[],b=a.nil,m=a.$$$;return a.add_stubs('expand_path,append_paths,concat,gem_dir,[],+,grep,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,name,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!'),function(p,q){var i=j(p,'Opal'),o=[i].concat(q),n=a.$r(o);return c(i,'$gem_dir',function(){return n('File').$expand_path("../..","opal/paths.rb")}),c(i,'$core_dir',function(){return n('File').$expand_path("../../../opal","opal/paths.rb")}),c(i,'$std_dir',function(){return n('File').$expand_path("../../../stdlib","opal/paths.rb")}),c(i,'$append_path',function(a){var b=this;return b.$append_paths(a)}),c(i,'$append_paths',function(f){var c,d,a=this;return a.paths==null&&(a.paths=b),c=k(arguments),d=c,a.paths.$concat(d),b},-1),c(i,'$dependent_files',function(){var c=b,a=b;return d.LOADED_FEATURES==null&&(d.LOADED_FEATURES=b),c=n('File').$expand_path("..",n('Opal').$gem_dir()),a=n('Dir')['$[]'](""+c+"/{Gemfile*,*.gemspec,lib/**/*}"),a=f(a,d.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),a}),function(i,k){var c=j(i,'UseGem'),n=[c].concat(k),d=a.$r(n);return g(c,'$use_gem',function(c,a){var b=this;return a==null&&(a=!0),e(b,'append_paths',l(b.$require_paths_for_gem(c,a)))},-2),c.$private(),g(c,'$require_paths_for_gem',function(i,j){var k=this,a=b,c=b,g=b;return a=[],c=m(d('Gem'),'Specification').$find_by_name(i),h(c)||k.$raise(d('GemNotFound'),i),h(j)&&e(c.$runtime_dependencies(),'each',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=b),a=f(a,e.$require_paths_for_gem(c.$name(),j))},{$$s:k}),g=c.$gem_dir(),e(c.$require_paths(),'map',[],function(c){return c==null&&(c=b),a['$<<'](d('File').$join(g,c))}),a})}(o[0],o),i.$extend(n('UseGem')),c(i,'$paths',function(){var a=this;return a.paths==null&&(a.paths=b),a.paths.$freeze()}),c(i,'$reset_paths!',function(){var a=this;return a.paths=[a.$core_dir(),a.$std_dir(),a.$gem_dir()],b,b}),i['$reset_paths!']()}(i[0],i)},Opal.modules.js=function(b){var h=b.module,a=b.def,d=b.truthy,e=b.slice,f=b.alias,g=[],c=b.nil;return b.add_stubs('insert,<<,global,call,extend'),function(i){var g=h(i,'JS');return a(g,'$delete',function(a,b){return delete a[b]}),a(g,'$global',function(){return b.global}),a(g,'$in',function(a,b){return a in b}),a(g,'$instanceof',function(a,b){return a instanceof b}),d(typeof Function.prototype.bind=='function')?a(g,'$new',function b(f,i){var g=b.$$p||c,h,a;return b.$$p=null,h=e(arguments,1),a=h,a.$insert(0,this),d(g)&&a['$<<'](g),new(f.bind.apply(f,a))},-2):a(g,'$new',function i(f,j){var g=i.$$p||c,h,b,a=c;return i.$$p=null,h=e(arguments,1),b=h,d(g)&&b['$<<'](g),a=function(){return f.apply(this,b)},a.prototype=f.prototype,new a},-2),a(g,'$typeof',function(a){return typeof a}),a(g,'$void',function(a){}),a(g,'$call',function f(j,k){var g=f.$$p||c,h,b,i=this,a=c;return f.$$p=null,h=e(arguments,1),b=h,a=i.$global(),d(g)&&b['$<<'](g),a[j].apply(a,b)},-2),a(g,'$[]',function(a){return b.global[a]}),f(g,"method_missing","call"),g.$extend(g)}(g[0])},Opal.modules["bigdecimal/bignumber"]=function(a){var c=a.klass,b=[],d=a.$r(b),e=a.nil;return function(e,f){var d=c(e,f,'BigDecimal'),b=function(b){a.const_set(d,'BigNumber',b())};b.amd=!0,!function(q){"use strict";function o(X){function b(d,h){var k,g,f,j,i,c,e=this;if(!(e instanceof b))return D&&F(26,"constructor call without new",d),new b(d,h);if(null!=h&&q(h,2,64,C,"base")){if(h=0|h,c=d+"",10==h)return e=new b(d instanceof b?d:c),G(e,I+e.e+1,E);if((j="number"==typeof d)&&0*d!=0||!new RegExp("^-?"+(k="["+v.slice(0,h)+"]+")+"(?:\\."+k+")?$",37>h?"i":"").test(c))return r(e,c,j,h);j?(e.s=0>1/d?(c=c.slice(1),-1):1,D&&c.replace(/^0\.0*|\./,"").length>15&&F(C,y,d),j=!1):e.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1,c=W(c,10,h,e.s)}else{if(d instanceof b)return e.s=d.s,e.e=d.e,e.c=(d=d.c)&&d.slice(),void(C=0);if((j="number"==typeof d)&&0*d==0){if(e.s=0>1/d?(d=-d,-1):1,d===~~d){for(g=0,f=d;f>=10;f/=10,g++);return e.e=g,e.c=[d],void(C=0)}c=d+""}else{if(!B.test(c=d+""))return r(e,c,j);e.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1}}for((g=c.indexOf("."))>-1&&(c=c.replace(".","")),(f=c.search(/e/i))>0?(0>g&&(g=f),g+=+c.slice(f+1),c=c.substring(0,f)):0>g&&(g=c.length),f=0;48===c.charCodeAt(f);f++);for(i=c.length;48===c.charCodeAt(--i););if(c=c.slice(f,i+1))if(i=c.length,j&&D&&i>15&&F(C,y,e.s*d),g=g-f-1,g>J)e.c=e.e=null;else if(O>g)e.c=[e.e=0];else{if(e.e=g,e.c=[],f=(g+1)%a,0>g&&(f+=a),i>f){for(f&&e.c.push(+c.slice(0,f)),i-=a;i>f;)e.c.push(+c.slice(f,f+=a));c=c.slice(f),f=a-c.length}else f-=i;for(;f--;c+="0");e.c.push(+c)}else e.c=[e.e=0];C=0}function W(d,n,o,q){var h,k,e,i,c,a,m,f=d.indexOf("."),p=I,l=E;for(37>o&&(d=d.toLowerCase()),f>=0&&(e=K,K=0,d=d.replace(".",""),m=new b(o),c=m.pow(d.length-f),K=e,m.c=z(j(g(c.c),c.e),10,n),m.e=m.c.length),a=z(d,o,n),k=e=a.length;0==a[--e];a.pop());if(!a[0])return"0";if(0>f?--k:(c.c=a,c.e=k,c.s=q,c=H(c,m,p,l,n),a=c.c,i=c.r,k=c.e),h=k+p+1,f=a[h],e=n/2,i=i||0>h||null!=a[h+1],i=4>l?(null!=f||i)&&(0==l||l==(c.s<0?3:2)):f>e||f==e&&(4==l||i||6==l&&1&a[h-1]||l==(c.s<0?8:7)),1>h||!a[0])d=i?j("1",-p):"0";else{if(a.length=h,i)for(--n;++a[--h]>n;)a[h]=0,h||(++k,a.unshift(1));for(e=a.length;!a[--e];);for(f=0,d="";e>=f;d+=v.charAt(a[f++]));d=j(d,k)}return d}function Q(c,d,k,h){var l,e,i,f,a;if(k=null!=k&&q(k,0,8,h,t)?0|k:E,!c.c)return c.toString();if(l=c.c[0],i=c.e,null==d)a=g(c.c),a=19==h||24==h&&N>=i?n(a,i):j(a,i);else if(c=G(new b(c),d,k),e=c.e,a=g(c.c),f=a.length,19==h||24==h&&(e>=d||N>=e)){for(;d>f;a+="0",f++);a=n(a,e)}else if(d-=i,a=j(a,e),e+1>f){if(--d>0)for(a+=".";d--;a+="0");}else if(d+=e-f,d>0)for(e+1==f&&(a+=".");d--;a+="0");return c.s<0&&l?"-"+a:a}function V(a,f){var c,d,e=0;for(x(a[0])&&(a=a[0]),c=new b(a[0]);++ea||a>c||a!=u(a))&&F(d,(e||"decimal places")+(b>a||a>c?" out of range":" not an integer"),a),!0}function T(b,c,d){for(var f=1,e=c.length;!c[--e];c.pop());for(e=c[0];e>=10;e/=10,f++);return(d=f+d*a-1)>J?b.c=b.e=null:O>d?b.c=[b.e=0]:(b.e=d,b.c=c),b}function F(b,c,d){var a=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"][b]+"() "+c+": "+d);throw a.name="BigNumber Error",C=0,a}function G(g,n,o,l){var i,d,c,f,j,e,q,b=g.c,m=w;if(b){e:{for(i=1,f=b[0];f>=10;f/=10,i++);if(d=n-i,0>d)d+=a,c=n,j=b[e=0],q=j/m[i-c-1]%10|0;else if(e=p((d+1)/a),e>=b.length){if(!l)break e;for(;b.length<=e;b.push(0));j=q=0,i=1,d%=a,c=d-a+1}else{for(j=f=b[e],i=1;f>=10;f/=10,i++);d%=a,c=d-a+i,q=0>c?0:j/m[i-c-1]%10|0}if(l=l||0>n||null!=b[e+1]||(0>c?j:j%m[i-c-1]),l=4>o?(q||l)&&(0==o||o==(g.s<0?3:2)):q>5||5==q&&(4==o||l||6==o&&(d>0?c>0?j/m[i-c]:0:b[e-1])%10&1||o==(g.s<0?8:7)),1>n||!b[0])return b.length=0,l?(n-=g.e+1,b[0]=m[(a-n%a)%a],g.e=-n||0):b[0]=g.e=0,g;if(0==d?(b.length=e,f=1,e--):(b.length=e+1,f=m[a-d],b[e]=c>0?k(j/m[i-c]%m[c])*f:0),l)for(;;){if(0==e){for(d=1,c=b[0];c>=10;c/=10,d++);for(c=b[0]+=f,f=1;c>=10;c/=10,f++);d!=f&&(g.e++,b[0]==h&&(b[0]=1));break}if(b[e]+=f,b[e]!=h)break;b[e--]=0,f=1}for(d=b.length;0===b[--d];b.pop());}g.e>J?g.c=g.e=null:g.ei?null!=(a=h[i++]):void 0};return f(b="DECIMAL_PLACES")&&q(a,0,c,2,b)&&(I=0|a),d[b]=I,f(b="ROUNDING_MODE")&&q(a,0,8,2,b)&&(E=0|a),d[b]=E,f(b="EXPONENTIAL_AT")&&(x(a)?q(a[0],-c,0,2,b)&&q(a[1],0,c,2,b)&&(N=0|a[0],P=0|a[1]):q(a,-c,c,2,b)&&(N=-(P=0|(0>a?-a:a)))),d[b]=[N,P],f(b="RANGE")&&(x(a)?q(a[0],-c,-1,2,b)&&q(a[1],1,c,2,b)&&(O=0|a[0],J=0|a[1]):q(a,-c,c,2,b)&&(0|a?O=-(J=0|(0>a?-a:a)):D&&F(2,b+" cannot be zero",a))),d[b]=[O,J],f(b="ERRORS")&&(a===!!a||1===a||0===a?(C=0,q=(D=!!a)?U:A):D&&F(2,b+s,a)),d[b]=D,f(b="CRYPTO")&&(a===!!a||1===a||0===a?(R=!(!a||!e),a&&!R&&D&&F(2,"crypto unavailable",e)):D&&F(2,b+s,a)),d[b]=R,f(b="MODULO_MODE")&&q(a,0,9,2,b)&&(S=0|a),d[b]=S,f(b="POW_PRECISION")&&q(a,0,c,2,b)&&(K=0|a),d[b]=K,f(b="FORMAT")&&("object"==typeof a?M=a:D&&F(2,b+" not an object",a)),d[b]=M,d},b.max=function(){return V(arguments,d.lt)},b.min=function(){return V(arguments,d.gt)},b.random=function(){var d=9007199254740992,f=Math.random()*d&2097151?function(){return k(Math.random()*d)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(l){var h,n,m,j,g,d=0,i=[],o=new b(L);if(l=null!=l&&q(l,0,c,14)?0|l:I,j=p(l/a),R)if(e&&e.getRandomValues){for(h=e.getRandomValues(new Uint32Array(j*=2));j>d;)g=131072*h[d]+(h[d+1]>>>11),g>=9e15?(n=e.getRandomValues(new Uint32Array(2)),h[d]=n[0],h[d+1]=n[1]):(i.push(g%1e14),d+=2);d=j/2}else if(e&&e.randomBytes){for(h=e.randomBytes(j*=7);j>d;)g=281474976710656*(31&h[d])+1099511627776*h[d+1]+4294967296*h[d+2]+16777216*h[d+3]+(h[d+4]<<16)+(h[d+5]<<8)+h[d+6],g>=9e15?e.randomBytes(7).copy(h,d):(i.push(g%1e14),d+=7);d=j/7}else D&&F(14,"crypto unavailable",e);if(!d)for(;j>d;)g=f(),9e15>g&&(i[d++]=g%1e14);for(j=i[--d],l%=a,j&&l&&(g=w[a-l],i[d]=k(j/g)*g);0===i[d];i.pop(),d--);if(0>d)i=[m=0];else{for(m=-1;0===i[0];i.shift(),m-=a);for(d=1,g=i[0];g>=10;g/=10,d++);a>d&&(m-=a-d)}return o.e=m,o.c=i,o}}(),H=function(){function c(a,h,j){var d,e,f,g,b=0,c=a.length,k=h%i,l=h/i|0;for(a=a.slice();c--;)f=a[c]%i,g=a[c]/i|0,d=l*f+g*k,e=k*f+d%i*i+b,b=(e/j|0)+(d/i|0)+l*g,a[c]=e%j;return b&&a.unshift(b),a}function d(d,e,c,f){var a,b;if(c!=f)b=c>f?1:-1;else for(a=b=0;c>a;a++)if(d[a]!=e[a]){b=d[a]>e[a]?1:-1;break}return b}function e(a,d,b,e){for(var c=0;b--;)a[b]-=c,c=a[b]1;a.shift());}return function(x,y,F,H,n){var w,v,p,z,j,r,s,t,u,i,l,B,A,E,D,q,C,o=x.s==y.s?1:-1,m=x.c,g=y.c;if(!(m&&m[0]&&g&&g[0]))return new b(x.s&&y.s&&(m?!g||m[0]!=g[0]:g)?m&&0==m[0]||!g?0*o:o/0:NaN);for(t=new b(o),u=t.c=[],v=x.e-y.e,o=F+v+1,n||(n=h,v=f(x.e/a)-f(y.e/a),o=o/a|0),p=0;g[p]==(m[p]||0);p++);if(g[p]>(m[p]||0)&&v--,0>o)u.push(1),z=!0;else{for(E=m.length,q=g.length,p=0,o+=2,j=k(n/(g[0]+1)),j>1&&(g=c(g,j,n),m=c(m,j,n),q=g.length,E=m.length),A=q,i=m.slice(0,q),l=i.length;q>l;i[l++]=0);C=g.slice(),C.unshift(0),D=g[0],g[1]>=n/2&&D++;do{if(j=0,w=d(g,i,q,l),0>w){{if(B=i[0],q!=l&&(B=B*n+(i[1]||0)),j=k(B/D),j>1)for(j>=n&&(j=n-1),r=c(g,j,n),s=r.length,l=i.length;1==d(r,i,s,l);)j--,e(r,s>q?C:g,s,n),s=r.length,w=1;else 0==j&&(w=j=1),r=g.slice(),s=r.length;if(l>s&&r.unshift(0),e(i,r,l,n),l=i.length,-1==w)for(;d(g,i,q,l)<1;)j++,e(i,l>q?C:g,l,n),l=i.length}}else 0===w&&(j++,i=[0]);u[p++]=j,i[0]?i[l++]=m[A]||0:(i=[m[A]],l=1)}while((A++=10;o/=10,p++);G(t,F+(t.e=p+v*a-1)+1,H,z)}else t.e=v,t.r=+z;return t}}(),r=function(){var a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,c=/^([^.]+)\.$/,d=/^\.([^.]+)$/,e=/^-?(Infinity|NaN)$/,f=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(i,j,l,h){var k,g=l?j:j.replace(f,"");if(e.test(g))i.s=isNaN(g)?null:0>g?-1:1;else{if(!l&&(g=g.replace(a,function(b,c,a){return k="x"==(a=a.toLowerCase())?16:"b"==a?2:8,h&&h!=k?b:c}),h&&(k=h,g=g.replace(c,"$1").replace(d,"0.$1")),j!=g))return new b(g,k);D&&F(C,"not a"+(h?" base "+h:"")+" number",j),i.s=null}i.c=i.e=null,C=0}}(),d.absoluteValue=d.abs=function(){var a=new b(this);return a.s<0&&(a.s=1),a},d.ceil=function(){return G(new b(this),this.e+1,2)},d.comparedTo=d.cmp=function(a,c){return C=1,m(this,new b(a,c))},d.decimalPlaces=d.dp=function(){var b,c,d=this.c;if(!d)return null;if(b=((c=d.length-1)-f(this.e/a))*a,c=d[c])for(;c%10==0;c/=10,b--);return 0>b&&(b=0),b},d.dividedBy=d.div=function(a,c){return C=3,H(this,new b(a,c),I,E)},d.dividedToIntegerBy=d.divToInt=function(a,c){return C=4,H(this,new b(a,c),0,1)},d.equals=d.eq=function(a,c){return C=5,0===m(this,new b(a,c))},d.floor=function(){return G(new b(this),this.e+1,3)},d.greaterThan=d.gt=function(a,c){return C=6,m(this,new b(a,c))>0},d.greaterThanOrEqualTo=d.gte=function(c,a){return C=7,1===(a=m(this,new b(c,a)))||0===a},d.isFinite=function(){return!!this.c},d.isInteger=d.isInt=function(){return!!this.c&&f(this.e/a)>this.c.length-2},d.isNaN=function(){return!this.s},d.isNegative=d.isNeg=function(){return this.s<0},d.isZero=function(){return!!this.c&&0==this.c[0]},d.lessThan=d.lt=function(a,c){return C=8,m(this,new b(a,c))<0},d.lessThanOrEqualTo=d.lte=function(c,a){return C=9,-1===(a=m(this,new b(c,a)))||0===a},d.minus=d.sub=function(e,d){var k,j,m,p,n=this,i=n.s,o,l,c,g;if(C=10,e=new b(e,d),d=e.s,!i||!d)return new b(NaN);if(i!=d)return e.s=-d,n.plus(e);if(o=n.e/a,l=e.e/a,c=n.c,g=e.c,!o||!l){if(!c||!g)return c?(e.s=-d,e):new b(g?n:NaN);if(!c[0]||!g[0])return g[0]?(e.s=-d,e):new b(c[0]?n:3==E?-0:0)}if(o=f(o),l=f(l),c=c.slice(),i=o-l){for((p=0>i)?(i=-i,m=c):(l=o,m=g),m.reverse(),d=i;d--;m.push(0));m.reverse()}else for(j=(p=(i=c.length)<(d=g.length))?i:d,i=d=0;j>d;d++)if(c[d]!=g[d]){p=c[d]0)for(;d--;c[k++]=0);for(d=h-1;j>i;){if(c[--j]0?(j=m,k=i):(c=-c,k=d),k.reverse();c--;k.push(0));k.reverse()}for(c=d.length,e=i.length,0>c-e&&(k=i,i=d,d=k,e=c),c=0;e;)c=(d[--e]=d[e]+i[e]+c)/h|0,d[e]%=h;return c&&(d.unshift(c),++j),T(g,d,j)},d.precision=d.sd=function(b){var d,c,f=this,e=f.c;if(null!=b&&b!==!!b&&1!==b&&0!==b&&(D&&F(13,"argument"+s,b),b!=!!b&&(b=null)),!e)return null;if(c=e.length-1,d=c*a+1,c=e[c]){for(;c%10==0;c/=10,d--);for(c=e[0];c>=10;c/=10,d++);}return b&&f.e+1>d&&(d=f.e+1),d},d.round=function(a,d){var e=new b(this);return(null==a||q(a,0,c,15))&&G(e,~~a+this.e+1,null!=d&&q(d,0,8,15,t)?0|d:E),e},d.shift=function(a){var c=this;return q(a,-l,l,16,"argument")?c.times("1e"+u(a)):new b(c.c&&c.c[0]&&(-l>a||a>l)?c.s*(0>a?0:1/0):c)},d.squareRoot=d.sqrt=function(){var m,c,d,k,h,i=this,j=i.c,a=i.s,e=i.e,l=I+4,n=new b("0.5");if(1!==a||!j||!j[0])return new b(!a||0>a&&(!j||j[0])?NaN:j?i:1/0);if(a=Math.sqrt(+i),0==a||a==1/0?(c=g(j),(c.length+e)%2==0&&(c+="0"),a=Math.sqrt(c),e=f((e+1)/2)-(0>e||e%2),a==1/0?c="1e"+e:(c=a.toExponential(),c=c.slice(0,c.indexOf("e")+1)+e),d=new b(c)):d=new b(a+""),d.c[0])for(e=d.e,a=e+l,3>a&&(a=0);;)if(h=d,d=n.times(h.plus(H(i,h,l,1))),g(h.c).slice(0,a)===(c=g(d.c)).slice(0,a)){if(d.em&&(j=d,d=e,e=j,g=m,m=l,l=g),g=m+l,j=[];g--;j.push(0));for(u=h,k=i,g=l;--g>=0;){for(p=0,v=e[g]%k,t=e[g]/k|0,r=m,q=g+r;q>g;)n=d[--r]%k,x=d[r]/k|0,w=t*n+x*v,n=v*n+w%k*k+j[q]+p,p=(n/u|0)+(w/k|0)+t*x,j[q--]=n%u;j[q]=p}return p?++s:j.shift(),T(c,j,s)},d.toDigits=function(a,d){var e=new b(this);return a=null!=a&&q(a,1,c,18,"precision")?0|a:null,d=null!=d&&q(d,0,8,18,t)?0|d:E,a?G(e,a,d):e},d.toExponential=function(a,b){return Q(this,null!=a&&q(a,0,c,19)?~~a+1:null,b,19)},d.toFixed=function(a,b){return Q(this,null!=a&&q(a,0,c,20)?~~a+this.e+1:null,b,20)},d.toFormat=function(h,n){var i=Q(this,null!=h&&q(h,0,c,21)?~~h+this.e+1:null,n,21),b,m,d,e,k,a,j,l,f,g;if(this.c){if(m=i.split("."),d=+M.groupSize,e=+M.secondaryGroupSize,k=M.groupSeparator,a=m[0],j=m[1],l=this.s<0,f=l?a.slice(1):a,g=f.length,e&&(b=d,d=e,e=b,g-=b),d>0&&g>0){for(b=g%d||d,a=f.substr(0,b);g>b;b+=d)a+=k+f.substr(b,d);e>0&&(a+=k+f.slice(b)),l&&(a="-"+a)}i=j?a+M.decimalSeparator+((e=+M.fractionGroupSize)?j.replace(new RegExp("\\d{"+e+"}\\B","g"),"$&"+M.fractionGroupSeparator):j):a}return i},d.toFraction=function(h){var s,f,d,m,n,c,e,o,q,p=D,l=this,r=l.c,j=new b(L),i=f=new b(L),k=e=new b(L);if(null!=h&&(D=!1,c=new b(h),D=p,(!(p=c.isInt())||c.lt(L))&&(D&&F(22,"max denominator "+(p?"out of range":"not an integer"),h),h=!p&&c.c&&G(c,c.e+1,1).gte(L)?c:null)),!r)return l.toString();for(q=g(r),m=j.e=q.length-l.e-1,j.c[0]=w[(n=m%a)<0?a+n:n],h=!h||c.cmp(j)>0?m>0?j:i:c,n=J,J=1/0,c=new b(q),e.c[0]=0;o=H(c,j,0,1),d=f.plus(o.times(k)),1!=d.cmp(h);)f=k,k=d,i=e.plus(o.times(d=i)),e=d,j=c.minus(o.times(d=j)),c=d;return d=H(h.minus(f),k,0,1),e=e.plus(d.times(i)),f=f.plus(d.times(k)),e.s=i.s=l.s,m*=2,s=H(i,k,m,E).minus(l).abs().cmp(H(e,f,m,E).minus(l).abs())<1?[i.toString(),k.toString()]:[e.toString(),f.toString()],J=n,s},d.toNumber=function(){return+this},d.toPower=d.pow=function(c){var e,d,g=k(0>c?-c:+c),f=this;if(!q(c,-l,l,23,"exponent")&&(!isFinite(c)||g>l&&(c/=0)||parseFloat(c)!=c&&!(c=NaN)))return new b(Math.pow(+f,c));for(e=K?p(K/a+2):0,d=new b(L);;){if(g%2){if(d=d.times(f),!d.c)break;e&&d.c.length>e&&(d.c.length=e)}if(g=k(g/2),!g)break;f=f.times(f),e&&f.c&&f.c.length>e&&(f.c.length=e)}return 0>c&&(d=L.div(d)),e?G(d,K,E):d},d.toPrecision=function(a,b){return Q(this,null!=a&&q(a,1,c,24,"precision")?0|a:null,b,24)},d.toString=function(e){var a,c=this,d=c.s,b=c.e;return null===b?d?(a="Infinity",0>d&&(a="-"+a)):a="NaN":(a=g(c.c),a=null!=e&&q(e,2,64,25,"base")?W(j(a,b),0|e,10,d):N>=b||b>=P?n(a,b):j(a,b),0>d&&c.c[0]&&(a="-"+a)),a},d.truncated=d.trunc=function(){return G(new b(this),this.e+1,1)},d.valueOf=d.toJSON=function(){var a,c=this,b=c.e;return null===b?c.toString():(a=g(c.c),a=N>=b||b>=P?n(a,b):j(a,b),c.s<0?"-"+a:a)},null!=X&&b.config(X),b}function f(a){var b=0|a;return a>0||a===b?b:b-1}function g(e){for(var b,f,g=1,c=e.length,d=e[0]+"";c>g;){for(b=e[g++]+"",f=a-b.length;f--;b="0"+b);d+=b}for(c=d.length;48===d.charCodeAt(--c););return d.slice(0,c+1||1)}function m(i,j){var b,d,c=i.c,e=j.c,a=i.s,h=j.s,f=i.e,g=j.e;if(!a||!h)return null;if(b=c&&!c[0],d=e&&!e[0],b||d)return b?d?0:-h:a;if(a!=h)return a;if(b=0>a,d=f==g,!c||!e)return d?0:!c^b?1:-1;if(!d)return f>g^b?1:-1;for(h=(f=c.length)<(g=e.length)?f:g,a=0;h>a;a++)if(c[a]!=e[a])return c[a]>e[a]^b?1:-1;return f==g?0:f>g^b?1:-1}function A(a,b,c){return(a=u(a))>=b&&c>=a}function x(a){return"[object Array]"==Object.prototype.toString.call(a)}function z(e,g,c){for(var b,d,a=[0],f=0,h=e.length;h>f;){for(d=a.length;d--;a[d]*=g);for(a[b=0]+=v.indexOf(e.charAt(f++));bc-1&&(null==a[b+1]&&(a[b+1]=0),a[b+1]+=a[b]/c|0,a[b]%=c)}return a.reverse()}function n(a,b){return(a.length>1?a.charAt(0)+"."+a.slice(1):a)+(0>b?"e":"e+")+b}function j(a,b){var d,c;if(0>b){for(c="0.";++b;c+="0");a=c+a}else if(d=a.length,++b>d){for(c="0",b-=d;--b;c+="0");a+=c}else d>b&&(a=a.slice(0,b)+"."+a.slice(b));return a}function u(a){return a=parseFloat(a),0>a?p(a):k(a)}var e,r,B=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,p=Math.ceil,k=Math.floor,s=" not a boolean or binary digit",t="rounding mode",y="number type has more than 15 significant digits",v="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",h=1e14,a=14,l=9007199254740991,w=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],i=1e7,c=1e9;if("undefined"!=typeof crypto&&(e=crypto),"function"==typeof b&&b.amd)b(function(){return o()});else if("undefined"!=typeof module&&module.exports){if(module.exports=o(),!e)try{e=require("crypto")}catch(a){}}else q||(q="undefined"!=typeof d?d:Function("return this")()),q.BigNumber=o()}(this)}(b[0],d('Numeric'))},Opal.modules.bigdecimal=function(c){var o=c.klass,r=c.module,d=c.def,q=c.slice,w=c.extract_kwargs,A=c.ensure_kwargs,z=c.kwrestargs,y=c.send,x=c.to_a,m=c.defs,e=c.const_set,b=c.truthy,f=c.eqeqeq,k=c.send2,j=c.find_super,p=c.rb_lt,g=c.to_ary,s=c.rb_gt,t=c.rb_ge,u=c.eqeq,v=c.rb_divide,i=c.alias,n=c.top,h=[],l=c.$r(h),a=c.nil;return c.add_stubs('require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?,add,minus,mult,quo,to_s'),o(h[0],l('Numeric'),'BigDecimal'),n.$require("js"),n.$require("bigdecimal/bignumber"),function(e,f){var b=r(e,'Kernel'),g=[b].concat(f),h=c.$r(g);return d(b,'$BigDecimal',function(d,b){var c=a;return b==null&&(b=0),c=h('BigDecimal').$allocate(),c.$initialize(d,b),c},-2)}(h[0],h),m(l('BigDecimal'),'$new',function(i,g){var b,a,f,d,e=this;return b=q(arguments),a=w(b),a=A(a),f=b,d=z(a,{}),e.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",new Map([["uplevel",1]])),y(e,'BigDecimal',x(f).concat([c.to_hash(d)]))},-1),function(q,r,w){var h=o(q,r,'BigDecimal'),n=[h].concat(w),l=c.$r(n);return e(n[0],'VERSION',"0"),e(n[0],'ROUND_MODE',256),e(n[0],'ROUND_UP',0),e(n[0],'ROUND_DOWN',1),e(n[0],'ROUND_CEILING',2),e(n[0],'ROUND_FLOOR',3),e(n[0],'ROUND_HALF_UP',4),e(n[0],'ROUND_HALF_DOWN',5),e(n[0],'ROUND_HALF_EVEN',6),e(n[0],'SIGN_NaN',0),e(n[0],'SIGN_POSITIVE_ZERO',1),e(n[0],'SIGN_NEGATIVE_ZERO',-1),e(n[0],'SIGN_POSITIVE_FINITE',2),e(n[0],'SIGN_NEGATIVE_FINITE',-2),e(n[0],'SIGN_POSITIVE_INFINITE',3),e(n[0],'SIGN_NEGATIVE_INFINITE',-3),m(h,'$limit',function(c){var d=this;return d.digits==null&&(d.digits=a),c==null&&(c=a),b(c)&&(d.digits=c),d.digits},-1),m(h,'$mode',function(g,c){var d=this,h=a,e=a;return d.round_mode==null&&(d.round_mode=a),c==null&&(c=a),f(l('ROUND_MODE'),h=g)?(b(c)&&(d.round_mode=c),b(e=d.round_mode))?e:l('ROUND_HALF_UP'):a},-2),h.$attr_reader("bignumber"),d(h,'$initialize',function(b,a){var c=this;return a==null&&(a=0),c.bignumber=l('JS').$new(l('BigNumber'),b)},-2),d(h,'$==',function(b){var c=this,d=a;return f(c.$class(),d=b)?c.$bignumber().equals(b.$bignumber()):!!f(l('Number'),d)&&c.$bignumber().equals(b)}),d(h,'$<=>',function(b){var c=this,d=a,e=a;return d=f(c.$class(),e=b)?c.$bignumber().comparedTo(b.$bignumber()):f(l('Number'),e)?c.$bignumber().comparedTo(b):a,d===null?a:d}),d(h,'$<',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'<',c,!1,!0),'<',[d],f)}),d(h,'$<=',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'<=',c,!1,!0),'<=',[d],f)}),d(h,'$>',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'>',c,!1,!0),'>',[d],f)}),d(h,'$>=',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'>=',c,!1,!0),'>=',[d],f)}),d(h,'$abs',function(){var a=this;return a.$class().$new(a.$bignumber().abs())}),d(h,'$add',function(i,c){var e,h,d=this,j=a,f=a;return c==null&&(c=0),b(c['$nil?']())&&d.$raise(l('TypeError'),"wrong argument type nil (expected Fixnum)"),b(p(c,0))&&d.$raise(l('ArgumentError'),"argument must be positive"),h=d.$coerce(i),e=g(h),i=e[0]==null?a:e[0],j=e[1]==null?a:e[1],h,f=d.$bignumber().plus(i.$bignumber()),b(s(c,0))&&(f=f.toDigits(c,d.$class().$mode(l('ROUND_MODE')))),d.$class().$new(f)},-2),d(h,'$ceil',function(d){var c=this;return d==null&&(d=a),b(c.$bignumber().isFinite())||c.$raise(l('FloatDomainError'),"Computation results to 'Infinity'"),b(d['$nil?']())?c.$bignumber().round(0,l('ROUND_CEILING')).toNumber():b(t(d,0))?c.$class().$new(c.$bignumber().round(d,l('ROUND_CEILING'))):c.$class().$new(c.$bignumber().round(0,l('ROUND_CEILING')))},-1),d(h,'$coerce',function(c){var b=this,d=a;return f(b.$class(),d=c)?[c,b]:f(l('Number'),d)?[b.$class().$new(c),b]:b.$raise(l('TypeError'),""+c.$class()+" can't be coerced into "+b.$class())}),d(h,'$div',function(d,e){var f,h,c=this,i=a;return e==null&&(e=a),u(e,0)?v(c,d):(h=c.$coerce(d),f=g(h),d=f[0]==null?a:f[0],i=f[1]==null?a:f[1],h,(b(c['$nan?']())||b(d['$nan?']()))&&c.$raise(l('FloatDomainError'),"Computation results to 'NaN'(Not a Number)"),b(e['$nil?']()))?(b(d['$zero?']())&&c.$raise(l('ZeroDivisionError'),"divided by 0"),b(c['$infinite?']())&&c.$raise(l('FloatDomainError'),"Computation results to 'Infinity'"),c.$class().$new(c.$bignumber().dividedToIntegerBy(d.$bignumber()))):c.$class().$new(c.$bignumber().dividedBy(d.$bignumber()).round(e,c.$class().$mode(l('ROUND_MODE'))))},-2),d(h,'$finite?',function(){var a=this;return a.$bignumber().isFinite()}),d(h,'$infinite?',function(){var c=this;return b(c['$finite?']())||b(c['$nan?']())?a:b(c.$bignumber().isNegative())?-1:1}),d(h,'$minus',function(c){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().minus(c.$bignumber()))}),d(h,'$mult',function(e,f){var d,h,c=this,i=a;return f==null&&(f=a),h=c.$coerce(e),d=g(h),e=d[0]==null?a:d[0],i=d[1]==null?a:d[1],h,b(f['$nil?']())?c.$class().$new(c.$bignumber().times(e.$bignumber())):c.$class().$new(c.$bignumber().times(e.$bignumber()).round(f,c.$class().$mode(l('ROUND_MODE'))))},-2),d(h,'$nan?',function(){var a=this;return a.$bignumber().isNaN()}),d(h,'$quo',function(c){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().dividedBy(c.$bignumber()))}),d(h,'$sign',function(){var c=this;return b(c.$bignumber().isNaN())?l('SIGN_NaN'):b(c.$bignumber().isZero())?b(c.$bignumber().isNegative())?l('SIGN_NEGATIVE_ZERO'):l('SIGN_POSITIVE_ZERO'):a}),d(h,'$sub',function(c,h){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().minus(c.$bignumber()))}),d(h,'$to_f',function(){var a=this;return a.$bignumber().toNumber()}),d(h,'$to_s',function(a){var b=this;return a==null&&(a=""),b.$bignumber().toString()},-1),d(h,'$zero?',function(){var a=this;return a.$bignumber().isZero()}),i(h,"===","=="),i(h,"+","add"),i(h,"-","minus"),i(h,"*","mult"),i(h,"/","quo"),i(h,"inspect","to_s")}(h[0],l('Numeric'),h)},Opal.modules.native=function(b){var r=b.hash_put,p=b.module,k=b.defs,h=b.slice,d=b.truthy,f=b.send,m=b.Kernel,A=b.extract_kwargs,D=b.ensure_kwargs,C=b.hash_get,B=b.range,j=b.to_a,c=b.def,s=b.return_ivar,l=b.alias,g=b.klass,o=b.rb_minus,y=b.return_val,v=b.send2,x=b.find_super,q=b.eqeqeq,w=b.rb_ge,u=b.return_self,t=b.gvars,z=b.top,e=[],n=b.$r(e),a=b.nil,i=b.$$$;return b.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,Array,to_a,_Array,method_missing,bind,instance_method,[]=,slice,-,length,has_key?,enum_for,===,>=,<<,each_pair,method_defined?,initialize,_initialize,name,native_module'),function(l,n){var e=p(l,'Native'),g=[e].concat(n),i=b.$r(g);return k(e,'$is_a?',function(a,b){var c=this;try{return a instanceof c.$try_convert(b)}catch(a){return!1}}),k(e,'$try_convert',function(b,c){var d=this;return c==null&&(c=a),d['$native?'](b)?b:b['$respond_to?']("to_n")?b.$to_n():c},-2),k(e,'$convert',function(a){var b=this;if(b['$native?'](a))return a;if(a['$respond_to?']("to_n"))return a.$to_n();b.$raise(i('ArgumentError'),""+a.$inspect()+" isn't native")}),k(e,'$call',function g(l,o,p){var j=g.$$p||a,i,b,f=this,e,d,c,n,k,m;if(g.$$p=null,i=h(arguments,2),b=i,e=l[o],e instanceof Function){d=new Array(b.length);for(c=0,n=b.length;c0&&(b=i.shift()),b==null&&(b=l),e=C(k,"as"),e==null&&(e=a),d(b['$end_with?']("="))?f(c,'define_method',[l],function e(c){var d=e.$$s==null?this:e.$$s;return d.native==null&&(d.native=a),c==null&&(c=a),d.native[b['$[]'](B(0,-2,!1))]=g('Native').$convert(c),c},{$$s:c}):d(e)?f(c,'define_method',[l],function c(o){var n=c.$$p||a,l,m,i=c.$$s==null?this:c.$$s,k=a;return i.native==null&&(i.native=a),c.$$p=null,l=h(arguments),m=l,k=f(g('Native'),'call',[i.native,b].concat(j(m)),n.$to_proc()),d(k)?e.$new(k.$to_n()):a},{$$arity:-1,$$s:c}):f(c,'define_method',[l],function c(l){var k=c.$$p||a,e,i,d=c.$$s==null?this:c.$$s;return d.native==null&&(d.native=a),c.$$p=null,e=h(arguments),i=e,f(g('Native'),'call',[d.native,b].concat(j(i)),k.$to_proc())},{$$arity:-1,$$s:c})},-2),c(e,'$native_reader',function(g){var b,c,d=this;return b=h(arguments),c=b,f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f(d,'define_method',[b],function d(){var c=d.$$s==null?this:d.$$s;return c.native==null&&(c.native=a),c.$Native(c.native[b])},{$$s:d})},{$$s:d})},-1),c(e,'$native_writer',function(g){var b,c,d=this;return b=h(arguments),c=b,f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f(d,'define_method',[""+b+"="],function e(d){var c=e.$$s==null?this:e.$$s;return c.native==null&&(c.native=a),d==null&&(d=a),c.$Native(c.native[b]=d)},{$$s:d})},{$$s:d})},-1),c(e,'$native_accessor',function(e){var b,a,c=this;return b=h(arguments),a=b,f(c,'native_reader',j(a)),f(c,'native_writer',j(a))},-1)}(g[0],g),function(f,g){var a=p(f,'Wrapper'),h=[a].concat(g),e=b.$r(h);return c(a,'$initialize',function(a){var b=this;return d(m['$native?'](a))||m.$raise(e('ArgumentError'),""+a.$inspect()+" isn't native"),b.native=a}),c(a,'$to_n',s("native")),k(a,'$included',function(a){return a.$extend(e('Helpers'))})}(g[0],g),k(e,'$included',function(a){var b=this;return b.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),a.$include(i('Wrapper'))})}(e[0],e),function(k,m){var e=p(k,'Kernel'),n=[e].concat(m),g=b.$r(n);return c(e,'$native?',function(a){return a==null||!a.$$class}),c(e,'$Native',function e(b){var k=e.$$p||a,c=this;return e.$$p=null,d(b==null)?a:d(c['$native?'](b))?i(g('Native'),'Object').$new(b):d(b['$is_a?'](g('Array')))?f(b,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$Native(b)},{$$s:c}):d(b['$is_a?'](g('Proc')))?f(c,'proc',[],function c(k){var g=c.$$p||a,d,e,i=c.$$s==null?this:c.$$s;return c.$$p=null,d=h(arguments),e=d,i.$Native(f(b,'call',j(e),g.$to_proc()))},{$$arity:-1,$$s:c}):b}),l(e,"_Array","Array"),c(e,'$Array',function c(b,n){var m=c.$$p||a,e,k,l=this;return c.$$p=null,e=h(arguments,1),k=e,d(l['$native?'](b))?f(i(g('Native'),'Array'),'new',[b].concat(j(k)),m.$to_proc()).$to_a():l.$_Array(b)},-2)}(e[0],e),function(k,n){var e=g(k,n,'Object'),p=e.$$prototype;return p.native=a,e.$include(i(i('Native'),'Wrapper')),c(e,'$==',function(a){var b=this;return b.native===i('Native').$try_convert(a)}),c(e,'$has_key?',function(a){var c=this;return b.hasOwnProperty.call(c.native,a)}),c(e,'$each',function d(l){var e,g,i=d.$$p||a,c=this,k;if(d.$$p=null,e=h(arguments),g=e,i!==a){for(k in c.native)b.yieldX(i,[k,c.native[k]]);return c}return f(c,'method_missing',["each"].concat(j(g)))},-1),c(e,'$[]',function(a){var b=this,c=b.native[a];return c instanceof Function?c:i('Native').$call(b.native,a)}),c(e,'$[]=',function(c,e){var f=this,b=a;return b=i('Native').$try_convert(e),d(b===a)?f.native[c]=e:f.native[c]=b}),c(e,'$merge!',function(a){var b=this,c;a=i('Native').$convert(a);for(c in a)b.native[c]=a[c];return b}),c(e,'$respond_to?',function(b,a){var c=this;return a==null&&(a=!1),m.$instance_method("respond_to?").$bind(c).$call(b,a)},-2),c(e,'$respond_to_missing?',function(c,a){var d=this;return a==null&&(a=!1),b.hasOwnProperty.call(d.native,c)},-2),c(e,'$method_missing',function g(b,m){var l=g.$$p||a,e,d,c,k=this;return g.$$p=null,e=h(arguments,1),d=e,b.charAt(b.length-1)==='='?(c=[b.$slice(0,o(b.$length(),1)),d['$[]'](0)],f(k,'[]=',c),c[c.length-1]):f(i('Native'),'call',[k.native,b].concat(j(d)),l.$to_proc())},-2),c(e,'$nil?',y(!1)),c(e,'$is_a?',function(a){var c=this;return b.is_a(c,a)}),c(e,'$instance_of?',function(a){var b=this;return b.$$class===a}),c(e,'$class',function(){var a=this;return a.$$class}),c(e,'$to_a',function c(b){var d=c.$$p||a,e=this;return c.$$p=null,b==null&&(b=new Map),f(i(i('Native'),'Array'),'new',[e.native,b],d.$to_proc()).$to_a()},-1),c(e,'$inspect',function(){var a=this;return"#"}),l(e,"include?","has_key?"),l(e,"key?","has_key?"),l(e,"kind_of?","is_a?"),l(e,"member?","has_key?")}(n('Native'),n('BasicObject')),function(n,j,k){var e=g(n,j,'Array'),m=[e].concat(k),f=b.$r(m),h=e.$$prototype;return h.named=h.native=h.get=h.block=h.set=h.length=a,e.$include(i(f('Native'),'Wrapper')),e.$include(f('Enumerable')),c(e,'$initialize',function g(h,c){var i=g.$$p||a,b=this,e=a;return g.$$p=null,c==null&&(c=new Map),v(b,x(b,'initialize',g,!1,!0),'initialize',[h],null),b.get=d(e=c['$[]']("get"))?e:c['$[]']("access"),b.named=c['$[]']("named"),b.set=d(e=c['$[]']("set"))?e:c['$[]']("access"),b.length=d(e=c['$[]']("length"))?e:"length",b.block=i,d(b.$length()==null)?b.$raise(f('ArgumentError'),"no length found on the array-like object"):a},-2),c(e,'$each',function f(){var g=f.$$p||a,c=this,e,h;if(f.$$p=null,!d(g))return c.$enum_for("each");for(e=0,h=c.$length();e>8-a%1*8))d=f.charCodeAt(a+=3/4),d>255&&c.$raise(k('ArgumentError'),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),b=b<<8|d;return e},j=function(h){var f=String(h).replace(/=+$/,''),b,d,a,g,e;f.length%4==1&&c.$raise(k('ArgumentError'),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(b=0,d,a,g=0,e='';a=f.charAt(g++);~a&&(d=b%4?d*64+a:a,b++%4)?e+=String.fromCharCode(255&d>>(-2*b&6)):0)a=l.indexOf(a);return e};return b(c,'$decode64',function(a){return j(a.replace(/\r?\n/g,''))}),b(c,'$encode64',function(a){return i(a).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),b(c,'$strict_decode64',function(a){return j(a)}),b(c,'$strict_encode64',function(a){return i(a)}),b(c,'$urlsafe_decode64',function(a){return j(a.replace(/\-/g,'+').replace(/_/g,'/'))}),b(c,'$urlsafe_encode64',function(d,c){var a,b=h;return c=e(c),a=f(c,"padding"),a==null&&(a=!0),b=i(d).replace(/\+/g,'-').replace(/\//g,'_'),g(a)||(b=b.$delete("=")),b},-2)}(c[0],c)},Opal.modules.console=function(a){var l=a.klass,b=a.def,d=a.slice,e=a.truthy,f=a.eqeq,h=a.send,j=a.gvars,i=a.top,g=[],k=a.$r(g),c=a.nil,m=a.$$$;return a.add_stubs('require,include,raise,==,arity,instance_exec,to_proc,new'),i.$require("native"),function(j,k,n){var g=l(j,k,'Console'),o=[g].concat(n),i=a.$r(o),p=g.$$prototype;return p.native=c,g.$include(m(i('Native'),'Wrapper')),b(g,'$clear',function(){var a=this;return a.native.clear()}),b(g,'$trace',function(){var a=this;return a.native.trace()}),b(g,'$log',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.log.apply(c.native,b)},-1),b(g,'$info',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.info.apply(c.native,b)},-1),b(g,'$warn',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.warn.apply(c.native,b)},-1),b(g,'$error',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.error.apply(c.native,b)},-1),b(g,'$time',function g(j){var d=g.$$p||c,b=this;return g.$$p=null,e(d)||b.$raise(i('ArgumentError'),"no block given"),b.native.time(j),function(){try{return f(d.$arity(),0)?h(b,'instance_exec',[],d.$to_proc()):a.yield1(d,b)}finally{b.native.timeEnd()}}()}),b(g,'$group',function j(m){var g=j.$$p||c,k,l,b=this;return j.$$p=null,k=d(arguments),l=k,e(g)||b.$raise(i('ArgumentError'),"no block given"),b.native.group.apply(b.native,l),function(){try{return f(g.$arity(),0)?h(b,'instance_exec',[],g.$to_proc()):a.yield1(g,b)}finally{b.native.groupEnd()}}()},-1),b(g,'$group!',function g(k){var e=g.$$p||c,i,j,b=this;return g.$$p=null,i=d(arguments),j=i,!(e!==c)?c:(b.native.groupCollapsed.apply(b.native,j),function(){try{return f(e.$arity(),0)?h(b,'instance_exec',[],e.$to_proc()):a.yield1(e,b)}finally{b.native.groupEnd()}}())},-1)}(g[0],null,g),e(typeof a.global.console!="undefined")?j.console=k('Console').$new(a.global.console):c},Opal.modules.forwardable=function(c){var i=c.module,b=c.send,g=c.truthy,e=c.def,f=c.slice,h=c.to_a,d=c.alias,j=[],a=c.nil;return c.add_stubs('each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,instance_delegate,def_instance_delegators,def_single_delegator,define_singleton_method,single_delegate,def_single_delegators'),function(j){var c=i(j,'Forwardable');return e(c,'$instance_delegate',function(c){var d=this;return b(c,'each',[],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),g(c['$respond_to?']("each"))||(c=[c]),b(c,'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),e.$def_instance_delegator(d,b)},{$$s:f})},{$$s:d})}),e(c,'$def_instance_delegators',function(e,j){var c,d,h=this;return c=f(arguments,1),d=c,b(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),g(["__send__","__id__"]['$include?'](b))?a:d.$def_instance_delegator(e,b)},{$$s:h})},-2),e(c,'$def_instance_delegator',function j(e,i,c){var k=j.$$p||a,d=this;return j.$$p=null,c==null&&(c=i),g(e.$to_s()['$start_with?']("@"))?b(d,'define_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$instance_variable_get(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d}):b(d,'define_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$__send__(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d})},-3),d(c,"delegate","instance_delegate"),d(c,"def_delegators","def_instance_delegators"),d(c,"def_delegator","def_instance_delegator")}(j[0]),function(j){var c=i(j,'SingleForwardable');return e(c,'$single_delegate',function(c){var d=this;return b(c,'each',[],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),g(c['$respond_to?']("each"))||(c=[c]),b(c,'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),e.$def_single_delegator(d,b)},{$$s:f})},{$$s:d})}),e(c,'$def_single_delegators',function(e,j){var c,d,h=this;return c=f(arguments,1),d=c,b(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),g(["__send__","__id__"]['$include?'](b))?a:d.$def_single_delegator(e,b)},{$$s:h})},-2),e(c,'$def_single_delegator',function j(e,i,c){var k=j.$$p||a,d=this;return j.$$p=null,c==null&&(c=i),g(e.$to_s()['$start_with?']("@"))?b(d,'define_singleton_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$instance_variable_get(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d}):b(d,'define_singleton_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$__send__(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d})},-3),d(c,"delegate","single_delegate"),d(c,"def_delegators","def_single_delegators"),d(c,"def_delegator","def_single_delegator")}(j[0])},Opal.modules["date/infinity"]=function(a){var e=a.klass,b=a.def,f=a.return_val,d=a.eqeqeq,m=a.to_ary,l=a.send2,n=a.find_super,i=a.eqeq,j=a.truthy,k=a.rb_gt,g=[],c=a.nil,h=a.$$$;return a.add_stubs('include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>'),function(o,p,q){var r=e(o,p,'Date'),g=[r].concat(q),s=a.$r(g);return function(p,q,r){var g=e(p,q,'Infinity'),s=[g].concat(r),o=a.$r(s),t=g.$$prototype;return t.d=c,g.$include(o('Comparable')),b(g,'$initialize',function(a){var b=this;return a==null&&(a=1),b.d=a['$<=>'](0)},-1),g.$attr_reader("d"),b(g,'$zero?',f(!1)),b(g,'$finite?',f(!1)),b(g,'$infinite?',function(){var a=this;return a.$d()['$nonzero?']()}),b(g,'$nan?',function(){var a=this;return a.$d()['$zero?']()}),b(g,'$abs',function(){var a=this;return a.$class().$new()}),b(g,'$-@',function(){var a=this;return a.$class().$new(a.$d()['$-@']())}),b(g,'$+@',function(){var a=this;return a.$class().$new(a.$d()['$+@']())}),b(g,'$<=>',function(e){var b,f,g=this,i=c,h=c,j=c;if(d(o('Infinity'),i=e))return g.$d()['$<=>'](e.$d());if(d(o('Numeric'),i))return g.$d();try{return f=e.$coerce(g),b=m(f),h=b[0]==null?c:b[0],j=b[1]==null?c:b[1],f,h['$<=>'](j)}catch(b){if(a.rescue(b,[o('NoMethodError')]))try{return c}finally{a.pop_exception(b)}else throw b}}),b(g,'$coerce',function b(e){var f=b.$$p||c,a=this,g=c;return b.$$p=null,d(o('Numeric'),g=e)?[a.$d()['$-@'](),a.$d()]:l(a,n(a,'coerce',b,!1,!0),'coerce',[e],f)}),b(g,'$to_f',function(){var a=this;return i(a.d,0)?0:j(k(a.d,0))?h(o('Float'),'INFINITY'):h(o('Float'),'INFINITY')['$-@']()})}(g[0],s('Numeric'),g)}(g[0],null,g)},Opal.modules.time=function(a){var p=a.klass,j=a.defs,l=a.ensure_kwargs,e=a.hash_get,o=a.send,f=a.eqeqeq,b=a.truthy,q=a.rb_gt,h=a.rb_plus,k=a.alias,g=a.def,m=a.return_self,n=a.top,i=[],c=a.nil,d=a.$$$;return a.add_stubs('define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,rfc2822,xmlschema,wrap,require'),function(r,s,t){var i=p(r,s,'Time'),u=[i].concat(t),n=a.$r(u);return j(i,'$parse',function(a){var b=Date.parse(a);return b!==b&&(a=a.replace(/^(\d+)([\./])(\d+)([\./])?(\d+)?/,function(e,b,f,a,c,d,g,h){return f===c&&d?b+'-'+a+'-'+d:a&&!c?b+'-'+a+'-01':e}),b=Date.parse(a)),new Date(b)}),j(i,'$def_formatter',function(p,r,a){var i,j,g,k,m,n=this;return a=l(a),i=e(a,"on_utc"),i==null&&(i=!1),j=e(a,"utc_tz"),j==null&&(j=c),g=e(a,"tz_format"),g==null&&(g=c),k=e(a,"fractions"),k==null&&(k=!1),m=e(a,"on"),m==null&&(m=n),o(m,'define_method',[p],function p(n){var t,s,a=p.$$s==null?this:p.$$s,m=c,o=c,l=c,e=c;return n==null&&(n=0),f(b(m=(t=d('::','DateTime','skip_raise'))?'constant':c)?d('DateTime'):m,o=a)?l=b(i)?a.$new_offset(0):a:f(b(m=(s=d('::','Date','skip_raise'))?'constant':c)?d('Date'):m,o)?l=d('Time').$utc(a.$year(),a.$month(),a.$day()):f(d('Time'),o)?l=b(i)?a.$getutc():a:c,e=l.$strftime(r),b(k)&&b(q(n,0))&&(e=h(e,l.$strftime(".%"+n+"N"))),b(j)?e=h(e,b(a.$utc())?j:l.$strftime(g)):b(g)&&(e=h(e,l.$strftime(g))),e},{$$arity:-1,$$s:n})},-3),i.$def_formatter("rfc2822","%a, %d %b %Y %T ",new Map([["utc_tz","-00:00"],["tz_format","%z"]])),k(i,"rfc822","rfc2822"),i.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["on_utc",!0]])),i.$def_formatter("xmlschema","%FT%T",new Map([["utc_tz","Z"],["tz_format","%:z"],["fractions",!0]])),k(i,"iso8601","xmlschema"),g(i,'$to_date',function(){var a=this;return n('Date').$wrap(a)}),g(i,'$to_datetime',function(){var a=this;return n('DateTime').$wrap(a)}),g(i,'$to_time',m)}(i[0],null,i),n.$require("date")},Opal.modules["date/date_time"]=function(a){var i=a.klass,b=a.def,d=a.alias,g=a.rb_divide,h=a.rb_times,m=a.rb_plus,n=a.rb_minus,j=a.truthy,k=a.return_self,e=[],l=a.$r(e),f=a.nil,c=a.$$$;return a.add_stubs('wrap,now,parse,new,def_delegators,min,sec,/,usec,sec_fraction,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day'),function(p,q,r){var e=i(p,q,'DateTime'),o=[e].concat(r),l=a.$r(o),s=e.$$prototype;return s.date=f,function(c,e){var f=[c].concat(e),d=a.$r(f);return b(c,'$now',function(){var a=this;return a.$wrap(d('Time').$now())}),b(c,'$parse',function(a){var b=this;return b.$wrap(d('Time').$parse(a))})}(a.get_singleton_class(e),o),b(e,'$initialize',function(b,c,a,e,f,d,g,h){var i=this;return b==null&&(b=-4712),c==null&&(c=1),a==null&&(a=1),e==null&&(e=0),f==null&&(f=0),d==null&&(d=0),g==null&&(g=0),h==null&&(h=l('ITALY')),b===1582&&c===10&&a>4&&a<15&&(a=4),i.date=l('Time').$new(b,c,a,e,f,d,g),i.start=h},-1),e.$def_delegators("@date","min","hour","sec"),d(e,"minute","min"),d(e,"second","sec"),b(e,'$sec_fraction',function(){var a=this;return g(a.date.$usec(),c('Rational').$new(1e6,1))}),d(e,"second_fraction","sec_fraction"),b(e,'$offset',function(){var a=this;return g(a.date.$gmt_offset(),h(24,c('Rational').$new(3600,1)))}),b(e,'$+',function(a){var b=this;return c('DateTime').$wrap(m(b.date,a))}),b(e,'$-',function(b){var e=this,d=f;return a.is_a(b,c('Date'))&&(b=b.date),d=n(e.date,b),j(d['$is_a?'](c('Time')))?c('DateTime').$wrap(d):d}),b(e,'$new_offset',function(a){var c=this,b=f;return b=c.$clone(),a=l('Time').$_parse_offset(a),b.date.timezone=a,b}),b(e,'$to_datetime',k),b(e,'$to_time',function(){var a=this;return a.date.$dup()}),b(e,'$to_date',function(){var a=this;return l('Date').$new(a.$year(),a.$month(),a.$day())})}(e[0],l('Date'),e)},Opal.modules["date/formatters"]=function(a){var d=a.klass,k=a.slice,j=a.extract_kwargs,g=a.ensure_kwargs,f=a.kwrestargs,e=a.send,h=a.to_a,i=a.defs,b=a.alias,c=[],l=a.$r(c),m=a.nil;return a.add_stubs('def_formatter,asctime,iso8601,rfc2822,xmlschema'),function(l,m,n){var c=d(l,m,'Date'),o=[c].concat(n),p=a.$r(o);return i(c,'$def_formatter',function(o,m){var c,b,i,d,l=this;return c=k(arguments),b=j(c),b=g(b),i=c,d=f(b,{}),e(p('Time'),'def_formatter',h(i).concat([a.to_hash(d).$merge(new Map([["on",l]]))]))},-1),c.$def_formatter("asctime","%c"),b(c,"ctime","asctime"),c.$def_formatter("iso8601","%F"),b(c,"xmlschema","iso8601"),c.$def_formatter("rfc3339","%FT%T%:z"),c.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),b(c,"rfc822","rfc2822"),c.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["utc",!0]])),c.$def_formatter("jisx0301","%J"),b(c,"to_s","iso8601")}(c[0],null,c),function(c,e){var a=d(c,e,'DateTime');return a.$def_formatter("xmlschema","%FT%T",new Map([["fractions",!0],["tz_format","%:z"]])),b(a,"iso8601","xmlschema"),b(a,"rfc3339","xmlschema"),a.$def_formatter("jisx0301","%JT%T",new Map([["fractions",!0],["tz_format","%:z"]])),b(a,"to_s","xmlschema"),a.$def_formatter("zone","%:z")}(c[0],l('Date'))},Opal.modules.date=function(b){var q=b.klass,e=b.const_set,i=b.rb_plus,a=b.def,f=b.send,h=b.alias,j=b.rb_minus,p=b.return_self,r=b.return_ivar,l=b.truthy,m=b.rb_lt,o=b.rb_times,n=b.defs,g=b.top,k=[],c=b.nil,d=b.$$$;return b.add_stubs('require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,day,month,clone,prev_day,next_day,_days_in_month,class,-,year,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each,==,next'),g.$require("forwardable"),g.$require("date/infinity"),g.$require("time"),function(w,u,v){var g=q(w,u,'Date'),k=[g].concat(v),s=b.$r(k),t=g.$$prototype;return t.date=t.start=c,g.$include(s('Comparable')),g.$extend(s('Forwardable')),e(k[0],'JULIAN',s('Infinity').$new()),e(k[0],'GREGORIAN',s('Infinity').$new()['$-@']()),e(k[0],'ITALY',2299161),e(k[0],'ENGLAND',2361222),e(k[0],'MONTHNAMES',i([c],["January","February","March","April","May","June","July","August","September","October","November","December"])),e(k[0],'ABBR_MONTHNAMES',["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),e(k[0],'DAYNAMES',["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),e(k[0],'ABBR_DAYNAMES',["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(e,g){var i=[e].concat(g),d=b.$r(i);return a(e,'$wrap',function(b){var e=this,a=c;return a=e.$allocate(),a.start=d('ITALY'),a.date=b,a}),a(e,'$parse',function(C,r){var u=this,m,B,t,i,A,l,v,j,n,h,g,k,o,w;r==null&&(r=!0),m=new Date,B=m.getDate(),t=m.getMonth(),i=m.getFullYear(),A=m.getDay(),l=d('MONTHNAMES').$compact().$join("|");function b(a){return a[1]}function c(a){return a[2]}function e(a){return a[3]}function s(a){return a[4]}function x(a){return function(c){var b=a(c);return b>=69?b+=1900:b+=2e3,b}}function p(a){return function(b){var c=a(b).toLowerCase();return d('ABBR_MONTHNAMES').indexOf(c)+1}}function a(a){return function(b){var c=a(b);return parseInt(c,10)}}function z(a){return function(c){var b=a(c);return r?b+2e3:b}}function y(a){return function(b){var c=a(b),e=f(d('DAYNAMES'),'map',[],"downcase".$to_proc()).indexOf(c.$downcase());return B-A+e}}function q(a){return function(b){var c=a(b);return f(d('MONTHNAMES').$compact(),'map',[],"downcase".$to_proc()).indexOf(c.$downcase())+1}}v=[{regexp:/^(\d{2})$/,year:i,month:t,day:a(b)},{regexp:/^(\d{3})$/,year:i,month:0,day:a(b)},{regexp:/^(\d{2})(\d{2})$/,year:i,month:a(b),day:a(c)},{regexp:/^(\d{2})(\d{3})$/,year:x(a(b)),month:0,day:a(c)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:x(a(b)),month:a(c),day:a(e)},{regexp:/^(\d{4})(\d{3})$/,year:a(b),month:0,day:a(c)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:a(b),month:a(c),day:a(e)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:a(c),month:p(b),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:a(e),month:p(c),day:a(b)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:a(e),month:p(b),day:a(c)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:a(b),month:p(c),day:a(e)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:a(b),month:a(c),day:a(e)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:z(a(b)),month:a(c),day:a(e)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:a(e),month:a(c),day:a(b)},{regexp:new RegExp("^("+d('DAYNAMES').$join("|")+")$",'i'),year:i,month:t,day:y(b)},{regexp:new RegExp("^("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:a(s),month:q(b),day:a(c)},{regexp:new RegExp("^("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:i,month:q(b),day:a(c)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+l+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:a(s),month:q(e),day:a(b)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:a(b),month:q(c),day:a(e)}];for(n=0;n=0&&g<=1970&&w.setFullYear(g),u.$wrap(w);return u.$raise(d('ArgumentError'),"invalid date")},-2),a(e,'$today',function(){var a=this;return a.$wrap(new Date)}),a(e,'$gregorian_leap?',function(a){return new Date(a,1,29).getMonth()-1===0}),h(e,"civil","new")}(b.get_singleton_class(g),k),a(g,'$initialize',function(b,c,a,d){var e=this;return b==null&&(b=-4712),c==null&&(c=1),a==null&&(a=1),d==null&&(d=s('ITALY')),b===1582&&c===10&&a>4&&a<15&&(a=4),e.date=new Date(b,c-1,a),e.start=d},-1),g.$attr_reader("start"),a(g,'$<=>',function(a){var e=this,f,g;return a.$$is_number?e.$jd()['$<=>'](a):d('Date')['$==='](a)?(f=e.date,g=a.date,b.is_a(e,d('DateTime'))||f.setHours(0,0,0,0),b.is_a(a,d('DateTime'))||g.setHours(0,0,0,0),fg?1:0:c}),a(g,'$>>',function(a){var b=this;return a.$$is_number||b.$raise(d('TypeError')),b['$<<'](a['$-@']())}),a(g,'$<<',function(a){var b=this;return a.$$is_number||b.$raise(d('TypeError')),b.$prev_month(a)}),a(g,'$clone',function(){var b=this,a=c;return a=s('Date').$wrap(b.date.$dup()),a.start=b.start,a}),g.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),h(g,"mday","day"),h(g,"mon","month"),a(g,'$jd',function(){var f=this,b=f.date.getMonth()+1,l=f.date.getDate(),d=f.date.getFullYear(),g=12,j=0,k=0,e,h,i,c,a;return g=g+j/60+k/3600,e=1,d<=1585&&(e=0),a=-1*Math.floor(7*(Math.floor((b+9)/12)+d)/4),h=1,b-9<0&&(h=-1),i=Math.abs(b-9),c=Math.floor(d+h*Math.floor(i/7)),c=-1*Math.floor((Math.floor(c/100)+1)*3/4),a=a+Math.floor(275*b/9)+l+e*c,a=a+1721027+2*e+367*d-.5,a=a+g/24,a}),a(g,'$julian?',function(){var a=this;return a.date","hash"],'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$undef_method(b)},{$$s:b}),d(b.$private_instance_methods(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(/^block_given\?$|^iterator\?$|^__.*__$/['$=~'](b))?a:d.$undef_method(b)},{$$s:b})},{$$s:f}),f.$include(k),n(f,'$const_missing',function(a){return t.$const_get(a)}),c(f,'$initialize',function(a){var b=this;return b.$__setobj__(a)}),f.$ruby2_keywords(c(f,'$method_missing',function m(b,q){var k=m.$$p||a,p,f,c=this,n=a,h=a;return m.$$p=null,p=o(arguments,1),f=p,n=!0,h=d(c,'__getobj__',[],function(){return n=!1}),e(n)&&e(c['$target_respond_to?'](h,b,!1))?d(h,'__send__',[b].concat(j(f)),k.$to_proc()):e(i['$method_defined?'](b))||e(i['$private_method_defined?'](b))?d(i.$instance_method(b),'bind_call',[c].concat(j(f)),k.$to_proc()):g(c,l(c,'method_missing',m,!1,!0),'method_missing',[b].concat(j(f)),k.$to_proc())},-2)),c(f,'$respond_to_missing?',function(f,i){var c=this,b=a,g=a,h=a;return b=!0,g=d(c,'__getobj__',[],function(){return b=!1}),b=e(h=b)?c['$target_respond_to?'](g,f,i):h,e(b)&&e(i)&&D(c['$target_respond_to?'](g,f,!1))?(c.$warn("delegator does not forward private method #"+f,new Map([["uplevel",3]])),!1):b}),p(m[0],'KERNEL_RESPOND_TO',i.$instance_method("respond_to?")),f.$private_constant("KERNEL_RESPOND_TO"),f.$private(c(f,'$target_respond_to?',function(b,c,d){var f=a;return A(q('Object'),f=b)?b['$respond_to?'](c,d):e(q('KERNEL_RESPOND_TO').$bind_call(b,"respond_to?"))?b['$respond_to?'](c,d):q('KERNEL_RESPOND_TO').$bind_call(b,c,d)})),c(f,'$methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$methods(b)['$|'](g(d,l(d,'methods',c,!1,!0),'methods',[b],e))},-1),c(f,'$public_methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$public_methods(b)['$|'](g(d,l(d,'public_methods',c,!1,!0),'public_methods',[b],e))},-1),c(f,'$protected_methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$protected_methods(b)['$|'](g(d,l(d,'protected_methods',c,!1,!0),'protected_methods',[b],e))},-1),c(f,'$==',function(a){var b=this;return!!e(a['$equal?'](b))||b.$__getobj__()['$=='](a)}),c(f,'$!=',function(a){var b=this;return!e(a['$equal?'](b))&&b.$__getobj__()['$!='](a)}),c(f,'$eql?',function(a){var b=this;return!!e(a['$equal?'](b))||a['$eql?'](b.$__getobj__())}),c(f,'$!',function(){var a=this;return a.$__getobj__()['$!']()}),c(f,'$__getobj__',function(){var a=this;return a.$__raise__(h('NotImplementedError'),"need to define `__getobj__'")}),c(f,'$__setobj__',function(c){var a=this;return a.$__raise__(h('NotImplementedError'),"need to define `__setobj__'")}),c(f,'$marshal_dump',function(){var b=this,c=a;return c=d(b.$instance_variables(),'reject',[],function(b){return b==null&&(b=a),/^@delegate_/['$=~'](b)}),["__v2__",c,d(c,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$instance_variable_get(b)},{$$s:b}),b.$__getobj__()]}),c(f,'$marshal_load',function(g){var b,c,e=this,h=a,f=a,i=a,j=a;return c=g,b=z(c),h=b[0]==null?a:b[0],f=b[1]==null?a:b[1],i=b[2]==null?a:b[2],j=b[3]==null?a:b[3],c,y(h,"__v2__")?(d(f,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$instance_variable_set(b,i['$[]'](c))},{$$s:e}),e.$__setobj__(j)):e.$__setobj__(g)}),c(f,'$initialize_clone',function(d,c){var b,e=this;return c=x(c),b=u(c,"freeze"),b==null&&(b=a),e.$__setobj__(d.$__getobj__().$clone(new Map([["freeze",b]])))},-2),c(f,'$initialize_dup',function(a){var b=this;return b.$__setobj__(a.$__getobj__().$dup())}),f.$private("initialize_clone","initialize_dup"),c(f,'$freeze',function(){var a=this;return a.$__getobj__().$freeze(),B(a),C(a)}),c(f,'$frozen?',function(){var a=this;return a.$$frozen||!1}),f.delegator_api=f.$public_instance_methods(),n(f,'$public_api',v("delegator_api"))}(m[0],f('BasicObject'),m),function(f,g){var d=r(f,g,'SimpleDelegator'),i=d.$$prototype;return i.delegate_sd_obj=a,c(d,'$__getobj__',function f(){var c,g=f.$$p||a,d=this;if(f.$$p=null,!e((c=d.delegate_sd_obj,c!=null&&c!==a)?'instance-variable':a)){if(g!==a)return b.yieldX(g,[]);d.$__raise__(h('ArgumentError'),"not delegated")}return d.delegate_sd_obj}),c(d,'$__setobj__',function(b){var a=this;return e(a['$equal?'](b))&&a.$__raise__(h('ArgumentError'),"cannot delegate to self"),a.delegate_sd_obj=b})}(m[0],f('Delegator')),n(f('Delegator'),'$delegating_block',function b(c){var f=b.$$p||a,e=this;return b.$$p=null,w(function b(k){var h=b.$$p||a,e,f,i=b.$$s==null?this:b.$$s,g=a;return b.$$p=null,e=o(arguments),f=e,g=i.$__getobj__(),d(g,'__send__',[c].concat(j(f)),h.$to_proc())},{$$arity:-1,$$s:e}).$ruby2_keywords()}),c(s,'$DelegateClass',function l(m){var s=l.$$p||a,n=this,i=a,r=a,o=a,p=a;return l.$$p=null,i=f('Class').$new(f('Delegator')),r=[].concat(j(h('Delegator').$public_api())).concat(["to_s","inspect","=~","!~","==="]),o=m.$protected_instance_methods(),o=q(o,r),p=m.$public_instance_methods(),p=q(p,r),d(i,'module_eval',[],function i(){var g=i.$$s==null?this:i.$$s;return c(g,'$__getobj__',function f(){var d,g=f.$$p||a,c=this;if(c.delegate_dc_obj==null&&(c.delegate_dc_obj=a),f.$$p=null,!e((d=c.delegate_dc_obj,d!=null&&d!==a)?'instance-variable':a)){if(g!==a)return b.yieldX(g,[]);c.$__raise__(h('ArgumentError'),"not delegated")}return c.delegate_dc_obj}),c(g,'$__setobj__',function(b){var a=this;return e(a['$equal?'](b))&&a.$__raise__(h('ArgumentError'),"cannot delegate to self"),a.delegate_dc_obj=b}),d(o,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_method(b,f('Delegator').$delegating_block(b)),d.$protected(b)},{$$s:g}),d(p,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_method(b,f('Delegator').$delegating_block(b))},{$$s:g})},{$$s:n}),d(i,'define_singleton_method',["public_instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$public_instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["protected_instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$protected_instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["public_instance_method"],function h(c){var d=h.$$s==null?this:h.$$s;c==null&&(c=a);try{return g(d,k(d,'DelegateClass',h.$$def||l,!1,!1),'DelegateClass',[c],null)}catch(a){if(b.rescue(a,[f('NameError')]))try{return e(d.$public_instance_methods()['$include?'](c))||d.$raise(),m.$public_instance_method(c)}finally{b.pop_exception(a)}else throw a}},{$$s:n}),d(i,'define_singleton_method',["instance_method"],function h(c){var d=h.$$s==null?this:h.$$s;c==null&&(c=a);try{return g(d,k(d,'DelegateClass',h.$$def||l,!1,!1),'DelegateClass',[c],null)}catch(a){if(b.rescue(a,[f('NameError')]))try{return e(d.$instance_methods()['$include?'](c))||d.$raise(),m.$instance_method(c)}finally{b.pop_exception(a)}else throw a}},{$$s:n}),e(s)&&d(i,'module_eval',[],s.$to_proc()),i})},Opal.modules.enumerator=Opal.return_val(Opal.nil),Opal.modules.iconv=Opal.return_val(Opal.nil),Opal.modules.json=function(a){var h=a.module,c=a.klass,l=a.send,j=a.Object,i=a.eqeqeq,f=a.defs,g=a.truthy,d=a.def,k=a.return_val,b=[],e=a.nil,m=a.$$$;return a.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(q,s){var b=h(q,'JSON'),n=[b].concat(s),d=a.$r(n),k,r;c(n[0],d('StandardError'),'JSONError'),c(n[0],d('JSONError'),'ParserError'),r=a.hasOwnProperty;function p(a){try{return JSON.parse(a)}catch(a){b.$raise(m(d('JSON'),'ParserError'),a.message)}}function o(b,c){var m,i,f,g,n,h;switch(typeof b){case'string':return b;case'number':return b;case'boolean':return!!b;case'undefined':return e;case'object':if(!b)return e;if(b.$$is_array){i=a.hash_get(c,'array_class').$new();for(g=0,n=b.length;g','<'];e.eachDirectiveAndCount=function(m,n){var a,i,e,h,l,d;function j(){a=null,i=0,e=[],h=!1}j();function k(){if(a==null){j();return}var d=/[sSiIlLqQjJ]/.test(a);!d&&e.length>0&&b.$raise(c('ArgumentError'),"'"+e[0]+"' allowed only after types sSiIlLqQjJ"),e.indexOf('<')!==-1&&e.indexOf('>')!==-1&&b.$raise(c('RangeError'),"Can't use both '<' and '>'"),h||(i=1),e.indexOf('>')!==-1&&(a=a+'>'),n(a,i),j()}for(l=0;l,length,inspect,[],unpack'),j.$require("base64"),j.$require("corelib/pack_unpack/format_string_parser"),function(E,V,M){var A=n(E,V,'String'),G=[A].concat(M),Y=a.$r(G),B=d,D=d,W=a.PackUnpack.eachDirectiveAndCount,K,l,y,z,X;function _(a){return function(b){var c=a(b);return c.$flatten()}}function r(a){return function(b){var c=a(b);return c.map(function(a){return a.reverse().reduce(function(a,b){return a*256+b},0)})}}function q(a,b){return function(g){for(var c=b(g),d=[],h=c.length/a,e=0,f;e=c/2&&(a-=c),a})}}function v(a){return function(b){var c=a(b);return c.map(function(a){return String.fromCharCode(a)})}}function s(a){return function(b){var c=a(b);return c.join('')}}function w(a){return function(b){var c=a(b);return[c]}}function L(a){var b=a.map(function(a){return a.charCodeAt(0)});return function(a){return function(d){for(var c=a(d);b.indexOf(c[c.length-1])!==-1;)c=c.slice(0,c.length-1);return c}}}K=L(["\u0000"," "]);function u(a){return function(b){var c=a(b);return c.map(function(a){return a.reverse()})}}function F(a){return function(i){var c=a(i),o=!1,b=0,g=0,e=[],d,j,h,f,l,m,k,n;do if(b45)return'';for(g+=d;d>0;)j=c[b],h=c[b+1],f=c[b+2],l=c[b+3],m=(j-32&63)<<2|(h-32&63)>>4,k=(h-32&63)<<4|(f-32&63)>>2,n=(f-32&63)<<6|l-32&63,e.push(m&255),e.push(k&255),e.push(n&255),b+=4,d-=3;++b}else break;while(!0)return e.slice(0,g)}}function Z(a){return function(b){var c=a(b),d=c.map(function(a){return a.toString(2)});return d}}function H(a){return function(h){for(var e=a(h),f=[],c='',d=0,g,b,i,j;d':r(u(q(2,j))),'L>':r(u(q(4,j))),'Q>':r(u(q(8,j))),c:t(1,j),s:t(2,r(q(2,j))),l:t(4,r(q(4,j))),q:t(8,r(q(8,j))),j:null,'s>':t(2,r(u(q(2,j)))),'l>':t(4,r(u(q(4,j)))),'q>':t(8,r(u(q(8,j)))),n:null,N:null,v:null,V:null,U:j,w:H(j),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:w(s(v(K(j)))),a:w(s(v(j))),Z:s(v(j)),B:s(j),b:s(j),H:s(j),h:s(j),u:s(v(F(j))),M:J(s(v(j))),m:I(s(v(j))),P:null,p:null};function p(a){return function(b){var c=b.slice(0,a);return b=b.slice(a,b.length),{chunk:c,rest:b}}}function N(f){var g=0,h=f.length,a,d,k,e,j,l,m;function i(){var a=f[g++];return h=f.length-g,a}if(a=i(),a>>7==0)return{chunk:[a],rest:f.slice(g)};a>>6==2&&b.$raise(c('ArgumentError'),"malformed UTF-8 character"),a>>5==6?d=1:a>>4==14?d=2:a>>3==30?d=3:a>>2==62?d=4:a>>1==126?d=5:b.$raise("malformed UTF-8 character"),d>h&&(B=d+1,D=h+1,b.$raise(c('ArgumentError'),"malformed UTF-8 character (expected "+B+" bytes, given "+D+" bytes)")),k=(1<<8-d-1)-1,e=a&k;for(j=0;j>6!=2&&b.$raise("Invalid multibyte sequence"),e=e<<6|a&63;return e<=65535?{chunk:[e],rest:f.slice(g)}:(e-=65536,l=(e>>10&1023)+55296,m=(e&1023)+56320,{chunk:[l,m],rest:f.slice(g)})}function O(a){var b=a.indexOf(32);return b===-1?{chunk:a,rest:[]}:{chunk:a.slice(0,b),rest:a.slice(b,a.length)}}function P(a,c){for(var e='',f,g,h,b,d;c>0&&a.length>0;)if(f=a[0],g=Math.min(c,8),h=Math.ceil(g/8),a=a.slice(1,a.length),f!=null){b=f.toString(2),b=Array(8-b.length+1).join('0').concat(b).split('').reverse().join('');for(d=0;d0&&a.length>0;)if(f=a[0],g=Math.min(c,8),h=Math.ceil(g/8),a=a.slice(1,a.length),f!=null){b=f.toString(2),b=Array(8-b.length+1).join('0').concat(b);for(d=0;d0&&a.length>0;)e=a[0],b=e.toString(16),a=a.slice(1,a.length),b=Array(2-b.length+1).join('0').concat(b),c===1?(d.push(b[0]),c--):(d.push(b[0],b[1]),c-=2);return{chunk:d,rest:a}}function U(a,c){for(var d=[],e,b;c>0&&a.length>0;)e=a[0],b=e.toString(16),a=a.slice(1,a.length),b=Array(2-b.length+1).join('0').concat(b),c===1?(d.push(b[1]),c--):(d.push(b[1],b[0]),c-=2);return{chunk:d,rest:a}}function o(a){return function(b,e){var d=[],c,f;if(e===1/0)while(b.length>0)c=a(b),b=c.rest,d=d.concat(c.chunk);else for(f=0;f':o(p(2)),'L>':o(p(4)),'Q>':o(p(8)),c:o(p(1)),s:o(p(2)),l:o(p(4)),q:o(p(8)),j:null,'s>':o(p(2)),'l>':o(p(4)),'q>':o(p(8)),n:null,N:null,v:null,V:null,U:o(N),w:o(R),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:o(p(1)),a:o(p(1)),Z:S,B:Q,b:P,H:T,h:U,u:o(O),M:C,m:C,P:null,p:null},z={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},X={'C*':l.C,'c*':l.c,'A*':l.A,'a*':l.a,'M*':w(l.M),'m*':w(l.m),'S*':l.S,'s*':l.s,'L*':l.L,'l*':l.l,'Q*':l.Q,'q*':l.q,'S>*':l['S>'],'s>*':l['s>'],'L>*':l['L>'],'l>*':l['l>'],'Q>*':l['Q>'],'q>*':l['q>']};function x(a,b){y[b]=y[a],l[b]=l[a],z[b]=z[a]}return x('S>','n'),x('L>','N'),x('S','v'),x('L','V'),i(A,'$unpack',function(o,q){var a,i=this,j,s,t,p,n,r;if(q=e(q),a=f(q,"offset"),a==null&&(a=0),g(m(a,0))&&b.$raise(c('ArgumentError'),"offset can't be negative"),o=h['$coerce_to!'](o,c('String'),"to_str").$gsub(/\s/,"").$delete("\u0000"),j=[],o=="U*"&&i.internal_encoding.name==="UTF-8"&&typeof i.codePointAt=="function"){t=0,j=new Array(i.length);for(p=a;p65535&&p++;return j.slice(0,t)}if(n=i.$bytes(),g(k(a,n.$length()))?b.$raise(c('ArgumentError'),"offset outside of string"):d,n=n.slice(a),r=X[o],r)return r(n);function v(a,b){while(a.length=,_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(d,e){var f=q(d,'Racc'),b=[f].concat(e),g=c.$r(b);return p(b[0],g('StandardError'),'ParseError'),a}(i[0],i),b((u=j('::','ParseError','skip_raise'))?'constant':a)||e(i[0],'ParseError',j(w('Racc'),'ParseError')),function(u,w){var z=q(u,'Racc'),i=[z].concat(w),B=c.$r(i),A;return b((A=B('Racc_No_Extensions','skip_raise'))?'constant':a)||e(i[0],'Racc_No_Extensions',!1),function(B,z,A){var i=p(B,z,'Parser'),q=[i].concat(A),w=c.$r(q),u=i.$$prototype;return u.yydebug=u.racc_debug_out=u.racc_error_status=u.racc_t=u.racc_vstack=u.racc_val=u.racc_state=u.racc_tstack=a,e(q[0],'Racc_Runtime_Version',"1.4.6"),e(q[0],'Racc_Runtime_Revision',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Runtime_Core_Version_R',"1.4.6"),e(q[0],'Racc_Runtime_Core_Revision_R',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Main_Parsing_Routine',"_racc_do_parse_rb"),e(q[0],'Racc_YY_Parse_Method',"_racc_yyparse_rb"),e(q[0],'Racc_Runtime_Core_Version',w('Racc_Runtime_Core_Version_R')),e(q[0],'Racc_Runtime_Core_Revision',w('Racc_Runtime_Core_Revision_R')),e(q[0],'Racc_Runtime_Type',"ruby"),s(w('Parser'),'$racc_runtime_type',function(){return w('Racc_Runtime_Type')}),d(i,'$_racc_setup',function(){var e,f,c=this,g=a,d=a;return m.stderr==null&&(m.stderr=a),b(j(c.$class(),'Racc_debug_parser'))||(c.yydebug=!1),b((e=c.yydebug,e!=null&&e!==a)?'instance-variable':a)||(c.yydebug=!1),b(c.yydebug)&&(b((f=c.racc_debug_out,f!=null&&f!==a)?'instance-variable':a)||(c.racc_debug_out=m.stderr),c.racc_debug_out=b(g=c.racc_debug_out)?g:m.stderr),d=j(c.$class(),'Racc_arg'),b(o(d.$size(),14))&&d['$[]='](13,!0),d}),d(i,'$_racc_init_sysvars',function(){var b=this;return b.racc_state=[0],b.racc_tstack=[],b.racc_vstack=[],b.racc_t=a,b.racc_val=a,b.racc_read_next=!0,b.racc_user_yyerror=!1,b.racc_error_status=0}),d(i,'$do_parse',function(){var a=this;return a.$__send__(w('Racc_Main_Parsing_Routine'),a.$_racc_setup(),!1)}),d(i,'$next_token',function(){var a=this;return a.$raise(w('NotImplementedError'),""+a.$class()+"#next_token is not defined")}),d(i,'$_racc_do_parse_rb',function(t,u){var c,m,n=this,r=a,p=a,o=a,q=a,d=a,s=a,j=a,i=a,e=a;return m=t,c=l(m),r=c[0]==null?a:c[0],p=c[1]==null?a:c[1],o=c[2]==null?a:c[2],q=c[3]==null?a:c[3],d=c[4]==null?a:c[4],d=c[5]==null?a:c[5],d=c[6]==null?a:c[6],d=c[7]==null?a:c[7],d=c[8]==null?a:c[8],d=c[9]==null?a:c[9],s=c[10]==null?a:c[10],d=c[11]==null?a:c[11],d=c[12]==null?a:c[12],d=c[13]==null?a:c[13],m,n.$_racc_init_sysvars(),j=i=e=a,g(n,'catch',["racc_end_parse"],function m(){var d,g,c=m.$$s==null?this:m.$$s,n=a;for(c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),c.racc_t==null&&(c.racc_t=a),c.yydebug==null&&(c.yydebug=a),c.racc_val==null&&(c.racc_val=a);b(!0);)for(b(e=q['$[]'](c.racc_state['$[]'](-1)))?(b(c.racc_read_next)&&v(c.racc_t,0)&&(g=c.$next_token(),d=l(g),j=d[0]==null?a:d[0],c.racc_val=d[1]==null?a:d[1],g,b(j)?c.racc_t=b(n=s['$[]'](j))?n:1:c.racc_t=0,b(c.yydebug)&&c.$racc_read_token(c.racc_t,j,c.racc_val),c.racc_read_next=!1),e=h(e,c.racc_t),b(k(e,0))&&b(i=r['$[]'](e))&&f(p['$[]'](e),c.racc_state['$[]'](-1))||(i=o['$[]'](c.racc_state['$[]'](-1)))):i=o['$[]'](c.racc_state['$[]'](-1));b(i=c.$_racc_evalact(i,t)););},{$$s:n})}),d(i,'$yyparse',function(b,c){var a=this;return a.$__send__(w('Racc_YY_Parse_Method'),b,c,a.$_racc_setup(),!0)}),d(i,'$_racc_yyparse_rb',function(u,t,m,v){var c,o,p=this,r=a,q=a,j=a,n=a,i=a,s=a,e=a,d=a;return o=m,c=l(o),r=c[0]==null?a:c[0],q=c[1]==null?a:c[1],j=c[2]==null?a:c[2],n=c[3]==null?a:c[3],i=c[4]==null?a:c[4],i=c[5]==null?a:c[5],i=c[6]==null?a:c[6],i=c[7]==null?a:c[7],i=c[8]==null?a:c[8],i=c[9]==null?a:c[9],s=c[10]==null?a:c[10],i=c[11]==null?a:c[11],i=c[12]==null?a:c[12],i=c[13]==null?a:c[13],o,p.$_racc_init_sysvars(),e=a,d=a,g(p,'catch',["racc_end_parse"],function i(){var c=i.$$s==null?this:i.$$s;for(c.racc_state==null&&(c.racc_state=a);!b(d=n['$[]'](c.racc_state['$[]'](-1)));)while(b(e=c.$_racc_evalact(j['$[]'](c.racc_state['$[]'](-1)),m)));return g(u,'__send__',[t],function o(g,l){var c=o.$$s==null?this:o.$$s,i=a,p=a;for(c.racc_t==null&&(c.racc_t=a),c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),g==null&&(g=a),l==null&&(l=a),b(g)?c.racc_t=b(i=s['$[]'](g))?i:1:c.racc_t=0,c.racc_val=l,c.racc_read_next=!1,d=h(d,c.racc_t),b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););while(b(b(i=b(p=(d=n['$[]'](c.racc_state['$[]'](-1)))['$!']())?p:c.racc_read_next['$!']())?i:c.racc_t['$=='](0)))for(b(d)&&b(d=h(d,c.racc_t))&&b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););},{$$s:c})},{$$s:p})}),d(i,'$_racc_evalact',function(e,t){var d,q,c=this,w=a,u=a,i=a,v=a,m=a,p=a,s=a,j=a;if(q=t,d=l(q),w=d[0]==null?a:d[0],u=d[1]==null?a:d[1],i=d[2]==null?a:d[2],v=d[3]==null?a:d[3],i=d[4]==null?a:d[4],i=d[5]==null?a:d[5],i=d[6]==null?a:d[6],i=d[7]==null?a:d[7],i=d[8]==null?a:d[8],i=d[9]==null?a:d[9],i=d[10]==null?a:d[10],m=d[11]==null?a:d[11],p=d[12]==null?a:d[12],i=d[13]==null?a:d[13],i=d[14]==null?a:d[14],q,b(n(e,0))&&b(o(e,m)))b(n(c.racc_error_status,0))&&(f(c.racc_t,1)||(c.racc_error_status=r(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(e),c.racc_read_next=!0,b(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(b(o(e,0))&&b(n(e,p['$-@']()))){if(s=g(c,'catch',["racc_jump"],function c(){var b=c.$$s==null?this:c.$$s;return b.racc_state==null&&(b.racc_state=a),b.racc_state.$push(b.$_racc_do_reduce(t,e)),!1},{$$s:c}),b(s))switch(s.valueOf()){case 1:return c.racc_user_yyerror=!0,p['$-@']();case 2:return m;default:c.$raise("[Racc Bug] unknown jump code")}}else if(f(e,m))b(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack['$[]'](0));else if(f(e,p['$-@']())){switch(c.racc_error_status.valueOf()){case 0:b(t['$[]'](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:f(c.racc_t,0)&&c.$throw("racc_end_parse",a),c.racc_read_next=!0;break;default:a}for(c.racc_user_yyerror=!1,c.racc_error_status=3;b(!0);){if(b(j=v['$[]'](c.racc_state['$[]'](-1))))if(j=h(j,1),b(k(j,0))&&b(e=w['$[]'](j))&&f(u['$[]'](j),c.racc_state['$[]'](-1)))break;b(x(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",a),c.racc_state.$pop(),c.racc_vstack.$pop(),b(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return e}else c.$raise("[Racc Bug] unknown action "+e.$inspect());return b(c.yydebug)&&c.$racc_next_state(c.racc_state['$[]'](-1),c.racc_state),a}),d(i,'$_racc_do_reduce',function(G,F){var c,u,g=this,j=a,D=a,C=a,B=a,A=a,z=a,o=a,x=a,v=a,i=a,m=a,e=a,d=a,p=a,t=a,n=a,E=a,q=a,s=a,w=a;if(u=G,c=l(u),j=c[0]==null?a:c[0],j=c[1]==null?a:c[1],j=c[2]==null?a:c[2],j=c[3]==null?a:c[3],D=c[4]==null?a:c[4],C=c[5]==null?a:c[5],B=c[6]==null?a:c[6],A=c[7]==null?a:c[7],z=c[8]==null?a:c[8],o=c[9]==null?a:c[9],j=c[10]==null?a:c[10],j=c[11]==null?a:c[11],j=c[12]==null?a:c[12],x=c[13]==null?a:c[13],u,v=g.racc_state,i=g.racc_vstack,m=g.racc_tstack,e=y(F,-3),d=o['$[]'](e),p=o['$[]'](h(e,1)),t=o['$[]'](h(e,2)),n=[],b(g.yydebug)&&(E=m['$[]'](d['$-@'](),d)),q=i['$[]'](d['$-@'](),d),b(g.yydebug)&&m['$[]='](d['$-@'](),d,n),i['$[]='](d['$-@'](),d,n),v['$[]='](d['$-@'](),d,n),b(x)?i.$push(g.$__send__(t,q,i,q['$[]'](0))):i.$push(g.$__send__(t,q,i)),m.$push(p),b(g.yydebug)&&g.$racc_reduce(E,p,m,i),s=r(p,z),b(e=A['$[]'](s)))if(e=h(e,v['$[]'](-1)),b(k(e,0))&&b(w=D['$[]'](e))&&f(C['$[]'](e),s))return w;return B['$[]'](s)}),d(i,'$on_error',function(e,f,h){var c=this,d=a;return c.$raise(w('ParseError'),c.$sprintf("\nparse error on value %s (%s)",f.$inspect(),b(d=c.$token_to_str(e))?d:"?"))}),d(i,'$yyerror',function(){var a=this;return a.$throw("racc_jump",1)}),d(i,'$yyaccept',function(){var a=this;return a.$throw("racc_jump",2)}),d(i,'$yyerrok',t("racc_error_status",0)),d(i,'$racc_read_token',function(b,c,d){var a=this;return a.racc_debug_out.$print("read "),a.racc_debug_out.$print(c.$inspect(),"(",a.$racc_token2str(b),") "),a.racc_debug_out.$puts(d.$inspect()),a.racc_debug_out.$puts()}),d(i,'$racc_shift',function(b,c,d){var a=this;return a.racc_debug_out.$puts("shift "+a.$racc_token2str(b)),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_reduce',function(e,f,h,i){var d=this,c=a;return c=d.racc_debug_out,c.$print("reduce "),b(e['$empty?']())?c.$print(" "):g(e,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$print(" ",e.$racc_token2str(b))},{$$s:d}),c.$puts(" --> "+d.$racc_token2str(f)),d.$racc_print_stacks(h,i),d.racc_debug_out.$puts()}),d(i,'$racc_accept',function(){var a=this;return a.racc_debug_out.$puts("accept"),a.racc_debug_out.$puts()}),d(i,'$racc_e_pop',function(b,c,d){var a=this;return a.racc_debug_out.$puts("error recovering mode: pop token"),a.$racc_print_states(b),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_next_state',function(b,c){var a=this;return a.racc_debug_out.$puts("goto "+b),a.$racc_print_states(c),a.racc_debug_out.$puts()}),d(i,'$racc_print_stacks',function(c,e){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each_index',[],function f(d){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),b.$print(" (",g.$racc_token2str(c['$[]'](d))," ",e['$[]'](d).$inspect(),")")},{$$s:d}),b.$puts(" ]")}),d(i,'$racc_print_states',function(c){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each',[],function(c){return c==null&&(c=a),b.$print(" ",c)}),b.$puts(" ]")}),d(i,'$racc_token2str',function(c){var d=this,e=a;return b(e=j(d.$class(),'Racc_token_to_s_table')['$[]'](c))?e:d.$raise("[Racc Bug] can't convert token "+c+" to string")}),d(i,'$token_to_str',function(a){var b=this;return j(b.$class(),'Racc_token_to_s_table')['$[]'](a)})}(i[0],null,i)}(i[0],i)},Opal.modules["parser/version"]=function(a){var c=a.module,d=a.const_set,b=[],e=a.nil;return function(a,b){var e=c(a,'Parser'),f=[e].concat(b);return d(f[0],'VERSION',"3.3.9.0")}(b[0],b)},Opal.modules["racc/parser"]=function(c){var q=c.module,p=c.klass,b=c.truthy,e=c.const_set,s=c.defs,m=c.gvars,o=c.rb_lt,d=c.def,l=c.to_ary,g=c.send,v=c.neqeq,h=c.rb_plus,f=c.eqeq,k=c.rb_ge,n=c.rb_gt,r=c.rb_minus,x=c.rb_le,y=c.rb_times,t=c.assign_ivar_val,u,i=[],w=c.$r(i),a=c.nil,j=c.$$$;return c.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(d,e){var f=q(d,'Racc'),b=[f].concat(e),g=c.$r(b);return p(b[0],g('StandardError'),'ParseError'),a}(i[0],i),b((u=j('::','ParseError','skip_raise'))?'constant':a)||e(i[0],'ParseError',j(w('Racc'),'ParseError')),function(u,w){var z=q(u,'Racc'),i=[z].concat(w),B=c.$r(i),A;return b((A=B('Racc_No_Extensions','skip_raise'))?'constant':a)||e(i[0],'Racc_No_Extensions',!1),function(B,z,A){var i=p(B,z,'Parser'),q=[i].concat(A),w=c.$r(q),u=i.$$prototype;return u.yydebug=u.racc_debug_out=u.racc_error_status=u.racc_t=u.racc_vstack=u.racc_val=u.racc_state=u.racc_tstack=a,e(q[0],'Racc_Runtime_Version',"1.4.6"),e(q[0],'Racc_Runtime_Revision',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Runtime_Core_Version_R',"1.4.6"),e(q[0],'Racc_Runtime_Core_Revision_R',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Main_Parsing_Routine',"_racc_do_parse_rb"),e(q[0],'Racc_YY_Parse_Method',"_racc_yyparse_rb"),e(q[0],'Racc_Runtime_Core_Version',w('Racc_Runtime_Core_Version_R')),e(q[0],'Racc_Runtime_Core_Revision',w('Racc_Runtime_Core_Revision_R')),e(q[0],'Racc_Runtime_Type',"ruby"),s(w('Parser'),'$racc_runtime_type',function(){return w('Racc_Runtime_Type')}),d(i,'$_racc_setup',function(){var e,f,c=this,g=a,d=a;return m.stderr==null&&(m.stderr=a),b(j(c.$class(),'Racc_debug_parser'))||(c.yydebug=!1),b((e=c.yydebug,e!=null&&e!==a)?'instance-variable':a)||(c.yydebug=!1),b(c.yydebug)&&(b((f=c.racc_debug_out,f!=null&&f!==a)?'instance-variable':a)||(c.racc_debug_out=m.stderr),c.racc_debug_out=b(g=c.racc_debug_out)?g:m.stderr),d=j(c.$class(),'Racc_arg'),b(o(d.$size(),14))&&d['$[]='](13,!0),d}),d(i,'$_racc_init_sysvars',function(){var b=this;return b.racc_state=[0],b.racc_tstack=[],b.racc_vstack=[],b.racc_t=a,b.racc_val=a,b.racc_read_next=!0,b.racc_user_yyerror=!1,b.racc_error_status=0}),d(i,'$do_parse',function(){var a=this;return a.$__send__(w('Racc_Main_Parsing_Routine'),a.$_racc_setup(),!1)}),d(i,'$next_token',function(){var a=this;return a.$raise(w('NotImplementedError'),""+a.$class()+"#next_token is not defined")}),d(i,'$_racc_do_parse_rb',function(t,u){var c,m,n=this,r=a,p=a,o=a,q=a,d=a,s=a,j=a,i=a,e=a;return m=t,c=l(m),r=c[0]==null?a:c[0],p=c[1]==null?a:c[1],o=c[2]==null?a:c[2],q=c[3]==null?a:c[3],d=c[4]==null?a:c[4],d=c[5]==null?a:c[5],d=c[6]==null?a:c[6],d=c[7]==null?a:c[7],d=c[8]==null?a:c[8],d=c[9]==null?a:c[9],s=c[10]==null?a:c[10],d=c[11]==null?a:c[11],d=c[12]==null?a:c[12],d=c[13]==null?a:c[13],m,n.$_racc_init_sysvars(),j=i=e=a,g(n,'catch',["racc_end_parse"],function m(){var d,g,c=m.$$s==null?this:m.$$s,n=a;for(c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),c.racc_t==null&&(c.racc_t=a),c.yydebug==null&&(c.yydebug=a),c.racc_val==null&&(c.racc_val=a);b(!0);)for(b(e=q['$[]'](c.racc_state['$[]'](-1)))?(b(c.racc_read_next)&&v(c.racc_t,0)&&(g=c.$next_token(),d=l(g),j=d[0]==null?a:d[0],c.racc_val=d[1]==null?a:d[1],g,b(j)?c.racc_t=b(n=s['$[]'](j))?n:1:c.racc_t=0,b(c.yydebug)&&c.$racc_read_token(c.racc_t,j,c.racc_val),c.racc_read_next=!1),e=h(e,c.racc_t),b(k(e,0))&&b(i=r['$[]'](e))&&f(p['$[]'](e),c.racc_state['$[]'](-1))||(i=o['$[]'](c.racc_state['$[]'](-1)))):i=o['$[]'](c.racc_state['$[]'](-1));b(i=c.$_racc_evalact(i,t)););},{$$s:n})}),d(i,'$yyparse',function(b,c){var a=this;return a.$__send__(w('Racc_YY_Parse_Method'),b,c,a.$_racc_setup(),!0)}),d(i,'$_racc_yyparse_rb',function(u,t,m,v){var c,o,p=this,r=a,q=a,j=a,n=a,i=a,s=a,e=a,d=a;return o=m,c=l(o),r=c[0]==null?a:c[0],q=c[1]==null?a:c[1],j=c[2]==null?a:c[2],n=c[3]==null?a:c[3],i=c[4]==null?a:c[4],i=c[5]==null?a:c[5],i=c[6]==null?a:c[6],i=c[7]==null?a:c[7],i=c[8]==null?a:c[8],i=c[9]==null?a:c[9],s=c[10]==null?a:c[10],i=c[11]==null?a:c[11],i=c[12]==null?a:c[12],i=c[13]==null?a:c[13],o,p.$_racc_init_sysvars(),e=a,d=a,g(p,'catch',["racc_end_parse"],function i(){var c=i.$$s==null?this:i.$$s;for(c.racc_state==null&&(c.racc_state=a);!b(d=n['$[]'](c.racc_state['$[]'](-1)));)while(b(e=c.$_racc_evalact(j['$[]'](c.racc_state['$[]'](-1)),m)));return g(u,'__send__',[t],function o(g,l){var c=o.$$s==null?this:o.$$s,i=a,p=a;for(c.racc_t==null&&(c.racc_t=a),c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),g==null&&(g=a),l==null&&(l=a),b(g)?c.racc_t=b(i=s['$[]'](g))?i:1:c.racc_t=0,c.racc_val=l,c.racc_read_next=!1,d=h(d,c.racc_t),b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););while(b(b(i=b(p=(d=n['$[]'](c.racc_state['$[]'](-1)))['$!']())?p:c.racc_read_next['$!']())?i:c.racc_t['$=='](0)))for(b(d)&&b(d=h(d,c.racc_t))&&b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););},{$$s:c})},{$$s:p})}),d(i,'$_racc_evalact',function(e,t){var d,q,c=this,w=a,u=a,i=a,v=a,m=a,p=a,s=a,j=a;if(q=t,d=l(q),w=d[0]==null?a:d[0],u=d[1]==null?a:d[1],i=d[2]==null?a:d[2],v=d[3]==null?a:d[3],i=d[4]==null?a:d[4],i=d[5]==null?a:d[5],i=d[6]==null?a:d[6],i=d[7]==null?a:d[7],i=d[8]==null?a:d[8],i=d[9]==null?a:d[9],i=d[10]==null?a:d[10],m=d[11]==null?a:d[11],p=d[12]==null?a:d[12],i=d[13]==null?a:d[13],i=d[14]==null?a:d[14],q,b(n(e,0))&&b(o(e,m)))b(n(c.racc_error_status,0))&&(f(c.racc_t,1)||(c.racc_error_status=r(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(e),c.racc_read_next=!0,b(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(b(o(e,0))&&b(n(e,p['$-@']()))){if(s=g(c,'catch',["racc_jump"],function c(){var b=c.$$s==null?this:c.$$s;return b.racc_state==null&&(b.racc_state=a),b.racc_state.$push(b.$_racc_do_reduce(t,e)),!1},{$$s:c}),b(s))switch(s.valueOf()){case 1:return c.racc_user_yyerror=!0,p['$-@']();case 2:return m;default:c.$raise("[Racc Bug] unknown jump code")}}else if(f(e,m))b(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack['$[]'](0));else if(f(e,p['$-@']())){switch(c.racc_error_status.valueOf()){case 0:b(t['$[]'](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:f(c.racc_t,0)&&c.$throw("racc_end_parse",a),c.racc_read_next=!0;break;default:a}for(c.racc_user_yyerror=!1,c.racc_error_status=3;b(!0);){if(b(j=v['$[]'](c.racc_state['$[]'](-1))))if(j=h(j,1),b(k(j,0))&&b(e=w['$[]'](j))&&f(u['$[]'](j),c.racc_state['$[]'](-1)))break;b(x(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",a),c.racc_state.$pop(),c.racc_vstack.$pop(),b(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return e}else c.$raise("[Racc Bug] unknown action "+e.$inspect());return b(c.yydebug)&&c.$racc_next_state(c.racc_state['$[]'](-1),c.racc_state),a}),d(i,'$_racc_do_reduce',function(G,F){var c,u,g=this,j=a,D=a,C=a,B=a,A=a,z=a,o=a,x=a,v=a,i=a,m=a,e=a,d=a,p=a,t=a,n=a,E=a,q=a,s=a,w=a;if(u=G,c=l(u),j=c[0]==null?a:c[0],j=c[1]==null?a:c[1],j=c[2]==null?a:c[2],j=c[3]==null?a:c[3],D=c[4]==null?a:c[4],C=c[5]==null?a:c[5],B=c[6]==null?a:c[6],A=c[7]==null?a:c[7],z=c[8]==null?a:c[8],o=c[9]==null?a:c[9],j=c[10]==null?a:c[10],j=c[11]==null?a:c[11],j=c[12]==null?a:c[12],x=c[13]==null?a:c[13],u,v=g.racc_state,i=g.racc_vstack,m=g.racc_tstack,e=y(F,-3),d=o['$[]'](e),p=o['$[]'](h(e,1)),t=o['$[]'](h(e,2)),n=[],b(g.yydebug)&&(E=m['$[]'](d['$-@'](),d)),q=i['$[]'](d['$-@'](),d),b(g.yydebug)&&m['$[]='](d['$-@'](),d,n),i['$[]='](d['$-@'](),d,n),v['$[]='](d['$-@'](),d,n),b(x)?i.$push(g.$__send__(t,q,i,q['$[]'](0))):i.$push(g.$__send__(t,q,i)),m.$push(p),b(g.yydebug)&&g.$racc_reduce(E,p,m,i),s=r(p,z),b(e=A['$[]'](s)))if(e=h(e,v['$[]'](-1)),b(k(e,0))&&b(w=D['$[]'](e))&&f(C['$[]'](e),s))return w;return B['$[]'](s)}),d(i,'$on_error',function(e,f,h){var c=this,d=a;return c.$raise(w('ParseError'),c.$sprintf("\nparse error on value %s (%s)",f.$inspect(),b(d=c.$token_to_str(e))?d:"?"))}),d(i,'$yyerror',function(){var a=this;return a.$throw("racc_jump",1)}),d(i,'$yyaccept',function(){var a=this;return a.$throw("racc_jump",2)}),d(i,'$yyerrok',t("racc_error_status",0)),d(i,'$racc_read_token',function(b,c,d){var a=this;return a.racc_debug_out.$print("read "),a.racc_debug_out.$print(c.$inspect(),"(",a.$racc_token2str(b),") "),a.racc_debug_out.$puts(d.$inspect()),a.racc_debug_out.$puts()}),d(i,'$racc_shift',function(b,c,d){var a=this;return a.racc_debug_out.$puts("shift "+a.$racc_token2str(b)),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_reduce',function(e,f,h,i){var d=this,c=a;return c=d.racc_debug_out,c.$print("reduce "),b(e['$empty?']())?c.$print(" "):g(e,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$print(" ",e.$racc_token2str(b))},{$$s:d}),c.$puts(" --> "+d.$racc_token2str(f)),d.$racc_print_stacks(h,i),d.racc_debug_out.$puts()}),d(i,'$racc_accept',function(){var a=this;return a.racc_debug_out.$puts("accept"),a.racc_debug_out.$puts()}),d(i,'$racc_e_pop',function(b,c,d){var a=this;return a.racc_debug_out.$puts("error recovering mode: pop token"),a.$racc_print_states(b),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_next_state',function(b,c){var a=this;return a.racc_debug_out.$puts("goto "+b),a.$racc_print_states(c),a.racc_debug_out.$puts()}),d(i,'$racc_print_stacks',function(c,e){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each_index',[],function f(d){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),b.$print(" (",g.$racc_token2str(c['$[]'](d))," ",e['$[]'](d).$inspect(),")")},{$$s:d}),b.$puts(" ]")}),d(i,'$racc_print_states',function(c){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each',[],function(c){return c==null&&(c=a),b.$print(" ",c)}),b.$puts(" ]")}),d(i,'$racc_token2str',function(c){var d=this,e=a;return b(e=j(d.$class(),'Racc_token_to_s_table')['$[]'](c))?e:d.$raise("[Racc Bug] can't convert token "+c+" to string")}),d(i,'$token_to_str',function(a){var b=this;return j(b.$class(),'Racc_token_to_s_table')['$[]'](a)})}(i[0],null,i)}(i[0],i)},Opal.modules["parser/messages"]=function(a){var b=a.module,d=a.const_set,e=a.truthy,f=a.eqeqeq,g=a.defs,c=[],h=a.nil;return a.add_stubs('freeze,[],empty?,===,format'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return d(c[0],'MESSAGES',new Map([["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"],["gvar_name","`%{name}' is not allowed as a global 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"],["no_anonymous_restarg","no anonymous rest parameter"],["no_anonymous_kwrestarg","no anonymous keyword rest parameter"],["ambiguous_anonymous_restarg","anonymous rest parameter is also used within block"],["ambiguous_anonymous_kwrestarg","anonymous keyword rest parameter is also used within block"],["ambiguous_anonymous_blockarg","anonymous block parameter is also used within block"],["useless_else","else without rescue is useless"],["duplicate_hash_key","key is duplicated and overwritten"],["ambiguous_it_call","`it` calls without arguments refers to the first block param"],["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(i,j){var c=b(i,'Messages'),k=[c].concat(j),d=a.$r(k);return g(c,'$compile',function(c,a){var g=this,b=h;return b=d('MESSAGES')['$[]'](c),f(d('Hash'),a)&&e(a['$empty?']())?b:g.$format(b,a)})}(c[0],c)}(c[0],c)},Opal.modules["parser/deprecation"]=function(a){var c=a.module,d=a.truthy,f=a.def,e=[],b=a.nil,g=a.$$$;return a.add_stubs('attr_writer,warn'),function(a,e){var h=c(a,'Parser'),i=[h].concat(e);return function(e){var a=c(e,'Deprecation');return a.$attr_writer("warned_of_deprecation"),f(a,'$warn_of_deprecation',function(){var a=this,c=b,e=b;return a.warned_of_deprecation==null&&(a.warned_of_deprecation=b),a.warned_of_deprecation=d(c=a.warned_of_deprecation)?c:d(e=a.$warn(g(a,'DEPRECATION_WARNING')))?e:!0})}(i[0])}(e[0],e)},Opal.modules["parser/ast/processor"]=function(d){var h=d.module,k=d.klass,c=d.def,a=d.alias,e=d.to_a,f=d.not,i=d.truthy,l=d.slice,j=[],b=d.nil,g=d.$$$;return d.add_stubs('include,updated,process_all,process_regular_node,on_var,process_variable_node,!,nil?,process,on_vasgn,process_var_asgn_node,on_argument,process_argument_node,is_a?,[],children,on_send,warn'),function(m,n){var o=h(m,'Parser'),j=[o].concat(n);return function(m,n){var o=h(m,'AST'),j=[o].concat(n);return function(j,m,n){var h=k(j,m,'Processor'),o=[h].concat(n),p=d.$r(o);return h.$include(g(g(g('AST'),'Processor'),'Mixin')),c(h,'$process_regular_node',function(a){var c=this;return a.$updated(b,c.$process_all(a))}),a(h,"on_dstr","process_regular_node"),a(h,"on_dsym","process_regular_node"),a(h,"on_regexp","process_regular_node"),a(h,"on_xstr","process_regular_node"),a(h,"on_splat","process_regular_node"),a(h,"on_kwsplat","process_regular_node"),a(h,"on_array","process_regular_node"),a(h,"on_pair","process_regular_node"),a(h,"on_hash","process_regular_node"),a(h,"on_kwargs","process_regular_node"),a(h,"on_irange","process_regular_node"),a(h,"on_erange","process_regular_node"),c(h,'$on_var',function(a){return a}),c(h,'$process_variable_node',function(a){var b=this;return b.$on_var(a)}),a(h,"on_lvar","process_variable_node"),a(h,"on_ivar","process_variable_node"),a(h,"on_gvar","process_variable_node"),a(h,"on_cvar","process_variable_node"),a(h,"on_back_ref","process_variable_node"),a(h,"on_nth_ref","process_variable_node"),c(h,'$on_vasgn',function(c){var a,h=this,g=b,d=b;return a=[].concat(e(c)),g=a[0]==null?b:a[0],d=a[1]==null?b:a[1],a,f(d['$nil?']())?c.$updated(b,[g,h.$process(d)]):c}),c(h,'$process_var_asgn_node',function(a){var b=this;return b.$on_vasgn(a)}),a(h,"on_lvasgn","process_var_asgn_node"),a(h,"on_ivasgn","process_var_asgn_node"),a(h,"on_gvasgn","process_var_asgn_node"),a(h,"on_cvasgn","process_var_asgn_node"),a(h,"on_and_asgn","process_regular_node"),a(h,"on_or_asgn","process_regular_node"),c(h,'$on_op_asgn',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[f.$process(g),h,f.$process(c)])}),a(h,"on_mlhs","process_regular_node"),a(h,"on_masgn","process_regular_node"),c(h,'$on_const',function(c){var a,g=this,d=b,f=b;return a=[].concat(e(c)),d=a[0]==null?b:a[0],f=a[1]==null?b:a[1],a,c.$updated(b,[g.$process(d),f])}),c(h,'$on_casgn',function(d){var a,g=this,h=b,i=b,c=b;return a=[].concat(e(d)),h=a[0]==null?b:a[0],i=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,f(c['$nil?']())?d.$updated(b,[g.$process(h),i,g.$process(c)]):d.$updated(b,[g.$process(h),i])}),a(h,"on_args","process_regular_node"),c(h,'$on_argument',function(c){var a,h=this,g=b,d=b;return a=[].concat(e(c)),g=a[0]==null?b:a[0],d=a[1]==null?b:a[1],a,f(d['$nil?']())?c.$updated(b,[g,h.$process(d)]):c}),c(h,'$process_argument_node',function(a){var b=this;return b.$on_argument(a)}),a(h,"on_arg","process_argument_node"),a(h,"on_optarg","process_argument_node"),a(h,"on_restarg","process_argument_node"),a(h,"on_blockarg","process_argument_node"),a(h,"on_shadowarg","process_argument_node"),a(h,"on_kwarg","process_argument_node"),a(h,"on_kwoptarg","process_argument_node"),a(h,"on_kwrestarg","process_argument_node"),a(h,"on_forward_arg","process_argument_node"),c(h,'$on_procarg0',function(a){var b=this;return i(a.$children()['$[]'](0)['$is_a?'](p('Symbol')))?b.$on_argument(a):b.$process_regular_node(a)}),a(h,"on_arg_expr","process_regular_node"),a(h,"on_restarg_expr","process_regular_node"),a(h,"on_blockarg_expr","process_regular_node"),a(h,"on_block_pass","process_regular_node"),a(h,"on_forwarded_restarg","process_regular_node"),a(h,"on_forwarded_kwrestarg","process_regular_node"),a(h,"on_module","process_regular_node"),a(h,"on_class","process_regular_node"),a(h,"on_sclass","process_regular_node"),c(h,'$on_def',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[g,f.$process(h),f.$process(c)])}),c(h,'$on_defs',function(f){var a,c=this,g=b,h=b,d=b,i=b;return a=[].concat(e(f)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],d=a[2]==null?b:a[2],i=a[3]==null?b:a[3],a,f.$updated(b,[c.$process(g),h,c.$process(d),c.$process(i)])}),a(h,"on_undef","process_regular_node"),a(h,"on_alias","process_regular_node"),c(h,'$on_send',function(f){var a,g=this,c=b,h=b,d=b;return a=[].concat(e(f)),c=a[0]==null?b:a[0],h=a[1]==null?b:a[1],d=l(a,2),a,i(c)&&(c=g.$process(c)),f.$updated(b,[c,h].concat(e(g.$process_all(d))))}),a(h,"on_csend","on_send"),a(h,"on_index","process_regular_node"),a(h,"on_indexasgn","process_regular_node"),a(h,"on_block","process_regular_node"),a(h,"on_lambda","process_regular_node"),c(h,'$on_numblock',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[f.$process(g),h,f.$process(c)])}),a(h,"on_while","process_regular_node"),a(h,"on_while_post","process_regular_node"),a(h,"on_until","process_regular_node"),a(h,"on_until_post","process_regular_node"),a(h,"on_for","process_regular_node"),a(h,"on_return","process_regular_node"),a(h,"on_break","process_regular_node"),a(h,"on_next","process_regular_node"),a(h,"on_redo","process_regular_node"),a(h,"on_retry","process_regular_node"),a(h,"on_super","process_regular_node"),a(h,"on_yield","process_regular_node"),a(h,"on_defined?","process_regular_node"),a(h,"on_not","process_regular_node"),a(h,"on_and","process_regular_node"),a(h,"on_or","process_regular_node"),a(h,"on_if","process_regular_node"),a(h,"on_when","process_regular_node"),a(h,"on_case","process_regular_node"),a(h,"on_iflipflop","process_regular_node"),a(h,"on_eflipflop","process_regular_node"),a(h,"on_match_current_line","process_regular_node"),a(h,"on_match_with_lvasgn","process_regular_node"),a(h,"on_resbody","process_regular_node"),a(h,"on_rescue","process_regular_node"),a(h,"on_ensure","process_regular_node"),a(h,"on_begin","process_regular_node"),a(h,"on_kwbegin","process_regular_node"),a(h,"on_preexe","process_regular_node"),a(h,"on_postexe","process_regular_node"),a(h,"on_case_match","process_regular_node"),a(h,"on_in_match","process_regular_node"),a(h,"on_match_pattern","process_regular_node"),a(h,"on_match_pattern_p","process_regular_node"),a(h,"on_in_pattern","process_regular_node"),a(h,"on_if_guard","process_regular_node"),a(h,"on_unless_guard","process_regular_node"),a(h,"on_match_var","process_variable_node"),a(h,"on_match_rest","process_regular_node"),a(h,"on_pin","process_regular_node"),a(h,"on_match_alt","process_regular_node"),a(h,"on_match_as","process_regular_node"),a(h,"on_array_pattern","process_regular_node"),a(h,"on_array_pattern_with_tail","process_regular_node"),a(h,"on_hash_pattern","process_regular_node"),a(h,"on_const_pattern","process_regular_node"),a(h,"on_find_pattern","process_regular_node"),c(h,'$process_variable_node',function(b){var a=this;return a.$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."),a.$on_var(b)}),c(h,'$process_var_asgn_node',function(b){var a=this;return a.$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."),a.$on_vasgn(b)}),c(h,'$process_argument_node',function(b){var a=this;return a.$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."),a.$on_argument(b)}),c(h,'$on_empty_else',function(a){return a})}(j[0],null,j)}(j[0],j)}(j[0],j)},Opal.modules["parser/meta"]=function(a){var b=a.module,c=a.const_set,e=a.rb_plus,d=[],f=a.nil;return a.add_stubs('freeze,private_constant,to_set,+'),function(f,g){var h=b(f,'Parser'),d=[h].concat(g);return function(g,h){var f=b(g,'Meta'),d=[f].concat(h),i=a.$r(d);return c(d[0],'PRISM_TRANSLATION_PARSER_NODE_TYPES',["itarg","itblock"].$freeze()),f.$private_constant("PRISM_TRANSLATION_PARSER_NODE_TYPES"),c(d[0],'NODE_TYPES',e(a.large_array_unpack("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,forwarded_restarg,forwarded_kwrestarg"),i('PRISM_TRANSLATION_PARSER_NODE_TYPES')).$to_set().$freeze())}(d[0],d)}(d[0],d)},Opal.modules["parser/source/buffer"]=function(b){var m=b.module,t=b.klass,r=b.const_set,v=b.regexp,c=b.enc,d=b.truthy,o=b.gvars,p=b.eqeq,k=b.neqeq,l=b.defs,z=b.slice,y=b.extract_kwargs,A=b.ensure_kwargs,s=b.hash_get,i=b.send,e=b.def,q=b.not,h=b.rb_plus,f=b.rb_minus,u=b.rb_ge,j=b.rb_lt,w=b.send2,x=b.find_super,n=[],a=b.nil,g=b.$$$;return b.add_stubs('attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,raise,message,encoding,recognize_encoding,force_encoding,encode,to_s,source=,open,read,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,is_a?,size,begin,line_index_for_position,line_begins,+,-,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index'),function(B,C){var D=m(B,'Parser'),n=[D].concat(C);return function(B,C){var D=m(B,'Source'),n=[D].concat(C);return function(F,D,E){var m=t(F,D,'Buffer'),C=[m].concat(E),n=b.$r(C),B=m.$$prototype;return B.name=B.source=B.slice_source=B.first_line=B.lines=B.source_range=B.line_begins=B.line_index_for_position=B.line_range=a,m.$attr_reader("name","first_line"),r(C[0],'ENCODING_RE',v([c("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),c("(","ASCII-8BIT"),c("","ASCII-8BIT"),c("(utf8-mac)","ASCII-8BIT"),c("|","ASCII-8BIT"),c("","ASCII-8BIT"),c("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),c("|","ASCII-8BIT"),c("([A-Za-z0-9_-]+)","ASCII-8BIT"),c(")","ASCII-8BIT"),c("","ASCII-8BIT")])),l(m,'$recognize_encoding',function(q){var f,h,t=this,i=a,l=a,e=a,j=a,r=a,m=a,s=a;if(d(q['$empty?']()))return a;if(q['$=~'](/^(.*)\n?(.*\n)?/),f=[(h=o['~'])===a?a:h['$[]'](1),(h=o['~'])===a?a:h['$[]'](2)],i=f[0],l=f[1],f,d(i['$start_with?'](c("\xEF\xBB\xBF","ASCII-8BIT").$freeze())))return g(n('Encoding'),'UTF_8');if(p(i['$[]'](0,2),c("#!","ASCII-8BIT").$freeze())?e=l:e=i,d(e['$nil?']())||k(e['$[]'](0),c("#","ASCII-8BIT")))return a;if(d(j=n('ENCODING_RE').$match(e)))try{return n('Encoding').$find(d(r=d(m=j['$[]'](3))?m:j['$[]'](4))?r:j['$[]'](6))}catch(a){if(b.rescue(a,[n('ArgumentError')])){s=a;try{return t.$raise(g(n('Parser'),'UnknownEncodingInMagicComment'),s.$message())}finally{b.pop_exception(a)}}else throw a}else return a}),l(m,'$reencode_string',function(b){var f=this,e=a,c=a;return e=b.$encoding(),c=f.$recognize_encoding(b.$force_encoding(g(n('Encoding'),'BINARY'))),d(c['$nil?']())?b.$force_encoding(e):p(c,g(n('Encoding'),'BINARY'))?b:b.$force_encoding(c).$encode(g(n('Encoding'),'UTF_8'))}),e(m,'$initialize',function(j,l,m){var g,h,e,c,f,b=this;return g=z(arguments,1),h=y(g),h=A(h),g.length>0&&(e=g.shift()),e==null&&(e=1),c=s(h,"source"),c==null&&(c=a),b.name=j.$to_s(),b.source=a,b.first_line=e,b.lines=a,b.line_begins=a,b.slice_source=a,b.line_index_for_position=new Map,d(c)?(f=[c],i(b,'source=',f),f[f.length-1]):a},-2),e(m,'$read',function(){var b=this;return i(n('File'),'open',[b.name,c("rb","ASCII-8BIT")],function d(c){var b,e=d.$$s==null?this:d.$$s;return c==null&&(c=a),(b=[c.$read()],i(e,'source=',b),b[b.length-1])},{$$s:b}),b}),e(m,'$source',function(){var a=this;return d(a.source['$nil?']())&&a.$raise(n('RuntimeError'),c("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),a.source}),e(m,'$source=',function(a){var b,e=this;return d(a['$frozen?']())&&(a=a.$dup()),a=e.$class().$reencode_string(a),d(a['$valid_encoding?']())||e.$raise(n('EncodingError'),c("invalid byte sequence in ","ASCII-8BIT")+a.$encoding().$name()),(b=[a],i(e,'raw_source=',b),b[b.length-1])}),e(m,'$raw_source=',function(e){var b=this;return d(b.source)&&b.$raise(n('ArgumentError'),c("Source::Buffer is immutable","ASCII-8BIT")),b.source=e.$gsub(c("\r\n","ASCII-8BIT").$freeze(),c("\n","ASCII-8BIT").$freeze()).$freeze(),q(b.source['$ascii_only?']())&&k(b.source.$encoding(),g(n('Encoding'),'UTF_32LE'))&&k(b.source.$encoding(),g(n('Encoding'),'BINARY'))?b.slice_source=b.source.$encode(g(n('Encoding'),'UTF_32LE')):a}),e(m,'$slice',function(c,b){var e=this;return b==null&&(b=a),d(b['$nil?']())&&(d(c['$is_a?'](g('Range')))?(b=c.$size(),c=c.$begin()):b=1),d(e.slice_source['$nil?']())?e.source['$[]'](c,b):e.slice_source['$[]'](c,b).$encode(e.source.$encoding())},-2),e(m,'$decompose_position',function(d){var b=this,c=a,e=a;return c=b.$line_index_for_position(d),e=b.$line_begins()['$[]'](c),[h(b.first_line,c),f(d,e)]}),e(m,'$line_for_position',function(b){var a=this;return h(a.$line_index_for_position(b),a.first_line)}),e(m,'$column_for_position',function(b){var c=this,d=a;return d=c.$line_index_for_position(b),f(b,c.$line_begins()['$[]'](d))}),e(m,'$source_lines',function(){var b=this,f=a,e=a;return b.lines=d(f=b.lines)?f:(e=b.source.$lines().$to_a(),d(b.source['$end_with?'](c("\n","ASCII-8BIT").$freeze()))?e['$<<'](c("","ASCII-8BIT").$dup()):a,i(e,'each',[],function(b){return b==null&&(b=a),b['$chomp!'](c("\n","ASCII-8BIT").$freeze()),b.$freeze()}),e.$freeze())}),e(m,'$source_line',function(b){var a=this;return a.$source_lines().$fetch(f(b,a.first_line)).$dup()}),e(m,'$line_range',function(g){var b=this,e=a;return e=f(g,b.first_line),d(j(e,0))||d(u(h(e,1),b.$line_begins().$size()))?b.$raise(n('IndexError'),c("Parser::Source::Buffer: range for line ","ASCII-8BIT")+(""+g+c(" requested, valid line numbers are ","ASCII-8BIT")+b.first_line+c("..","ASCII-8BIT"))+(""+f(h(b.first_line,b.$line_begins().$size()),2))):n('Range').$new(b,b.$line_begins()['$[]'](e),f(b.$line_begins()['$[]'](h(e,1)),1))}),e(m,'$source_range',function(){var b=this,c=a;return b.source_range=d(c=b.source_range)?c:n('Range').$new(b,0,b.$source().$size())}),e(m,'$last_line',function(){var a=this;return f(h(a.$line_begins().$size(),a.first_line),2)}),e(m,'$freeze',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.$source_lines(),b.$line_begins(),b.$source_range(),w(b,x(b,'freeze',c,!1,!0),'freeze',[],d)}),e(m,'$inspect',function(){var a=this;return c("#<","ASCII-8BIT")+a.$class()+c(" ","ASCII-8BIT")+a.$name()+c(">","ASCII-8BIT")}),m.$private(),e(m,'$line_begins',function(){var e=this,g=a,f=a,b=a;return e.line_begins=d(g=e.line_begins)?g:function(){return f=[0],b=0,function(){while(d(b=e.source.$index(c("\n","ASCII-8BIT").$freeze(),b)))b=h(b,1),f['$<<'](b);return a}(),f['$<<'](h(e.source.$size(),1)),f}()}),e(m,'$line_index_for_position',function(c){var b=this,g=a,e=a;return d(g=b.line_index_for_position['$[]'](c))?g:(e=f(b.$bsearch(b.$line_begins(),c),1),d(b.line_index_for_position['$frozen?']())||b.line_index_for_position['$[]='](c,e),e)}),d(n('Array')['$method_defined?']("bsearch_index"))?e(m,'$bsearch',function(b,e){var c=a;return d(c=i(b,'bsearch_index',[],function(b){return b==null&&(b=a),j(e,b)}))?c:f(b.$size(),1)}):e(m,'$bsearch',function(e,h){var g=this,c=a;return g.line_range=d(c=g.line_range)?c:b.Range.$new(0,e.$size(),!0),d(c=i(g.line_range,'bsearch',[],function(b){return b==null&&(b=a),j(h,e['$[]'](b))}))?c:f(e.$size(),1)})}(n[0],null,n)}(n[0],n)}(n[0],n)},Opal.modules["parser/source/range"]=function(b){var l=b.module,q=b.klass,c=b.truthy,p=b.rb_lt,a=b.def,i=b.rb_minus,o=b.alias,m=b.neqeq,n=b.slice,t=b.to_ary,e=b.rb_plus,j=b.ensure_kwargs,f=b.hash_get,g=b.rb_ge,r=b.rb_times,s=b.eqeq,k=[],d=b.nil,h=b.$$$;return b.add_stubs('include,attr_reader,<,raise,nil?,freeze,with,-,size,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,include?,source,to_a,begin_pos,end_pos,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash'),function(u,v){var w=l(u,'Parser'),k=[w].concat(v);return function(u,v){var w=l(u,'Source'),k=[w].concat(v);return function(y,v,w){var k=q(y,v,'Range'),x=[k].concat(w),l=b.$r(x),u=k.$$prototype;return u.begin_pos=u.end_pos=u.source_buffer=d,k.$include(l('Comparable')),k.$attr_reader("source_buffer"),k.$attr_reader("begin_pos","end_pos"),a(k,'$initialize',function(d,e,f){var b,a=this;return c(p(f,e))&&a.$raise(l('ArgumentError'),"Parser::Source::Range: end_pos must not be less than begin_pos"),c(d['$nil?']())&&a.$raise(l('ArgumentError'),"Parser::Source::Range: source_buffer must not be nil"),a.source_buffer=d,b=[e,f],a.begin_pos=b[0],a.end_pos=b[1],b,a.$freeze()}),a(k,'$begin',function(){var a=this;return a.$with(new Map([["end_pos",a.begin_pos]]))}),a(k,'$end',function(){var a=this;return a.$with(new Map([["begin_pos",a.end_pos]]))}),a(k,'$size',function(){var a=this;return i(a.end_pos,a.begin_pos)}),o(k,"length","size"),a(k,'$line',function(){var a=this;return a.source_buffer.$line_for_position(a.begin_pos)}),k.$alias_method("first_line","line"),a(k,'$column',function(){var a=this;return a.source_buffer.$column_for_position(a.begin_pos)}),a(k,'$last_line',function(){var a=this;return a.source_buffer.$line_for_position(a.end_pos)}),a(k,'$last_column',function(){var a=this;return a.source_buffer.$column_for_position(a.end_pos)}),a(k,'$column_range',function(){var a=this;return m(a.$line(),a.$last_line())&&a.$raise(l('RangeError'),""+a.$inspect()+" spans more than one line"),b.Range.$new(a.$column(),a.$last_column(),!0)}),a(k,'$source_line',function(){var a=this;return a.source_buffer.$source_line(a.$line())}),a(k,'$source',function(){var a=this;return a.source_buffer.$slice(a.begin_pos,i(a.end_pos,a.begin_pos))}),a(k,'$is?',function(e){var a,b,c=this;return a=n(arguments),b=a,b['$include?'](c.$source())},-1),a(k,'$to_a',function(){var a=this;return b.Range.$new(a.begin_pos,a.end_pos,!0).$to_a()}),a(k,'$to_range',function(){var a=this;return b.Range.$new(a.$begin_pos(),a.$end_pos(),!0)}),a(k,'$to_s',function(){var a,b,c=this,f=d,g=d;return b=c.source_buffer.$decompose_position(c.begin_pos),a=t(b),f=a[0]==null?d:a[0],g=a[1]==null?d:a[1],b,[c.source_buffer.$name(),f,e(g,1)].$join(":")}),a(k,'$with',function(a){var b,c,d=this;return a=j(a),b=f(a,"begin_pos"),b==null&&(b=d.begin_pos),c=f(a,"end_pos"),c==null&&(c=d.end_pos),l('Range').$new(d.source_buffer,b,c)},-1),a(k,'$adjust',function(a){var b,c,d=this;return a=j(a),b=f(a,"begin_pos"),b==null&&(b=0),c=f(a,"end_pos"),c==null&&(c=0),l('Range').$new(d.source_buffer,e(d.begin_pos,b),e(d.end_pos,c))},-1),a(k,'$resize',function(b){var a=this;return a.$with(new Map([["end_pos",e(a.begin_pos,b)]]))}),a(k,'$join',function(b){var a=this;return l('Range').$new(a.source_buffer,[a.begin_pos,b.$begin_pos()].$min(),[a.end_pos,b.$end_pos()].$max())}),a(k,'$intersect',function(b){var a=this;return c(a['$disjoint?'](b))?d:l('Range').$new(a.source_buffer,[a.begin_pos,b.$begin_pos()].$max(),[a.end_pos,b.$end_pos()].$min())}),a(k,'$disjoint?',function(a){var b=this,e=d;return c(b['$empty?']())&&c(a['$empty?']())?b.begin_pos['$!='](a.$begin_pos()):c(e=g(b.begin_pos,a.$end_pos()))?e:g(a.$begin_pos(),b.end_pos)}),a(k,'$overlaps?',function(a){var b=this;return b['$disjoint?'](a)['$!']()}),a(k,'$contains?',function(a){var b=this;return g(e(a.$begin_pos()['$<=>'](b.begin_pos),b.end_pos['$<=>'](a.$end_pos())),c(a['$empty?']())?2:1)}),a(k,'$contained?',function(a){var b=this;return a['$contains?'](b)}),a(k,'$crossing?',function(a){var b=this;return!!c(b['$overlaps?'](a))&&r(b.begin_pos['$<=>'](a.$begin_pos()),b.end_pos['$<=>'](a.$end_pos()))['$=='](1)}),a(k,'$empty?',function(){var a=this;return a.begin_pos['$=='](a.end_pos)}),a(k,'$<=>',function(a){var b=this,e=d;return c(a['$is_a?'](h(h(h('Parser'),'Source'),'Range')))&&s(b.source_buffer,a.$source_buffer())?c(e=b.begin_pos['$<=>'](a.$begin_pos())['$nonzero?']())?e:b.end_pos['$<=>'](a.$end_pos()):d}),k.$alias_method("eql?","=="),a(k,'$hash',function(){var a=this;return[a.source_buffer,a.begin_pos,a.end_pos].$hash()}),a(k,'$inspect',function(){var a=this;return"#"})}(k[0],null,k)}(k[0],k)}(k[0],k)},Opal.modules["parser/source/comment"]=function(a){var h=a.module,i=a.klass,e=a.defs,c=a.def,f=a.truthy,g=[],b=a.nil,d=a.$$$;return a.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(j,k){var l=h(j,'Parser'),g=[l].concat(k);return function(j,k){var l=h(j,'Source'),g=[l].concat(k);return function(j,k,l){var g=i(j,k,'Comment'),m=[g].concat(l),h=a.$r(m),n=g.$$prototype;return n.location=b,g.$attr_reader("text"),g.$attr_reader("location"),g.$alias_method("loc","location"),e(g,'$associate',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate()}),e(g,'$associate_locations',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate_locations()}),e(g,'$associate_by_identity',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate_by_identity()}),c(g,'$initialize',function(b){var a=this;return a.location=d(d(h('Parser'),'Source'),'Map').$new(b),a.text=b.$source().$freeze(),a.$freeze()}),c(g,'$type',function(){var a=this;return f(a.$text()['$start_with?']("#".$freeze()))?"inline":f(a.$text()['$start_with?']("=begin".$freeze()))?"document":b}),c(g,'$inline?',function(){var a=this;return a.$type()['$==']("inline")}),c(g,'$document?',function(){var a=this;return a.$type()['$==']("document")}),c(g,'$==',function(a){var e=this,c=b;return f(c=a['$is_a?'](d(h('Source'),'Comment')))?e.location['$=='](a.$location()):c}),c(g,'$inspect',function(){var a=this;return"#"})}(g[0],null,g)}(g[0],g)}(g[0],g)},Opal.modules["parser/source/comment/associator"]=function(c){var l=c.module,n=c.klass,d=c.def,j=c.const_set,b=c.truthy,e=c.send,h=c.eqeq,g=c.rb_le,m=c.rb_plus,f=c.not,k=[],a=c.nil,i=c.$$$;return c.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(o,p){var q=l(o,'Parser'),k=[q].concat(p);return function(o,p){var q=l(o,'Source'),k=[q].concat(p),r=c.$r(k);return function(s,q,r){var k=n(s,q,'Associator'),p=[k].concat(r),o=c.$r(p),l=k.$$prototype;return l.map_using=l.mapping=l.skip_directives=l.ast=l.current_comment=l.comment_num=l.comments=a,k.$attr_accessor("skip_directives"),d(k,'$initialize',function(b,c){var a=this;return a.ast=b,a.comments=c,a.skip_directives=!0}),d(k,'$associate',function(){var a=this;return a.map_using="eql",a.$do_associate()}),d(k,'$associate_locations',function(){var a=this;return a.map_using="location",a.$do_associate()}),d(k,'$associate_by_identity',function(){var a=this;return a.map_using="identity",a.$do_associate()}),k.$private(),j(p[0],'POSTFIX_TYPES',o('Set')['$[]']("if","while","while_post","until","until_post","masgn").$freeze()),d(k,'$children_in_source_order',function(c){return b(o('POSTFIX_TYPES')['$include?'](c.$type()))?e(c.$children().$compact(),'sort_by',[],function(b){return b==null&&(b=a),b.$loc().$expression().$begin_pos()}):e(c.$children(),'select',[],function(c){var d=a,e=a;return c==null&&(c=a),b(d=b(e=c['$is_a?'](i(o('AST'),'Node')))?c.$loc():e)?c.$loc().$expression():d})}),d(k,'$do_associate',function(){var c=this;return c.mapping=e(o('Hash'),'new',[],function(c,d){var b;return c==null&&(c=a),d==null&&(d=a),(b=[d,[]],e(c,'[]=',b),b[b.length-1])}),h(c.map_using,"identity")&&c.mapping.$compare_by_identity(),c.comment_num=-1,c.$advance_comment(),b(c.skip_directives)&&c.$advance_through_directives(),b(c.ast)&&c.$visit(c.ast),c.mapping}),d(k,'$visit',function(d){var c=this,f=a;return c.$process_leading_comments(d),!b(c.current_comment)?a:(f=d.$location(),b(g(c.current_comment.$location().$line(),f.$last_line()))||b(f['$is_a?'](i(o('Map'),'Heredoc'))))?(e(c.$children_in_source_order(d),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$visit(b)},{$$s:c}),c.$process_trailing_comments(d)):a}),d(k,'$process_leading_comments',function(c){var d=this;if(h(c.$type(),"begin"))return a;while(b(d['$current_comment_before?'](c)))d.$associate_and_advance_comment(c)}),d(k,'$process_trailing_comments',function(a){for(var c=this;b(c['$current_comment_before_end?'](a));)c.$associate_and_advance_comment(a);while(b(c['$current_comment_decorates?'](a)))c.$associate_and_advance_comment(a)}),d(k,'$advance_comment',function(){var a=this;return a.comment_num=m(a.comment_num,1),a.current_comment=a.comments['$[]'](a.comment_num)}),d(k,'$current_comment_before?',function(e){var b=this,c=a,d=a;return!f(b.current_comment)&&(c=b.current_comment.$location().$expression(),d=e.$location().$expression(),g(c.$end_pos(),d.$begin_pos()))}),d(k,'$current_comment_before_end?',function(e){var b=this,c=a,d=a;return!f(b.current_comment)&&(c=b.current_comment.$location().$expression(),d=e.$location().$expression(),g(c.$end_pos(),d.$end_pos()))}),d(k,'$current_comment_decorates?',function(b){var a=this;return!f(a.current_comment)&&a.current_comment.$location().$line()['$=='](b.$location().$last_line())}),d(k,'$associate_and_advance_comment',function(c){var b=this,d=a;return d=h(b.map_using,"location")?c.$location():c,b.mapping['$[]'](d)['$<<'](b.current_comment),b.$advance_comment()}),j(p[0],'MAGIC_COMMENT_RE',/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),d(k,'$advance_through_directives',function(){var c=this;return b(c.current_comment)&&b(c.current_comment.$text()['$start_with?']("#!".$freeze()))&&c.$advance_comment(),b(c.current_comment)&&b(c.current_comment.$text()['$=~'](o('MAGIC_COMMENT_RE')))&&c.$advance_comment(),b(c.current_comment)&&b(c.current_comment.$text()['$=~'](i(o('Buffer'),'ENCODING_RE')))?c.$advance_comment():a})}(r('Comment'),null,k)}(k[0],k)}(k[0],k)},Opal.modules["parser/source/rewriter"]=function(d){var n=d.module,r=d.klass,f=d.send,j=d.gvars,b=d.def,e=d.rb_minus,h=d.rb_plus,c=d.truthy,l=d.not,k=d.neqeq,i=d.rb_le,o=d.rb_ge,p=d.rb_lt,q=d.const_set,m=[],a=d.nil,g=d.$$$;return d.add_stubs('attr_reader,warn_of_deprecation,class,new,consumer=,lambda,puts,render,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=,active_clobber,clobbered_position_mask,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(s,t){var u=n(s,'Parser'),m=[u].concat(t);return function(s,t){var u=n(s,'Source'),m=[u].concat(t);return function(w,u,v){var m=r(w,u,'Rewriter'),t=[m].concat(v),n=d.$r(t),s=m.$$prototype;return s.diagnostics=s.insert_before_multi_order=s.insert_after_multi_order=s.source_buffer=s.queue=s.clobber=s.insertions=s.pending_queue=s.pending_clobber=s.pending_insertions=a,m.$attr_reader("source_buffer"),m.$attr_reader("diagnostics"),b(m,'$initialize',function(c){var b=this;return b.$class().$warn_of_deprecation(),b.diagnostics=g(n('Diagnostic'),'Engine').$new(),b.diagnostics['$consumer='](f(b,'lambda',[],function(b){return j.stderr==null&&(j.stderr=a),b==null&&(b=a),j.stderr.$puts(b.$render())})),b.source_buffer=c,b.queue=[],b.clobber=0,b.insertions=0,b.insert_before_multi_order=0,b.insert_after_multi_order=0,b.pending_queue=a,b.pending_clobber=a,b.pending_insertions=a}),b(m,'$remove',function(a){var b=this;return b.$append(g(n('Rewriter'),'Action').$new(a,"".$freeze()))}),b(m,'$insert_before',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a.$begin(),b))}),b(m,'$wrap',function(a,c,d){var b=this;return b.$append(g(n('Rewriter'),'Action').$new(a.$begin(),c)),b.$append(g(n('Rewriter'),'Action').$new(a.$end(),d))}),b(m,'$insert_before_multi',function(b,c){var a=this;return a.insert_before_multi_order=e(a.insert_before_multi_order,1),a.$append(g(n('Rewriter'),'Action').$new(b.$begin(),c,!0,a.insert_before_multi_order))}),b(m,'$insert_after',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a.$end(),b))}),b(m,'$insert_after_multi',function(b,c){var a=this;return a.insert_after_multi_order=h(a.insert_after_multi_order,1),a.$append(g(n('Rewriter'),'Action').$new(b.$end(),c,!0,a.insert_after_multi_order))}),b(m,'$replace',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a,b))}),b(m,'$process',function(){var b=this,g=a,i=a;return c(b['$in_transaction?']())&&b.$raise("Do not call "+b.$class()+"#"+"process"+" inside a transaction"),g=0,i=b.source_buffer.$source().$dup(),f(b.queue.$sort(),'each',[],function(b){var c=a,f=a;return b==null&&(b=a),c=h(b.$range().$begin_pos(),g),f=h(c,b.$range().$length()),i['$[]='](d.Range.$new(c,f,!0),b.$replacement()),g=h(g,e(b.$replacement().$length(),b.$range().$length()))}),i}),b(m,'$transaction',function e(){var f=e.$$p||a,b=this;return e.$$p=null,function(){try{return f!==a||b.$raise(""+b.$class()+"#"+"transaction"+" requires block"),c(b['$in_transaction?']())&&b.$raise("Nested transaction is not supported"),b.pending_queue=b.queue.$dup(),b.pending_clobber=b.clobber,b.pending_insertions=b.insertions,d.yieldX(f,[]),b.queue=b.pending_queue,b.clobber=b.pending_clobber,b.insertions=b.pending_insertions,b}finally{b.pending_queue=a,b.pending_clobber=a,b.pending_insertions=a}}()}),m.$private(),b(m,'$append',function(d){var b=this,e=a,h=a,g=a,i=a;if(e=d.$range(),c(e['$empty?']())){if(c(d.$replacement()['$empty?']()))return b;l(d['$allow_multiple_insertions?']())&&c(h=b['$clobbered_insertion?'](e))&&b.$raise_clobber_error(d,[h]),b.$record_insertion(e),c(g=b['$adjacent_updates?'](e))?(h=f(g,'find',[],function f(b){var h=f.$$s==null?this:f.$$s,g=a;return b==null&&(b=a),c(g=b.$range()['$overlaps?'](e))?h['$replace_compatible_with_insertion?'](b,d)['$!']():g},{$$s:b}),c(h)&&b.$raise_clobber_error(d,[h]),b['$merge_actions!'](d,g)):b.$active_queue()['$<<'](d)}else c(i=b['$adjacent_insertions?'](e))&&f(i,'each',[],function g(b){var f=g.$$s==null?this:g.$$s;return b==null&&(b=a),c(e['$overlaps?'](b.$range()))&&l(f['$replace_compatible_with_insertion?'](d,b))?f.$raise_clobber_error(d,[b]):(d=f.$merge_actions(d,[b]),f.$active_queue().$delete(b))},{$$s:b}),c(g=b['$adjacent_updates?'](e))?c(b['$can_merge?'](d,g))?(b.$record_replace(e),b['$merge_actions!'](d,g)):b.$raise_clobber_error(d,g):(b.$record_replace(e),b.$active_queue()['$<<'](d));return b}),b(m,'$record_insertion',function(c){var a,b=this;return a=[b.$active_insertions()['$|'](1['$<<'](c.$begin_pos()))],f(b,'active_insertions=',a),a[a.length-1]}),b(m,'$record_replace',function(c){var a,b=this;return a=[b.$active_clobber()['$|'](b.$clobbered_position_mask(c))],f(b,'active_clobber=',a),a[a.length-1]}),b(m,'$clobbered_position_mask',function(a){return e(1['$<<'](a.$size()),1)['$<<'](a.$begin_pos())}),b(m,'$adjacent_position_mask',function(a){return e(1['$<<'](h(a.$size(),2)),1)['$<<'](e(a.$begin_pos(),1))}),b(m,'$adjacent_insertion_mask',function(a){return e(1['$<<'](h(a.$size(),1)),1)['$<<'](a.$begin_pos())}),b(m,'$clobbered_insertion?',function(e){var d=this,b=a;return b=e.$begin_pos(),k(d.$active_insertions()['$&'](1['$<<'](b)),0)?f(d.$active_queue(),'find',[],function(d){var e=a;return d==null&&(d=a),c(e=i(d.$range().$begin_pos(),b))?i(b,d.$range().$end_pos()):e}):a}),b(m,'$adjacent_insertions?',function(e){var b=this,d=a;return k(b.$active_insertions()['$&'](b.$adjacent_insertion_mask(e)),0)?(d=f(b.$active_queue(),'select',[],function d(b){var g=d.$$s==null?this:d.$$s,f=a;return b==null&&(b=a),c(f=b.$range()['$empty?']())?g['$adjacent?'](e,b.$range()):f},{$$s:b}),c(d['$empty?']()))?a:d:a}),b(m,'$adjacent_updates?',function(c){var b=this;return k(b.$active_clobber()['$&'](b.$adjacent_position_mask(c)),0)?f(b.$active_queue(),'select',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),e['$adjacent?'](c,b.$range())},{$$s:b}):a}),b(m,'$replace_compatible_with_insertion?',function(b,d){var f=a,g=a,h=a;return c(f=c(g=o(e(b.$replacement().$length(),b.$range().$size()),d.$range().$size()))?h=e(d.$range().$begin_pos(),b.$range().$begin_pos()):g)?b.$replacement()['$[]'](h,d.$replacement().$length())['$=='](d.$replacement()):f}),b(m,'$can_merge?',function(d,g){var b=a;return b=d.$range(),f(g,'all?',[],function(f){var g=a,h=a,i=a,l=a,k=a,m=a,j=a,n=a;return!!(f==null&&(f=a),g=b.$intersect(f.$range()),c(g['$nil?']()))||(h=e(g.$begin_pos(),b.$begin_pos()),i=e(g.$begin_pos(),f.$range().$begin_pos()),l=[e(f.$range().$length(),i),e(f.$replacement().$length(),i)].$max(),k=[e(b.$length(),h),e(d.$replacement().$length(),h)].$max(),m=c(j=d.$replacement()['$[]'](h,l))?j:"".$freeze(),n=c(j=f.$replacement()['$[]'](i,k))?j:"".$freeze(),m['$=='](n))})}),b(m,'$merge_actions',function(d,e){var h=this,b=a,c=a;return b=f(e.$push(d),'sort_by',[],function(b){return b==null&&(b=a),[b.$range().$begin_pos(),b.$range().$end_pos()]}),c=b.$first().$range().$join(f(b,'max_by',[],function(b){return b==null&&(b=a),b.$range().$end_pos()}).$range()),g(n('Rewriter'),'Action').$new(c,h.$merge_replacements(b))}),b(m,'$merge_actions!',function(c,d){var b=this,e=a;return e=b.$merge_actions(c,d),b.$active_queue().$delete(c),b.$replace_actions(d,e)}),b(m,'$merge_replacements',function(i){var g=a,b=a;return g="".$dup(),b=a,f(i,'each',[],function(f){var j=a,i=a;return f==null&&(f=a),l(b)||c(f.$range()['$disjoint?'](b.$range()))?g['$<<'](f.$replacement()):(j=[h(b.$range().$begin_pos(),b.$replacement().$length()),b.$range().$end_pos()].$max(),i=e(j,f.$range().$begin_pos()),c(p(i,f.$replacement().$size()))&&g['$<<'](f.$replacement()['$[]'](d.Range.$new(i,-1,!1)))),b=f}),g}),b(m,'$replace_actions',function(c,d){var b=this;return f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$active_queue().$delete(b)},{$$s:b}),b.$active_queue()['$<<'](d)}),b(m,'$raise_clobber_error',function(d,e){var c=this,b=a;return b=n('Diagnostic').$new("error","invalid_action",new Map([["action",d]]),d.$range()),c.diagnostics.$process(b),b=n('Diagnostic').$new("note","clobbered",new Map([["action",e['$[]'](0)]]),e['$[]'](0).$range()),c.diagnostics.$process(b),c.$raise(n('ClobberingError'),"Parser::Source::Rewriter detected clobbering")}),b(m,'$in_transaction?',function(){var a=this;return a.pending_queue['$nil?']()['$!']()}),b(m,'$active_queue',function(){var b=this,d=a;return c(d=b.pending_queue)?d:b.queue}),b(m,'$active_clobber',function(){var b=this,d=a;return c(d=b.pending_clobber)?d:b.clobber}),b(m,'$active_insertions',function(){var b=this,d=a;return c(d=b.pending_insertions)?d:b.insertions}),b(m,'$active_clobber=',function(b){var a=this;return c(a.pending_clobber)?a.pending_clobber=b:a.clobber=b}),b(m,'$active_insertions=',function(b){var a=this;return c(a.pending_insertions)?a.pending_insertions=b:a.insertions=b}),b(m,'$adjacent?',function(b,d){var e=a;return c(e=i(b.$begin_pos(),d.$end_pos()))?i(d.$begin_pos(),b.$end_pos()):e}),q(t[0],'DEPRECATION_WARNING',["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),m.$extend(n('Deprecation'))}(m[0],null,m)}(m[0],m)}(m[0],m)},Opal.modules["parser/source/rewriter/action"]=function(a){var d=a.module,h=a.klass,b=a.def,c=a.truthy,e=a.eqeq,f=[],g=a.nil;return a.add_stubs('include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect'),function(i,j){var k=d(i,'Parser'),f=[k].concat(j);return function(i,j){var k=d(i,'Source'),f=[k].concat(j),l=a.$r(f);return function(m,i,j){var d=h(m,i,'Action'),k=[d].concat(j),l=a.$r(k),f=d.$$prototype;return f.replacement=f.range=g,d.$include(l('Comparable')),d.$attr_reader("range","replacement","allow_multiple_insertions","order"),d.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),b(d,'$initialize',function(e,b,c,d){var a=this;return b==null&&(b=""),c==null&&(c=!1),d==null&&(d=0),a.range=e,a.replacement=b,a.allow_multiple_insertions=c,a.order=d,a.$freeze()},-2),b(d,'$<=>',function(b){var d=this,a=g;return a=d.$range().$begin_pos()['$<=>'](b.$range().$begin_pos()),!c(a['$zero?']())?a:d.$order()['$<=>'](b.$order())}),b(d,'$to_s',function(){var a=this;return e(a.range.$length(),0)&&c(a.replacement['$empty?']())?"do nothing":e(a.range.$length(),0)?"insert "+a.replacement.$inspect():c(a.replacement['$empty?']())?"remove "+a.range.$length()+" character(s)":"replace "+a.range.$length()+" character(s) with "+a.replacement.$inspect()})}(l('Rewriter'),null,f)}(f[0],f)}(f[0],f)},Opal.modules["parser/source/tree_rewriter"]=function(b){var n=b.module,x=b.klass,i=b.ensure_kwargs,f=b.hash_get,q=b.lambda,h=b.gvars,c=b.def,g=b.eqeq,d=b.truthy,l=b.rb_plus,m=b.send,y=b.return_ivar,j=b.const_set,o=b.eqeqeq,w=b.range,k=b.to_ary,r=b.rb_minus,s=b.rb_gt,t=b.rb_lt,u=b.kwrestargs,v=b.slice,p=[],a=b.nil,e=b.$$$;return b.add_stubs('attr_reader,new,consumer=,puts,render,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(z,A){var B=n(z,'Parser'),p=[B].concat(A);return function(z,A){var B=n(z,'Source'),p=[B].concat(A);return function(D,B,C){var n=x(D,B,'TreeRewriter'),A=[n].concat(C),p=b.$r(A),z=n.$$prototype;return z.diagnostics=z.source_buffer=z.enforcer=z.action_root=z.in_transaction=z.policy=a,n.$attr_reader("source_buffer"),n.$attr_reader("diagnostics"),c(n,'$initialize',function(l,c){var d,g,j,b=this,k=a;return c=i(c),d=f(c,"crossing_deletions"),d==null&&(d="accept"),g=f(c,"different_replacements"),g==null&&(g="accept"),j=f(c,"swallowed_insertions"),j==null&&(j="accept"),b.diagnostics=e(p('Diagnostic'),'Engine').$new(),b.diagnostics['$consumer='](q(function(b){return h.stderr==null&&(h.stderr=a),b==null&&(b=a),h.stderr.$puts(b.$render())})),b.source_buffer=l,b.in_transaction=!1,b.policy=new Map([["crossing_deletions",d],["different_replacements",g],["swallowed_insertions",j]]).$freeze(),b.$check_policy_validity(),b.enforcer=b.$method("enforce_policy"),k=b.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),b.action_root=e(p('TreeRewriter'),'Action').$new(k,b.enforcer)},-2),c(n,'$empty?',function(){var a=this;return a.action_root['$empty?']()}),c(n,'$merge!',function(b){var a=this;return g(a.$source_buffer(),b.$source_buffer())||a.$raise("TreeRewriter are not for the same source_buffer"),a.action_root=a.action_root.$combine(b.$action_root()),a}),c(n,'$merge',function(a){var b=this;return b.$dup()['$merge!'](a)}),c(n,'$import!',function(k,h){var c,b=this,g=a,j=a,m=a;return h=i(h),c=f(h,"offset"),c==null&&(c=0),d(k['$empty?']())?b:(g=k.$action_root().$contract(),j=e(e(e('Parser'),'Source'),'Range').$new(b.source_buffer,l(g.$range().$begin_pos(),c),l(g.$range().$end_pos(),c)),b.$check_range_validity(j),m=g.$moved(b.source_buffer,c),b.action_root=b.action_root.$combine(m),b)},-2),c(n,'$replace',function(a,b){var c=this;return c.$combine(a,new Map([["replacement",b]]))}),c(n,'$wrap',function(a,b,c){var d=this;return d.$combine(a,new Map([["insert_before",b.$to_s()],["insert_after",c.$to_s()]]))}),c(n,'$remove',function(a){var b=this;return b.$replace(a,"".$freeze())}),c(n,'$insert_before',function(b,c){var d=this;return d.$wrap(b,c,a)}),c(n,'$insert_after',function(b,c){var d=this;return d.$wrap(b,a,c)}),c(n,'$process',function(){var f=this,c=a,d=a,e=a;return c=f.source_buffer.$source(),d=[],e=0,m(f.action_root.$ordered_replacements(),'each',[],function(f,g){return f==null&&(f=a),g==null&&(g=a),d['$<<'](c['$[]'](b.Range.$new(e,f.$begin_pos(),!0)))['$<<'](g),e=f.$end_pos()}),d['$<<'](c['$[]'](b.Range.$new(e,c.$length(),!0))),d.$join()}),c(n,'$as_replacements',function(){var a=this;return a.action_root.$ordered_replacements()}),c(n,'$as_nested_actions',function(){var a=this;return a.action_root.$nested_actions()}),c(n,'$transaction',function f(){var g=f.$$p||a,c=this,h=a,e=a;return f.$$p=null,function(){try{return g!==a||c.$raise(""+c.$class()+"#"+"transaction"+" requires block"),h=c.in_transaction,c.in_transaction=!0,e=c.action_root,b.yieldX(g,[]),e=a,c}finally{d(e)?c.action_root=e:a,c.in_transaction=h}}()}),c(n,'$in_transaction?',y("in_transaction")),c(n,'$inspect',function(){var a=this;return"#<"+a.$class()+" "+a.$source_buffer().$name()+": "+a.$action_summary()+">"}),c(n,'$insert_before_multi',function(b,c){var a=this;return a.$class().$warn_of_deprecation(),a.$insert_before(b,c)}),c(n,'$insert_after_multi',function(b,c){var a=this;return a.$class().$warn_of_deprecation(),a.$insert_after(b,c)}),j(A[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()),n.$extend(p('Deprecation')),n.$protected(),n.$attr_reader("action_root"),n.$private(),c(n,'$action_summary',function(){var h=this,b=a,f=a,c=a,e=a;return b=h.$as_replacements(),o(0,f=b.$size())?"empty":(o(w(1,3,!1),f)||(b=b.$first(3),c="…"),e=m(b,'map',[],function(f){var b,h,c=a,e=a;return f==null&&(f=a),h=f,b=k(h),c=b[0]==null?a:b[0],e=b[1]==null?a:b[1],h,d(e['$empty?']())?"-"+c.$to_range():g(c.$size(),0)?"+"+e.$inspect()+"@"+c.$begin_pos():"^"+e.$inspect()+"@"+c.$to_range()},{$$has_top_level_mlhs_arg:!0}),d(c)&&e['$<<'](c),e.$join(", "))}),j(A[0],'ACTIONS',["accept","warn","raise"].$freeze()),c(n,'$check_policy_validity',function(){var c=this,b=a;return b=r(c.policy.$values(),p('ACTIONS')),d(b['$empty?']())?a:c.$raise(p('ArgumentError'),"Invalid policy: "+b.$join(", "))}),c(n,'$combine',function(d,g){var c=this,f=a;return d=c.$check_range_validity(d),f=e(p('TreeRewriter'),'Action').$new(d,c.enforcer,b.to_hash(g)),c.action_root=c.action_root.$combine(f),c}),c(n,'$check_range_validity',function(a){var b=this;return(d(t(a.$begin_pos(),0))||d(s(a.$end_pos(),b.source_buffer.$source().$size())))&&b.$raise(p('IndexError'),"The range "+a.$to_range()+" is outside the bounds of the source"),a}),c(n,'$enforce_policy',function c(e){var i=c.$$p||a,f=this,h=a;return c.$$p=null,g(f.policy['$[]'](e),"accept")?a:d(h=b.yieldX(i,[]))?f.$trigger_policy(e,b.to_hash(h)):a}),j(A[0],'POLICY_TO_LEVEL',new Map([["warn","warning"],["raise","error"]]).$freeze()),c(n,'$trigger_policy',function(o,c){var b,h,q,m,r,j=this,n=a,t=a,l=a,s=a;return c=i(c),b=f(c,"range"),b==null&&(b=j.$raise()),h=f(c,"conflict"),h==null&&(h=a),q=u(c,{range:!0,conflict:!0}),n=d(t=j.policy['$[]'](o))?t:"raise",l=e(p('Parser'),'Diagnostic').$new(p('POLICY_TO_LEVEL')['$[]'](n),o,q,b),j.diagnostics.$process(l),d(h)&&(r=h,m=k(r),b=m[0]==null?a:m[0],s=v(m,1),r,l=e(p('Parser'),'Diagnostic').$new(p('POLICY_TO_LEVEL')['$[]'](n),""+o+"_conflict",q,b,s),j.diagnostics.$process(l)),g(n,"raise")?j.$raise(e(p('Parser'),'ClobberingError'),"Parser::Source::TreeRewriter detected clobbering"):a},-2)}(p[0],null,p)}(p[0],p)}(p[0],p)},Opal.modules["parser/source/tree_rewriter/action"]=function(c){var l=c.module,v=c.klass,q=c.ensure_kwargs,f=c.hash_get,d=c.def,b=c.truthy,e=c.send,o=c.not,j=c.rb_plus,k=c.eqeq,g=c.to_a,m=c.rb_gt,h=c.rb_minus,p=c.rb_ge,u=c.rb_le,r=c.rb_lt,s=c.slice,t=c.neqeq,n=[],a=c.nil,i=c.$$$;return c.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(w,x){var y=l(w,'Parser'),n=[y].concat(x);return function(n,w){var x=l(n,'Source'),y=[x].concat(w),z=c.$r(y);return function(w,x){var l=v(w,x,'Action'),n=l.$$prototype;return n.insert_before=n.insert_after=n.children=n.replacement=n.range=n.enforcer=a,l.$attr_reader("range","replacement","insert_before","insert_after"),d(l,'$initialize',function(j,k,d){var h,i,e,g,b,c=this;return d=q(d),h=f(d,"insert_before"),h==null&&(h=""),i=f(d,"replacement"),i==null&&(i=a),e=f(d,"insert_after"),e==null&&(e=""),g=f(d,"children"),g==null&&(g=[]),b=[j,k,g.$freeze(),h.$freeze(),i,e.$freeze()],c.range=b[0],c.enforcer=b[1],c.children=b[2],c.insert_before=b[3],c.replacement=b[4],c.insert_after=b[5],b,c.$freeze()},-3),d(l,'$combine',function(a){var c=this;return b(a['$empty?']())?c:c.$do_combine(a)}),d(l,'$empty?',function(){var c=this,f=a,d=a,e=a;return b(f=b(d=b(e=c.insert_before['$empty?']())?c.insert_after['$empty?']():e)?c.children['$empty?']():d)?b(d=c.replacement['$=='](a))?d:b(e=c.replacement['$empty?']())?c.range['$empty?']():e:f}),d(l,'$ordered_replacements',function(){var c=this,d=a;return d=[],b(c.insert_before['$empty?']())||d['$<<']([c.range.$begin(),c.insert_before]),b(c.replacement)&&d['$<<']([c.range,c.replacement]),d.$concat(e(c.children,'flat_map',[],"ordered_replacements".$to_proc())),b(c.insert_after['$empty?']())||d['$<<']([c.range.$end(),c.insert_after]),d}),d(l,'$nested_actions',function(){var c=this,d=a;return d=[],(o(c.insert_before['$empty?']())||o(c.insert_after['$empty?']()))&&d['$<<'](["wrap",c.range,c.insert_before,c.insert_after]),b(c.replacement)&&d['$<<'](["replace",c.range,c.replacement]),d.$concat(e(c.children,'flat_map',[],"nested_actions".$to_proc()))}),d(l,'$insertion?',function(){var c=this,e=a,d=a;return b(e=b(d=c.$insert_before()['$empty?']()['$!']())?d:c.$insert_after()['$empty?']()['$!']())?e:b(d=c.$replacement())?c.$replacement()['$empty?']()['$!']():d}),d(l,'$contract',function(){var c=this,d=a;return b(c['$empty?']())&&c.$raise("Empty actions can not be contracted"),b(c['$insertion?']())?c:(d=c.range.$with(new Map([["begin_pos",c.$children().$first().$range().$begin_pos()],["end_pos",c.$children().$last().$range().$end_pos()]])),c.$with(new Map([["range",d]])))}),d(l,'$moved',function(d,c){var b=this,f=a;return f=i(i(i('Parser'),'Source'),'Range').$new(d,j(b.range.$begin_pos(),c),j(b.range.$end_pos(),c)),b.$with(new Map([["range",f],["children",e(b.$children(),'map',[],function(b){return b==null&&(b=a),b.$moved(d,c)})]]))}),l.$protected(),l.$attr_reader("children"),d(l,'$with',function(a){var j,g,d,h,e,i,c=this;return a=q(a),j=f(a,"range"),j==null&&(j=c.range),g=f(a,"enforcer"),g==null&&(g=c.enforcer),d=f(a,"children"),d==null&&(d=c.children),h=f(a,"insert_before"),h==null&&(h=c.insert_before),e=f(a,"replacement"),e==null&&(e=c.replacement),i=f(a,"insert_after"),i==null&&(i=c.insert_after),b(e)&&(d=c.$swallow(d)),c.$class().$new(j,g,new Map([["children",d],["insert_before",h],["replacement",e],["insert_after",i]]))},-1),d(l,'$do_combine',function(a){var b=this;return k(a.$range(),b.range)?b.$merge(a):b.$place_in_hierarchy(a)}),d(l,'$place_in_hierarchy',function(d){var e=this,c=a,f=a;return c=e.$analyse_hierarchy(d),b(c['$[]']("fusible"))?e.$fuse_deletions(d,c['$[]']("fusible"),[].concat(g(c['$[]']("sibbling_left"))).concat(g(c['$[]']("child"))).concat(g(c['$[]']("sibbling_right")))):(f=b(c['$[]']("parent"))?c['$[]']("parent").$do_combine(d):b(c['$[]']("child"))?d.$with(new Map([["children",c['$[]']("child")],["enforcer",e.enforcer]])).$combine_children(d.$children()):d,e.$with(new Map([["children",[].concat(g(c['$[]']("sibbling_left"))).concat([f]).concat(g(c['$[]']("sibbling_right")))]])))}),d(l,'$combine_children',function(b){var c=this;return e(b,'inject',[c],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$place_in_hierarchy(c)})}),d(l,'$fuse_deletions',function(c,h,i){var j=this,d=a,b=a,f=a;return d=j.$with(new Map([["children",i]])),b=e([c].concat(g(h)),'map',[],"range".$to_proc()).$inject("join"),f=c.$with(new Map([["range",b]])),d.$do_combine(f)}),d(l,'$bsearch_child_index',function g(d){var j=g.$$p||a,h=this,f=a,i=a;return g.$$p=null,d==null&&(d=0),f=h.children.$size(),b(i=e(c.Range.$new(d,f,!0),'bsearch',[],function e(b){var d=e.$$s==null?this:e.$$s;return d.children==null&&(d.children=a),b==null&&(b=a),c.yield1(j,d.children['$[]'](b))},{$$s:h}))?i:f},-1),d(l,'$analyse_hierarchy',function(w){var d=this,i=a,f=a,v=a,g=a,q=a,s=a,o=a,n=a,l=a,t=a;switch(i=w.$range(),f=e(d,'bsearch_child_index',[],function(b){return b==null&&(b=a),m(b.$range().$end_pos(),i.$begin_pos())}),v=k(f,0)?0:h(f,1),g=e(d,'bsearch_child_index',[v],function(b){return b==null&&(b=a),p(b.$range().$begin_pos(),i.$end_pos())}),q=h(g,f),q.valueOf()){case 0:break;case-1:f=h(f,1),g=j(g,1),s=d.children['$[]'](f);break;default:o=d.children['$[]'](f).$range().$begin_pos()['$<=>'](i.$begin_pos()),n=d.children['$[]'](h(g,1)).$range().$end_pos()['$<=>'](i.$end_pos()),k(q,1)&&b(u(o,0))&&b(p(n,0))?s=d.children['$[]'](f):(l=d.children['$[]'](c.Range.$new(f,g,!0)),t=d.$check_fusible(w,b(r(o,0))?l.$shift():a,b(m(n,0))?l.$pop():a))}return new Map([["parent",s],["sibbling_left",d.children['$[]'](c.Range.$new(0,f,!0))],["sibbling_right",d.children['$[]'](c.Range.$new(g,d.children.$size(),!0))],["fusible",t],["child",l]])}),d(l,'$check_fusible',function(d,i){var f,c,g=this;return f=s(arguments,1),c=f,c['$compact!'](),b(c['$empty?']())?a:(e(c,'each',[],function g(c){var f=g.$$s==null?this:g.$$s,h=a;return f.enforcer==null&&(f.enforcer=a),c==null&&(c=a),h=b(d['$insertion?']())||b(c['$insertion?']())?"crossing_insertions":"crossing_deletions",e(f.enforcer,'call',[h],function(){return new Map([["range",d.$range()],["conflict",c.$range()]])})},{$$s:g}),c)},-2),d(l,'$merge',function(c){var d=this,e=a;return d.$call_enforcer_for_merge(c),d.$with(new Map([["insert_before",""+c.$insert_before()+d.$insert_before()],["replacement",b(e=c.$replacement())?e:d.replacement],["insert_after",""+d.$insert_after()+c.$insert_after()]])).$combine_children(c.$children())}),d(l,'$call_enforcer_for_merge',function(c){var d=this;return e(d.enforcer,'call',["different_replacements"],function e(){var d=e.$$s==null?this:e.$$s;return d.replacement==null&&(d.replacement=a),d.range==null&&(d.range=a),b(d.replacement)&&b(c.$replacement())&&t(d.replacement,c.$replacement())?new Map([["range",d.range],["replacement",c.$replacement()],["other_replacement",d.replacement]]):a},{$$s:d})}),d(l,'$swallow',function(d){var c=this;return e(c.enforcer,'call',["swallowed_insertions"],function g(){var c=g.$$s==null?this:g.$$s,f=a;return c.range==null&&(c.range=a),f=e(d,'select',[],"insertion?".$to_proc()),b(f['$empty?']())?a:new Map([["range",c.range],["conflict",e(f,'map',[],"range".$to_proc())]])},{$$s:c}),[]})}(z('TreeRewriter'),null)}(n[0],n)}(n[0],n)},Opal.modules["parser/source/map"]=function(b){var g=b.module,h=b.klass,e=b.assign_ivar,a=b.def,l=b.send2,m=b.find_super,d=b.send,i=b.truthy,j=b.eqeq,k=b.range,f=[],c=b.nil;return b.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(f,n){var o=g(f,'Parser'),b=[o].concat(n);return function(b,f){var n=g(b,'Source'),o=[n].concat(f);return function(g,n){var b=h(g,n,'Map'),f=b.$$prototype;return f.node=f.expression=c,b.$attr_reader("node"),b.$attr_reader("expression"),a(b,'$initialize',e("expression")),a(b,'$initialize_copy',function a(d){var e=a.$$p||c,b=this;return a.$$p=null,l(b,m(b,'initialize_copy',a,!1,!0),'initialize_copy',[d],e),b.node=c}),a(b,'$node=',function(b){var a=this;return a.node=b,a.$freeze(),a.node}),a(b,'$line',function(){var a=this;return a.expression.$line()}),b.$alias_method("first_line","line"),a(b,'$column',function(){var a=this;return a.expression.$column()}),a(b,'$last_line',function(){var a=this;return a.expression.$last_line()}),a(b,'$last_column',function(){var a=this;return a.expression.$last_column()}),a(b,'$with_expression',function(a){var b=this;return d(b,'with',[],function(b){return b==null&&(b=c),b.$update_expression(a)})}),a(b,'$==',function(b){var a=this,e=c;return i(e=b.$class()['$=='](a.$class()))?d(a.$instance_variables(),'map',[],function d(a){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),e.$instance_variable_get(a)['$=='](b.$send("instance_variable_get",a))},{$$s:a}).$reduce("&"):e}),a(b,'$to_hash',function(){var a=this;return d(a.$instance_variables(),'inject',[new Map],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),j(b.$to_sym(),"@node")?a:(a['$[]='](b['$[]'](k(1,-1,!1)).$to_sym(),e.$instance_variable_get(b)),a)},{$$s:a})}),b.$protected(),a(b,'$with',function a(){var b=a.$$p||c,e=this;return a.$$p=null,d(e.$dup(),'tap',[],b.$to_proc())}),a(b,'$update_expression',e("expression"))}(o[0],null)}(b[0],b)}(f[0],f)},Opal.modules["parser/source/map/operator"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Operator');return a.$attr_reader("operator"),g(a,'$initialize',function a(c,d){var g=a.$$p||h,b=this;return a.$$p=null,b.operator=c,e(b,f(b,'initialize',a,!1,!0),'initialize',[d],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/collection"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Collection');return a.$attr_reader("begin"),a.$attr_reader("end"),g(a,'$initialize',function c(d,g,i){var b,j=c.$$p||h,a=this;return c.$$p=null,b=[d,g],a.begin=b[0],a.end=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/constant"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Constant');return a.$attr_reader("double_colon"),a.$attr_reader("name"),a.$attr_reader("operator"),b(a,'$initialize',function c(d,g,h){var b,i=c.$$p||e,a=this;return c.$$p=null,b=[d,g],a.double_colon=b[0],a.name=b[1],b,j(a,f(a,'initialize',c,!1,!0),'initialize',[h],null)}),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/variable"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Variable');return a.$attr_reader("name"),a.$attr_reader("operator"),b(a,'$initialize',function a(d,b){var g=a.$$p||e,c=this;return a.$$p=null,b==null&&(b=d),c.name=d,j(c,f(c,'initialize',a,!1,!0),'initialize',[b],null)},-2),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/keyword"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Keyword');return a.$attr_reader("keyword"),a.$attr_reader("begin"),a.$attr_reader("end"),g(a,'$initialize',function c(j,d,g,i){var b,k=c.$$p||h,a=this;return c.$$p=null,a.keyword=j,b=[d,g],a.begin=b[0],a.end=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/definition"]=function(a){var b=a.module,e=a.klass,f=a.send2,g=a.find_super,h=a.def,c=[],d=a.nil;return a.add_stubs('attr_reader,join'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(c,i){var a=e(c,i,'Definition'),b=a.$$prototype;return b.keyword=b.end=d,a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("name"),a.$attr_reader("end"),h(a,'$initialize',function b(c,e,h,i){var j=b.$$p||d,a=this;return b.$$p=null,a.keyword=c,a.operator=e,a.name=h,a.end=i,f(a,g(a,'initialize',b,!1,!0),'initialize',[a.keyword.$join(a.end)],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/method_definition"]=function(a){var c=a.module,i=a.klass,e=a.send2,f=a.find_super,g=a.truthy,h=a.def,d=[],b=a.nil;return a.add_stubs('attr_reader,join'),function(j,k){var l=c(j,'Parser'),d=[l].concat(k);return function(j,k){var l=c(j,'Source'),m=[l].concat(k),d=a.$r(m);return function(c,d){var a=i(c,d,'MethodDefinition'),j=a.$$prototype;return j.keyword=b,a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("name"),a.$attr_reader("end"),a.$attr_reader("assignment"),h(a,'$initialize',function c(i,l,m,h,j,k){var n=c.$$p||b,a=this,d=b;return c.$$p=null,a.keyword=i,a.operator=l,a.name=m,a.end=h,a.assignment=j,e(a,f(a,'initialize',c,!1,!0),'initialize',[a.keyword.$join(g(d=h)?d:k)],null)})}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/send"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Send');return a.$attr_reader("dot"),a.$attr_reader("selector"),a.$attr_reader("operator"),a.$attr_reader("begin"),a.$attr_reader("end"),b(a,'$initialize',function c(d,k,g,h,i){var b,l=c.$$p||e,a=this;return c.$$p=null,a.dot=d,a.selector=k,b=[g,h],a.begin=b[0],a.end=b[1],b,j(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)}),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/index"]=function(a){var d=a.module,i=a.klass,j=a.send2,f=a.find_super,c=a.def,g=a.send,h=a.assign_ivar,e=[],b=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=d(k,'Parser'),e=[m].concat(l);return function(k,l){var m=d(k,'Source'),n=[m].concat(l),e=a.$r(n);return function(d,e){var a=i(d,e,'Index');return a.$attr_reader("begin"),a.$attr_reader("end"),a.$attr_reader("operator"),c(a,'$initialize',function d(e,g,h){var c,i=d.$$p||b,a=this;return d.$$p=null,c=[e,g],a.begin=c[0],a.end=c[1],c,a.operator=b,j(a,f(a,'initialize',d,!1,!0),'initialize',[h],null)}),c(a,'$with_operator',function(a){var c=this;return g(c,'with',[],function(c){return c==null&&(c=b),c.$update_operator(a)})}),a.$protected(),c(a,'$update_operator',h("operator"))}(e('Map'),e('Map'))}(e[0],e)}(e[0],e)},Opal.modules["parser/source/map/condition"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Condition');return a.$attr_reader("keyword"),a.$attr_reader("begin"),a.$attr_reader("else"),a.$attr_reader("end"),g(a,'$initialize',function c(d,k,g,i,j){var b,l=c.$$p||h,a=this;return c.$$p=null,a.keyword=d,b=[k,g,i],a.begin=b[0],a.else=b[1],a.end=b[2],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[j],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/ternary"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Ternary');return a.$attr_reader("question"),a.$attr_reader("colon"),g(a,'$initialize',function c(d,g,i){var b,j=c.$$p||h,a=this;return c.$$p=null,b=[d,g],a.question=b[0],a.colon=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/for"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'For');return a.$attr_reader("keyword","in"),a.$attr_reader("begin","end"),g(a,'$initialize',function c(d,k,g,i,j){var a,l=c.$$p||h,b=this;return c.$$p=null,a=[d,k],b.keyword=a[0],b.in=a[1],a,a=[g,i],b.begin=a[0],b.end=a[1],a,e(b,f(b,'initialize',c,!1,!0),'initialize',[j],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/rescue_body"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'RescueBody');return a.$attr_reader("keyword"),a.$attr_reader("assoc"),a.$attr_reader("begin"),g(a,'$initialize',function b(c,d,g,i){var j=b.$$p||h,a=this;return b.$$p=null,a.keyword=c,a.assoc=d,a.begin=g,e(a,f(a,'initialize',b,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/heredoc"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Heredoc');return a.$attr_reader("heredoc_body"),a.$attr_reader("heredoc_end"),g(a,'$initialize',function b(c,d,g){var i=b.$$p||h,a=this;return b.$$p=null,a.heredoc_body=d,a.heredoc_end=g,e(a,f(a,'initialize',b,!1,!0),'initialize',[c],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/objc_kwarg"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'ObjcKwarg');return a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("argument"),g(a,'$initialize',function c(j,d,g,i){var b,k=c.$$p||h,a=this;return c.$$p=null,b=[j,d,g],a.keyword=b[0],a.operator=b[1],a.argument=b[2],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/syntax_error"]=function(a){var c=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,b=[],h=a.nil;return a.add_stubs('attr_reader,message'),function(i,j){var k=c(i,'Parser'),b=[k].concat(j),l=a.$r(b);return function(b,c){var a=d(b,c,'SyntaxError');return a.$attr_reader("diagnostic"),g(a,'$initialize',function a(c){var d=a.$$p||h,b=this;return a.$$p=null,b.diagnostic=c,e(b,f(b,'initialize',a,!1,!0),'initialize',[c.$message()],null)})}(b[0],l('StandardError'))}(b[0],b)},Opal.modules["parser/clobbering_error"]=function(a){var c=a.module,d=a.klass,b=[],e=a.nil;return function(f,g){var h=c(f,'Parser'),b=[h].concat(g),i=a.$r(b);return d(b[0],i('RuntimeError'),'ClobberingError'),e}(b[0],b)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(a){var c=a.module,d=a.klass,b=[],e=a.nil;return function(f,g){var h=c(f,'Parser'),b=[h].concat(g),i=a.$r(b);return d(b[0],i('ArgumentError'),'UnknownEncodingInMagicComment'),e}(b[0],b)},Opal.modules["parser/diagnostic"]=function(a){var m=a.module,k=a.klass,q=a.const_set,c=a.truthy,e=a.def,p=a.eqeq,d=a.rb_plus,i=a.rb_minus,r=a.to_ary,l=a.rb_gt,f=a.rb_times,g=a.send,n=a.rb_ge,o=a.not,h=a.neqeq,j=[],b=a.nil;return a.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(s,t){var u=m(s,'Parser'),j=[u].concat(t);return function(w,u,v){var j=k(w,u,'Diagnostic'),t=[j].concat(v),s=a.$r(t),m=j.$$prototype;return m.reason=m.arguments=m.location=m.level=m.highlights=b,q(t[0],'LEVELS',["note","warning","error","fatal"].$freeze()),j.$attr_reader("level","reason","arguments"),j.$attr_reader("location","highlights"),e(j,'$initialize',function(d,h,i,f,e){var a=this,g=b;return e==null&&(e=[]),c(s('LEVELS')['$include?'](d))||a.$raise(s('ArgumentError'),""+("Diagnostic#level must be one of "+s('LEVELS').$join(", ")+"; ")+(""+d.$inspect()+" provided.")),c(f)||a.$raise("Expected a location"),a.level=d,a.reason=h,a.arguments=(c(g=i)?g:new Map).$dup().$freeze(),a.location=f,a.highlights=e.$dup().$freeze(),a.$freeze()},-5),e(j,'$message',function(){var a=this;return s('Messages').$compile(a.reason,a.arguments)}),e(j,'$render',function(){var e,f,a=this,h=b,j=b,g=b,k=b,m=b,n=b;return p(a.location.$line(),a.location.$last_line())||c(a.location['$is?']("\n"))?d([""+a.location+": "+a.level+": "+a.$message()],a.$render_line(a.location)):(h=a.$first_line_only(a.location),j=a.$last_line_only(a.location),g=d(i(a.location.$last_line(),a.location.$line()),1),k=a.location.$source_buffer(),f=k.$decompose_position(a.location.$end_pos()),e=r(f),m=e[0]==null?b:e[0],n=e[1]==null?b:e[1],f,d(d([""+a.location+"-"+m+":"+n+": "+a.level+": "+a.$message()],a.$render_line(h,l(g,2),!1)),a.$render_line(j,!1,!0)))}),j.$private(),e(j,'$render_line',function(a,h,j){var l=this,k=b,e=b;return h==null&&(h=!1),j==null&&(j=!1),k=a.$source_line(),e=f(" ",k.$length()),g(l.highlights,'each',[],function(d){var h,i=b;return d==null&&(d=b),i=a.$source_buffer().$line_range(a.$line()),c(d=d.$intersect(i))?(h=[d.$column_range(),f("~",d.$size())],g(e,'[]=',h),h[h.length-1]):b}),c(a['$is?']("\n"))?e=d(e,"^"):o(j)&&c(n(a.$size(),1))?e['$[]='](a.$column_range(),d("^",f("~",i(a.$size(),1)))):e['$[]='](a.$column_range(),f("~",a.$size())),c(h)&&(e=d(e,"...")),g([k,e],'map',[],function(c){return c==null&&(c=b),""+a.$source_buffer().$name()+":"+a.$line()+": "+c})},-2),e(j,'$first_line_only',function(a){return h(a.$line(),a.$last_line())?a.$resize(a.$source()['$=~'](/\n/)):a}),e(j,'$last_line_only',function(a){return h(a.$line(),a.$last_line())?a.$adjust(new Map([["begin_pos",a.$source()['$=~'](/[^\n]*$/)]])):a})}(j[0],null,j)}(j[0],j)},Opal.modules["parser/diagnostic/engine"]=function(a){var f=a.module,g=a.klass,d=a.def,b=a.truthy,e=[],c=a.nil,h=a.$$$;return a.add_stubs('attr_accessor,ignore?,call,raise?,raise,protected,==,level'),function(i,j){var k=f(i,'Parser'),e=[k].concat(j),l=a.$r(e);return function(m,i,j){var e=g(m,i,'Engine'),k=[e].concat(j),l=a.$r(k),f=e.$$prototype;return f.consumer=f.ignore_warnings=f.all_errors_are_fatal=c,e.$attr_accessor("consumer"),e.$attr_accessor("all_errors_are_fatal"),e.$attr_accessor("ignore_warnings"),d(e,'$initialize',function(a){var b=this;return a==null&&(a=c),b.consumer=a,b.all_errors_are_fatal=!1,b.ignore_warnings=!1},-1),d(e,'$process',function(c){var a=this;return b(a['$ignore?'](c))||b(a.consumer)&&a.consumer.$call(c),b(a['$raise?'](c))&&a.$raise(h(l('Parser'),'SyntaxError'),c),a}),e.$protected(),d(e,'$ignore?',function(d){var e=this,a=c;return b(a=e.ignore_warnings)?d.$level()['$==']("warning"):a}),d(e,'$raise?',function(a){var f=this,d=c,e=c;return b(d=b(e=f.all_errors_are_fatal)?a.$level()['$==']("error"):e)?d:a.$level()['$==']("fatal")})}(l('Diagnostic'),null,e)}(e[0],e)},Opal.modules["parser/static_environment"]=function(b){var h=b.module,i=b.klass,d=b.const_set,a=b.def,e=b.truthy,f=b.send,g=[],c=b.nil;return b.add_stubs('reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?'),function(j,k){var l=h(j,'Parser'),g=[l].concat(k);return function(n,l,m){var h=i(n,l,'StaticEnvironment'),j=[h].concat(m),g=b.$r(j),k=h.$$prototype;return k.stack=k.variables=c,d(j[0],'FORWARD_ARGS',"FORWARD_ARGS"),d(j[0],'ANONYMOUS_RESTARG_IN_CURRENT_SCOPE',"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_RESTARG_INHERITED',"ANONYMOUS_RESTARG_INHERITED"),d(j[0],'ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE',"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_KWRESTARG_INHERITED',"ANONYMOUS_KWRESTARG_INHERITED"),d(j[0],'ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE',"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_BLOCKARG_INHERITED',"ANONYMOUS_BLOCKARG_INHERITED"),a(h,'$initialize',function(){var a=this;return a.$reset()}),a(h,'$reset',function(){var a=this;return a.variables=g('Set')['$[]'](),a.stack=[]}),a(h,'$extend_static',function(){var a=this;return a.stack.$push(a.variables),a.variables=g('Set')['$[]'](),a}),a(h,'$extend_dynamic',function(){var a=this;return a.stack.$push(a.variables),a.variables=a.variables.$dup(),e(a.variables.$delete(g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_BLOCKARG_INHERITED')),e(a.variables.$delete(g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_RESTARG_INHERITED')),e(a.variables.$delete(g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_KWRESTARG_INHERITED')),a}),a(h,'$unextend',function(){var a=this;return a.variables=a.stack.$pop(),a}),a(h,'$declare',function(b){var a=this;return a.variables.$add(b.$to_sym()),a}),a(h,'$declared?',function(a){var b=this;return b.variables['$include?'](a.$to_sym())}),a(h,'$declare_forward_args',function(){var a=this;return a.$declare(g('FORWARD_ARGS'))}),a(h,'$declared_forward_args?',function(){var a=this;return a['$declared?'](g('FORWARD_ARGS'))}),a(h,'$declare_anonymous_blockarg',function(){var a=this;return a.$declare(g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_blockarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_BLOCKARG_INHERITED'))}),a(h,'$declared_anonymous_blockarg_in_current_scpe?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_blockarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))})}),a(h,'$declare_anonymous_restarg',function(){var a=this;return a.$declare(g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_restarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_RESTARG_INHERITED'))}),a(h,'$declared_anonymous_restarg_in_current_scope?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_restarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))})}),a(h,'$declare_anonymous_kwrestarg',function(){var a=this;return a.$declare(g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_kwrestarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_KWRESTARG_INHERITED'))}),a(h,'$declared_anonymous_kwrestarg_in_current_scope?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_kwrestarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))})}),a(h,'$empty?',function(){var a=this;return a.stack['$empty?']()})}(g[0],null,g)}(g[0],g)},Opal.modules["parser/lexer-F0"]=function(f){var x=f.klass,e=f.truthy,j=f.send,a=f.rb_minus,g=f.def,k=f.gvars,h=f.eqeq,q=f.const_set,c=f.rb_plus,s=f.to_ary,n=f.rb_le,m=f.rb_gt,t=f.neqeq,b=f.eqeqeq,r=f.range,i=f.rb_ge,l=f.not,o=f.rb_lt,v=f.slice,u=[],w=f.$r(u),d=f.nil,p=f.$$$;return f.add_stubs('attr_accessor,private,_lex_actions=,_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_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=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,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_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,>,<<,!=,===,e_lbrace,close_interp_on_current_literal,on_newline,emit_comment_from_range,version?,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,last,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,any?,<,end_with?,rstrip,herebody_s,herebody_s=,emit_colon_with_digits,in_kwarg,emit_singleton_class,inspect,numeric_literal_int,to_i,call,emit_rbrace_rparen_rbrack,to_f,emit_comment,advance,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase'),function(C,A,B){var u=x(C,A,'Lexer'),z=[u].concat(B),w=f.$r(z),y=u.$$prototype;return y.version=y.source_buffer=y.source_pts=y.strings=y.cs=y.cmdarg_stack=y.cmdarg=y.cond_stack=y.cond=y.token_queue=y._lex_actions=y.p=y.command_start=y.emit_integer=y.emit_rational=y.emit_imaginary=y.emit_imaginary_rational=y.emit_integer_re=y.emit_integer_if=y.emit_integer_rescue=y.emit_float=y.emit_imaginary_float=y.emit_float_if=y.emit_float_rescue=y.paren_nest=y.ts=y.te=y.stack=y.top=y.act=y.context=y.lambda_stack=y.static_env=y.newline_s=y.num_base=y.num_suffix_s=y.num_xfrm=y.eq_begin_s=y.cs_before_block_comment=y.tokens=y.comments=y.sharp_s=y.diagnostics=y.num_digits_s=d,function(a,b){return a.$attr_accessor("_lex_actions"),a.$private("_lex_actions","_lex_actions=")}(f.get_singleton_class(u),z),u['$_lex_actions='](f.large_array_unpack("0,1,0,1,16,1,17,1,18,1,19,1,32,1,33,1,34,1,35,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1,48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1,57,1,61,1,62,1,63,1,64,1,65,1,66,1,67,1,68,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,78,1,79,1,80,1,81,1,82,1,83,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,93,1,94,1,95,1,100,1,101,1,102,1,103,1,104,1,105,1,106,1,107,1,112,1,113,1,114,1,115,1,116,1,119,1,120,1,121,1,122,1,125,1,126,1,128,1,129,1,130,1,131,1,132,1,133,1,135,1,136,1,139,1,140,1,141,1,142,1,144,1,145,1,155,1,156,1,157,1,158,1,159,1,160,1,161,1,162,1,163,1,164,1,165,1,166,1,168,1,169,1,170,1,171,1,172,1,173,1,174,1,176,1,178,1,179,1,180,1,184,1,186,1,187,1,189,1,190,1,191,1,192,1,193,1,194,1,195,1,196,1,197,1,198,1,199,1,200,1,201,1,203,1,204,1,205,1,206,1,207,1,208,1,210,1,211,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,238,1,240,1,241,1,242,1,243,1,244,1,246,1,247,1,248,1,250,1,252,1,254,1,255,1,256,1,258,1,259,1,260,1,263,1,264,1,266,1,267,1,268,1,269,1,270,1,271,1,274,1,275,1,276,1,277,1,278,1,279,1,280,1,281,1,282,1,283,1,286,1,287,1,288,1,289,1,290,1,291,1,292,1,293,1,294,1,295,1,296,2,0,18,2,0,100,2,0,104,2,0,105,2,0,167,2,0,169,2,0,239,2,0,284,2,0,285,2,0,288,2,0,289,2,2,249,2,3,249,2,4,249,2,5,249,2,6,249,2,7,249,2,9,251,2,10,251,2,11,251,2,12,251,2,13,251,2,14,111,2,14,134,2,14,181,2,14,245,2,15,261,2,16,0,2,16,32,2,16,33,2,16,34,2,16,75,2,16,84,2,16,94,2,16,105,2,16,116,2,16,118,2,16,135,2,16,142,2,16,143,2,16,155,2,16,168,2,16,190,2,16,201,2,16,202,2,16,208,2,16,209,2,16,264,2,16,265,2,16,292,2,17,18,2,18,0,2,18,75,2,18,84,2,18,94,2,18,117,2,18,135,2,18,142,2,18,190,2,18,201,2,18,208,2,18,264,2,18,292,2,19,92,2,19,177,2,19,188,2,19,271,2,20,92,2,20,177,2,20,188,2,20,257,2,21,177,2,21,188,2,22,177,2,22,188,2,23,177,2,23,188,2,24,177,2,24,198,2,25,177,2,25,188,2,26,177,2,27,253,2,28,110,2,28,182,2,28,262,2,29,261,2,30,108,2,30,109,2,30,127,2,30,183,2,30,260,2,31,261,2,35,0,2,36,175,2,37,179,2,38,179,2,39,185,2,41,47,2,42,47,2,43,47,2,44,47,2,45,47,2,46,47,2,47,1,2,53,0,2,53,49,2,53,58,2,53,59,2,53,60,2,53,96,2,53,97,2,53,98,2,53,99,2,53,123,2,53,124,2,53,137,2,53,138,2,53,147,2,53,148,2,53,149,2,53,150,2,53,151,2,53,152,2,53,153,2,53,154,2,53,212,2,53,213,2,53,215,2,53,216,2,53,217,2,53,218,2,53,219,2,53,220,2,53,221,2,53,223,2,53,224,2,53,225,2,53,226,2,53,227,2,53,228,2,53,229,2,53,272,2,53,273,3,17,18,0,3,17,18,75,3,17,18,84,3,17,18,94,3,17,18,117,3,17,18,135,3,17,18,142,3,17,18,190,3,17,18,201,3,17,18,208,3,17,18,264,3,17,18,292,3,45,47,1,3,46,47,1,3,47,1,249,3,48,8,251,3,49,8,251,3,53,0,99,3,53,16,98,3,53,16,124,3,53,16,272,3,53,18,146,3,53,18,214,3,53,18,272,3,53,33,97,3,53,39,152,3,53,39,153,3,53,45,221,4,41,47,1,249,4,42,47,1,249,4,43,47,1,249,4,44,47,1,249,4,45,47,1,249,4,46,47,1,249,4,53,16,33,97,4,53,17,18,146,4,53,17,18,272,4,53,47,1,222,5,53,45,47,1,222,5,53,46,47,1,222")),function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(f.get_singleton_class(u),z),u['$_lex_trans_keys='](f.large_array_unpack("0,0,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,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,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,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,26,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,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(f.get_singleton_class(u),z),u['$_lex_key_spans='](f.large_array_unpack("0,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,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,1,1,1,1,1,1,1,1,1,27,0,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,27,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,96,24,0,1,1,1,24,1,1")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(f.get_singleton_class(u),z),u['$_lex_index_offsets='](f.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(f.get_singleton_class(u),z),u['$_lex_indicies='](f.large_array_unpack("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,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,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,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,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,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,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,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,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,2,2,2,2,7,2,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,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,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,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,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,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,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,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,18,18,18,18,19,18,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,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,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,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,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,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,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,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,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,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,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,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,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,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,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,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,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,259,2,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,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,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,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,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,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,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,262,262,262,262,7,262,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,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,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,303,303,303,303,263,303,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,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,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,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,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,312,9,312,312,313,9,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,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,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,316,316,316,316,313,316,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,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,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,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,329,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,340,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,341,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,348,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,354,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,358,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,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,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,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,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,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,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,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,405,405,405,405,13,405,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,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,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,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,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,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,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,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,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,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,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,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,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,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,467,467,467,467,19,467,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,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,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,55,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,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,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,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,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,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,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,93,93,93,93,96,93,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,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,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,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,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,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,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,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,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,530,530,530,530,519,530,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,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,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,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,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,626,626,626,626,626,626,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,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,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,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,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,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,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,675,675,675,675,676,675,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,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,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,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,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,681,682,681,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,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,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,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,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,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,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,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,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,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,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,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,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,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,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,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,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,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,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,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,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,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,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,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(f.get_singleton_class(u),z),u['$_lex_trans_targs='](f.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(f.get_singleton_class(u),z),u['$_lex_trans_actions='](f.large_array_unpack("0,53,0,0,0,0,0,0,95,65,93,71,111,0,0,0,99,101,161,0,0,135,157,727,733,1,3,3,481,971,3,484,971,499,971,3,3,481,3,487,3,3,901,3,3,3,3,3,3,0,11,925,0,13,925,139,925,0,0,11,0,15,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,0,0,171,163,169,742,0,0,0,742,1,905,3,3,3,905,259,0,219,0,1,3,520,3,265,217,261,0,0,0,0,0,255,201,223,0,1,0,195,0,3,478,3,517,3,5,547,829,547,976,547,0,7,550,7,913,7,397,263,0,209,0,0,0,0,751,751,0,0,17,17,676,0,1,257,0,0,0,751,0,0,766,0,0,0,0,766,287,0,0,0,275,351,295,347,0,51,51,353,805,805,349,0,0,0,0,345,0,0,0,0,0,0,1,0,0,0,3,478,3,3,3,5,547,829,547,547,547,0,7,550,7,7,7,917,397,291,371,0,823,0,45,45,0,369,0,373,5,981,0,921,1,909,357,393,0,0,0,0,0,0,0,0,0,381,427,395,0,0,55,59,57,724,75,73,0,1,0,0,51,51,0,0,0,67,0,0,0,0,721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,63,89,490,85,833,5,553,0,91,0,0,0,83,0,87,69,0,0,79,0,0,0,718,0,81,0,0,0,0,0,0,0,0,0,0,0,0,718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,105,103,0,0,51,0,109,107,837,5,556,0,0,1,493,0,117,115,0,1,0,0,113,0,0,0,0,0,0,0,0,0,0,121,0,586,0,598,125,496,123,841,5,559,0,0,127,0,119,141,143,736,1,0,733,0,0,733,0,0,0,0,0,0,51,51,51,153,151,131,406,658,147,730,0,149,133,145,137,403,646,463,505,845,5,562,0,661,155,129,400,897,502,0,0,0,165,51,51,0,167,664,739,175,177,0,0,0,0,0,179,849,5,565,0,181,1,508,173,466,748,185,183,0,1,0,0,0,0,0,0,193,189,514,853,5,568,0,191,1,511,187,745,0,0,0,0,0,0,0,0,0,0,0,0,769,225,0,712,0,0,51,757,0,0,757,757,0,0,51,772,0,772,0,772,772,772,0,0,772,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,0,0,247,25,25,592,9,0,604,613,0,766,0,619,0,637,631,625,249,523,3,251,221,412,253,857,5,571,0,231,199,0,241,0,667,229,757,227,0,243,0,245,409,197,0,0,205,0,0,0,0,215,0,0,0,0,0,0,0,235,0,0,589,0,601,610,0,0,0,616,0,0,634,640,628,622,207,203,0,682,19,19,0,237,0,685,21,21,0,0,679,233,239,211,213,0,0,649,1,769,769,769,769,769,769,769,769,769,769,769,769,766,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,763,769,769,769,769,769,769,769,769,769,769,769,769,760,688,933,929,23,23,760,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,469,754,267,269,0,1,0,0,271,529,861,5,574,0,273,1,526,51,281,279,0,1,277,0,0,285,283,535,865,5,577,0,1,532,811,315,313,0,1,0,293,0,51,817,0,0,0,0,307,0,0,799,799,0,309,0,0,0,305,51,808,808,808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820,814,595,0,607,341,541,337,301,869,5,580,0,343,0,0,327,303,335,297,670,673,333,289,329,0,339,0,415,323,0,0,966,881,37,0,0,997,0,0,37,706,706,893,802,0,43,715,0,889,41,448,0,451,454,0,0,460,457,37,37,885,0,0,39,39,0,433,0,442,430,51,0,439,0,445,436,956,33,33,700,700,0,0,946,29,29,694,694,951,31,31,697,697,941,27,27,691,691,0,0,961,877,937,991,35,703,703,937,35,709,799,986,0,0,0,299,0,0,643,325,808,808,808,796,808,652,311,1,538,655,331,0,0,0,0,0,0,0,0,0,0,0,0,793,0,0,0,0,796,0,0,0,0,0,778,784,0,0,0,0,0,0,787,0,0,0,0,0,784,321,319,0,775,0,317,0,0,0,0,790,0,0,0,0,0,0,0,0,0,781,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,475,359,826,826,45,826,367,361,365,0,363,355,0,421,0,377,0,0,0,375,418,383,385,0,1,0,51,0,51,387,544,873,5,583,0,391,0,389,379,424,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(f.get_singleton_class(u),z),u['$_lex_to_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,47,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(f.get_singleton_class(u),z),u['$_lex_from_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,49,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(f.get_singleton_class(u),z),u['$_lex_eof_trans='](f.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,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,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,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,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,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,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,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,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,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(a,b){return a.$attr_accessor("lex_start")}(f.get_singleton_class(u),z),u['$lex_start='](128),function(a,b){return a.$attr_accessor("lex_error")}(f.get_singleton_class(u),z),u['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_expr_variable")}(f.get_singleton_class(u),z),u['$lex_en_expr_variable='](129),function(a,b){return a.$attr_accessor("lex_en_expr_fname")}(f.get_singleton_class(u),z),u['$lex_en_expr_fname='](134),function(a,b){return a.$attr_accessor("lex_en_expr_endfn")}(f.get_singleton_class(u),z),u['$lex_en_expr_endfn='](247),function(a,b){return a.$attr_accessor("lex_en_expr_dot")}(f.get_singleton_class(u),z),u['$lex_en_expr_dot='](255),function(a,b){return a.$attr_accessor("lex_en_expr_arg")}(f.get_singleton_class(u),z),u['$lex_en_expr_arg='](276),function(a,b){return a.$attr_accessor("lex_en_expr_cmdarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_cmdarg='](307),function(a,b){return a.$attr_accessor("lex_en_expr_endarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_endarg='](313),function(a,b){return a.$attr_accessor("lex_en_expr_mid")}(f.get_singleton_class(u),z),u['$lex_en_expr_mid='](321),function(a,b){return a.$attr_accessor("lex_en_expr_beg")}(f.get_singleton_class(u),z),u['$lex_en_expr_beg='](345),function(a,b){return a.$attr_accessor("lex_en_expr_labelarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_labelarg='](501),function(a,b){return a.$attr_accessor("lex_en_expr_value")}(f.get_singleton_class(u),z),u['$lex_en_expr_value='](508),function(a,b){return a.$attr_accessor("lex_en_expr_end")}(f.get_singleton_class(u),z),u['$lex_en_expr_end='](516),function(a,b){return a.$attr_accessor("lex_en_leading_dot")}(f.get_singleton_class(u),z),u['$lex_en_leading_dot='](696),function(a,b){return a.$attr_accessor("lex_en_line_comment")}(f.get_singleton_class(u),z),u['$lex_en_line_comment='](704),function(a,b){return a.$attr_accessor("lex_en_line_begin")}(f.get_singleton_class(u),z),u['$lex_en_line_begin='](710),function(a,b){return a.$attr_accessor("lex_en_inside_string")}(f.get_singleton_class(u),z),u['$lex_en_inside_string='](128),u.$attr_reader("source_buffer"),u.$attr_accessor("diagnostics"),u.$attr_accessor("static_env"),u.$attr_accessor("force_utf32"),u.$attr_accessor("cond","cmdarg","context","command_start"),u.$attr_accessor("tokens","comments"),u.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),g(u,'$initialize',function(c){var b=this;return b.version=c,b.static_env=d,b.context=d,b.tokens=d,b.comments=d,b._lex_actions=e(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.emit_integer=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tINTEGER",a),b},{$$s:b}),b.emit_rational=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tRATIONAL",e.$Rational(a)),b},{$$s:b}),b.emit_imaginary=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tIMAGINARY",e.$Complex(0,a)),b},{$$s:b}),b.emit_imaginary_rational=j(b,'lambda',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),c.$emit("tIMAGINARY",c.$Complex(0,c.$Rational(a))),b},{$$s:b}),b.emit_integer_re=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_if=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_rescue=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.emit_float=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tFLOAT",e.$construct_float(a)),b},{$$s:b}),b.emit_imaginary_float=j(b,'lambda',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),c.$emit("tIMAGINARY",c.$Complex(0,c.$construct_float(a))),b},{$$s:b}),b.emit_float_if=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tFLOAT",b.$construct_float(c),b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_float_rescue=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tFLOAT",b.$construct_float(c),b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.$reset()}),g(u,'$construct_float',function(c){var a,e=this,b=d;return k.VERBOSE==null&&(k.VERBOSE=d),function(){try{return a=[k.VERBOSE,d],b=a[0],k.VERBOSE=a[1],a,e.$Float(c)}finally{k.VERBOSE=b}}()}),g(u,'$reset',function(b){var a=this;return b==null&&(b=!0),e(b)&&(a.cs=a.$class().$lex_en_line_begin(),a.cond=w('StackState').$new("cond"),a.cmdarg=w('StackState').$new("cmdarg"),a.cond_stack=[],a.cmdarg_stack=[]),a.force_utf32=!1,a.source_pts=d,a.p=0,a.ts=d,a.te=d,a.act=0,a.stack=[],a.top=0,a.token_queue=[],a.eq_begin_s=d,a.sharp_s=d,a.newline_s=d,a.num_base=d,a.num_digits_s=d,a.num_suffix_s=d,a.num_xfrm=d,a.paren_nest=0,a.lambda_stack=[],a.command_start=!0,a.cs_before_block_comment=a.$class().$lex_en_line_begin(),a.strings=p(w('Parser'),'LexerStrings').$new(a,a.version)},-1),g(u,'$source_buffer=',function(f){var b,a=this,c=d;return a.source_buffer=f,e(a.source_buffer)?(c=a.source_buffer.$source(),h(c.$encoding(),p(w('Encoding'),'UTF_8'))?a.source_pts=c.$unpack("U*"):a.source_pts=c.$unpack("C*"),h(a.source_pts['$[]'](0),65279)&&(a.p=1)):a.source_pts=d,a.strings['$source_buffer='](a.source_buffer),(b=[a.source_pts],j(a.strings,'source_pts=',b),b[b.length-1])}),g(u,'$encoding',function(){var a=this;return a.source_buffer.$source().$encoding()}),q(z[0],'LEX_STATES',new Map([["line_begin",u.$lex_en_line_begin()],["expr_dot",u.$lex_en_expr_dot()],["expr_fname",u.$lex_en_expr_fname()],["expr_value",u.$lex_en_expr_value()],["expr_beg",u.$lex_en_expr_beg()],["expr_mid",u.$lex_en_expr_mid()],["expr_arg",u.$lex_en_expr_arg()],["expr_cmdarg",u.$lex_en_expr_cmdarg()],["expr_end",u.$lex_en_expr_end()],["expr_endarg",u.$lex_en_expr_endarg()],["expr_endfn",u.$lex_en_expr_endfn()],["expr_labelarg",u.$lex_en_expr_labelarg()],["inside_string",u.$lex_en_inside_string()]])),g(u,'$state',function(){var a=this;return w('LEX_STATES').$invert().$fetch(a.cs,a.cs)}),g(u,'$state=',function(a){var b=this;return b.cs=w('LEX_STATES').$fetch(a)}),g(u,'$push_cmdarg',function(){var a=this;return a.cmdarg_stack.$push(a.cmdarg),a.cmdarg=w('StackState').$new("cmdarg."+a.cmdarg_stack.$count())}),g(u,'$pop_cmdarg',function(){var a=this;return a.cmdarg=a.cmdarg_stack.$pop()}),g(u,'$push_cond',function(){var a=this;return a.cond_stack.$push(a.cond),a.cond=w('StackState').$new("cond."+a.cond_stack.$count())}),g(u,'$pop_cond',function(){var a=this;return a.cond=a.cond_stack.$pop()}),g(u,'$dedent_level',function(){var a=this;return a.strings.$dedent_level()}),g(u,'$advance',function(){var x,J,f=this,G=d,V=d,ao=d,am=d,W=d,al=d,ae=d,ak=d,aj=d,$=d,L=d,O=d,g=d,P=d,D=d,ai=d,S=d,N=d,Q=d,T=d,A=d,F=d,p=d,X=d,ac=d,v=d,Y=d,u=d,q=d,U=d,j=d,y=d,_=d,ah=d,aa=d,ab=d,ag=d,ad=d,E=d,B=d,z=d,I=d,R=d,af=d,K=d,M=d,H=d,an=d,Z=d,C=d;if(!e(f.token_queue['$empty?']()))return f.token_queue.$shift();for(G=f.$class(),V=G.$send("_lex_trans_keys"),ao=G.$send("_lex_key_spans"),am=G.$send("_lex_index_offsets"),W=G.$send("_lex_indicies"),al=G.$send("_lex_trans_targs"),ae=G.$send("_lex_trans_actions"),ak=G.$send("_lex_to_state_actions"),aj=G.$send("_lex_from_state_actions"),$=G.$send("_lex_eof_trans"),L=f._lex_actions,O=c(f.source_pts.$size(),2),x=[f.p,O],g=x[0],P=x[1],x,D=f.command_start,f.command_start=!1,ai=!1,J=d,x=s(J),S=x[0]==null?d:x[0],N=x[1]==null?d:x[1],Q=x[2]==null?d:x[2],T=x[3]==null?d:x[3],A=x[4]==null?d:x[4],F=x[5]==null?d:x[5],J,p=0,X=10,ac=15,v=20,Y=30,u=40;e(!0);){if(q=!1,e(n(p,0))){if(h(g,O)){p=Y;continue}if(h(f.cs,0)){p=u;continue}}if(e(n(p,X))){for(A=aj['$[]'](f.cs),F=L['$[]'](A),A=c(A,1);e(m(F,0));)switch(F=a(F,1),A=c(A,1),L['$[]'](a(A,1)).valueOf()){case 52:f.ts=g;break;default:d}if(e(q))continue;Q=f.cs['$<<'](1),T=am['$[]'](f.cs),S=ao['$[]'](f.cs),U=e(j=f.source_pts['$[]'](g))?j:0,N=e(m(S,0))&&e(n(V['$[]'](Q),U))&&e(n(U,V['$[]'](c(Q,1))))?W['$[]'](a(c(T,U),V['$[]'](Q))):W['$[]'](c(T,S))}if(e(n(p,ac))){if(f.cs=al['$[]'](N),t(ae['$[]'](N),0))for(A=ae['$[]'](N),F=L['$[]'](A),A=c(A,1);e(m(F,0));)if(F=a(F,1),A=c(A,1),b(0,j=L['$[]'](a(A,1))))f.newline_s=g;else if(b(1,j))f.num_xfrm=f.emit_integer;else if(b(2,j))f.num_xfrm=f.emit_rational;else if(b(3,j))f.num_xfrm=f.emit_imaginary;else if(b(4,j))f.num_xfrm=f.emit_imaginary_rational;else if(b(5,j))f.num_xfrm=f.emit_integer_re;else if(b(6,j))f.num_xfrm=f.emit_integer_if;else if(b(7,j))f.num_xfrm=f.emit_integer_rescue;else if(b(8,j))f.num_xfrm=f.emit_float;else if(b(9,j))f.num_xfrm=f.emit_imaginary_float;else if(b(10,j))f.num_xfrm=f.emit_float_if;else if(b(11,j))f.num_xfrm=f.emit_rational;else if(b(12,j))f.num_xfrm=f.emit_imaginary_rational;else if(b(13,j))f.num_xfrm=f.emit_float_rescue;else if(b(14,j))f.$e_lbrace();else if(b(15,j)){if(e(f.strings.$close_interp_on_current_literal(g))){g=a(g,1),f.cs=128,g=c(g,1),q=!0,p=u;break}f.paren_nest=a(f.paren_nest,1)}else if(b(16,j))g=f.$on_newline(g);else if(b(17,j))f.sharp_s=a(g,1);else if(b(18,j))f.$emit_comment_from_range(g,O);else if(b(19,j))y=g;else if(b(20,j))y=a(g,2);else if(b(21,j))y=g;else if(b(22,j))y=a(g,2);else if(b(23,j))y=a(g,2);else if(b(24,j))y=a(g,2);else if(b(25,j))y=a(g,3);else if(b(26,j))y=a(g,2);else if(b(27,j))y=a(g,2);else if(b(28,j))f.cond.$push(!1),f.cmdarg.$push(!1),f.paren_nest=c(f.paren_nest,1);else if(b(29,j))f.paren_nest=a(f.paren_nest,1);else if(b(30,j))f.cond.$push(!1),f.cmdarg.$push(!1),f.paren_nest=c(f.paren_nest,1),e(f['$version?'](18))&&(f.command_start=!0);else if(b(31,j))f.paren_nest=a(f.paren_nest,1);else if(b(32,j))y=g;else if(b(33,j))y=g;else if(b(34,j))y=g;else if(b(35,j))_=g;else if(b(36,j))ah=g;else if(b(37,j))y=a(g,1),aa="ivar_name";else if(b(38,j))y=a(g,2),aa="cvar_name";else if(b(39,j))y=g;else if(b(40,j))ab=f.$tok(),ag=f.ts,ad=f.te;else if(b(41,j))f.num_base=16,f.num_digits_s=g;else if(b(42,j))f.num_base=10,f.num_digits_s=g;else if(b(43,j))f.num_base=8,f.num_digits_s=g;else if(b(44,j))f.num_base=2,f.num_digits_s=g;else if(b(45,j))f.num_base=10,f.num_digits_s=f.ts;else if(b(46,j))f.num_base=8,f.num_digits_s=f.ts;else if(b(47,j))f.num_suffix_s=g;else if(b(48,j))f.num_suffix_s=g;else if(b(49,j))f.num_suffix_s=g;else if(b(50,j))y=g;else if(b(53,j))f.te=c(g,1);else if(b(54,j)){f.te=c(g,1),f.$emit_global_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(55,j)){f.te=g,g=a(g,1),f.$emit_global_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(56,j)){f.te=g,g=a(g,1),f.$emit_class_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(57,j)){f.te=g,g=a(g,1),f.$emit_instance_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(58,j))f.act=4;else if(b(59,j))f.act=5;else if(b(60,j))f.act=6;else if(b(61,j)){f.te=c(g,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(62,j)){f.te=c(g,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(63,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(64,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(65,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(66,j))if(f.te=c(g,1),e(f['$version?'](23))){x=[f.$tok()['$[]'](r(0,-2,!1)),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else{g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(67,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(68,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(69,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(70,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(71,j)){f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(72,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(73,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(74,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(75,j))f.te=g,g=a(g,1);else if(b(76,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(77,j)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(78,j)){g=a(f.te,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(79,j))if(b(4,z=f.act)){g=a(f.te,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(5,z)){g=a(f.te,1),f.$emit("tCONSTANT"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(6,z)){g=a(f.te,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else d;else if(b(80,j)){f.te=c(g,1),f.$emit("tLABEL",f.$tok(f.ts,a(f.te,2)),f.ts,a(f.te,1)),g=a(g,1),f.cs=501,g=c(g,1),q=!0,p=u;break}else if(b(81,j))if(f.te=c(g,1),e(i(f.version,31))&&e(f.context.$in_argdef())){f.$emit("tBDOT3","...".$freeze()),f.cs=516,g=c(g,1),q=!0,p=u;break}else{g=a(g,3),f.cs=516,q=!0,p=v;break}else if(b(82,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(83,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(84,j))f.te=g,g=a(g,1);else if(b(85,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(86,j)){g=a(f.te,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(87,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(88,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(89,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(90,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(91,j)){f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(92,j)){f.te=g,g=a(g,1),f.$emit("tFID",f.$tok(f.ts,y),f.ts,y),f.cs=f.$arg_or_cmdarg(D),g=a(y,1),g=c(g,1),q=!0,p=u;break}else if(b(93,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(94,j))f.te=g,g=a(g,1);else if(b(95,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(96,j))f.act=33;else if(b(97,j))f.act=34;else if(b(98,j))f.act=39;else if(b(99,j))f.act=40;else if(b(100,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(101,j)){f.te=c(g,1),f.$check_ambiguous_slash(y),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(102,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(103,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else if(b(104,j)){f.te=c(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(105,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(106,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(107,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(108,j))if(f.te=g,g=a(g,1),e(f['$version?'](18))){f.$emit("tLPAREN2","(".$freeze(),a(f.te,1),f.te),f.cs=508,g=c(g,1),q=!0,p=u;break}else{f.$emit("tLPAREN_ARG","(".$freeze(),a(f.te,1),f.te),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(109,j)){f.te=g,g=a(g,1),f.$emit("tLPAREN2","(".$freeze()),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(110,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK","[".$freeze(),a(f.te,1),f.te),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(111,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.$emit("tLAMBEG","{".$freeze(),a(f.te,1),f.te)):f.$emit("tLCURLY","{".$freeze(),a(f.te,1),f.te),f.command_start=!0,f.paren_nest=c(f.paren_nest,1),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(112,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(113,j)){f.te=g,g=a(g,1),f.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",f.$tok(y,f.te)]]),f.$range(y,f.te)),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(114,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(115,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(116,j))f.te=g,g=a(g,1);else if(b(117,j)){f.te=g,g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(118,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(119,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(120,j))g=a(f.te,1);else if(b(121,j)){g=a(f.te,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(122,j))if(b(33,z=f.act)){g=a(f.te,1),f.$check_ambiguous_slash(y),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(34,z)){g=a(f.te,1),f.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",f.$tok(y,f.te)]]),f.$range(y,f.te)),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(39,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else g=a(f.te,1);else if(b(123,j))f.act=46;else if(b(124,j))f.act=47;else if(b(125,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(126,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(127,j))if(f.te=g,g=a(g,1),f.$emit("tLPAREN_ARG","(".$freeze(),a(f.te,1),f.te),e(f['$version?'](18))){f.cs=508,g=c(g,1),q=!0,p=u;break}else{f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(128,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(129,j)){g=a(f.te,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(130,j))if(b(46,z=f.act)){g=a(f.te,1),e(f.cond['$active?']())?f.$emit("kDO_COND","do".$freeze(),a(f.te,2),f.te):f.$emit("kDO","do".$freeze(),a(f.te,2),f.te),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(47,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else d;else if(b(131,j)){f.te=c(g,1),f.$emit_do(!0),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(132,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(133,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(134,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.$emit("tLAMBEG","{".$freeze())):f.$emit("tLBRACE_ARG","{".$freeze()),f.paren_nest=c(f.paren_nest,1),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(135,j))f.te=g,g=a(g,1);else if(b(136,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(137,j))f.act=54;else if(b(138,j))f.act=55;else if(b(139,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(140,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(141,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else if(b(142,j))f.te=g,g=a(g,1);else if(b(143,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(144,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(145,j))if(b(54,z=f.act)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(55,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else d;else if(b(146,j))f.act=60;else if(b(147,j))f.act=67;else if(b(148,j))f.act=76;else if(b(149,j))f.act=80;else if(b(150,j))f.act=81;else if(b(151,j))f.act=82;else if(b(152,j))f.act=86;else if(b(153,j))f.act=87;else if(b(154,j))f.act=91;else if(b(155,j)){f.te=c(g,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(156,j)){f.te=c(g,1),E=B=f.$tok()['$[]'](0).$chr(),f.strings.$push_literal(E,B,f.ts),g=a(g,1),f.cs=128,q=!0,p=v;break}else if(b(157,j)){f.te=c(g,1),x=[f.source_buffer.$slice(f.ts,1).$chr(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(158,j)){f.te=c(g,1),x=[f.$tok()['$[]'](r(0,-2,!1)),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(159,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.$emit("tSYMBEG",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),f.cs=134,q=!0,p=v;break}else if(b(160,j)){f.te=c(g,1),x=[f.$tok(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(161,j)){f.te=c(g,1),f.$emit("tSYMBOL",f.$tok(c(f.ts,1),c(f.ts,2))),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(162,j)){f.te=c(g,1),I=f.$tok(c(f.ts,1)),e(i(f.version,33))&&e(I['$start_with?']("$0"))&&e(m(I.$length(),2))&&f.$diagnostic("error","gvar_name",new Map([["name",I]]),f.$range(c(f.ts,1),f.te)),f.$emit("tSYMBOL",I,f.ts),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(163,j)){if(f.te=c(g,1),J=f.strings.$read_character_constant(f.ts),x=s(J),g=x[0]==null?d:x[0],R=x[1]==null?d:x[1],J,g=a(g,1),e(f.token_queue['$empty?']())){f.cs=R,q=!0,p=v;break}f.cs=R,g=c(g,1),q=!0,p=u;break}else if(b(164,j))f.te=c(g,1),f.$diagnostic("fatal","incomplete_escape",d,f.$range(f.ts,c(f.ts,1)));else if(b(165,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(166,j)){f.te=c(g,1),g=a(g,1),e(f['$version?'](18))?(af=f.$tok(f.ts,a(f.te,2)),f.$emit(e(f.source_buffer.$slice(f.ts,1)['$=~'](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",af,f.ts,a(f.te,2)),g=a(g,1),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](af))?f.cs=516:f.cs=f.$arg_or_cmdarg(D)):(f.$emit("tLABEL",f.$tok(f.ts,a(f.te,2)),f.ts,a(f.te,1)),f.cs=501),g=c(g,1),q=!0,p=u;break}else if(b(167,j)){f.te=c(g,1),K=a(f.te,1)['$=='](f.newline_s),M=!1,H=e(K)?a(f.te,1):f.te,e(i(f.version,30))?e(f.lambda_stack['$any?']())&&h(c(f.lambda_stack.$last(),1),f.paren_nest)?f.$emit("tDOT3","...".$freeze(),f.ts,H):(f.$emit("tBDOT3","...".$freeze(),f.ts,H),e(i(f.version,31))&&e(K)&&e(f.context.$in_argdef())&&(f.$emit("tNL",a(f.te,1),f.te),M=!0)):e(i(f.version,27))?f.$emit("tBDOT3","...".$freeze(),f.ts,H):f.$emit("tDOT3","...".$freeze(),f.ts,H),e(K)&&l(M)&&(g=a(g,1)),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(168,j)){f.te=c(g,1),f.$emit("tIDENTIFIER",ab,ag,ad),g=a(ad,1),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](ab))&&e(o(f.version,25))?f.cs=247:f.cs=307,g=c(g,1),q=!0,p=u;break}else if(b(169,j)){f.te=c(g,1),g=a(f.ts,1),f.cs_before_block_comment=f.cs,f.cs=710,q=!0,p=v;break}else if(b(170,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(171,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(172,j)){f.te=g,g=a(g,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(173,j)){f.te=g,g=a(g,1),f.$emit("tSTAR","*".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(174,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","string_eof",d,f.$range(f.ts,c(f.ts,1)));else if(b(175,j))if(f.te=g,g=a(g,1),f.$tok(f.ts,_)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),an=e(z=((x=k['~'])===d?d:x['$[]'](1))['$empty?']()['$!']())?z:((x=k['~'])===d?d:x['$[]'](2))['$empty?']()['$!'](),Z=((x=k['~'])===d?d:x['$[]'](2))['$empty?']()['$!'](),E=e(((x=k['~'])===d?d:x['$[]'](3))['$empty?']())?'<<"'.$freeze():c("<<".$freeze(),(x=k['~'])===d?d:x['$[]'](3)),B=(x=k['~'])===d?d:x['$[]'](4),e(i(f.version,27))?(e(m(B.$count("\n"),0))||e(m(B.$count("\r"),0)))&&f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1))):e(i(f.version,24))&&e(m(B.$count("\n"),0))&&(e(B['$end_with?']("\n"))?(f.$diagnostic("warning","heredoc_id_ends_with_nl",d,f.$range(f.ts,c(f.ts,1))),B=B.$rstrip()):f.$diagnostic("fatal","heredoc_id_has_newline",d,f.$range(f.ts,c(f.ts,1)))),e(Z)&&e(f['$version?'](18,19,20,21,22))){f.$emit("tLSHFT","<<".$freeze(),f.ts,c(f.ts,2)),g=c(f.ts,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else f.strings.$push_literal(E,B,f.ts,_,an,Z),e(z=f.strings.$herebody_s())?z:f.strings['$herebody_s='](ah),g=a(f.strings.$herebody_s(),1),f.cs=128;else if(b(176,j))f.te=g,g=a(g,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(177,j)){f.te=g,g=a(g,1),f.$emit("tSYMBOL",f.$tok(c(f.ts,1),y),f.ts,y),g=a(y,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(178,j)){f.te=g,g=a(g,1),I=f.$tok(c(f.ts,1)),e(i(f.version,33))&&e(I['$start_with?']("$0"))&&e(m(I.$length(),2))&&f.$diagnostic("error","gvar_name",new Map([["name",I]]),f.$range(c(f.ts,1),f.te)),f.$emit("tSYMBOL",I,f.ts),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(179,j)){f.te=g,g=a(g,1),f.$emit_colon_with_digits(g,y,aa),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(180,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","incomplete_escape",d,f.$range(f.ts,c(f.ts,1)));else if(b(181,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.command_start=!0,f.$emit("tLAMBEG","{".$freeze())):f.$emit("tLBRACE","{".$freeze()),f.paren_nest=c(f.paren_nest,1),g=c(g,1),q=!0,p=u;break}else if(b(182,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK","[".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(183,j)){f.te=g,g=a(g,1),f.$emit("tLPAREN","(".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(184,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(185,j)){f.te=g,g=a(g,1),f.$emit("kRESCUE","rescue".$freeze(),f.ts,y),g=a(y,1),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(186,j)){f.te=g,g=a(g,1),e(i(f.version,27))?f.$emit("tBDOT2"):f.$emit("tDOT2"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(187,j)){f.te=g,g=a(g,1),K=a(f.te,1)['$=='](f.newline_s),M=!1,H=e(K)?a(f.te,1):f.te,e(i(f.version,30))?e(f.lambda_stack['$any?']())&&h(c(f.lambda_stack.$last(),1),f.paren_nest)?f.$emit("tDOT3","...".$freeze(),f.ts,H):(f.$emit("tBDOT3","...".$freeze(),f.ts,H),e(i(f.version,31))&&e(K)&&e(f.context.$in_argdef())&&(f.$emit("tNL",a(f.te,1),f.te),M=!0)):e(i(f.version,27))?f.$emit("tBDOT3","...".$freeze(),f.ts,H):f.$emit("tDOT3","...".$freeze(),f.ts,H),e(K)&&l(M)&&(g=a(g,1)),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(188,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(189,j))if(f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(190,j))f.te=g,g=a(g,1);else if(b(191,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs_before_block_comment=f.cs,f.cs=710,q=!0,p=v;break}else if(b(192,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(193,j))g=a(f.te,1),f.$diagnostic("fatal","string_eof",d,f.$range(f.ts,c(f.ts,1)));else if(b(194,j))g=a(f.te,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(195,j))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(196,j))g=a(f.te,1);else if(b(197,j)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(198,j))if(b(60,z=f.act)){g=a(f.te,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(67,z))g=a(f.te,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(76,z))if(g=a(f.te,1),e(i(f.version,27))){f.$emit("tPIPE",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else{g=a(g,2),f.cs=516,q=!0,p=v;break}else if(b(80,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(81,z)){g=a(f.te,1),f.$emit("kRESCUE","rescue".$freeze(),f.ts,y),g=a(y,1),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(82,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(86,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(87,z))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(91,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else d;else if(b(199,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(200,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(201,j))f.te=g,g=a(g,1);else if(b(202,j))if(f.te=g,g=a(g,1),e(f.context.$in_kwarg())){g=a(g,1),f.cs=516,q=!0,p=v;break}else{f.cs=710,q=!0,p=v;break}else if(b(203,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(204,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(205,j)){f.te=c(g,1),f.strings.$push_literal(f.$tok(),f.$tok(),f.ts),f.cs=128,q=!0,p=v;break}else if(b(206,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(207,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(208,j))f.te=g,g=a(g,1);else if(b(209,j)){f.te=g,g=a(g,1),f.cs=710,q=!0,p=v;break}else if(b(210,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(211,j)){g=a(f.te,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(212,j))f.act=104;else if(b(213,j))f.act=105;else if(b(214,j))f.act=106;else if(b(215,j))f.act=107;else if(b(216,j))f.act=108;else if(b(217,j))f.act=109;else if(b(218,j))f.act=110;else if(b(219,j))f.act=111;else if(b(220,j))f.act=112;else if(b(221,j))f.act=113;else if(b(222,j))f.act=115;else if(b(223,j))f.act=116;else if(b(224,j))f.act=117;else if(b(225,j))f.act=119;else if(b(226,j))f.act=123;else if(b(227,j))f.act=124;else if(b(228,j))f.act=126;else if(b(229,j))f.act=127;else if(b(230,j)){f.te=c(g,1),f.$emit("tLAMBDA","->".$freeze(),f.ts,c(f.ts,2)),f.lambda_stack.$push(f.paren_nest),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(231,j)){f.te=c(g,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(232,j)){f.te=c(g,1),x=[f.$tok(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts,d,!1,!1,!0),f.cs=128,q=!0,p=v;break}else if(b(233,j)){f.te=c(g,1),g=a(f.ts,1),f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(234,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=255,g=c(g,1),q=!0,p=u;break}else if(b(235,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(236,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(237,j)){f.te=c(g,1),f.$emit("tOP_ASGN",f.$tok(f.ts,a(f.te,1))),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(238,j)){f.te=c(g,1),f.$emit("tEH","?".$freeze()),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(239,j)){f.te=c(g,1),h(f.paren_nest,0)&&f.$diagnostic("warning","triple_dot_at_eol",d,f.$range(f.ts,a(f.te,1))),f.$emit("tDOT3","...".$freeze(),f.ts,a(f.te,1)),g=a(g,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(240,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(241,j)){f.te=c(g,1),f.$emit("tSEMI",";".$freeze()),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(242,j))f.te=c(g,1),f.$diagnostic("error","bare_backslash",d,f.$range(f.ts,c(f.ts,1))),g=a(g,1);else if(b(243,j))f.te=c(g,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(244,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(245,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),h(f.$tok(),"{".$freeze())?f.$emit("tLAMBEG","{".$freeze()):f.$emit("kDO_LAMBDA","do".$freeze())):h(f.$tok(),"{".$freeze())?f.$emit("tLCURLY","{".$freeze()):f.$emit_do(),h(f.$tok(),"{".$freeze())&&(f.paren_nest=c(f.paren_nest,1)),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(246,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS')),f.cs=134,g=c(g,1),q=!0,p=u;break}else if(b(247,j)){f.te=g,g=a(g,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(248,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(249,j)){f.te=g,g=a(g,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(250,j))f.te=g,g=a(g,1),f.$diagnostic("error","no_dot_digit_literal");else if(b(251,j)){f.te=g,g=a(g,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(252,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(253,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT",f.$tok(f.ts,y),f.ts,y),g=a(y,1),g=c(g,1),q=!0,p=u;break}else if(b(254,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(255,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=255,g=c(g,1),q=!0,p=u;break}else if(b(256,j))if(f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(257,j)){f.te=g,g=a(g,1),h(y,f.te)?f.$emit("tFID"):(f.$emit("tIDENTIFIER",f.$tok(f.ts,y),f.ts,y),g=a(y,1)),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(258,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(259,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(260,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(261,j)){f.te=g,g=a(g,1),f.$emit_rbrace_rparen_rbrack(),(h(f.$tok(),"}".$freeze())||h(f.$tok(),"]".$freeze()))&&(e(i(f.version,25))?f.cs=516:f.cs=313),g=c(g,1),q=!0,p=u;break}else if(b(262,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK2","[".$freeze()),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(263,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(264,j))f.te=g,g=a(g,1);else if(b(265,j)){f.te=g,g=a(g,1),f.cs=696,q=!0,p=v;break}else if(b(266,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(267,j)){g=a(f.te,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(268,j))g=a(f.te,1),f.$diagnostic("error","no_dot_digit_literal");else if(b(269,j)){g=a(f.te,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(270,j))g=a(f.te,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(271,j))if(b(104,z=f.act)){g=a(f.te,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),h(f.$tok(),"{".$freeze())?f.$emit("tLAMBEG","{".$freeze()):f.$emit("kDO_LAMBDA","do".$freeze())):h(f.$tok(),"{".$freeze())?f.$emit("tLCURLY","{".$freeze()):f.$emit_do(),h(f.$tok(),"{".$freeze())&&(f.paren_nest=c(f.paren_nest,1)),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(105,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=134,g=c(g,1),q=!0,p=u;break}else if(b(106,z)){g=a(f.te,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(107,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(108,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(109,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(110,z))if(g=a(f.te,1),f.$emit_table(w('KEYWORDS')),e(f['$version?'](18))&&h(f.$tok(),"not".$freeze())){f.cs=345,g=c(g,1),q=!0,p=u;break}else{f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(111,z)){g=a(f.te,1),e(f['$version?'](18))?(f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))||(f.cs=f.$arg_or_cmdarg(D))):f.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(112,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),g=c(g,1),q=!0,p=u;break}else if(b(113,z)){g=a(f.te,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(115,z))if(g=a(f.te,1),e(f['$version?'](18,19,20)))f.$diagnostic("error","trailing_in_number",new Map([["character",f.$tok(a(f.te,1),f.te)]]),f.$range(a(f.te,1),f.te));else{f.$emit("tINTEGER",f.$tok(f.ts,a(f.te,1)).$to_i(),f.ts,a(f.te,1)),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(116,z))if(g=a(f.te,1),e(f['$version?'](18,19,20)))f.$diagnostic("error","trailing_in_number",new Map([["character",f.$tok(a(f.te,1),f.te)]]),f.$range(a(f.te,1),f.te));else{f.$emit("tFLOAT",f.$tok(f.ts,a(f.te,1)).$to_f(),f.ts,a(f.te,1)),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(117,z)){g=a(f.te,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(119,z)){g=a(f.te,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(123,z))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(124,z)){g=a(f.te,1),h(y,f.te)?f.$emit("tFID"):(f.$emit("tIDENTIFIER",f.$tok(f.ts,y),f.ts,y),g=a(y,1)),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(126,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(127,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else d;else if(b(272,j))f.act=140;else if(b(273,j))f.act=144;else if(b(274,j))if(f.te=c(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),e(o(f.version,27))){g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else{f.$emit("tBDOT3"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(275,j)){f.te=c(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(276,j)){f.te=c(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(277,j)){if(f.te=g,g=a(g,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(278,j))if(f.te=g,g=a(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),e(o(f.version,27))){g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else{f.$emit("tBDOT2"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(279,j)){f.te=g,g=a(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(280,j)){f.te=g,g=a(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(281,j)){if(g=a(f.te,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(282,j)){g=a(f.te,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(283,j))if(b(140,z=f.act)){if(g=a(f.te,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(144,z)){g=a(f.te,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else d;else if(b(284,j)){f.te=c(g,1),f.$emit_comment(f.eq_begin_s,f.te),f.cs=f.cs_before_block_comment,q=!0,p=v;break}else if(b(285,j))f.te=c(g,1);else if(b(286,j)){f.te=g,g=a(g,1),f.$emit_comment(f.eq_begin_s,f.te),f.cs=f.cs_before_block_comment,q=!0,p=v;break}else if(b(287,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","embedded_document",d,f.$range(f.eq_begin_s,c(f.eq_begin_s,"=begin".$length())));else if(b(288,j)){f.te=c(g,1),f.eq_begin_s=f.ts,f.cs=704,q=!0,p=v;break}else if(b(289,j))f.te=c(g,1),g=a(O,3);else if(b(290,j)){f.te=c(g,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(291,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(292,j))f.te=g,g=a(g,1);else if(b(293,j)){f.te=g,g=a(g,1),f.eq_begin_s=f.ts,f.cs=704,q=!0,p=v;break}else if(b(294,j)){f.te=g,g=a(g,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(295,j)){g=a(f.te,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(296,j)){f.te=c(g,1),J=f.strings.$advance(g),x=s(J),g=x[0]==null?d:x[0],R=x[1]==null?d:x[1],J,g=a(g,1),f.cs=R,g=c(g,1),q=!0,p=u;break}else d;if(e(q))continue}if(e(n(p,v))){for(A=ak['$[]'](f.cs),F=L['$[]'](A),A=c(A,1);e(m(F,0));)switch(F=a(F,1),A=c(A,1),L['$[]'](a(A,1)).valueOf()){case 51:f.ts=d;break;default:d}if(e(q))continue;if(h(f.cs,0)){p=u;continue}if(g=c(g,1),t(g,O)){p=X;continue}}if(e(n(p,Y)))if(h(g,P))if(e(m($['$[]'](f.cs),0))){N=a($['$[]'](f.cs),1),p=ac;continue}if(e(n(p,u)))break}return e(!1)&&ai,f.p=g,e(f.token_queue['$any?']())?f.token_queue.$shift():h(f.cs,G.$lex_error())?[!1,["$error".$freeze(),f.$range(a(g,1),g)]]:(P=f.source_pts.$size(),[!1,["$eof".$freeze(),f.$range(P,P)]])}),u.$protected(),g(u,'$version?',function(e){var a,b,c=this;return a=v(arguments),b=a,b['$include?'](c.version)},-1),g(u,'$stack_pop',function(){var b=this;return b.top=a(b.top,1),b.stack['$[]'](b.top)}),g(u,'$tok',function(b,c){var d=this;return b==null&&(b=d.ts),c==null&&(c=d.te),d.source_buffer.$slice(b,a(c,b))},-1),g(u,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),p(p(w('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(u,'$emit',function(h,c,f,g){var a=this,b=d;return c==null&&(c=a.$tok()),f==null&&(f=a.ts),g==null&&(g=a.te),b=[h,[c,a.$range(f,g)]],a.token_queue.$push(b),e(a.tokens)&&a.tokens.$push(b),b},-2),g(u,'$emit_table',function(f,a,b){var c=this,e=d;return a==null&&(a=c.ts),b==null&&(b=c.te),e=c.$tok(a,b),c.$emit(f['$[]'](e),e,a,b)},-2),g(u,'$emit_do',function(b){var a=this;return b==null&&(b=!1),e(a.cond['$active?']())?a.$emit("kDO_COND","do".$freeze()):e(a.cmdarg['$active?']())||e(b)?a.$emit("kDO_BLOCK","do".$freeze()):a.$emit("kDO","do".$freeze())},-1),g(u,'$arg_or_cmdarg',function(b){var a=this;return e(b)?a.$class().$lex_en_expr_cmdarg():a.$class().$lex_en_expr_arg()}),g(u,'$emit_comment',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.comments)&&a.comments.$push(p(p(w('Parser'),'Source'),'Comment').$new(a.$range(b,c))),e(a.tokens)&&a.tokens.$push(["tCOMMENT",[a.$tok(b,c),a.$range(b,c)]]),d},-1),g(u,'$emit_comment_from_range',function(b,d){var c=this;return c.$emit_comment(c.sharp_s,h(b,d)?a(b,2):b)}),g(u,'$diagnostic',function(f,g,a,b,c){var e=this;return a==null&&(a=d),b==null&&(b=e.$range()),c==null&&(c=[]),e.diagnostics.$process(p(w('Parser'),'Diagnostic').$new(f,g,a,b,c))},-3),g(u,'$e_lbrace',function(){var a=this,b=d;return a.cond.$push(!1),a.cmdarg.$push(!1),b=a.strings.$literal(),e(b)?b.$start_interp_brace():d}),g(u,'$numeric_literal_int',function(){var b=this,f=d,i=d,g=d;return f=b.$tok(b.num_digits_s,b.num_suffix_s),e(f['$end_with?']("_".$freeze()))?b.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),b.$range(a(b.te,1),b.te)):e(f['$empty?']())&&h(b.num_base,8)&&e(b['$version?'](18))?f="0".$freeze():e(f['$empty?']())?b.$diagnostic("error","empty_numeric"):h(b.num_base,8)&&e(i=f.$index(/[89]/))&&(g=c(b.num_digits_s,i),b.$diagnostic("error","invalid_octal",d,b.$range(g,c(g,1)))),f}),g(u,'$on_newline',function(a){var b=this;return b.strings.$on_newline(a)}),g(u,'$check_ambiguous_slash',function(a){var b=this;return h(b.$tok(a,c(a,1)),"/".$freeze())?e(o(b.version,30))?b.$diagnostic("warning","ambiguous_literal",d,b.$range(a,c(a,1))):b.$diagnostic("warning","ambiguous_regexp",d,b.$range(a,c(a,1))):d}),g(u,'$emit_global_var',function(b,d){var a=this;return b==null&&(b=a.ts),d==null&&(d=a.te),e(a.$tok(b,d)['$=~'](/^\$([1-9][0-9]*)$/))?a.$emit("tNTH_REF",a.$tok(c(b,1),d).$to_i(),b,d):e(a.$tok()['$=~'](/^\$([&`'+])$/))?a.$emit("tBACK_REF",a.$tok(b,d),b,d):a.$emit("tGVAR",a.$tok(b,d),b,d)},-1),g(u,'$emit_class_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.$tok(b,c)['$=~'](/^@@[0-9]/))&&a.$diagnostic("error","cvar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tCVAR",a.$tok(b,c),b,c)},-1),g(u,'$emit_instance_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.$tok(b,c)['$=~'](/^@[0-9]/))&&a.$diagnostic("error","ivar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tIVAR",a.$tok(b,c),b,c)},-1),g(u,'$emit_rbrace_rparen_rbrack',function(){var a=this;return a.$emit_table(w('PUNCTUATION')),e(o(a.version,24))?(a.cond.$lexpop(),a.cmdarg.$lexpop()):(a.cond.$pop(),a.cmdarg.$pop())}),g(u,'$emit_colon_with_digits',function(b,d,f){var a=this;return e(i(a.version,27))?a.$diagnostic("error",f,new Map([["name",a.$tok(d,a.te)]]),a.$range(d,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,c(a.ts,1)),a.ts,c(a.ts,1)),b=a.ts),b}),g(u,'$emit_singleton_class',function(){var b=this;return b.$emit("kCLASS","class".$freeze(),b.ts,c(b.ts,5)),b.$emit("tLSHFT","<<".$freeze(),a(b.te,2),b.te)}),q(z[0],'PUNCTUATION',new Map([["=","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"]])),q(z[0],'PUNCTUATION_BEGIN',new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),q(z[0],'KEYWORDS',new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),q(z[0],'KEYWORDS_BEGIN',new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),q(z[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),j(f.large_array_unpack("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(a){var b,c;return a==null&&(a=d),(b=[a,(c=[a,"k"+a.$upcase()],j(w('KEYWORDS'),'[]=',c),c[c.length-1])],j(w('KEYWORDS_BEGIN'),'[]=',b),b[b.length-1])})}(w('Parser'),null,u)},Opal.modules["parser/lexer-F1"]=function(e){var w=e.klass,d=e.truthy,i=e.send,a=e.rb_minus,g=e.def,k=e.gvars,f=e.eqeq,p=e.const_set,b=e.rb_plus,r=e.to_ary,m=e.rb_le,n=e.rb_gt,s=e.neqeq,q=e.range,h=e.rb_ge,j=e.not,l=e.rb_lt,u=e.slice,t=[],v=e.$r(t),c=e.nil,o=e.$$$;return e.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_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=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,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_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,<<,>,!=,on_newline,emit_comment_from_range,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,version?,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,<,emit_colon_with_digits,last,any?,emit_singleton_class,inspect,numeric_literal_int,to_i,call,to_f,emit_comment,advance,e_lbrace,close_interp_on_current_literal,emit_rbrace_rparen_rbrack,in_kwarg,end_with?,rstrip,herebody_s,herebody_s=,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase'),function(B,z,A){var t=w(B,z,'Lexer'),y=[t].concat(A),v=e.$r(y),x=t.$$prototype;return x.version=x.source_buffer=x.source_pts=x.strings=x.cs=x.cmdarg_stack=x.cmdarg=x.cond_stack=x.cond=x.token_queue=x._lex_actions=x.p=x.command_start=x.ts=x.te=x.stack=x.top=x.act=x.context=x.static_env=x.newline_s=x.lambda_stack=x.paren_nest=x.num_base=x.num_suffix_s=x.num_xfrm=x.eq_begin_s=x.cs_before_block_comment=x.emit_rational=x.emit_imaginary=x.emit_imaginary_rational=x.emit_integer_re=x.emit_integer_if=x.emit_integer_rescue=x.emit_imaginary_float=x.emit_float_if=x.emit_float_rescue=x.emit_integer=x.emit_float=x.tokens=x.comments=x.sharp_s=x.diagnostics=x.num_digits_s=c,function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(t),y),t['$_lex_trans_keys='](e.large_array_unpack("0,0,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,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,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,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,26,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,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(t),y),t['$_lex_key_spans='](e.large_array_unpack("0,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,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,1,1,1,1,1,1,1,1,1,27,0,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,27,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,96,24,0,1,1,1,24,1,1")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(t),y),t['$_lex_index_offsets='](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(t),y),t['$_lex_indicies='](e.large_array_unpack("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,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,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,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,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,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,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,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,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,2,2,2,2,7,2,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,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,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,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,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,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,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,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,18,18,18,18,19,18,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,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,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,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,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,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,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,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,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,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,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,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,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,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,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,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,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,259,2,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,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,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,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,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,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,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,262,262,262,262,7,262,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,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,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,303,303,303,303,263,303,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,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,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,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,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,312,9,312,312,313,9,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,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,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,316,316,316,316,313,316,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,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,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,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,329,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,340,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,341,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,348,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,354,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,358,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,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,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,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,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,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,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,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,405,405,405,405,13,405,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,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,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,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,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,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,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,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,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,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,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,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,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,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,467,467,467,467,19,467,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,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,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,55,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,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,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,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,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,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,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,93,93,93,93,96,93,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,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,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,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,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,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,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,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,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,530,530,530,530,519,530,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,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,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,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,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,626,626,626,626,626,626,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,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,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,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,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,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,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,675,675,675,675,676,675,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,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,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,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,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,681,682,681,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,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,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,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,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,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,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,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,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,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,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,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,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,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,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,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,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,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,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,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,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,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,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,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(t),y),t['$_lex_trans_targs='](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(t),y),t['$_lex_trans_actions='](e.large_array_unpack("0,1,0,0,0,0,0,0,2,3,4,5,6,0,0,0,7,8,9,0,0,10,11,12,13,14,15,15,16,17,15,18,17,19,17,15,15,16,15,20,15,15,21,15,15,15,15,15,15,0,22,23,0,24,23,25,23,0,0,22,0,26,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,28,29,30,31,0,0,0,31,14,32,15,15,15,32,33,0,34,0,14,15,35,15,36,37,38,0,0,0,0,0,39,40,41,0,14,0,42,0,15,43,15,44,15,45,46,47,46,48,46,0,49,50,49,51,49,52,53,0,54,0,0,0,0,55,55,0,0,56,56,57,0,14,58,0,0,0,55,0,0,59,0,0,0,0,59,60,0,0,0,61,62,63,64,0,65,65,66,67,67,68,0,0,0,0,69,0,0,0,0,0,0,14,0,0,0,15,43,15,15,15,45,46,47,46,46,46,0,49,50,49,49,49,70,52,71,72,0,73,0,74,74,0,75,0,76,45,77,0,78,14,79,80,81,0,0,0,0,0,0,0,0,0,82,83,86,0,0,87,88,89,90,91,92,0,14,0,0,65,65,0,0,0,93,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,96,97,98,99,100,45,101,0,102,0,0,0,103,0,104,105,0,0,106,0,0,0,107,0,108,0,0,0,0,0,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,111,112,0,0,65,0,113,114,115,45,116,0,0,14,117,0,118,119,0,14,0,0,120,0,0,0,0,0,0,0,0,0,0,121,0,122,0,123,124,125,126,127,45,128,0,0,129,0,130,131,132,133,14,0,13,0,0,13,0,0,0,0,0,0,65,65,65,134,135,136,137,138,139,140,0,141,142,143,144,145,146,147,148,149,45,150,0,151,152,153,154,155,156,0,0,0,157,65,65,0,158,159,160,161,162,0,0,0,0,0,163,164,45,165,0,166,14,167,168,169,170,171,172,0,14,0,0,0,0,0,0,173,174,175,176,45,177,0,178,14,179,180,181,0,0,0,0,0,0,0,0,0,0,0,0,182,183,0,184,0,0,65,185,0,0,185,185,0,0,65,186,0,186,0,186,186,186,0,0,186,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,0,187,188,188,189,190,0,191,192,0,59,0,193,0,194,195,196,197,198,15,199,200,201,202,203,45,204,0,205,206,0,207,0,208,209,185,210,0,211,0,212,213,214,0,0,215,0,0,0,0,216,0,0,0,0,0,0,0,217,0,0,218,0,219,220,0,0,0,221,0,0,222,223,224,225,226,227,0,228,229,229,0,230,0,231,232,232,0,0,233,234,235,236,237,0,0,238,14,182,182,182,182,182,182,182,182,182,182,182,182,59,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,239,182,182,182,182,182,182,182,182,182,182,182,182,240,241,242,243,244,244,240,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,245,246,247,248,0,14,0,0,249,250,251,45,252,0,253,14,254,65,255,256,0,14,257,0,0,258,259,260,261,45,262,0,14,263,264,265,266,0,14,0,267,0,65,268,0,0,0,0,269,0,0,270,270,0,271,0,0,0,272,65,273,273,273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274,275,276,0,277,278,279,280,281,282,45,283,0,284,0,0,285,286,287,288,289,290,291,292,293,0,294,0,295,296,0,0,297,298,299,0,0,300,0,0,299,301,301,302,303,0,304,305,0,306,307,308,0,309,310,0,0,311,312,299,299,313,0,0,314,314,0,315,0,316,317,65,0,318,0,319,320,321,322,322,323,323,0,0,324,325,325,326,326,327,328,328,329,329,330,331,331,332,332,0,0,333,334,335,336,337,338,338,335,337,339,270,340,0,0,0,341,0,0,342,343,273,273,273,344,273,345,346,14,347,348,349,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0,0,0,344,0,0,0,0,0,351,352,0,0,0,0,0,0,353,0,0,0,0,0,352,354,355,0,356,0,357,0,0,0,0,358,0,0,0,0,0,0,0,0,0,359,0,0,0,0,0,0,0,358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,360,361,362,363,363,74,363,364,365,366,0,367,368,0,369,0,370,0,0,0,371,372,373,374,0,14,0,65,0,65,375,376,377,45,378,0,379,0,380,381,382,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(t),y),t['$_lex_to_state_actions='](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,84,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(t),y),t['$_lex_from_state_actions='](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(t),y),t['$_lex_eof_trans='](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,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,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,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,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,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,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,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,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,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(a,b){return a.$attr_accessor("lex_start")}(e.get_singleton_class(t),y),t['$lex_start='](128),function(a,b){return a.$attr_accessor("lex_error")}(e.get_singleton_class(t),y),t['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(t),y),t['$lex_en_expr_variable='](129),function(a,b){return a.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(t),y),t['$lex_en_expr_fname='](134),function(a,b){return a.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(t),y),t['$lex_en_expr_endfn='](247),function(a,b){return a.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(t),y),t['$lex_en_expr_dot='](255),function(a,b){return a.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(t),y),t['$lex_en_expr_arg='](276),function(a,b){return a.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_cmdarg='](307),function(a,b){return a.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_endarg='](313),function(a,b){return a.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(t),y),t['$lex_en_expr_mid='](321),function(a,b){return a.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(t),y),t['$lex_en_expr_beg='](345),function(a,b){return a.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_labelarg='](501),function(a,b){return a.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(t),y),t['$lex_en_expr_value='](508),function(a,b){return a.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(t),y),t['$lex_en_expr_end='](516),function(a,b){return a.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(t),y),t['$lex_en_leading_dot='](696),function(a,b){return a.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(t),y),t['$lex_en_line_comment='](704),function(a,b){return a.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(t),y),t['$lex_en_line_begin='](710),function(a,b){return a.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(t),y),t['$lex_en_inside_string='](128),t.$attr_reader("source_buffer"),t.$attr_accessor("diagnostics"),t.$attr_accessor("static_env"),t.$attr_accessor("force_utf32"),t.$attr_accessor("cond","cmdarg","context","command_start"),t.$attr_accessor("tokens","comments"),t.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),g(t,'$initialize',function(e){var b=this;return b.version=e,b.static_env=c,b.context=c,b.tokens=c,b.comments=c,b._lex_actions=d(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.emit_integer=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tINTEGER",a),b},{$$s:b}),b.emit_rational=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tRATIONAL",e.$Rational(a)),b},{$$s:b}),b.emit_imaginary=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tIMAGINARY",e.$Complex(0,a)),b},{$$s:b}),b.emit_imaginary_rational=i(b,'lambda',[],function e(a,b){var d=e.$$s==null?this:e.$$s;return a==null&&(a=c),b==null&&(b=c),d.$emit("tIMAGINARY",d.$Complex(0,d.$Rational(a))),b},{$$s:b}),b.emit_integer_re=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_if=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_rescue=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.emit_float=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tFLOAT",e.$construct_float(a)),b},{$$s:b}),b.emit_imaginary_float=i(b,'lambda',[],function e(a,b){var d=e.$$s==null?this:e.$$s;return a==null&&(a=c),b==null&&(b=c),d.$emit("tIMAGINARY",d.$Complex(0,d.$construct_float(a))),b},{$$s:b}),b.emit_float_if=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tFLOAT",b.$construct_float(d),b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_float_rescue=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tFLOAT",b.$construct_float(d),b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.$reset()}),g(t,'$construct_float',function(d){var a,e=this,b=c;return k.VERBOSE==null&&(k.VERBOSE=c),function(){try{return a=[k.VERBOSE,c],b=a[0],k.VERBOSE=a[1],a,e.$Float(d)}finally{k.VERBOSE=b}}()}),g(t,'$reset',function(b){var a=this;return b==null&&(b=!0),d(b)&&(a.cs=a.$class().$lex_en_line_begin(),a.cond=v('StackState').$new("cond"),a.cmdarg=v('StackState').$new("cmdarg"),a.cond_stack=[],a.cmdarg_stack=[]),a.force_utf32=!1,a.source_pts=c,a.p=0,a.ts=c,a.te=c,a.act=0,a.stack=[],a.top=0,a.token_queue=[],a.eq_begin_s=c,a.sharp_s=c,a.newline_s=c,a.num_base=c,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=c,a.paren_nest=0,a.lambda_stack=[],a.command_start=!0,a.cs_before_block_comment=a.$class().$lex_en_line_begin(),a.strings=o(v('Parser'),'LexerStrings').$new(a,a.version)},-1),g(t,'$source_buffer=',function(g){var b,a=this,e=c;return a.source_buffer=g,d(a.source_buffer)?(e=a.source_buffer.$source(),f(e.$encoding(),o(v('Encoding'),'UTF_8'))?a.source_pts=e.$unpack("U*"):a.source_pts=e.$unpack("C*"),f(a.source_pts['$[]'](0),65279)&&(a.p=1)):a.source_pts=c,a.strings['$source_buffer='](a.source_buffer),(b=[a.source_pts],i(a.strings,'source_pts=',b),b[b.length-1])}),g(t,'$encoding',function(){var a=this;return a.source_buffer.$source().$encoding()}),p(y[0],'LEX_STATES',new Map([["line_begin",t.$lex_en_line_begin()],["expr_dot",t.$lex_en_expr_dot()],["expr_fname",t.$lex_en_expr_fname()],["expr_value",t.$lex_en_expr_value()],["expr_beg",t.$lex_en_expr_beg()],["expr_mid",t.$lex_en_expr_mid()],["expr_arg",t.$lex_en_expr_arg()],["expr_cmdarg",t.$lex_en_expr_cmdarg()],["expr_end",t.$lex_en_expr_end()],["expr_endarg",t.$lex_en_expr_endarg()],["expr_endfn",t.$lex_en_expr_endfn()],["expr_labelarg",t.$lex_en_expr_labelarg()],["inside_string",t.$lex_en_inside_string()]])),g(t,'$state',function(){var a=this;return v('LEX_STATES').$invert().$fetch(a.cs,a.cs)}),g(t,'$state=',function(a){var b=this;return b.cs=v('LEX_STATES').$fetch(a)}),g(t,'$push_cmdarg',function(){var a=this;return a.cmdarg_stack.$push(a.cmdarg),a.cmdarg=v('StackState').$new("cmdarg."+a.cmdarg_stack.$count())}),g(t,'$pop_cmdarg',function(){var a=this;return a.cmdarg=a.cmdarg_stack.$pop()}),g(t,'$push_cond',function(){var a=this;return a.cond_stack.$push(a.cond),a.cond=v('StackState').$new("cond."+a.cond_stack.$count())}),g(t,'$pop_cond',function(){var a=this;return a.cond=a.cond_stack.$pop()}),g(t,'$dedent_level',function(){var a=this;return a.strings.$dedent_level()}),g(t,'$advance',function(){var w,E,e=this,B=c,Q=c,ag=c,aj=c,W=c,ah=c,Y=c,ae=c,ab=c,aa=c,ak=c,x=c,g=c,M=c,y=c,ad=c,T=c,I=c,L=c,O=c,al=c,am=c,i=c,X=c,V=c,t=c,_=c,o=c,R=c,ai=c,p=c,P=c,G=c,J=c,$=c,K=c,A=c,z=c,D=c,N=c,Z=c,F=c,H=c,C=c,u=c,ac=c,af=c,S=c,U=c;if(!d(e.token_queue['$empty?']()))return e.token_queue.$shift();for(B=e.$class(),Q=B.$send("_lex_trans_keys"),ag=B.$send("_lex_key_spans"),aj=B.$send("_lex_index_offsets"),W=B.$send("_lex_indicies"),ah=B.$send("_lex_trans_targs"),Y=B.$send("_lex_trans_actions"),ae=B.$send("_lex_to_state_actions"),ab=B.$send("_lex_from_state_actions"),aa=B.$send("_lex_eof_trans"),ak=e._lex_actions,x=b(e.source_pts.$size(),2),w=[e.p,x],g=w[0],M=w[1],w,y=e.command_start,e.command_start=!1,ad=!1,E=c,w=r(E),T=w[0]==null?c:w[0],I=w[1]==null?c:w[1],L=w[2]==null?c:w[2],O=w[3]==null?c:w[3],al=w[4]==null?c:w[4],am=w[5]==null?c:w[5],E,i=0,X=10,V=15,t=20,_=30,o=40;d(!0);){if(d(m(i,0))){if(f(g,x)){i=_;continue}if(f(e.cs,0)){i=o;continue}}if(d(m(i,X))){switch(ab['$[]'](e.cs).valueOf()){case 85:e.ts=g;break;default:c}L=e.cs['$<<'](1),O=aj['$[]'](e.cs),T=ag['$[]'](e.cs),R=d(ai=e.source_pts['$[]'](g))?ai:0,I=d(n(T,0))&&d(m(Q['$[]'](L),R))&&d(m(R,Q['$[]'](b(L,1))))?W['$[]'](a(b(O,R),Q['$[]'](L))):W['$[]'](b(O,T))}if(d(m(i,V)))if(e.cs=ah['$[]'](I),s(Y['$[]'](I),0))switch(Y['$[]'](I).valueOf()){case 14:e.newline_s=g;break;case 15:g=e.$on_newline(g);break;case 45:e.sharp_s=a(g,1);break;case 49:e.$emit_comment_from_range(g,x);break;case 190:p=g;break;case 22:p=g;break;case 24:p=g;break;case 26:p=g;break;case 56:P=g;break;case 229:p=a(g,1),G="ivar_name";break;case 232:p=a(g,2),G="cvar_name";break;case 244:p=g;break;case 188:J=e.$tok(),$=e.ts,K=e.te;break;case 331:e.num_base=16,e.num_digits_s=g;break;case 325:e.num_base=10,e.num_digits_s=g;break;case 328:e.num_base=8,e.num_digits_s=g;break;case 322:e.num_base=2,e.num_digits_s=g;break;case 337:e.num_base=10,e.num_digits_s=e.ts;break;case 299:e.num_base=8,e.num_digits_s=e.ts;break;case 314:e.num_suffix_s=g;break;case 307:e.num_suffix_s=g;break;case 304:e.num_suffix_s=g;break;case 74:p=g;break;case 65:e.te=b(g,1);break;case 1:e.te=b(g,1),e.$emit_global_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 87:e.te=g,g=a(g,1),e.$emit_global_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 89:e.te=g,g=a(g,1),e.$emit_class_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 88:e.te=g,g=a(g,1),e.$emit_instance_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 110:e.te=b(g,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 96:e.te=b(g,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;case 3:e.te=b(g,1),g=a(e.ts,1),e.cs=516,e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 93:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 105:e.te=b(g,1),g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 5:if(e.te=b(g,1),d(e['$version?'](23))){w=[e.$tok()['$[]'](q(0,-2,!1)),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue}else{g=a(e.ts,1),e.cs=516,i=t;continue}break;case 92:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 91:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 109:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 106:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=247,g=b(g,1),i=o;continue;break;case 108:e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;case 103:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 99:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 104:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 97:e.te=g,g=a(g,1);break;case 102:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 4:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 2:g=a(e.te,1),g=a(g,1),e.cs=516,i=t;continue;break;case 95:switch(e.act.valueOf()){case 4:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 5:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=247,g=b(g,1),i=o;continue;break;case 6:g=a(e.te,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;default:c}break;case 7:e.te=b(g,1),e.$emit("tLABEL",e.$tok(e.ts,a(e.te,2)),e.ts,a(e.te,1)),g=a(g,1),e.cs=501,g=b(g,1),i=o;continue;break;case 8:if(e.te=b(g,1),d(h(e.version,31))&&d(e.context.$in_argdef())){e.$emit("tBDOT3","...".$freeze()),e.cs=516,g=b(g,1),i=o;continue}else{g=a(g,3),e.cs=516,i=t;continue}break;case 112:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 111:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 114:e.te=g,g=a(g,1);break;case 113:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 6:g=a(e.te,1),g=a(g,1),e.cs=516,i=t;continue;break;case 120:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=276,g=b(g,1),i=o;continue;break;case 119:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 118:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 130:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 121:e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 126:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=276,g=b(g,1),i=o;continue;break;case 124:e.te=g,g=a(g,1);break;case 129:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 153:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 136:e.te=b(g,1),e.$check_ambiguous_slash(p),g=a(p,1),e.cs=345,i=t;continue;break;case 142:e.te=b(g,1),g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 10:e.te=b(g,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;case 144:e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 25:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 131:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 132:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 143:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 139:e.te=g,g=a(g,1),e.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",e.$tok(p,e.te)]]),e.$range(p,e.te)),g=a(p,1),e.cs=345,i=t;continue;break;case 141:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 135:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 134:e.te=g,g=a(g,1);break;case 152:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 11:g=a(e.te,1);break;case 27:g=a(e.te,1),g=a(g,1),e.cs=345,i=t;continue;break;case 9:switch(e.act.valueOf()){case 33:g=a(e.te,1),e.$check_ambiguous_slash(p),g=a(p,1),e.cs=345,i=t;continue;break;case 34:g=a(e.te,1),e.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",e.$tok(p,e.te)]]),e.$range(p,e.te)),g=a(p,1),e.cs=345,i=t;continue;break;case 39:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:g=a(e.te,1)}break;case 29:e.te=b(g,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 157:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 158:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 30:g=a(e.te,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 28:switch(e.act.valueOf()){case 46:g=a(e.te,1),d(e.cond['$active?']())?e.$emit("kDO_COND","do".$freeze(),a(e.te,2),e.te):e.$emit("kDO","do".$freeze(),a(e.te,2),e.te),e.cs=508,g=b(g,1),i=o;continue;break;case 47:g=a(e.te,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;default:c}break;case 168:e.te=b(g,1),e.$emit_do(!0),e.cs=508,g=b(g,1),i=o;continue;break;case 161:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 162:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 163:e.te=g,g=a(g,1);break;case 166:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 172:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 171:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 180:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;case 174:e.te=g,g=a(g,1);break;case 178:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 173:switch(e.act.valueOf()){case 54:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 55:g=a(e.te,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;default:c}break;case 42:e.te=b(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 214:e.te=b(g,1),A=z=e.$tok()['$[]'](0).$chr(),e.strings.$push_literal(A,z,e.ts),g=a(g,1),e.cs=128,i=t;continue;break;case 206:e.te=b(g,1),w=[e.source_buffer.$slice(e.ts,1).$chr(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 40:e.te=b(g,1),w=[e.$tok()['$[]'](q(0,-2,!1)),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 227:e.te=b(g,1),g=a(g,1),g=a(g,1),e.$emit("tSYMBEG",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),e.cs=134,i=t;continue;break;case 215:e.te=b(g,1),w=[e.$tok(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 226:e.te=b(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),b(e.ts,2))),e.cs=516,g=b(g,1),i=o;continue;break;case 54:e.te=b(g,1),D=e.$tok(b(e.ts,1)),d(h(e.version,33))&&d(D['$start_with?']("$0"))&&d(n(D.$length(),2))&&e.$diagnostic("error","gvar_name",new Map([["name",D]]),e.$range(b(e.ts,1),e.te)),e.$emit("tSYMBOL",D,e.ts),e.cs=516,g=b(g,1),i=o;continue;break;case 236:if(e.te=b(g,1),E=e.strings.$read_character_constant(e.ts),w=r(E),g=w[0]==null?c:w[0],N=w[1]==null?c:w[1],E,g=a(g,1),d(e.token_queue['$empty?']())){e.cs=N,i=t;continue}e.cs=N,g=b(g,1),i=o;continue;break;case 237:e.te=b(g,1),e.$diagnostic("fatal","incomplete_escape",c,e.$range(e.ts,b(e.ts,1)));break;case 216:e.te=b(g,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 37:e.te=b(g,1),g=a(g,1),d(e['$version?'](18))?(Z=e.$tok(e.ts,a(e.te,2)),e.$emit(d(e.source_buffer.$slice(e.ts,1)['$=~'](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Z,e.ts,a(e.te,2)),g=a(g,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](Z))?e.cs=516:e.cs=e.$arg_or_cmdarg(y)):(e.$emit("tLABEL",e.$tok(e.ts,a(e.te,2)),e.ts,a(e.te,1)),e.cs=501),g=b(g,1),i=o;continue;break;case 34:e.te=b(g,1),e.$emit("tIDENTIFIER",J,$,K),g=a(K,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](J))&&d(l(e.version,25))?e.cs=247:e.cs=307,g=b(g,1),i=o;continue;break;case 200:e.te=b(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 41:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 183:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 210:e.te=g,g=a(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 209:e.te=g,g=a(g,1),e.$emit("tSTAR","*".$freeze()),g=b(g,1),i=o;continue;break;case 205:e.te=g,g=a(g,1),e.$diagnostic("fatal","string_eof",c,e.$range(e.ts,b(e.ts,1)));break;case 234:e.te=g,g=a(g,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 217:e.te=g,g=a(g,1),D=e.$tok(b(e.ts,1)),d(h(e.version,33))&&d(D['$start_with?']("$0"))&&d(n(D.$length(),2))&&e.$diagnostic("error","gvar_name",new Map([["name",D]]),e.$range(b(e.ts,1),e.te)),e.$emit("tSYMBOL",D,e.ts),e.cs=516,g=b(g,1),i=o;continue;break;case 230:e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 235:e.te=g,g=a(g,1),e.$diagnostic("fatal","incomplete_escape",c,e.$range(e.ts,b(e.ts,1)));break;case 207:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 211:e.te=g,g=a(g,1),d(h(e.version,27))?e.$emit("tBDOT2"):e.$emit("tDOT2"),e.cs=345,g=b(g,1),i=o;continue;break;case 212:e.te=g,g=a(g,1),F=a(e.te,1)['$=='](e.newline_s),H=!1,C=d(F)?a(e.te,1):e.te,d(h(e.version,30))?d(e.lambda_stack['$any?']())&&f(b(e.lambda_stack.$last(),1),e.paren_nest)?e.$emit("tDOT3","...".$freeze(),e.ts,C):(e.$emit("tBDOT3","...".$freeze(),e.ts,C),d(h(e.version,31))&&d(F)&&d(e.context.$in_argdef())&&(e.$emit("tNL",a(e.te,1),e.te),H=!0)):d(h(e.version,27))?e.$emit("tBDOT3","...".$freeze(),e.ts,C):e.$emit("tDOT3","...".$freeze(),e.ts,C),d(F)&&j(H)&&(g=a(g,1)),e.cs=345,g=b(g,1),i=o;continue;break;case 187:if(e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 197:e.te=g,g=a(g,1);break;case 199:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 202:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 39:g=a(e.te,1),e.$diagnostic("fatal","string_eof",c,e.$range(e.ts,b(e.ts,1)));break;case 58:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 33:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 38:g=a(e.te,1);break;case 53:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 36:switch(e.act.valueOf()){case 60:g=a(e.te,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 67:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 76:if(g=a(e.te,1),d(h(e.version,27))){e.$emit("tPIPE",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue}else{g=a(g,2),e.cs=516,i=t;continue}break;case 80:g=a(e.te,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 81:g=a(e.te,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 82:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 86:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 87:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 91:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:c}break;case 247:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 248:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 249:e.te=g,g=a(g,1);break;case 253:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 61:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 257:e.te=b(g,1),e.strings.$push_literal(e.$tok(),e.$tok(),e.ts),e.cs=128,i=t;continue;break;case 256:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 255:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 259:e.te=g,g=a(g,1);break;case 258:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 60:g=a(e.te,1),g=a(g,1),e.cs=345,i=t;continue;break;case 292:e.te=b(g,1),e.$emit("tLAMBDA","->".$freeze(),e.ts,b(e.ts,2)),e.lambda_stack.$push(e.paren_nest),e.cs=247,g=b(g,1),i=o;continue;break;case 71:e.te=b(g,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 267:e.te=b(g,1),w=[e.$tok(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts,c,!1,!1,!0),e.cs=128,i=t;continue;break;case 63:e.te=b(g,1),g=a(e.ts,1),e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 288:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=255,g=b(g,1),i=o;continue;break;case 341:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 281:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 286:e.te=b(g,1),e.$emit("tOP_ASGN",e.$tok(e.ts,a(e.te,1))),e.cs=345,g=b(g,1),i=o;continue;break;case 272:e.te=b(g,1),e.$emit("tEH","?".$freeze()),e.cs=508,g=b(g,1),i=o;continue;break;case 269:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 271:e.te=b(g,1),e.$emit("tSEMI",";".$freeze()),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 346:e.te=b(g,1),e.$diagnostic("error","bare_backslash",c,e.$range(e.ts,b(e.ts,1))),g=a(g,1);break;case 266:e.te=b(g,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 265:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 357:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 355:e.te=g,g=a(g,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 354:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 296:e.te=g,g=a(g,1),e.$diagnostic("error","no_dot_digit_literal");break;case 343:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 285:e.te=g,g=a(g,1),g=a(e.ts,1),e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 293:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=255,g=b(g,1),i=o;continue;break;case 349:if(e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 291:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 287:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 280:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 294:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 278:e.te=g,g=a(g,1);break;case 284:e.te=g,g=a(g,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 69:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 64:g=a(e.te,1),e.$diagnostic("error","no_dot_digit_literal");break;case 68:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 62:g=a(e.te,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 66:switch(e.act.valueOf()){case 104:g=a(e.te,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 105:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 106:g=a(e.te,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 107:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 108:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 109:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=321,g=b(g,1),i=o;continue;break;case 110:if(g=a(e.te,1),e.$emit_table(v('KEYWORDS')),d(e['$version?'](18))&&f(e.$tok(),"not".$freeze())){e.cs=345,g=b(g,1),i=o;continue}else{e.cs=276,g=b(g,1),i=o;continue}break;case 111:g=a(e.te,1),d(e['$version?'](18))?(e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))||(e.cs=e.$arg_or_cmdarg(y))):e.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=b(g,1),i=o;continue;break;case 112:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),g=b(g,1),i=o;continue;break;case 113:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 115:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tINTEGER",e.$tok(e.ts,a(e.te,1)).$to_i(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 116:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tFLOAT",e.$tok(e.ts,a(e.te,1)).$to_f(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 117:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 119:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 123:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 124:g=a(e.te,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 126:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 127:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;default:c}break;case 368:if(e.te=b(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),d(l(e.version,27))){g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}else{e.$emit("tBDOT3"),e.cs=345,g=b(g,1),i=o;continue}break;case 80:e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 362:e.te=b(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 365:if(e.te=g,g=a(g,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 367:if(e.te=g,g=a(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),d(l(e.version,27))){g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}else{e.$emit("tBDOT2"),e.cs=345,g=b(g,1),i=o;continue}break;case 366:e.te=g,g=a(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 364:e.te=g,g=a(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 75:if(g=a(e.te,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 72:g=a(e.te,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 76:switch(e.act.valueOf()){case 140:if(g=a(e.te,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 144:g=a(e.te,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;default:c}break;case 371:e.te=g,g=a(g,1),e.$emit_comment(e.eq_begin_s,e.te),e.cs=e.cs_before_block_comment,i=t;continue;break;case 370:e.te=g,g=a(g,1),e.$diagnostic("fatal","embedded_document",c,e.$range(e.eq_begin_s,b(e.eq_begin_s,"=begin".$length())));break;case 381:e.te=b(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 82:e.te=b(g,1),g=a(x,3);break;case 373:e.te=b(g,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 374:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 375:e.te=g,g=a(g,1);break;case 380:e.te=g,g=a(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 379:e.te=g,g=a(g,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 81:g=a(e.te,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 86:e.te=b(g,1),E=e.strings.$advance(g),w=r(E),g=w[0]==null?c:w[0],N=w[1]==null?c:w[1],E,g=a(g,1),e.cs=N,g=b(g,1),i=o;continue;break;case 52:e.newline_s=g,e.$emit_comment_from_range(g,x);break;case 154:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 145:e.newline_s=g,e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 137:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 213:e.newline_s=g,e.te=b(g,1),F=a(e.te,1)['$=='](e.newline_s),H=!1,C=d(F)?a(e.te,1):e.te,d(h(e.version,30))?d(e.lambda_stack['$any?']())&&f(b(e.lambda_stack.$last(),1),e.paren_nest)?e.$emit("tDOT3","...".$freeze(),e.ts,C):(e.$emit("tBDOT3","...".$freeze(),e.ts,C),d(h(e.version,31))&&d(F)&&d(e.context.$in_argdef())&&(e.$emit("tNL",a(e.te,1),e.te),H=!0)):d(h(e.version,27))?e.$emit("tBDOT3","...".$freeze(),e.ts,C):e.$emit("tDOT3","...".$freeze(),e.ts,C),d(F)&&j(H)&&(g=a(g,1)),e.cs=345,g=b(g,1),i=o;continue;break;case 201:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 295:e.newline_s=g,e.te=b(g,1),f(e.paren_nest,0)&&e.$diagnostic("warning","triple_dot_at_eol",c,e.$range(e.ts,a(e.te,1))),e.$emit("tDOT3","...".$freeze(),e.ts,a(e.te,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue;break;case 372:e.newline_s=g,e.te=b(g,1),e.$emit_comment(e.eq_begin_s,e.te),e.cs=e.cs_before_block_comment,i=t;continue;break;case 369:e.newline_s=g,e.te=b(g,1);break;case 382:e.newline_s=g,e.te=b(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 83:e.newline_s=g,e.te=b(g,1),g=a(x,3);break;case 317:e.num_xfrm=e.emit_rational,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 315:e.num_xfrm=e.emit_imaginary,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 320:e.num_xfrm=e.emit_imaginary_rational,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 318:e.num_xfrm=e.emit_integer_re,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 316:e.num_xfrm=e.emit_integer_if,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 319:e.num_xfrm=e.emit_integer_rescue,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 308:e.num_xfrm=e.emit_imaginary_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 309:e.num_xfrm=e.emit_float_if,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 310:e.num_xfrm=e.emit_rational,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 312:e.num_xfrm=e.emit_imaginary_rational,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 311:e.num_xfrm=e.emit_float_rescue,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 147:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.$emit("tLAMBEG","{".$freeze(),a(e.te,1),e.te)):e.$emit("tLCURLY","{".$freeze(),a(e.te,1),e.te),e.command_start=!0,e.paren_nest=b(e.paren_nest,1),e.cs=508,g=b(g,1),i=o;continue;break;case 169:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.$emit("tLAMBEG","{".$freeze())):e.$emit("tLBRACE_ARG","{".$freeze()),e.paren_nest=b(e.paren_nest,1),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 245:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.command_start=!0,e.$emit("tLAMBEG","{".$freeze())):e.$emit("tLBRACE","{".$freeze()),e.paren_nest=b(e.paren_nest,1),g=b(g,1),i=o;continue;break;case 360:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 361:if(d(e.strings.$close_interp_on_current_literal(g))){g=a(g,1),e.cs=128,g=b(g,1),i=o;continue}e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 43:g=e.$on_newline(g),e.newline_s=g;break;case 16:g=e.$on_newline(g),p=g;break;case 18:g=e.$on_newline(g),p=g;break;case 20:g=e.$on_newline(g),p=g;break;case 98:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 117:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 125:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 19:g=e.$on_newline(g),e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 156:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 148:g=e.$on_newline(g),e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 167:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 179:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 175:g=e.$on_newline(g),e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 44:g=e.$on_newline(g),e.te=b(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 35:g=e.$on_newline(g),e.te=b(g,1),e.$emit("tIDENTIFIER",J,$,K),g=a(K,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](J))&&d(l(e.version,25))?e.cs=247:e.cs=307,g=b(g,1),i=o;continue;break;case 198:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 254:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 250:if(g=e.$on_newline(g),e.te=g,g=a(g,1),d(e.context.$in_kwarg())){g=a(g,1),e.cs=516,i=t;continue}else{e.cs=710,i=t;continue}break;case 263:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 260:g=e.$on_newline(g),e.te=g,g=a(g,1),e.cs=710,i=t;continue;break;case 347:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 279:g=e.$on_newline(g),e.te=g,g=a(g,1),e.cs=696,i=t;continue;break;case 376:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 46:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x);break;case 50:e.$emit_comment_from_range(g,x),e.newline_s=g;break;case 101:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 116:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 128:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 150:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1),e.cs=516,i=t;continue;break;case 165:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 177:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 204:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 252:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 262:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 283:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 378:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 122:p=g,e.te=g,g=a(g,1),e.$emit("tFID",e.$tok(e.ts,p),e.ts,p),e.cs=e.$arg_or_cmdarg(y),g=a(p,1),g=b(g,1),i=o;continue;break;case 218:p=g,e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 189:p=g,e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 276:switch(p=g,e.act.valueOf()){case 104:g=a(e.te,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 105:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 106:g=a(e.te,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 107:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 108:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 109:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=321,g=b(g,1),i=o;continue;break;case 110:if(g=a(e.te,1),e.$emit_table(v('KEYWORDS')),d(e['$version?'](18))&&f(e.$tok(),"not".$freeze())){e.cs=345,g=b(g,1),i=o;continue}else{e.cs=276,g=b(g,1),i=o;continue}break;case 111:g=a(e.te,1),d(e['$version?'](18))?(e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))||(e.cs=e.$arg_or_cmdarg(y))):e.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=b(g,1),i=o;continue;break;case 112:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),g=b(g,1),i=o;continue;break;case 113:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 115:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tINTEGER",e.$tok(e.ts,a(e.te,1)).$to_i(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 116:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tFLOAT",e.$tok(e.ts,a(e.te,1)).$to_f(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 117:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 119:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 123:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 124:g=a(e.te,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 126:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 127:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;default:c}break;case 123:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tFID",e.$tok(e.ts,p),e.ts,p),e.cs=e.$arg_or_cmdarg(y),g=a(p,1),g=b(g,1),i=o;continue;break;case 219:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 191:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 277:p=a(g,2),e.te=g,g=a(g,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 220:p=g,e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 192:p=g,e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 221:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 193:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 225:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 196:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 224:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 195:switch(p=a(g,2),e.act.valueOf()){case 60:g=a(e.te,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 67:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 76:if(g=a(e.te,1),d(h(e.version,27))){e.$emit("tPIPE",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue}else{g=a(g,2),e.cs=516,i=t;continue}break;case 80:g=a(e.te,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 81:g=a(e.te,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 82:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 86:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 87:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 91:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:c}break;case 222:p=a(g,3),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 194:p=a(g,3),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 223:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 342:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tCONSTANT",e.$tok(e.ts,p),e.ts,p),g=a(p,1),g=b(g,1),i=o;continue;break;case 146:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK","[".$freeze(),a(e.te,1),e.te),e.cs=345,g=b(g,1),i=o;continue;break;case 238:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK","[".$freeze()),g=b(g,1),i=o;continue;break;case 345:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK2","[".$freeze()),e.cs=345,g=b(g,1),i=o;continue;break;case 348:e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 138:if(e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),d(e['$version?'](18))){e.$emit("tLPAREN2","(".$freeze(),a(e.te,1),e.te),e.cs=508,g=b(g,1),i=o;continue}else{e.$emit("tLPAREN_ARG","(".$freeze(),a(e.te,1),e.te),e.cs=345,g=b(g,1),i=o;continue}break;case 151:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN2","(".$freeze()),e.cs=345,g=b(g,1),i=o;continue;break;case 159:if(e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN_ARG","(".$freeze(),a(e.te,1),e.te),d(e['$version?'](18))){e.cs=508,g=b(g,1),i=o;continue}else{e.cs=345,g=b(g,1),i=o;continue}break;case 208:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN","(".$freeze()),g=b(g,1),i=o;continue;break;case 289:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 290:e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 57:P=g,e.newline_s=g;break;case 233:if(ac=g,e.te=g,g=a(g,1),e.$tok(e.ts,P)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),af=d(S=((w=k['~'])===c?c:w['$[]'](1))['$empty?']()['$!']())?S:((w=k['~'])===c?c:w['$[]'](2))['$empty?']()['$!'](),U=((w=k['~'])===c?c:w['$[]'](2))['$empty?']()['$!'](),A=d(((w=k['~'])===c?c:w['$[]'](3))['$empty?']())?'<<"'.$freeze():b("<<".$freeze(),(w=k['~'])===c?c:w['$[]'](3)),z=(w=k['~'])===c?c:w['$[]'](4),d(h(e.version,27))?(d(n(z.$count("\n"),0))||d(n(z.$count("\r"),0)))&&e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1))):d(h(e.version,24))&&d(n(z.$count("\n"),0))&&(d(z['$end_with?']("\n"))?(e.$diagnostic("warning","heredoc_id_ends_with_nl",c,e.$range(e.ts,b(e.ts,1))),z=z.$rstrip()):e.$diagnostic("fatal","heredoc_id_has_newline",c,e.$range(e.ts,b(e.ts,1)))),d(U)&&d(e['$version?'](18,19,20,21,22))){e.$emit("tLSHFT","<<".$freeze(),e.ts,b(e.ts,2)),g=b(e.ts,1),e.cs=345,g=b(g,1),i=o;continue}else e.strings.$push_literal(A,z,e.ts,P,af,U),d(S=e.strings.$herebody_s())?S:e.strings['$herebody_s='](ac),g=a(e.strings.$herebody_s(),1),e.cs=128;break;case 228:p=a(g,1),G="ivar_name",e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 231:p=a(g,2),G="cvar_name",e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 241:p=g,e.te=g,g=a(g,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 332:e.num_base=16,e.num_digits_s=g,e.num_suffix_s=g;break;case 326:e.num_base=10,e.num_digits_s=g,e.num_suffix_s=g;break;case 329:e.num_base=8,e.num_digits_s=g,e.num_suffix_s=g;break;case 323:e.num_base=2,e.num_digits_s=g,e.num_suffix_s=g;break;case 338:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g;break;case 301:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g;break;case 339:e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 184:e.te=b(g,1),e.newline_s=g;break;case 305:e.te=b(g,1),e.num_suffix_s=g;break;case 107:e.te=b(g,1),e.act=4;break;case 94:e.te=b(g,1),e.act=5;break;case 90:e.te=b(g,1),e.act=6;break;case 12:e.te=b(g,1),e.act=33;break;case 140:e.te=b(g,1),e.act=34;break;case 13:e.te=b(g,1),e.act=39;break;case 133:e.te=b(g,1),e.act=40;break;case 160:e.te=b(g,1),e.act=46;break;case 31:e.te=b(g,1),e.act=47;break;case 181:e.te=b(g,1),e.act=54;break;case 170:e.te=b(g,1),e.act=55;break;case 55:e.te=b(g,1),e.act=67;break;case 246:e.te=b(g,1),e.act=76;break;case 185:e.te=b(g,1),e.act=80;break;case 240:e.te=b(g,1),e.act=81;break;case 239:e.te=b(g,1),e.act=82;break;case 59:e.te=b(g,1),e.act=86;break;case 182:e.te=b(g,1),e.act=87;break;case 186:e.te=b(g,1),e.act=91;break;case 356:e.te=b(g,1),e.act=104;break;case 351:e.te=b(g,1),e.act=105;break;case 359:e.te=b(g,1),e.act=107;break;case 352:e.te=b(g,1),e.act=108;break;case 353:e.te=b(g,1),e.act=109;break;case 358:e.te=b(g,1),e.act=110;break;case 350:e.te=b(g,1),e.act=111;break;case 344:e.te=b(g,1),e.act=112;break;case 270:e.te=b(g,1),e.act=113;break;case 303:e.te=b(g,1),e.act=116;break;case 67:e.te=b(g,1),e.act=117;break;case 273:e.te=b(g,1),e.act=119;break;case 264:e.te=b(g,1),e.act=123;break;case 275:e.te=b(g,1),e.act=124;break;case 268:e.te=b(g,1),e.act=126;break;case 274:e.te=b(g,1),e.act=127;break;case 73:e.te=b(g,1),e.act=140;break;case 363:e.te=b(g,1),e.act=144;break;case 47:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.newline_s=g;break;case 100:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 115:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 127:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 149:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1),e.cs=516,i=t;continue;break;case 164:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 176:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 203:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 251:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 261:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 282:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 377:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 334:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 298:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 313:e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 306:e.num_suffix_s=g,e.num_xfrm=e.emit_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 302:e.num_suffix_s=g,e.num_xfrm=e.emit_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 155:e.te=b(g,1),e.newline_s=g,e.act=40;break;case 21:e.te=b(g,1),g=e.$on_newline(g),e.act=39;break;case 32:e.te=b(g,1),g=e.$on_newline(g),e.act=47;break;case 79:e.te=b(g,1),g=e.$on_newline(g),e.act=140;break;case 51:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=60;break;case 70:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=106;break;case 78:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=140;break;case 23:e.te=b(g,1),p=g,e.act=34;break;case 243:e.te=b(g,1),p=g,e.act=86;break;case 242:e.te=b(g,1),p=g,e.act=87;break;case 335:e.te=b(g,1),e.num_base=10,e.num_digits_s=e.ts,e.act=113;break;case 330:e.num_base=16,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 324:e.num_base=10,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 327:e.num_base=8,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 321:e.num_base=2,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 333:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 297:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 17:e.te=b(g,1),g=e.$on_newline(g),p=g,e.act=34;break;case 48:e.te=b(g,1),e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.act=60;break;case 77:e.te=b(g,1),e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.act=140;break;case 340:e.te=b(g,1),e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;case 336:e.te=b(g,1),e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;case 300:e.te=b(g,1),e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;default:c}if(d(m(i,t))){switch(ae['$[]'](e.cs).valueOf()){case 84:e.ts=c;break;default:c}if(f(e.cs,0)){i=o;continue}if(g=b(g,1),s(g,x)){i=X;continue}}if(d(m(i,_)))if(f(g,M))if(d(n(aa['$[]'](e.cs),0))){I=a(aa['$[]'](e.cs),1),i=V;continue}if(d(m(i,o)))break}return d(!1)&&ad,e.p=g,d(e.token_queue['$any?']())?e.token_queue.$shift():f(e.cs,B.$lex_error())?[!1,["$error".$freeze(),e.$range(a(g,1),g)]]:(M=e.source_pts.$size(),[!1,["$eof".$freeze(),e.$range(M,M)]])}),t.$protected(),g(t,'$version?',function(e){var a,b,c=this;return a=u(arguments),b=a,b['$include?'](c.version)},-1),g(t,'$stack_pop',function(){var b=this;return b.top=a(b.top,1),b.stack['$[]'](b.top)}),g(t,'$tok',function(b,c){var d=this;return b==null&&(b=d.ts),c==null&&(c=d.te),d.source_buffer.$slice(b,a(c,b))},-1),g(t,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),o(o(v('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(t,'$emit',function(h,e,f,g){var a=this,b=c;return e==null&&(e=a.$tok()),f==null&&(f=a.ts),g==null&&(g=a.te),b=[h,[e,a.$range(f,g)]],a.token_queue.$push(b),d(a.tokens)&&a.tokens.$push(b),b},-2),g(t,'$emit_table',function(f,a,b){var d=this,e=c;return a==null&&(a=d.ts),b==null&&(b=d.te),e=d.$tok(a,b),d.$emit(f['$[]'](e),e,a,b)},-2),g(t,'$emit_do',function(b){var a=this;return b==null&&(b=!1),d(a.cond['$active?']())?a.$emit("kDO_COND","do".$freeze()):d(a.cmdarg['$active?']())||d(b)?a.$emit("kDO_BLOCK","do".$freeze()):a.$emit("kDO","do".$freeze())},-1),g(t,'$arg_or_cmdarg',function(b){var a=this;return d(b)?a.$class().$lex_en_expr_cmdarg():a.$class().$lex_en_expr_arg()}),g(t,'$emit_comment',function(b,e){var a=this;return b==null&&(b=a.ts),e==null&&(e=a.te),d(a.comments)&&a.comments.$push(o(o(v('Parser'),'Source'),'Comment').$new(a.$range(b,e))),d(a.tokens)&&a.tokens.$push(["tCOMMENT",[a.$tok(b,e),a.$range(b,e)]]),c},-1),g(t,'$emit_comment_from_range',function(b,d){var c=this;return c.$emit_comment(c.sharp_s,f(b,d)?a(b,2):b)}),g(t,'$diagnostic',function(f,g,a,b,d){var e=this;return a==null&&(a=c),b==null&&(b=e.$range()),d==null&&(d=[]),e.diagnostics.$process(o(v('Parser'),'Diagnostic').$new(f,g,a,b,d))},-3),g(t,'$e_lbrace',function(){var a=this,b=c;return a.cond.$push(!1),a.cmdarg.$push(!1),b=a.strings.$literal(),d(b)?b.$start_interp_brace():c}),g(t,'$numeric_literal_int',function(){var e=this,g=c,i=c,h=c;return g=e.$tok(e.num_digits_s,e.num_suffix_s),d(g['$end_with?']("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(a(e.te,1),e.te)):d(g['$empty?']())&&f(e.num_base,8)&&d(e['$version?'](18))?g="0".$freeze():d(g['$empty?']())?e.$diagnostic("error","empty_numeric"):f(e.num_base,8)&&d(i=g.$index(/[89]/))&&(h=b(e.num_digits_s,i),e.$diagnostic("error","invalid_octal",c,e.$range(h,b(h,1)))),g}),g(t,'$on_newline',function(a){var b=this;return b.strings.$on_newline(a)}),g(t,'$check_ambiguous_slash',function(a){var e=this;return f(e.$tok(a,b(a,1)),"/".$freeze())?d(l(e.version,30))?e.$diagnostic("warning","ambiguous_literal",c,e.$range(a,b(a,1))):e.$diagnostic("warning","ambiguous_regexp",c,e.$range(a,b(a,1))):c}),g(t,'$emit_global_var',function(c,e){var a=this;return c==null&&(c=a.ts),e==null&&(e=a.te),d(a.$tok(c,e)['$=~'](/^\$([1-9][0-9]*)$/))?a.$emit("tNTH_REF",a.$tok(b(c,1),e).$to_i(),c,e):d(a.$tok()['$=~'](/^\$([&`'+])$/))?a.$emit("tBACK_REF",a.$tok(c,e),c,e):a.$emit("tGVAR",a.$tok(c,e),c,e)},-1),g(t,'$emit_class_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),d(a.$tok(b,c)['$=~'](/^@@[0-9]/))&&a.$diagnostic("error","cvar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tCVAR",a.$tok(b,c),b,c)},-1),g(t,'$emit_instance_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),d(a.$tok(b,c)['$=~'](/^@[0-9]/))&&a.$diagnostic("error","ivar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tIVAR",a.$tok(b,c),b,c)},-1),g(t,'$emit_rbrace_rparen_rbrack',function(){var a=this;return a.$emit_table(v('PUNCTUATION')),d(l(a.version,24))?(a.cond.$lexpop(),a.cmdarg.$lexpop()):(a.cond.$pop(),a.cmdarg.$pop())}),g(t,'$emit_colon_with_digits',function(c,e,f){var a=this;return d(h(a.version,27))?a.$diagnostic("error",f,new Map([["name",a.$tok(e,a.te)]]),a.$range(e,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,b(a.ts,1)),a.ts,b(a.ts,1)),c=a.ts),c}),g(t,'$emit_singleton_class',function(){var c=this;return c.$emit("kCLASS","class".$freeze(),c.ts,b(c.ts,5)),c.$emit("tLSHFT","<<".$freeze(),a(c.te,2),c.te)}),p(y[0],'PUNCTUATION',new Map([["=","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"]])),p(y[0],'PUNCTUATION_BEGIN',new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),p(y[0],'KEYWORDS',new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(y[0],'KEYWORDS_BEGIN',new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(y[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),i(e.large_array_unpack("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(a){var b,d;return a==null&&(a=c),(b=[a,(d=[a,"k"+a.$upcase()],i(v('KEYWORDS'),'[]=',d),d[d.length-1])],i(v('KEYWORDS_BEGIN'),'[]=',b),b[b.length-1])})}(v('Parser'),null,t)},Opal.modules["parser/lexer-strings"]=function(f){var y=f.klass,n=f.const_set,z=f.hash_rehash,o=f.send,t=f.to_a,a=f.truthy,g=f.def,b=f.rb_plus,r=f.to_ary,j=f.rb_le,h=f.eqeq,m=f.rb_gt,e=f.rb_minus,q=f.neqeq,d=f.eqeqeq,i=f.not,s=f.slice,p=f.rb_lt,k=f.rb_ge,w=f.thrower,u=f.range,v=[],x=f.$r(v),c=f.nil,l=f.$$$;return f.add_stubs('attr_accessor,private,_lex_actions=,_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_character=,lex_en_unknown=,freeze,ord,union,chars,respond_to?,class,send,reset,lex_en_unknown,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,+,size,source_pts,<=,==,[],>,-,<<,!=,===,unicode_points,unescape_char,diagnostic,read_post_meta_or_ctrl_char,slash_c_char,slash_m_char,encode_escaped_char,encode_escape,%,to_i,tok,range,chr,check_invalid_escapes,literal,extend_interp_code,lex_en_expr_value,extend_string_eol_check_eof,heredoc?,extend_string_eol_heredoc_line,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,extend_string_eol_heredoc_intertwined,extend_string_eol_words,extend_string_slice_end,!,lex_en_expr_labelarg,extend_string_for_token_range,extend_interp_digit_var,extend_interp_var,emit_interp_var,extend_string_escaped,extend_space,emit,lex_en_expr_end,scan,any?,join,slice,source_buffer,emit_character_constant,raise,lex_en_character,advance,new,push,next_state_for_literal,backslash_delimited?,words?,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,last,pop,dedent_level,type,lex_en_inside_string,lex_en_regexp_modifiers,end_interp_brace_and_try_closing,version?,lexpop,cond,cmdarg,saved_herebody_s,continue_lexing,protected,include?,<,nil?,regexp?,munge_escape?,match,extend_string,squiggly_heredoc?,supports_line_continuation_via_slash?,gsub,>=,flush_string,extend_content,saved_herebody_s=,start_interp_brace,command_start=,start_with?,str_s,eof_codepoint?,active?,force_encoding,encoding,source,index,end_with?,each,length,&,|,getbyte,emit_invalid_escapes?'),function(E,C,D){var v=y(E,C,'LexerStrings'),x=[v].concat(D),B=f.$r(x),A=v.$$prototype;return A._lex_actions=A.cs=A.escape_s=A.lexer=A.herebody_s=A.ts=A.te=A.root_lexer_state=A.literal_stack=A.dedent_level=A.version=A.source_buffer=A.escape=c,function(a,b){return a.$attr_accessor("_lex_actions"),a.$private("_lex_actions","_lex_actions=")}(f.get_singleton_class(v),x),v['$_lex_actions='](f.large_array_unpack("0,1,0,1,18,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,42,1,43,1,44,1,46,1,47,1,48,1,49,1,52,1,53,1,54,1,55,1,56,1,57,1,60,1,61,1,62,1,63,1,64,1,65,1,66,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,79,1,80,1,81,2,0,27,2,0,37,2,0,46,2,0,52,2,0,56,2,0,62,2,0,65,2,0,72,2,0,77,2,1,31,2,1,41,2,1,78,2,2,31,2,2,41,2,2,78,2,3,31,2,3,41,2,3,78,2,8,31,2,8,41,2,8,78,2,10,31,2,10,41,2,10,78,2,11,31,2,11,41,2,11,78,2,12,31,2,12,41,2,12,78,2,13,31,2,13,41,2,13,78,2,14,31,2,14,41,2,14,78,2,15,31,2,15,41,2,15,78,2,16,31,2,16,41,2,16,78,2,17,31,2,17,41,2,17,78,2,18,45,2,18,51,2,19,30,2,19,40,2,19,59,2,19,68,2,20,29,2,20,30,2,20,39,2,20,40,2,20,58,2,20,59,2,20,67,2,20,68,2,21,29,2,21,30,2,21,39,2,21,40,2,21,58,2,21,59,2,21,67,2,21,68,2,22,78,2,25,0,3,0,50,18,3,2,5,31,3,2,5,41,3,2,5,78,3,2,6,31,3,2,6,41,3,2,6,78,3,4,5,31,3,4,5,41,3,4,5,78,3,4,6,31,3,4,6,41,3,4,6,78,3,8,6,31,3,8,6,41,3,8,6,78,3,9,5,31,3,9,5,41,3,9,5,78,3,15,16,31,3,15,16,41,3,15,16,78,3,18,17,31,3,18,17,41,3,18,17,78,4,2,5,6,31,4,2,5,6,41,4,2,5,6,78,4,4,5,6,31,4,4,5,6,41,4,4,5,6,78,4,7,5,6,31,4,7,5,6,41,4,7,5,6,78,4,9,5,6,31,4,9,5,6,41,4,9,5,6,78")),function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(f.get_singleton_class(v),x),v['$_lex_trans_keys='](f.large_array_unpack("0,0,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,122,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,26,0,92,9,32,36,123,0,127,0,0,48,57,0,127,0,127,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,0,0,0,48,102,0,0,0,92,36,123,0,127,0,0,48,57,0,127,0,127,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,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,26,0,35,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,32,9,32,65,122,65,122,63,63,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")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(f.get_singleton_class(v),x),v['$_lex_key_spans='](f.large_array_unpack("0,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,123,46,121,121,93,121,121,46,121,121,33,1,93,121,103,27,93,24,88,128,0,10,128,128,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,0,0,55,0,93,88,128,0,10,128,128,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,0,0,55,0,93,24,27,93,27,36,88,128,0,10,128,128,128,128,27,36,24,88,128,0,10,128,128,128,128,33,24,58,58,1,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")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(f.get_singleton_class(v),x),v['$_lex_index_offsets='](f.large_array_unpack("0,0,129,258,387,516,563,685,807,901,1023,1145,1192,1314,1436,1470,1472,1566,1688,1792,1921,2050,2179,2308,2355,2477,2599,2693,2815,2937,2984,3106,3228,3262,3264,3358,3480,3584,3713,3842,3971,4100,4229,4358,4487,4616,4740,4787,4909,5031,5125,5247,5369,5416,5538,5660,5694,5696,5790,5912,6016,6044,6138,6163,6252,6381,6382,6393,6522,6651,6780,6909,7031,7032,7033,7042,7051,7052,7053,7147,7148,7149,7150,7244,7246,7247,7248,7249,7343,7399,7455,7456,7512,7568,7569,7616,7710,7804,7805,7806,7900,7956,8012,8013,8060,8062,8156,8233,8289,8345,8401,8402,8529,8656,8657,8784,8785,8912,9039,9166,9293,9294,9421,9548,9675,9802,9929,10056,10057,10058,10114,10115,10209,10298,10427,10428,10439,10568,10697,10826,10955,11077,11078,11079,11088,11097,11098,11099,11193,11194,11195,11196,11290,11292,11293,11294,11295,11389,11445,11501,11502,11558,11614,11615,11662,11756,11850,11851,11852,11946,12002,12058,12059,12106,12108,12202,12279,12335,12391,12447,12448,12575,12702,12703,12830,12831,12958,13085,13212,13339,13340,13467,13594,13721,13848,13975,14102,14103,14104,14160,14161,14255,14280,14308,14402,14430,14467,14556,14685,14686,14697,14826,14955,15084,15213,15241,15278,15303,15392,15521,15522,15533,15662,15791,15920,16049,16083,16108,16167,16226,16228,16229,16358,16487,16609,16610,16611,16620,16629,16630,16631,16725,16726,16727,16728,16822,16824,16825,16826,16827,16921,16977,17033,17034,17090,17146,17147,17194,17288,17382,17383,17384,17478,17534,17590,17591,17638,17640,17734,17811,17867,17923,17979,17980,18107,18234,18235,18362,18363,18490,18617,18744,18871,18872,18999,19126,19253,19380,19507,19634,19761,19888,20015,20142,20269,20396,20523,20650,20777,20904,21031,21158,21285,21286,21287,21343")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(f.get_singleton_class(v),x),v['$_lex_indicies='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,2,2,0,0,2,2,2,3,2,2,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,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,0,0,0,0,2,0,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,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,8,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,10,21,21,21,10,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,24,11,10,25,25,25,10,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,28,25,25,25,25,25,25,29,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,10,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,31,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,32,10,32,10,10,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,10,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,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,35,33,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,37,37,37,37,37,37,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,37,37,37,37,37,37,36,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,40,40,38,40,38,40,40,38,38,40,40,40,41,40,40,42,42,42,42,42,42,42,42,42,42,40,40,40,40,40,40,40,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,38,40,38,38,39,40,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,38,38,38,40,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,38,38,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,38,38,38,38,40,38,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,38,38,38,38,38,40,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,44,44,44,44,44,44,44,44,44,44,38,38,38,38,38,38,45,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,43,38,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,38,43,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,47,47,47,47,47,47,47,47,47,47,38,38,38,38,38,38,38,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,38,38,38,38,46,38,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,38,38,38,38,38,46,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,53,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,48,59,59,59,48,59,59,59,59,59,60,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,62,49,48,63,63,63,48,63,63,63,63,63,64,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,65,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,66,63,63,63,63,63,63,67,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,48,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,69,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,70,48,70,48,48,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,48,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,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,73,71,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,74,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,76,78,76,78,78,76,76,78,78,78,79,78,78,80,80,80,80,80,80,80,80,80,80,78,78,78,78,78,78,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,76,78,76,76,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,76,76,76,78,76,77,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,78,78,78,78,78,78,78,76,76,76,76,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,76,76,76,76,78,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,76,76,76,76,76,78,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,82,82,82,82,82,82,82,82,82,82,76,76,76,76,76,76,83,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,81,76,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,81,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,85,85,85,85,85,85,85,85,85,85,76,76,76,76,76,76,76,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,76,76,76,76,84,76,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,76,76,76,76,76,84,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,86,88,86,88,88,86,86,88,88,88,89,88,88,90,90,90,90,90,90,90,90,90,90,88,88,88,88,88,88,88,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,86,88,86,86,87,88,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,86,86,86,88,86,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,88,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,88,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,92,92,92,92,92,92,92,92,92,92,86,86,86,86,86,86,93,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,86,86,86,86,91,86,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,86,86,86,86,86,91,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,95,95,95,95,95,95,95,95,95,95,86,86,86,86,86,86,86,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,86,86,86,86,94,86,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,86,86,86,86,86,94,97,96,96,96,97,96,96,96,96,98,99,98,98,98,96,96,96,96,96,96,96,96,96,96,96,96,97,96,96,96,96,96,98,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,96,96,96,96,96,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,101,96,96,100,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,103,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,107,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,102,113,113,113,102,113,113,113,113,113,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,116,103,102,117,117,117,102,117,117,117,117,117,118,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,120,117,117,117,117,117,117,121,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,102,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,123,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,124,102,124,102,102,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,127,125,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,129,128,128,128,128,128,128,128,129,129,129,129,129,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,128,97,130,130,130,97,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,97,130,132,131,131,131,132,131,131,131,131,133,134,133,133,133,131,131,131,131,131,131,131,131,131,131,131,131,132,131,131,131,131,131,133,131,131,135,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,131,131,131,131,131,131,136,131,133,137,133,133,133,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,133,137,139,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,140,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,141,138,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,1,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,1,142,4,4,4,4,4,4,4,4,4,4,142,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,5,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,5,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5,5,5,5,5,5,5,5,5,5,144,144,144,144,144,144,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,6,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,144,6,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,8,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,8,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,8,8,8,8,8,8,8,8,8,8,146,146,146,146,146,146,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,9,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,146,9,149,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,150,150,150,150,150,150,150,150,148,148,148,148,148,148,148,148,148,148,148,151,148,148,148,148,148,148,148,148,148,152,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,153,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,154,148,148,155,148,156,157,159,159,159,159,159,159,159,159,158,160,160,160,160,160,160,160,160,158,158,161,161,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,161,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,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,162,33,163,164,165,165,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,165,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,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,166,33,32,165,167,168,169,169,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,170,18,171,171,171,171,171,171,171,171,171,171,169,169,169,169,169,169,169,171,171,171,171,171,171,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,171,171,171,171,171,171,169,173,173,173,173,173,173,173,173,173,173,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,174,174,174,174,174,174,174,174,174,174,165,165,165,165,165,165,165,174,174,174,174,174,174,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,174,174,174,174,174,174,165,176,176,176,176,176,176,176,176,176,176,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,165,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,161,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,161,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,178,180,181,181,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,182,178,183,183,183,183,183,183,183,183,183,183,181,181,181,181,181,181,181,183,183,183,183,183,183,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,183,183,183,183,183,183,181,185,185,185,185,185,185,185,185,185,185,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,181,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,186,181,181,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,188,188,188,188,188,188,188,188,188,188,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,189,187,190,190,190,190,190,190,190,190,190,190,187,187,187,187,187,187,187,190,190,190,190,190,190,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,190,190,190,190,190,190,187,191,191,191,191,191,191,191,191,191,191,187,187,187,187,187,187,187,191,191,191,191,191,191,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,191,191,191,191,191,191,187,192,192,192,192,192,192,192,192,192,192,187,187,187,187,187,187,187,192,192,192,192,192,192,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,192,192,192,192,192,192,187,193,196,195,195,195,196,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,198,198,198,198,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,199,195,196,195,195,195,196,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,200,200,200,200,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,201,195,194,196,200,200,200,196,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,196,200,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,194,200,202,196,203,203,203,196,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,200,200,200,200,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,205,205,205,205,203,203,203,203,203,203,203,205,205,205,205,205,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,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,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,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,208,208,208,208,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,209,209,209,209,203,203,203,203,203,203,203,209,209,209,209,209,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,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,210,210,210,210,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,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,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,211,211,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,213,214,216,216,216,216,216,216,216,216,216,216,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,218,217,217,217,218,217,217,217,217,217,219,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,218,217,217,217,217,217,217,217,217,220,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,223,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,224,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,222,222,222,222,222,222,222,222,225,222,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,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,226,226,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,226,226,226,226,39,226,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,226,226,226,226,226,39,226,42,42,42,42,42,42,42,42,42,42,226,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,43,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,43,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,43,43,43,43,43,43,43,43,43,43,228,228,228,228,228,228,228,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,228,228,228,228,44,228,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,228,228,228,228,228,44,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,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,229,229,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,229,229,229,229,46,229,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,229,229,229,229,229,46,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,46,46,46,46,46,46,46,46,46,46,230,230,230,230,230,230,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,47,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,230,47,233,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,234,234,234,234,234,234,234,234,232,232,232,232,232,232,232,232,232,232,232,235,232,232,232,232,232,232,232,232,232,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,238,232,232,239,232,240,241,243,243,243,243,243,243,243,243,242,244,244,244,244,244,244,244,244,242,242,245,245,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,245,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,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,246,71,247,248,249,249,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,249,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,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,250,71,70,249,251,252,253,253,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,254,56,255,255,255,255,255,255,255,255,255,255,253,253,253,253,253,253,253,255,255,255,255,255,255,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,255,255,255,255,255,255,253,257,257,257,257,257,257,257,257,257,257,256,256,256,256,256,256,256,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,257,257,256,256,258,258,258,258,258,258,258,258,258,258,249,249,249,249,249,249,249,258,258,258,258,258,258,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,258,258,258,258,258,258,249,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,259,259,260,260,260,260,260,260,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,260,260,260,259,259,249,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,245,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,245,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,245,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,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,263,262,264,265,265,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,265,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,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,266,262,267,267,267,267,267,267,267,267,267,267,265,265,265,265,265,265,265,267,267,267,267,267,267,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,267,267,267,267,267,267,265,269,269,269,269,269,269,269,269,269,269,268,268,268,268,268,268,268,269,269,269,269,269,269,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,269,269,269,269,269,269,268,268,265,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,270,265,265,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,272,272,272,272,272,272,272,272,272,272,271,271,271,271,271,271,271,272,272,272,272,272,272,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,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,273,271,274,274,274,274,274,274,274,274,274,274,271,271,271,271,271,271,271,274,274,274,274,274,274,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,274,274,274,274,274,274,271,275,275,275,275,275,275,275,275,275,275,271,271,271,271,271,271,271,275,275,275,275,275,275,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,275,275,275,275,275,275,271,276,276,276,276,276,276,276,276,276,276,271,271,271,271,271,271,271,276,276,276,276,276,276,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,276,276,276,276,276,276,271,277,280,279,279,279,280,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,282,282,282,282,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,283,279,280,279,279,279,280,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,284,284,284,284,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,285,279,278,280,284,284,284,280,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,280,284,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,278,284,286,280,287,287,287,280,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,284,284,284,284,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,289,289,289,289,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,291,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,292,292,292,292,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,293,293,293,293,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,294,294,294,294,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,295,295,295,295,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,297,298,300,300,300,300,300,300,300,300,300,300,299,299,299,299,299,299,299,300,300,300,300,300,300,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,300,300,300,300,300,300,299,299,302,301,301,301,302,301,301,301,301,303,304,303,303,303,301,301,301,301,301,301,301,301,301,301,301,301,302,301,301,301,301,301,303,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,305,301,303,306,303,303,303,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,303,306,307,308,308,308,307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,307,308,310,309,309,309,310,309,309,309,309,309,311,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,310,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,312,309,313,314,314,314,313,314,314,314,314,314,315,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,313,314,317,316,316,316,317,316,316,316,316,316,318,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,317,316,316,316,316,316,316,316,316,319,316,321,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,323,320,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,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,77,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,77,324,80,80,80,80,80,80,80,80,80,80,324,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,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,81,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,81,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,81,81,81,81,81,81,81,81,81,81,326,326,326,326,326,326,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,82,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,326,82,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,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,327,327,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,327,327,327,327,84,327,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,327,327,327,327,327,84,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,84,84,84,84,84,84,84,84,84,84,328,328,328,328,328,328,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,85,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,328,85,330,329,329,329,330,329,329,329,329,329,331,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,330,329,333,332,332,332,333,332,332,332,332,334,335,334,334,334,332,332,332,332,332,332,332,332,332,332,332,332,333,332,332,332,332,332,334,332,332,336,332,334,337,334,334,334,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,334,337,339,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,340,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,341,338,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,342,342,342,342,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,342,342,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,342,342,342,342,87,342,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,342,342,342,342,342,87,342,90,90,90,90,90,90,90,90,90,90,342,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,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,343,343,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,343,343,343,343,91,343,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,343,343,343,343,343,91,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,91,91,91,91,91,91,91,91,91,91,344,344,344,344,344,344,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,92,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,344,92,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,345,345,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,345,345,345,345,94,345,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,345,345,345,345,345,94,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,94,94,94,94,94,94,94,94,94,94,346,346,346,346,346,346,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,95,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,346,95,348,347,347,347,348,347,347,347,347,349,350,349,349,349,347,347,347,347,347,347,347,347,347,347,347,347,348,347,347,347,347,347,349,347,349,351,349,349,349,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,349,351,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,352,352,352,352,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,354,354,354,354,354,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,355,97,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,357,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,356,357,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,358,358,359,359,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,358,358,358,359,358,359,359,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,358,358,358,358,359,362,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,363,363,363,363,363,363,363,363,361,361,361,361,361,361,361,361,361,361,361,364,361,361,361,361,361,361,361,361,361,365,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,366,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,367,361,361,368,361,369,370,372,372,372,372,372,372,372,372,371,373,373,373,373,373,373,373,373,371,371,374,374,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,375,125,376,377,378,378,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,379,125,124,378,380,381,382,382,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,383,110,384,384,384,384,384,384,384,384,384,384,382,382,382,382,382,382,382,384,384,384,384,384,384,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,384,384,384,384,384,384,382,386,386,386,386,386,386,386,386,386,386,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,387,387,387,387,387,387,387,387,387,387,378,378,378,378,378,378,378,387,387,387,387,387,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,387,387,387,387,387,387,378,389,389,389,389,389,389,389,389,389,389,388,388,388,388,388,388,388,389,389,389,389,389,389,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,389,389,389,389,389,389,388,388,378,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,374,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,374,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,392,391,393,394,394,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,395,391,396,396,396,396,396,396,396,396,396,396,394,394,394,394,394,394,394,396,396,396,396,396,396,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,396,396,396,396,396,396,394,398,398,398,398,398,398,398,398,398,398,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,394,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,399,394,394,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,401,401,401,401,401,401,401,401,401,401,400,400,400,400,400,400,400,401,401,401,401,401,401,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,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,402,400,403,403,403,403,403,403,403,403,403,403,400,400,400,400,400,400,400,403,403,403,403,403,403,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,403,403,403,403,403,403,400,404,404,404,404,404,404,404,404,404,404,400,400,400,400,400,400,400,404,404,404,404,404,404,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,404,404,404,404,404,404,400,405,405,405,405,405,405,405,405,405,405,400,400,400,400,400,400,400,405,405,405,405,405,405,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,405,405,405,405,405,405,400,406,409,408,408,408,409,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,411,411,411,411,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,412,408,409,408,408,408,409,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,413,413,413,413,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,414,408,407,409,413,413,413,409,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,409,413,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,407,413,415,409,416,416,416,409,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,413,413,413,413,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,419,419,419,419,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,421,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,422,422,422,422,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,423,423,423,423,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,424,424,424,424,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,425,425,425,425,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,428,428,428,428,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,429,429,429,429,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,430,430,430,430,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,431,431,431,431,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,432,432,432,432,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,433,433,433,433,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,434,434,434,434,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,435,435,435,435,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,436,436,436,436,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,437,437,437,437,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,438,438,438,438,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,439,440,442,442,442,442,442,442,442,442,442,442,441,441,441,441,441,441,441,442,442,442,442,442,442,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,442,442,442,442,442,442,441,441,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(f.get_singleton_class(v),x),v['$_lex_trans_targs='](f.large_array_unpack("61,64,65,2,66,67,68,4,69,70,61,77,78,81,82,94,91,83,84,85,9,86,87,88,96,98,99,103,104,105,100,15,8,79,80,17,128,129,131,133,134,20,135,136,137,22,138,139,131,146,147,150,151,163,160,152,153,154,27,155,156,157,165,167,168,172,173,174,169,33,26,148,149,35,197,198,205,207,208,38,209,210,211,40,212,213,215,218,219,42,220,221,222,44,223,224,230,0,229,229,231,233,229,239,240,243,244,256,253,245,246,247,50,248,249,250,258,260,261,265,266,267,262,56,49,241,242,58,303,304,60,61,61,62,61,63,71,61,61,1,3,61,61,61,61,61,61,61,72,73,74,5,11,16,106,18,61,61,61,75,76,61,6,61,61,61,7,61,61,61,10,89,61,90,92,61,93,95,97,12,61,61,13,101,61,102,14,61,107,111,108,109,110,61,61,112,113,116,118,127,114,115,61,117,119,121,120,61,122,123,124,125,126,61,61,61,130,131,131,131,132,140,131,19,21,131,131,131,131,131,131,131,141,142,143,23,29,34,175,36,131,131,131,144,145,131,24,131,131,131,25,131,131,131,28,158,131,159,161,131,162,164,166,30,131,131,31,170,131,171,32,131,176,180,177,178,179,131,131,181,182,185,187,196,183,184,131,186,188,190,189,131,191,192,193,194,195,131,131,131,199,200,200,201,200,202,200,200,200,203,203,203,204,203,203,203,205,205,205,206,205,37,39,205,205,205,205,205,205,214,214,214,215,215,216,215,217,215,215,41,43,215,215,215,215,215,215,225,225,226,225,225,227,228,227,45,229,232,229,232,229,234,235,236,46,52,57,268,59,229,229,229,237,238,229,47,229,229,229,48,229,229,229,51,251,229,252,254,229,255,257,259,53,229,229,54,263,229,264,55,229,269,273,270,271,272,229,229,274,275,278,289,302,276,277,229,279,280,281,283,282,229,284,285,286,287,288,290,297,291,292,293,294,295,296,298,299,300,301,229,229,229,305")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(f.get_singleton_class(v),x),v['$_lex_trans_actions='](f.large_array_unpack("25,0,0,0,0,0,0,0,0,0,23,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,35,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,89,121,0,11,93,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,95,17,15,0,97,11,11,19,21,0,0,13,238,277,274,253,250,392,3,3,3,3,3,3,3,3,133,223,160,0,0,142,0,332,151,308,0,419,356,404,0,0,449,0,0,368,0,11,0,0,344,320,0,0,434,0,1,196,0,0,0,0,0,187,214,0,0,0,0,0,0,0,380,0,0,0,0,124,0,0,0,0,0,205,178,169,0,31,29,100,11,11,33,0,0,27,241,283,280,259,256,396,3,3,3,3,3,3,3,3,136,226,163,0,0,145,0,336,154,312,0,424,360,409,0,0,454,0,0,372,0,11,0,0,348,324,0,0,439,0,1,199,0,0,0,0,0,190,217,0,0,0,0,0,0,0,384,0,0,0,0,127,0,0,0,0,0,208,181,172,0,41,39,0,103,0,43,45,232,49,47,106,0,51,235,304,57,55,109,11,59,0,0,53,244,289,286,265,262,65,63,112,71,69,0,115,11,73,75,0,0,67,247,295,292,271,268,81,79,0,118,83,85,0,87,0,298,5,91,0,400,3,3,3,3,3,3,3,3,139,229,166,0,0,148,0,340,157,316,0,429,364,414,0,0,459,0,0,376,0,11,0,0,352,328,0,0,444,0,1,202,0,0,0,0,0,193,220,0,0,0,0,0,0,0,388,0,0,0,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,184,175,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(f.get_singleton_class(v),x),v['$_lex_to_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,7,0,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(f.get_singleton_class(v),x),v['$_lex_from_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,9,0,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,9,0,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(f.get_singleton_class(v),x),v['$_lex_eof_trans='](f.large_array_unpack("0,1,1,1,1,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,49,49,49,49,49,49,49,49,49,49,49,49,49,49,77,77,77,77,87,87,87,87,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,138,139,143,143,143,144,145,146,147,148,157,158,159,159,159,162,162,164,165,166,166,166,168,169,170,170,170,173,173,166,176,176,166,162,162,181,182,182,182,185,185,182,182,182,188,188,188,188,194,195,195,195,195,203,195,195,195,195,208,195,195,195,195,195,195,214,215,216,216,0,223,227,227,227,228,229,230,231,232,241,242,243,243,243,246,246,248,249,250,250,250,252,253,254,254,254,257,257,250,260,260,250,246,246,265,266,266,266,269,269,266,266,266,272,272,272,272,278,279,279,279,279,287,279,279,279,279,292,279,279,279,279,279,279,298,299,300,300,0,307,308,0,314,0,321,325,325,325,326,327,328,329,0,0,338,339,343,343,343,344,345,346,347,0,352,0,355,0,357,357,359,361,370,371,372,372,372,375,375,377,378,379,379,379,381,382,383,383,383,386,386,379,389,389,379,375,375,394,395,395,395,398,398,395,395,395,401,401,401,401,407,408,408,408,408,416,408,408,408,408,422,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,440,441,442,442")),function(a,b){return a.$attr_accessor("lex_start")}(f.get_singleton_class(v),x),v['$lex_start='](60),function(a,b){return a.$attr_accessor("lex_error")}(f.get_singleton_class(v),x),v['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_interp_words")}(f.get_singleton_class(v),x),v['$lex_en_interp_words='](61),function(a,b){return a.$attr_accessor("lex_en_interp_string")}(f.get_singleton_class(v),x),v['$lex_en_interp_string='](131),function(a,b){return a.$attr_accessor("lex_en_plain_words")}(f.get_singleton_class(v),x),v['$lex_en_plain_words='](200),function(a,b){return a.$attr_accessor("lex_en_plain_string")}(f.get_singleton_class(v),x),v['$lex_en_plain_string='](203),function(a,b){return a.$attr_accessor("lex_en_interp_backslash_delimited")}(f.get_singleton_class(v),x),v['$lex_en_interp_backslash_delimited='](205),function(a,b){return a.$attr_accessor("lex_en_plain_backslash_delimited")}(f.get_singleton_class(v),x),v['$lex_en_plain_backslash_delimited='](214),function(a,b){return a.$attr_accessor("lex_en_interp_backslash_delimited_words")}(f.get_singleton_class(v),x),v['$lex_en_interp_backslash_delimited_words='](215),function(a,b){return a.$attr_accessor("lex_en_plain_backslash_delimited_words")}(f.get_singleton_class(v),x),v['$lex_en_plain_backslash_delimited_words='](225),function(a,b){return a.$attr_accessor("lex_en_regexp_modifiers")}(f.get_singleton_class(v),x),v['$lex_en_regexp_modifiers='](227),function(a,b){return a.$attr_accessor("lex_en_character")}(f.get_singleton_class(v),x),v['$lex_en_character='](229),function(a,b){return a.$attr_accessor("lex_en_unknown")}(f.get_singleton_class(v),x),v['$lex_en_unknown='](60),n(x[0],'ESCAPES',z(new Map([["a".$ord(),"\u0007"],["b".$ord(),""],["e".$ord(),"\u001b"],["f".$ord()," "],["n".$ord(),"\n"],["r".$ord(),"\r"],["s".$ord()," "],["t".$ord()," "],["v".$ord()," "],["\\".$ord(),"\\"]])).$freeze()),n(x[0],'REGEXP_META_CHARACTERS',o(B('Regexp'),'union',t("\\$()*+.<>?[]^{|}".$chars())).$freeze()),v.$attr_accessor("herebody_s"),v.$attr_accessor("source_buffer","source_pts"),g(v,'$initialize',function(c,d){var b=this;return b.lexer=c,b.version=d,b._lex_actions=a(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.$reset()}),g(v,'$reset',function(){var a=this;return a.cs=a.$class().$lex_en_unknown(),a.literal_stack=[],a.escape_s=c,a.escape=c,a.herebody_s=c,a.dedent_level=c}),n(x[0],'LEX_STATES',new Map([["interp_string",v.$lex_en_interp_string()],["interp_words",v.$lex_en_interp_words()],["plain_string",v.$lex_en_plain_string()],["plain_words",v.$lex_en_plain_string()]])),g(v,'$advance',function(g){var z,P,f=this,D=c,K=c,_=c,Z=c,R=c,aa=c,M=c,V=c,W=c,S=c,E=c,A=c,Y=c,U=c,I=c,G=c,H=c,J=c,y=c,C=c,o=c,N=c,O=c,$=c,Q=c,t=c,u=c,L=c,n=c,F=c,k=c,x=c,p=c,s=c,v=c,w=c,T=c,X=c;for(D=f.$class(),K=D.$send("_lex_trans_keys"),_=D.$send("_lex_key_spans"),Z=D.$send("_lex_index_offsets"),R=D.$send("_lex_indicies"),aa=D.$send("_lex_trans_targs"),M=D.$send("_lex_trans_actions"),V=D.$send("_lex_to_state_actions"),W=D.$send("_lex_from_state_actions"),S=D.$send("_lex_eof_trans"),E=f._lex_actions,A=b(f.$source_pts().$size(),2),Y=A,U=!1,P=c,z=r(P),I=z[0]==null?c:z[0],G=z[1]==null?c:z[1],H=z[2]==null?c:z[2],J=z[3]==null?c:z[3],y=z[4]==null?c:z[4],C=z[5]==null?c:z[5],P,o=0,N=10,O=15,$=20,Q=30,t=40;a(!0);){if(u=!1,a(j(o,0))){if(h(g,A)){o=Q;continue}if(h(f.cs,0)){o=t;continue}}if(a(j(o,N))){for(y=W['$[]'](f.cs),C=E['$[]'](y),y=b(y,1);a(m(C,0));)switch(C=e(C,1),y=b(y,1),E['$[]'](e(y,1)).valueOf()){case 24:f.ts=g;break;default:c}if(a(u))continue;H=f.cs['$<<'](1),J=Z['$[]'](f.cs),I=_['$[]'](f.cs),L=a(n=f.$source_pts()['$[]'](g))?n:0,G=a(m(I,0))&&a(j(K['$[]'](H),L))&&a(j(L,K['$[]'](b(H,1))))?R['$[]'](e(b(J,L),K['$[]'](H))):R['$[]'](b(J,I))}if(a(j(o,O))){if(f.cs=aa['$[]'](G),q(M['$[]'](G),0))for(y=M['$[]'](G),C=E['$[]'](y),y=b(y,1);a(m(C,0));)if(C=e(C,1),y=b(y,1),d(0,n=E['$[]'](e(y,1))))f.newline_s=g;else if(d(1,n))f.$unicode_points(g);else if(d(2,n))f.$unescape_char(g);else if(d(3,n))f.$diagnostic("fatal","invalid_escape");else if(d(4,n))f.$read_post_meta_or_ctrl_char(g);else if(d(5,n))f.$slash_c_char();else if(d(6,n))f.$slash_m_char();else if(d(7,n))f.$encode_escaped_char(g);else if(d(8,n))f.escape="\u007F";else if(d(9,n))f.$encode_escaped_char(g);else if(d(10,n))f.escape=f.$encode_escape(f.$tok(f.escape_s,g).$to_i(8)['$%'](256));else if(d(11,n))f.escape=f.$encode_escape(f.$tok(b(f.escape_s,1),g).$to_i(16));else if(d(12,n))f.$diagnostic("fatal","invalid_hex_escape",c,f.$range(e(f.escape_s,1),b(g,2)));else if(d(13,n))f.escape=f.$tok(b(f.escape_s,1),g).$to_i(16).$chr(l(B('Encoding'),'UTF_8'));else if(d(14,n))f.$check_invalid_escapes(g);else if(d(15,n))f.$check_invalid_escapes(g);else if(d(16,n))f.$diagnostic("fatal","unterminated_unicode",c,f.$range(e(g,1),g));else if(d(17,n))f.$diagnostic("fatal","escape_eof",c,f.$range(e(g,1),g));else if(d(18,n))f.escape_s=g,f.escape=c;else if(d(19,n))F="gvar";else if(d(20,n))F="cvar";else if(d(21,n))F="ivar";else if(d(22,n))f.escape=c;else if(d(25,n))f.te=b(g,1);else if(d(26,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(27,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(28,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(29,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(30,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(31,n))f.te=g,g=e(g,1),f.$extend_string_escaped();else if(d(32,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(33,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(34,n))g=e(f.te,1),f.$extend_string_escaped();else if(d(35,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(36,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(37,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(38,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(39,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(40,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(41,n))f.te=g,g=e(g,1),f.$extend_string_escaped();else if(d(42,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(43,n))g=e(f.te,1),f.$extend_string_escaped();else if(d(44,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(45,n))f.te=b(g,1),f.$extend_string_escaped();else if(d(46,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(47,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(48,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(49,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(50,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(51,n))f.te=b(g,1),f.$extend_string_escaped();else if(d(52,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(53,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(54,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(55,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(56,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(57,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(58,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(59,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(60,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(61,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(62,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(63,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(64,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(65,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(66,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(67,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(68,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(69,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(70,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(71,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(72,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(73,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(74,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(75,n)){f.te=b(g,1),f.$emit("tREGEXP_OPT",f.$tok(f.ts,e(f.te,1)),f.ts,e(f.te,1)),g=e(g,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(76,n)){f.te=g,g=e(g,1),T=f.$tok().$scan(/[^imxouesn]/),a(T['$any?']())&&f.$diagnostic("error","regexp_options",new Map([["options",T.$join()]])),f.$emit("tREGEXP_OPT"),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(77,n)){f.te=b(g,1),X=B('ESCAPE_WHITESPACE')['$[]'](f.$source_buffer().$slice(b(f.ts,1),1)),f.$diagnostic("warning","invalid_escape_use",new Map([["escape",X]]),f.$range()),g=e(f.ts,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(78,n)){f.te=g,g=e(g,1),f.$emit_character_constant(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(79,n)){f.te=g,g=e(g,1),g=e(f.ts,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(80,n)){g=e(f.te,1),f.$emit_character_constant(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else d(81,n)?(f.te=b(g,1),f.$raise("bug")):c;if(a(u))continue}if(a(j(o,$))){for(y=V['$[]'](f.cs),C=E['$[]'](y),y=b(y,1);a(m(C,0));)switch(C=e(C,1),y=b(y,1),E['$[]'](e(y,1)).valueOf()){case 23:f.ts=c;break;default:c}if(a(u))continue;if(h(f.cs,0)){o=t;continue}if(g=b(g,1),q(g,A)){o=N;continue}}if(a(j(o,Q)))if(h(g,Y))if(a(m(S['$[]'](f.cs),0))){G=e(S['$[]'](f.cs),1),o=O;continue}if(a(j(o,t)))break}return a(!1)&&U,[g,f.root_lexer_state]}),g(v,'$read_character_constant',function(b){var a=this;return a.cs=a.$class().$lex_en_character(),a.$advance(b)}),g(v,'$push_literal',function(g){var d,e,a=this,b=c;return d=s(arguments),e=d,b=o(l(l(B('Parser'),'Lexer'),'Literal'),'new',[a].concat(t(e))),a.literal_stack.$push(b),a.cs=a.$next_state_for_literal(b)},-1),g(v,'$next_state_for_literal',function(b){var c=this;return a(b['$words?']())&&a(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_backslash_delimited_words():c.$class().$lex_en_plain_backslash_delimited_words():a(b['$words?']())&&i(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_words():c.$class().$lex_en_plain_words():i(b['$words?']())&&a(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_backslash_delimited():c.$class().$lex_en_plain_backslash_delimited():a(b['$interpolate?']())?c.$class().$lex_en_interp_string():c.$class().$lex_en_plain_string()}),g(v,'$continue_lexing',function(b){var a=this;return a.cs=a.$next_state_for_literal(b)}),g(v,'$literal',function(){var a=this;return a.literal_stack.$last()}),g(v,'$pop_literal',function(){var a=this,b=c;return b=a.literal_stack.$pop(),a.dedent_level=b.$dedent_level(),h(b.$type(),"tREGEXP_BEG")?(a.root_lexer_state=a.lexer.$class().$lex_en_inside_string(),a.$class().$lex_en_regexp_modifiers()):(a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),c)}),g(v,'$close_interp_on_current_literal',function(f){var b=this,d=c;return d=b.$literal(),a(d)&&a(d.$end_interp_brace_and_try_closing())?(a(b['$version?'](18,19))?(b.$emit("tRCURLY","}".$freeze(),e(f,1),f),b.lexer.$cond().$lexpop(),b.lexer.$cmdarg().$lexpop()):b.$emit("tSTRING_DEND","}".$freeze(),e(f,1),f),a(d.$saved_herebody_s())&&(b.herebody_s=d.$saved_herebody_s()),b.$continue_lexing(d),!0):c}),g(v,'$dedent_level',function(){var a,b=this,d=c;return a=[b.dedent_level,c],d=a[0],b.dedent_level=a[1],a,d}),g(v,'$on_newline',function(d){var b=this;return a(b.herebody_s)&&(d=b.herebody_s,b.herebody_s=c),d}),v.$protected(),g(v,'$eof_codepoint?',function(a){return[4,26,0]['$include?'](a)}),g(v,'$version?',function(e){var a,b,c=this;return a=s(arguments),b=a,b['$include?'](c.version)},-1),g(v,'$tok',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),c.source_buffer.$slice(a,e(b,a))},-1),g(v,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),l(l(B('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(v,'$emit',function(e,b,c,d){var a=this;return b==null&&(b=a.$tok()),c==null&&(c=a.ts),d==null&&(d=a.te),a.lexer.$send("emit",e,b,c,d)},-2),g(v,'$diagnostic',function(f,g,a,b,d){var e=this;return a==null&&(a=c),b==null&&(b=e.$range()),d==null&&(d=[]),e.lexer.$send("diagnostic",f,g,a,b,d)},-3),g(v,'$cond',function(){var a=this;return a.lexer.$cond()}),g(v,'$emit_invalid_escapes?',function(){var b=this;return!!a(p(b.version,32))||(!!a(b.$literal()['$nil?']())||b.$literal()['$regexp?']()['$!']())}),g(v,'$extend_string_escaped',function(){var b=this,d=c,e=c,f=c;return d=b.$literal(),e=b.$source_buffer().$slice(b.escape_s,1).$chr(),a(d['$munge_escape?'](e))?a(d['$regexp?']())&&a(B('REGEXP_META_CHARACTERS').$match(e))?d.$extend_string(b.$tok(),b.ts,b.te):d.$extend_string(e,b.ts,b.te):a(d['$squiggly_heredoc?']())&&h(e,"\n".$freeze())?d.$extend_string(b.$tok(),b.ts,b.te):a(d['$supports_line_continuation_via_slash?']())&&h(e,"\n".$freeze())?d.$extend_string(b.$tok().$gsub("\\\n".$freeze(),"".$freeze()),b.ts,b.te):a(d['$regexp?']())&&a(k(b.version,31))&&a(["c","C","m","M"]['$include?'](e))?d.$extend_string(b.escape,b.ts,b.te):a(d['$regexp?']())?d.$extend_string(b.$tok().$gsub("\\\n".$freeze(),"".$freeze()),b.ts,b.te):d.$extend_string(a(f=b.escape)?f:b.$tok(),b.ts,b.te)}),g(v,'$extend_interp_code',function(b){var d,e=this;return b.$flush_string(),b.$extend_content(),e.$emit("tSTRING_DBEG","#{".$freeze()),a(b['$heredoc?']())&&(b['$saved_herebody_s='](e.herebody_s),e.herebody_s=c),b.$start_interp_brace(),(d=[!0],o(e.lexer,'command_start=',d),d[d.length-1])}),g(v,'$extend_interp_digit_var',function(){var d=this,e=c;return a(k(d.version,27))?d.$literal().$extend_string(d.$tok(),d.ts,d.te):(e=a(d.$tok()['$start_with?']("#@@"))?"cvar_name":"ivar_name",d.$diagnostic("error",e,new Map([["name",d.$tok(b(d.ts,1),d.te)]]),d.$range(b(d.ts,1),d.te)))}),g(v,'$extend_string_eol_check_eof',function(d,e){var a=this;return h(a.te,e)?a.$diagnostic("fatal","string_eof",c,a.$range(d.$str_s(),b(d.$str_s(),1))):c}),g(v,'$extend_string_eol_heredoc_line',function(){var b=this,d=c;return d=b.$tok(b.herebody_s,b.ts).$gsub(/\r+$/,"".$freeze()),a(b['$version?'](18,19,20))&&(d=d.$gsub(/\r.*$/,"".$freeze())),d}),g(v,'$extend_string_eol_heredoc_intertwined',function(d){var b=this;return a(b.herebody_s)&&(d=e(b.herebody_s,1),b.herebody_s=c),d}),g(v,'$extend_string_eol_words',function(c,d){var b=this;return a(c['$words?']())&&i(b['$eof_codepoint?'](b.$source_pts()['$[]'](d)))?c.$extend_space(b.ts,b.te):(c.$extend_string(b.$tok(),b.ts,b.te),c.$flush_string())}),g(v,'$extend_string_slice_end',function(c){var b=this;return a(k(b.version,22))&&i(b.$cond()['$active?']())&&(c=b.$source_buffer().$slice(b.te,2)),c}),g(v,'$extend_string_for_token_range',function(b,c){var a=this;return b.$extend_string(c,a.ts,a.te)}),g(v,'$encode_escape',function(a){var b=this;return a.$chr().$force_encoding(b.$source_buffer().$source().$encoding())}),g(v,'$unescape_char',function(f){var b=this,d=c;return d=b.$source_pts()['$[]'](e(f,1)),a(k(b.version,30))&&(h(d,117)||h(d,85))&&b.$diagnostic("fatal","invalid_escape"),a((b.escape=B('ESCAPES')['$[]'](d))['$nil?']())?b.escape=b.$encode_escape(b.$source_buffer().$slice(e(f,1),1)):c}),g(v,'$unicode_points',function(i){var d=this,g=c,f=c,j=c;return d.escape="",g=d.$tok(b(d.escape_s,2),e(i,1)),f=b(d.escape_s,2),a(p(d.version,24))&&((a(g['$start_with?'](" "))||a(g['$start_with?'](" ")))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(b(d.escape_s,2),b(d.escape_s,3))),a(j=g.$index(/[ \t]{2}/))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(b(b(f,j),1),b(b(f,j),2))),(a(g['$end_with?'](" "))||a(g['$end_with?'](" ")))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(e(i,1),i))),function(){try{var e=w('break');return o(g.$scan(/([0-9a-fA-F]+)|([ \t]+)/),'each',[],function j(p){var g,n,d=j.$$s==null?this:j.$$s,i=c,o=c,m=c;return d.escape==null&&(d.escape=c),p==null&&(p=c),n=p,g=r(n),i=g[0]==null?c:g[0],o=g[1]==null?c:g[1],n,a(o)?f=b(f,o.$length()):(m=i.$to_i(16),a(k(m,1114112))&&(d.$diagnostic("error","unicode_point_too_large",c,d.$range(f,b(f,i.$length()))),e.$throw(c,j.$$is_lambda)),h(m['$&'](4294965248),55296)&&(d.$diagnostic("error","invalid_unicode_escape",c,d.$range(f,b(f,i.$length()))),e.$throw(c,j.$$is_lambda)),d.escape=b(d.escape,m.$chr(l(B('Encoding'),'UTF_8'))),f=b(f,i.$length()))},{$$s:d,$$has_top_level_mlhs_arg:!0})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()}),g(v,'$read_post_meta_or_ctrl_char',function(d){var b=this;return b.escape=b.$source_buffer().$slice(e(d,1),1).$chr(),a(k(b.version,27))&&(a(u(0,8,!1)['$include?'](b.escape.$ord()))||a(u(14,31,!1)['$include?'](b.escape.$ord())))?b.$diagnostic("fatal","invalid_escape"):c}),g(v,'$extend_interp_var',function(d){var a=this;return d.$flush_string(),d.$extend_content(),a.$emit("tSTRING_DVAR",c,a.ts,b(a.ts,1)),a.ts}),g(v,'$emit_interp_var',function(d){var a=this;switch(d.valueOf()){case"cvar":return a.lexer.$send("emit_class_var",b(a.ts,1),a.te);case"ivar":return a.lexer.$send("emit_instance_var",b(a.ts,1),a.te);case"gvar":return a.lexer.$send("emit_global_var",b(a.ts,1),a.te);default:return c}}),g(v,'$encode_escaped_char',function(b){var a=this;return a.escape=a.$encode_escape(a.$tok(e(b,2),b).$to_i(16))}),g(v,'$slash_c_char',function(){var a=this;return a.escape=a.$encode_escape(a.escape['$[]'](0).$ord()['$&'](159))}),g(v,'$slash_m_char',function(){var a=this;return a.escape=a.$encode_escape(a.escape['$[]'](0).$ord()['$|'](128))}),g(v,'$emit_character_constant',function(){var d=this,e=c,f=c;return e=a(f=d.escape)?f:d.$tok(b(d.ts,1)),a(d['$version?'](18))?d.$emit("tINTEGER",e.$getbyte(0)):d.$emit("tCHARACTER",e)}),g(v,'$check_ambiguous_slash',function(d){var e=this;return h(e.$tok(d,b(d,1)),"/".$freeze())?a(p(e.version,30))?e.$diagnostic("warning","ambiguous_literal",c,e.$range(d,b(d,1))):e.$diagnostic("warning","ambiguous_regexp",c,e.$range(d,b(d,1))):c}),g(v,'$check_invalid_escapes',function(d){var b=this;return a(b['$emit_invalid_escapes?']())?b.$diagnostic("fatal","invalid_unicode_escape",c,b.$range(e(b.escape_s,1),d)):c}),n(x[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]]))}(x('Parser'),null,v)},Opal.modules["parser/lexer/literal"]=function(d){var p=d.module,u=d.klass,h=d.const_set,e=d.enc,b=d.truthy,f=d.rb_plus,n=d.to_ary,c=d.def,m=d.return_ivar,g=d.eqeq,i=d.rb_minus,o=d.neqeq,v=d.not,j=d.send,l=d.eqeqeq,q=d.rb_gt,r=d.thrower,s=d.assign_ivar_val,t=d.regexp,k=[],a=d.nil;return d.add_stubs('ord,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,end_with?,all?,bytes,sub,escape,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length'),function(w,x){var y=p(w,'Parser'),k=[y].concat(x),z=d.$r(k);return function(A,y,z){var k=u(A,y,'Literal'),x=[k].concat(z),w=d.$r(x),p=k.$$prototype;return p.lexer=p.start_tok=p.str_type=p.monolithic=p.heredoc_e=p.dedent_body=p.end_delim=p.start_delim=p.nesting=p.label_allowed=p.buffer=p.str_s=p.interp_braces=p.buffer_s=p.buffer_e=p.space_emitted=p.interpolate=p.indent=a,h(x[0],'DELIMITERS',new Map([["(",e(")","ASCII-8BIT")],["[",e("]","ASCII-8BIT")],["{",e("}","ASCII-8BIT")],["<",e(">","ASCII-8BIT")]])),h(x[0],'SPACE',e(" ","ASCII-8BIT").$ord()),h(x[0],'TAB',e(" ","ASCII-8BIT").$ord()),h(x[0],'TYPES',new Map([["'",["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]]])),k.$attr_reader("heredoc_e","str_s","dedent_level"),k.$attr_accessor("saved_herebody_s"),c(k,'$initialize',function(q,d,g,j,k,l,m,o){var h,i,c=this,r=a,p=a;return k==null&&(k=a),l==null&&(l=!1),m==null&&(m=!1),o==null&&(o=!1),c.lexer=q,c.nesting=1,d=c.$coerce_encoding(d),g=c.$coerce_encoding(g),b(w('TYPES')['$include?'](d))||q.$send("diagnostic","error","unexpected_percent_str",new Map([["type",d]]),c.lexer.$send("range",j,f(j,2))),c.str_type=d,c.str_s=j,i=w('TYPES')['$[]'](d),h=n(i),c.start_tok=h[0]==null?a:h[0],c.interpolate=h[1]==null?a:h[1],i,c.start_delim=b(w('DELIMITERS')['$include?'](g))?g:a,c.end_delim=w('DELIMITERS').$fetch(g,g),c.heredoc_e=k,c.indent=l,c.label_allowed=o,c.dedent_body=m,c.dedent_level=a,c.interp_braces=0,c.space_emitted=!0,c.monolithic=b(r=b(p=c.start_tok['$==']("tSTRING_BEG"))?[e("'","ASCII-8BIT"),e('"',"ASCII-8BIT")]['$include?'](d):p)?c['$heredoc?']()['$!']():r,b(c.str_type['$start_with?'](e("%","ASCII-8BIT").$freeze()))&&(c.str_type=f(c.str_type,g)),c.$clear_buffer(),b(c.monolithic)?a:c.$emit_start_tok()},-5),c(k,'$interpolate?',m("interpolate")),c(k,'$words?',function(){var c=this,d=a,e=a,f=a;return b(d=b(e=b(f=c.$type()['$==']("tWORDS_BEG"))?f:c.$type()['$==']("tQWORDS_BEG"))?e:c.$type()['$==']("tSYMBOLS_BEG"))?d:c.$type()['$==']("tQSYMBOLS_BEG")}),c(k,'$regexp?',function(){var a=this;return a.$type()['$==']("tREGEXP_BEG")}),c(k,'$heredoc?',function(){var a=this;return a.heredoc_e['$!']()['$!']()}),c(k,'$plain_heredoc?',function(){var c=this,d=a;return b(d=c['$heredoc?']())?c.dedent_body['$!']():d}),c(k,'$squiggly_heredoc?',function(){var c=this,d=a;return b(d=c['$heredoc?']())?c.dedent_body:d}),c(k,'$backslash_delimited?',function(){var a=this;return a.end_delim['$=='](e("\\","ASCII-8BIT").$freeze())}),c(k,'$type',m("start_tok")),c(k,'$munge_escape?',function(a){var c=this;return!!(a=c.$coerce_encoding(a),b(c['$words?']())&&b(a['$=~'](/[ \t\v\r\f\n]/)))||[e("\\","ASCII-8BIT").$freeze(),c.start_delim,c.end_delim]['$include?'](a)}),c(k,'$nest_and_try_closing',function(h,j,k,d){var c=this;return d==null&&(d=a),h=c.$coerce_encoding(h),b(c.start_delim)&&g(c.start_delim,h)?c.nesting=f(c.nesting,1):b(c['$delimiter?'](h))&&(c.nesting=i(c.nesting,1)),g(c.nesting,0)?(b(c['$words?']())&&c.$extend_space(j,j),b(d)&&b(c.label_allowed)&&g(d['$[]'](0),e(":","ASCII-8BIT"))&&o(d['$[]'](1),e(":","ASCII-8BIT"))&&g(c.start_tok,"tSTRING_BEG"))?(c.$flush_string(),c.$emit("tLABEL_END",c.end_delim,j,f(k,1))):b(c.monolithic)?c.$emit("tSTRING",c.buffer,c.str_s,k):(b(c['$heredoc?']())||c.$flush_string(),c.$emit("tSTRING_END",c.end_delim,j,k)):a},-4),c(k,'$infer_indent_level',function(e){var d=this,c=a;return v(d.dedent_body)?a:(c=0,function(){try{var g=r('break');return j(e,'each_char',[],function e(h){var d=e.$$s==null?this:e.$$s,j=a;if(d.dedent_level==null&&(d.dedent_level=a),h==null&&(h=a),l(" ",j=h))return c=f(c,1);if(l(" ",j))return c=f(c,i(8,c['$%'](8)));(b(d.dedent_level['$nil?']())||b(q(d.dedent_level,c)))&&(d.dedent_level=c),g.$throw(a,e.$$is_lambda)},{$$s:d})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}())}),c(k,'$start_interp_brace',function(){var a=this;return a.interp_braces=f(a.interp_braces,1)}),c(k,'$end_interp_brace_and_try_closing',function(){var a=this;return a.interp_braces=i(a.interp_braces,1),a.interp_braces['$=='](0)}),c(k,'$extend_string',function(e,f,g){var c=this,d=a;return c.buffer_s=b(d=c.buffer_s)?d:f,c.buffer_e=g,c.buffer['$<<'](e)}),c(k,'$flush_string',function(){var c=this;return b(c.monolithic)&&(c.$emit_start_tok(),c.monolithic=!1),b(c.buffer['$empty?']())?a:(c.$emit("tSTRING_CONTENT",c.buffer,c.buffer_s,c.buffer_e),c.$clear_buffer(),c.$extend_content())}),c(k,'$extend_content',s("space_emitted",!1)),c(k,'$extend_space',function(d,e){var c=this;return c.$flush_string(),b(c.space_emitted)?a:(c.$emit("tSPACE",a,d,e),c.space_emitted=!0)}),c(k,'$supports_line_continuation_via_slash?',function(){var c=this,d=a;return b(d=c['$words?']()['$!']())?c.interpolate:d}),k.$protected(),c(k,'$delimiter?',function(d){var c=this,f=a;return b(c['$heredoc?']())?b(f=d['$end_with?'](c.end_delim))?j(d.$sub(t([w('Regexp').$escape(c.end_delim),e("\\z","ASCII-8BIT")]),e("","ASCII-8BIT")).$bytes(),'all?',[],function(c){var d=a;return c==null&&(c=a),b(d=c['$=='](w('SPACE')))?d:c['$=='](w('TAB'))}):f:b(c.indent)?c.end_delim['$=='](d.$lstrip()):c.end_delim['$=='](d)}),c(k,'$coerce_encoding',function(a){return a.$b()}),c(k,'$clear_buffer',function(){var b=this;return b.buffer=e("","ASCII-8BIT").$dup(),b.buffer.$force_encoding(b.lexer.$source_buffer().$source().$encoding()),b.buffer_s=a,b.buffer_e=a}),c(k,'$emit_start_tok',function(){var c=this,d=a,e=a;return d=b(e=c.heredoc_e)?e:f(c.str_s,c.str_type.$length()),c.$emit(c.start_tok,c.str_type,c.str_s,d)}),c(k,'$emit',function(a,b,c,d){var e=this;return e.lexer.$send("emit",a,b,c,d)})}(z('Lexer'),null,k)}(k[0],k)},Opal.modules["parser/lexer/stack_state"]=function(a){var h=a.module,i=a.klass,b=a.def,e=a.assign_ivar_val,f=a.truthy,g=a.alias,d=[],c=a.nil;return a.add_stubs('freeze,clear,|,<<,&,>>,==,[],to_s'),function(d,j){var k=h(d,'Parser'),l=[k].concat(j),m=a.$r(l);return function(h,j){var a=i(h,j,'StackState'),d=a.$$prototype;return d.stack=d.name=c,b(a,'$initialize',function(b){var a=this;return a.name=b.$freeze(),a.$clear()}),b(a,'$clear',e("stack",0)),b(a,'$push',function(a){var b=this,d=c;return d=f(a)?1:0,b.stack=b.stack['$<<'](1)['$|'](d),a}),b(a,'$pop',function(){var a=this,b=c;return b=a.stack['$&'](1),a.stack=a.stack['$>>'](1),b['$=='](1)}),b(a,'$lexpop',function(){var a=this;return a.stack=a.stack['$>>'](1)['$|'](a.stack['$&'](1)),a.stack['$[]'](0)['$=='](1)}),b(a,'$active?',function(){var a=this;return a.stack['$[]'](0)['$=='](1)}),b(a,'$empty?',function(){var a=this;return a.stack['$=='](0)}),b(a,'$to_s',function(){var a=this;return"["+a.stack.$to_s(2)+" <= "+a.name+"]"}),g(a,"inspect","to_s")}(m('Lexer'),null)}(d[0],d)},Opal.modules["parser/lexer/dedenter"]=function(a){var u=a.module,t=a.klass,n=a.const_set,c=a.def,m=a.eqeq,e=a.send,f=a.truthy,l=a.to_ary,j=a.slice,k=a.rb_le,i=a.eqeqeq,d=a.rb_plus,h=a.rb_minus,o=a.rb_gt,p=a.rb_times,q=a.rb_divide,r=a.thrower,s=a.assign_ivar_val,g=[],b=a.nil,v=a.$$$;return a.add_stubs('encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?'),function(w,x){var y=u(w,'Parser'),g=[y].concat(x),z=a.$r(g);return function(x,y,z){var g=t(x,y,'Dedenter'),w=[g].concat(z),u=a.$r(w),A=g.$$prototype;return A.at_line_begin=b,n(w[0],'TAB_WIDTH',8),c(g,'$initialize',function(b){var a=this;return a.dedent_level=b,a.at_line_begin=!0,a.indent_level=0}),c(g,'$dedent',function(c){var g,n,s=this,t=b,a=b,w=b,x=b;return t=c.$encoding(),a=c.$force_encoding(v(u('Encoding'),'BINARY')).$split("\\\n"),m(a.$length(),1)?a=[c.$force_encoding(t)]:e(a,'map!',[],function(a){return a==null&&(a=b),a.$force_encoding(t)}),f(s.at_line_begin)?w=a:(n=a,g=l(n),x=g[0]==null?b:g[0],w=j(g,1),n),e(w,'each',[],function l(g){var j=l.$$s==null?this:l.$$s,c=b,a=b;return j.dedent_level==null&&(j.dedent_level=b),g==null&&(g=b),c=j.dedent_level,a=0,function(){try{var l=r('break');return e(g,'each_char',[],function e(g){var j=e.$$s==null?this:e.$$s,m=b;if(j.dedent_level==null&&(j.dedent_level=b),g==null&&(g=b),f(k(c,0))&&l.$throw(b,e.$$is_lambda),i(" ",m=g))return a=d(a,1),c=h(c,1);if(i(" ",m))return f(o(p(u('TAB_WIDTH'),d(q(a,u('TAB_WIDTH')),1)),j.dedent_level))&&l.$throw(b,e.$$is_lambda),a=d(a,1),c=h(c,u('TAB_WIDTH'));l.$throw(b,e.$$is_lambda)},{$$s:j})}catch(a){if(a===l)return a.$v;throw a}finally{l.is_orphan=!0}}(),g['$slice!'](0,a)},{$$s:s}),c.$replace(a.$join()),s.at_line_begin=c['$end_with?']("\n")}),c(g,'$interrupt',s("at_line_begin",!1))}(z('Lexer'),null,g)}(g[0],g)},Opal.modules["parser/builders/default"]=function(f){var y=f.module,z=f.klass,b=f.def,w=f.assign_ivar_val,g=f.to_a,c=f.truthy,e=f.eqeq,i=f.not,h=f.send,q=f.neqeq,n=f.to_ary,p=f.rb_ge,m=f.rb_gt,o=f.range,j=f.rb_minus,u=f.slice,k=f.rb_plus,x=f.rb_le,t=f.eqeqeq,r=f.rb_lt,v=f.thrower,l=f.gvars,s=[],a=f.nil,d=f.$$$;return f.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,each,eql?,>=,add?,range_map,variable_map,>,length,start_with?,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,has_ordinary_params?,max_numparam_stack,in_block,context,var_send_map,top,current_arg_stack,parser,constant_map,in_def,[],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,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?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?'),function(A,B){var C=y(A,'Parser'),s=[C].concat(B),D=f.$r(s);return function(E,C,D){var s=z(E,C,'Default'),A=[s].concat(D),y=f.$r(A),B=s.$$prototype;return B.parser=B.emit_file_line_as_literals=a,function(a,b){return a.$attr_accessor("emit_lambda")}(f.get_singleton_class(s),A),s.emit_lambda=!1,function(a,b){return a.$attr_accessor("emit_procarg0")}(f.get_singleton_class(s),A),s.emit_procarg0=!1,function(a,b){return a.$attr_accessor("emit_encoding")}(f.get_singleton_class(s),A),s.emit_encoding=!1,function(a,b){return a.$attr_accessor("emit_index")}(f.get_singleton_class(s),A),s.emit_index=!1,function(a,b){return a.$attr_accessor("emit_arg_inside_procarg0")}(f.get_singleton_class(s),A),s.emit_arg_inside_procarg0=!1,function(a,b){return a.$attr_accessor("emit_forward_arg")}(f.get_singleton_class(s),A),s.emit_forward_arg=!1,function(a,b){return a.$attr_accessor("emit_kwargs")}(f.get_singleton_class(s),A),s.emit_kwargs=!1,function(a,b){return a.$attr_accessor("emit_match_pattern")}(f.get_singleton_class(s),A),s.emit_match_pattern=!1,function(a,c){return b(a,'$modernize',function(){var a=this;return a.emit_lambda=!0,a.emit_procarg0=!0,a.emit_encoding=!0,a.emit_index=!0,a.emit_arg_inside_procarg0=!0,a.emit_forward_arg=!0,a.emit_kwargs=!0,a.emit_match_pattern=!0})}(f.get_singleton_class(s),A),s.$attr_accessor("parser"),s.$attr_accessor("emit_file_line_as_literals"),b(s,'$initialize',w("emit_file_line_as_literals",!0)),b(s,'$nil',function(b){var a=this;return a.$n0("nil",a.$token_map(b))}),b(s,'$true',function(b){var a=this;return a.$n0("true",a.$token_map(b))}),b(s,'$false',function(b){var a=this;return a.$n0("false",a.$token_map(b))}),b(s,'$integer',function(a){var b=this;return b.$numeric("int",a)}),b(s,'$float',function(a){var b=this;return b.$numeric("float",a)}),b(s,'$rational',function(a){var b=this;return b.$numeric("rational",a)}),b(s,'$complex',function(a){var b=this;return b.$numeric("complex",a)}),b(s,'$numeric',function(e,c){var b=this;return b.$n(e,[b.$value(c)],d(d(y('Source'),'Map'),'Operator').$new(a,b.$loc(c)))}),s.$private("numeric"),b(s,'$unary_num',function(h,f){var c,i=this,b=a,e=a;switch(c=[].concat(g(f)),b=c[0]==null?a:c[0],c,e=i.$loc(h),i.$value(h).valueOf()){case"+":b=b['$+@']();break;case"-":b=b['$-@']();break;default:a}return f.$updated(a,[b],new Map([["location",d(d(y('Source'),'Map'),'Operator').$new(e,e.$join(f.$loc().$expression()))]]))}),b(s,'$__LINE__',function(b){var a=this;return a.$n0("__LINE__",a.$token_map(b))}),b(s,'$string',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$delimited_string_map(b))}),b(s,'$string_internal',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$unquoted_map(b))}),b(s,'$string_compose',function(d,a,e){var b=this;return c(b['$collapse_string_parts?'](a))?c(d['$nil?']())&&c(e['$nil?']())?a.$first():b.$n("str",a.$first().$children(),b.$string_map(d,a,e)):b.$n("dstr",[].concat(g(a)),b.$string_map(d,a,e))}),b(s,'$character',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$prefix_string_map(b))}),b(s,'$__FILE__',function(b){var a=this;return a.$n0("__FILE__",a.$token_map(b))}),b(s,'$symbol',function(b){var a=this;return a.$n("sym",[a.$string_value(b).$to_sym()],a.$prefix_string_map(b))}),b(s,'$symbol_internal',function(b){var a=this;return a.$n("sym",[a.$string_value(b).$to_sym()],a.$unquoted_map(b))}),b(s,'$symbol_compose',function(f,d,h){var b=this,i=a;return c(b['$collapse_string_parts?'](d))?(i=d.$first(),b.$n("sym",[i.$children().$first().$to_sym()],b.$collection_map(f,i.$loc().$expression(),h))):e(b.parser.$version(),18)&&c(d['$empty?']())?b.$diagnostic("error","empty_symbol",a,b.$loc(f).$join(b.$loc(h))):b.$n("dsym",[].concat(g(d)),b.$collection_map(f,d,h))}),b(s,'$xstring_compose',function(c,a,d){var b=this;return b.$n("xstr",[].concat(g(a)),b.$string_map(c,a,d))}),b(s,'$dedent_string',function(b,j){var g=a,f=a,k=a;if(i(j['$nil?']()))switch(g=d(y('Lexer'),'Dedenter').$new(j),b.$type().valueOf()){case"str":f=b.$children().$first(),g.$dedent(f);break;case"dstr":case"xstr":k=h(b.$children(),'map',[],function(b){if(b==null&&(b=a),e(b.$type(),"str")){if(f=b.$children().$first(),g.$dedent(f),c(f['$empty?']()))return a}else g.$interrupt();return b}),b=b.$updated(a,k.$compact());break;default:a}return b}),b(s,'$regexp_options',function(c){var b=this,d=a;return d=h(b.$value(c).$each_char().$sort().$uniq(),'map',[],"to_sym".$to_proc()),b.$n("regopt",d,b.$token_map(c))}),b(s,'$regexp_compose',function(g,h,i,c){var b=this,e=a;try{b.$static_regexp(h,c)}catch(a){if(f.rescue(a,[y('RegexpError'),d(y('Encoding'),'UndefinedConversionError')])){e=a;try{b.$diagnostic("error","invalid_regexp",new Map([["message",e.$message()]]),b.$loc(g).$join(b.$loc(i)))}finally{f.pop_exception(a)}}else throw a}return b.$n("regexp",h['$<<'](c),b.$regexp_map(g,i,c))}),b(s,'$array',function(c,a,d){var b=this;return b.$n("array",a,b.$collection_map(c,a,d))}),b(s,'$splat',function(e,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("splat",d.$unary_op_map(e)):d.$n("splat",[b],d.$unary_op_map(e,b))},-2),b(s,'$word',function(b){var d=this;return c(d['$collapse_string_parts?'](b))?b.$first():d.$n("dstr",[].concat(g(b)),d.$collection_map(a,b,a))}),b(s,'$words_compose',function(c,a,d){var b=this;return b.$n("array",[].concat(g(a)),b.$collection_map(c,a,d))}),b(s,'$symbols_compose',function(d,b,e){var c=this;return b=h(b,'map',[],function(b){var c,d=a;switch(b==null&&(b=a),b.$type().valueOf()){case"str":return c=[].concat(g(b)),d=c[0]==null?a:c[0],c,b.$updated("sym",[d.$to_sym()]);case"dstr":return b.$updated("dsym");default:return b}}),c.$n("array",[].concat(g(b)),c.$collection_map(d,b,e))}),b(s,'$pair',function(a,d,b){var c=this;return c.$n("pair",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$pair_list_18',function(b){var c=this;return q(b.$size()['$%'](2),0)?c.$diagnostic("error","odd_hash",a,b.$last().$loc().$expression()):h(b.$each_slice(2),'map',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$n("pair",[b,c],e.$binary_op_map(b,a,c))},{$$s:c})}),b(s,'$pair_keyword',function(f,g){var b,d,c=this,e=a,h=a,i=a;return d=c.$pair_keyword_map(f,g),b=n(d),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],d,i=c.$n("sym",[c.$value(f).$to_sym()],e),c.$n("pair",[i,g],h)}),b(s,'$pair_quoted',function(h,j,e,g){var b,c,d=this,f=a,i=a;return c=d.$pair_quoted_map(h,e,g),b=n(c),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],c,i=d.$symbol_compose(h,j,e),d.$n("pair",[i,g],f)}),b(s,'$pair_label',function(g){var b=this,i=a,e=a,f=a,h=a;return i=b.$loc(g),e=i.$adjust(new Map([["end_pos",-1]])),f=b.$value(g),h=c(f['$=~'](/^[[:upper:]]/))?b.$n("const",[a,f.$to_sym()],d(d(y('Source'),'Map'),'Constant').$new(a,e,e)):b.$n("ident",[f.$to_sym()],d(d(y('Source'),'Map'),'Variable').$new(e)),b.$pair_keyword(g,b.$accessible(h))}),b(s,'$kwsplat',function(c,a){var b=this;return b.$n("kwsplat",[a],b.$unary_op_map(c,a))}),b(s,'$associate',function(f,b,i){var d=this,e=a;return e=y('Set').$new(),h(b,'each',[],function i(b){var d,f=i.$$s==null?this:i.$$s,h=a;if(f.parser==null&&(f.parser=a),b==null&&(b=a),!c(b.$type()['$eql?']("pair")))return a;switch(d=[].concat(g(b)),h=d[0]==null?a:d[0],d,h.$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!c(p(f.parser.$version(),31)))return a;break;default:return a}return c(e['$add?'](h))?a:f.$diagnostic("warning","duplicate_hash_key",a,h.$loc().$expression())},{$$s:d}),d.$n("hash",[].concat(g(b)),d.$collection_map(f,b,i))}),b(s,'$range_inclusive',function(a,d,b){var c=this;return c.$n("irange",[a,b],c.$range_map(a,d,b))}),b(s,'$range_exclusive',function(a,d,b){var c=this;return c.$n("erange",[a,b],c.$range_map(a,d,b))}),b(s,'$self',function(b){var a=this;return a.$n0("self",a.$token_map(b))}),b(s,'$ident',function(b){var a=this;return a.$n("ident",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$ivar',function(b){var a=this;return a.$n("ivar",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$gvar',function(e){var b=this,d=a;return d=b.$value(e),c(d['$start_with?']("$0"))&&c(m(d.$length(),2))&&b.$diagnostic("error","gvar_name",new Map([["name",d]]),b.$loc(e)),b.$n("gvar",[d.$to_sym()],b.$variable_map(e))}),b(s,'$cvar',function(b){var a=this;return a.$n("cvar",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$back_ref',function(b){var a=this;return a.$n("back_ref",[a.$value(b).$to_sym()],a.$token_map(b))}),b(s,'$nth_ref',function(b){var a=this;return a.$n("nth_ref",[a.$value(b)],a.$token_map(b))}),b(s,'$accessible',function(d){var j,b=this,f=a;switch(d.$type().valueOf()){case"__FILE__":return c(b.emit_file_line_as_literals)?b.$n("str",[d.$loc().$expression().$source_buffer().$name()],d.$loc().$dup()):d;break;case"__LINE__":return c(b.emit_file_line_as_literals)?b.$n("int",[d.$loc().$expression().$line()],d.$loc().$dup()):d;break;case"__ENCODING__":return i(b.$class().$emit_encoding())?b.$n("const",[b.$n("const",[a,"Encoding"],a),"UTF_8"],d.$loc().$dup()):d;break;case"ident":return j=[].concat(g(d)),f=j[0]==null?a:j[0],j,c(h(["?","!"],'any?',[],function(b){return b==null&&(b=a),f.$to_s()['$end_with?'](b)}))&&b.$diagnostic("error","invalid_id_to_get",new Map([["identifier",f.$to_s()]]),d.$loc().$expression()),c(p(b.parser.$version(),27))&&c(b.parser.$try_declare_numparam(d))?d.$updated("lvar"):c(b.parser.$static_env()['$declared?'](f))?(e(f.$to_s(),b.$parser().$current_arg_stack().$top())&&b.$diagnostic("error","circular_argument_reference",new Map([["var_name",f.$to_s()]]),d.$loc().$expression()),d.$updated("lvar")):(e(b.parser.$version(),33)&&e(f,"it")&&c(b.parser.$context().$in_block())&&i(b.parser.$max_numparam_stack()['$has_ordinary_params?']())&&b.$diagnostic("warning","ambiguous_it_call",a,d.$loc().$expression()),b.$n("send",[a,f],b.$var_send_map(d)));default:return d}}),b(s,'$const',function(c){var b=this;return b.$n("const",[a,b.$value(c).$to_sym()],b.$constant_map(a,a,c))}),b(s,'$const_global',function(d,e){var b=this,c=a;return c=b.$n0("cbase",b.$token_map(d)),b.$n("const",[c,b.$value(e).$to_sym()],b.$constant_map(c,d,e))}),b(s,'$const_fetch',function(b,d,c){var a=this;return a.$n("const",[b,a.$value(c).$to_sym()],a.$constant_map(b,d,c))}),b(s,'$__ENCODING__',function(b){var a=this;return a.$n0("__ENCODING__",a.$token_map(b))}),b(s,'$assignable',function(b){var e,d=this,i=a,h=a,f=a;switch(b.$type().valueOf()){case"cvar":return b.$updated("cvasgn");case"ivar":return b.$updated("ivasgn");case"gvar":return b.$updated("gvasgn");case"const":return c(d.parser.$context().$in_def())&&d.$diagnostic("error","dynamic_const",a,b.$loc().$expression()),b.$updated("casgn");case"ident":return e=[].concat(g(b)),i=e[0]==null?a:e[0],e,h=b.$children()['$[]'](0).$to_s(),f=b.$loc().$expression(),d.$check_assignment_to_numparam(h,f),d.$check_reserved_for_numparam(h,f),d.parser.$static_env().$declare(i),b.$updated("lvasgn");case"match_var":return e=[].concat(g(b)),i=e[0]==null?a:e[0],e,h=b.$children()['$[]'](0).$to_s(),f=b.$loc().$expression(),d.$check_assignment_to_numparam(h,f),d.$check_reserved_for_numparam(h,f),b;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return d.$diagnostic("error","invalid_assignment",a,b.$loc().$expression());case"back_ref":case"nth_ref":return d.$diagnostic("error","backref_assignment",a,b.$loc().$expression());default:return a}}),b(s,'$const_op_assignable',function(a){return a.$updated("casgn")}),b(s,'$assign',function(b,e,c){var d=this;return b['$<<'](c).$updated(a,a,new Map([["location",b.$loc().$with_operator(d.$loc(e)).$with_expression(d.$join_exprs(b,c))]]))}),b(s,'$op_assign',function(b,h,f){var c=this,g=a,d=a;switch(b.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(g=c.$value(h)['$[]'](o(0,-1,!1)).$to_sym(),d=b.$loc().$with_operator(c.$loc(h)).$with_expression(c.$join_exprs(b,f)),e(b.$type(),"index")&&(b=b.$updated("indexasgn")),g.valueOf()){case"&&":return c.$n("and_asgn",[b,f],d);case"||":return c.$n("or_asgn",[b,f],d);default:return c.$n("op_asgn",[b,g,f],d)}break;case"back_ref":case"nth_ref":return c.$diagnostic("error","backref_assignment",a,b.$loc().$expression());default:return a}}),b(s,'$multi_lhs',function(c,a,d){var b=this;return b.$n("mlhs",[].concat(g(a)),b.$collection_map(c,a,d))}),b(s,'$multi_assign',function(a,d,b){var c=this;return c.$n("masgn",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$def_class',function(g,b,d,e,f,c){var a=this;return a.$n("class",[b,e,f],a.$module_definition_map(g,b,d,c))}),b(s,'$def_sclass',function(c,d,e,f,g){var b=this;return b.$n("sclass",[e,f],b.$module_definition_map(c,a,d,g))}),b(s,'$def_module',function(d,b,e,f){var c=this;return c.$n("module",[b,e],c.$module_definition_map(d,b,a,f))}),b(s,'$def_method',function(d,c,e,f,g){var b=this;return b.$check_reserved_for_numparam(b.$value(c),b.$loc(c)),b.$n("def",[b.$value(c).$to_sym(),e,f],b.$definition_map(d,a,c,g))}),b(s,'$def_endless_method',function(e,c,f,g,d){var b=this;return b.$check_reserved_for_numparam(b.$value(c),b.$loc(c)),b.$n("def",[b.$value(c).$to_sym(),f,d],b.$endless_definition_map(e,a,c,g,d))}),b(s,'$def_singleton',function(e,c,f,b,g,d,h){var a=this;return a.$validate_definee(c),a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("defs",[c,a.$value(b).$to_sym(),g,d],a.$definition_map(e,f,b,h))}),b(s,'$def_endless_singleton',function(h,d,f,b,g,e,c){var a=this;return a.$validate_definee(d),a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("defs",[d,a.$value(b).$to_sym(),g,c],a.$endless_definition_map(h,f,b,e,c))}),b(s,'$undef_method',function(d,b){var c=this;return c.$n("undef",[].concat(g(b)),c.$keyword_map(d,a,b,a))}),b(s,'$alias',function(e,b,c){var d=this;return d.$n("alias",[b,c],d.$keyword_map(e,a,[b,c],a))}),b(s,'$args',function(h,b,j,g){var d=this,f=a;return g==null&&(g=!0),c(g)&&(b=d.$check_duplicate_args(b)),d.$validate_no_forward_arg_after_restarg(b),f=d.$collection_map(h,b,j),i(d.$class().$emit_forward_arg())&&e(b.$length(),1)&&e(b['$[]'](0).$type(),"forward_arg")?d.$n("forward_args",[],f):d.$n("args",b,f)},-4),b(s,'$numargs',function(b){var c=this;return c.$n("numargs",[b],a)}),b(s,'$forward_only_args',function(e,f,g){var b=this,d=a;return c(b.$class().$emit_forward_arg())?(d=b.$forward_arg(f),b.$n("args",[d],b.$collection_map(e,[d],g))):b.$n("forward_args",[],b.$collection_map(e,b.$token_map(f),g))}),b(s,'$forward_arg',function(b){var a=this;return a.$n("forward_arg",[],a.$token_map(b))}),b(s,'$arg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("arg",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$optarg',function(b,d,c){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("optarg",[a.$value(b).$to_sym(),c],a.$variable_map(b).$with_operator(a.$loc(d)).$with_expression(a.$loc(b).$join(c.$loc().$expression())))}),b(s,'$restarg',function(e,d){var b=this;return d==null&&(d=a),c(d)?(b.$check_reserved_for_numparam(b.$value(d),b.$loc(d)),b.$n("restarg",[b.$value(d).$to_sym()],b.$arg_prefix_map(e,d))):b.$n0("restarg",b.$arg_prefix_map(e))},-2),b(s,'$kwarg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("kwarg",[a.$value(b).$to_sym()],a.$kwarg_map(b))}),b(s,'$kwoptarg',function(b,c){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("kwoptarg",[a.$value(b).$to_sym(),c],a.$kwarg_map(b,c))}),b(s,'$kwrestarg',function(e,d){var b=this;return d==null&&(d=a),c(d)?(b.$check_reserved_for_numparam(b.$value(d),b.$loc(d)),b.$n("kwrestarg",[b.$value(d).$to_sym()],b.$arg_prefix_map(e,d))):b.$n0("kwrestarg",b.$arg_prefix_map(e))},-2),b(s,'$kwnilarg',function(b,c){var a=this;return a.$n0("kwnilarg",a.$arg_prefix_map(b,c))}),b(s,'$shadowarg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("shadowarg",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$blockarg',function(f,b){var d=this,e=a;return i(b['$nil?']())&&d.$check_reserved_for_numparam(d.$value(b),d.$loc(b)),e=c(b)?d.$value(b).$to_sym():a,d.$n("blockarg",[e],d.$arg_prefix_map(f,b))}),b(s,'$procarg0',function(b){var f=this;return c(f.$class().$emit_procarg0())?e(b.$type(),"arg")&&c(f.$class().$emit_arg_inside_procarg0())?f.$n("procarg0",[b],d(d(y('Source'),'Map'),'Collection').$new(a,a,b.$location().$expression())):b.$updated("procarg0"):b}),b(s,'$arg_expr',function(a){var b=this;return e(a.$type(),"lvasgn")?a.$updated("arg"):b.$n("arg_expr",[a],a.$loc().$dup())}),b(s,'$restarg_expr',function(f,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("restarg",d.$token_map(f)):e(b.$type(),"lvasgn")?b.$updated("restarg"):d.$n("restarg_expr",[b],b.$loc().$dup())},-2),b(s,'$blockarg_expr',function(d,a){var b=this;return e(a.$type(),"lvasgn")?a.$updated("blockarg"):b.$n("blockarg_expr",[a],a.$loc().$dup())}),b(s,'$objc_kwarg',function(h,i,g){var b=this,e=a,f=a;return e=b.$loc(h),c(i['$nil?']())?(e=e.$resize(j(e.$size(),1)),f=e.$end().$resize(1)):f=b.$loc(i),b.$n("objc_kwarg",[b.$value(h).$to_sym(),b.$value(g).$to_sym()],d(d(y('Source'),'Map'),'ObjcKwarg').$new(e,f,b.$loc(g),e.$join(b.$loc(g))))}),b(s,'$objc_restarg',function(f,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("restarg",d.$arg_prefix_map(f)):e(b.$type(),"arg")?b.$updated("restarg",a,new Map([["location",b.$loc().$with_operator(d.$loc(f))]])):d.$n("objc_restarg",[b],d.$unary_op_map(f,b))},-2),b(s,'$call_type_for_dot',function(a){var b=this;return i(a['$nil?']())&&e(b.$value(a),"anddot")?"csend":"send"}),b(s,'$forwarded_args',function(b){var a=this;return a.$n("forwarded_args",[],a.$token_map(b))}),b(s,'$forwarded_restarg',function(b){var a=this;return a.$n("forwarded_restarg",[],a.$token_map(b))}),b(s,'$forwarded_kwrestarg',function(b){var a=this;return a.$n("forwarded_kwrestarg",[],a.$token_map(b))}),b(s,'$call_method',function(h,i,j,f,d,e){var b=this,k=a;return f==null&&(f=a),d==null&&(d=[]),e==null&&(e=a),k=b.$call_type_for_dot(i),c(b.$class().$emit_kwargs())&&b.$rewrite_hash_args_to_kwargs(d),c(j['$nil?']())?b.$n(k,[h,"call"].concat(g(d)),b.$send_map(h,i,a,f,d,e)):b.$n(k,[h,b.$value(j).$to_sym()].concat(g(d)),b.$send_map(h,i,j,f,d,e))},-4),b(s,'$call_lambda',function(d){var b=this;return c(b.$class().$emit_lambda())?b.$n0("lambda",b.$expr_map(b.$loc(d))):b.$n("send",[a,"lambda"],b.$send_map(a,a,d))}),b(s,'$block',function(f,l,j,r,p){var b,d,h=this,o=a,i=a,s=a,t=a,k=a,m=a,n=a;return e(f.$type(),"yield")&&h.$diagnostic("error","block_given_to_yield",a,f.$loc().$keyword(),[h.$loc(l)]),e(f.$type(),"super")?(b=[].concat(g(f)),d=b.length-1,d=d<0?0:d,o=u(b,0,d),i=b[d]==null?a:b[d],b):(b=[].concat(g(f)),s=b[0]==null?a:b[0],t=b[1]==null?a:b[1],d=b.length-1,d=d<2?2:d,o=u(b,2,d),i=b[d]==null?a:b[d],b),c(i)&&(e(i.$type(),"block_pass")||e(i.$type(),"forwarded_args"))&&(e(h.parser.$version(),33)&&q(f.$type(),"super")||q(h.parser.$version(),33))&&h.$diagnostic("error","block_and_blockarg",a,i.$loc().$expression(),[h.$loc(l)]),e(j.$type(),"numargs")?(k="numblock",j=j.$children()['$[]'](0)):k="block",c(["send","csend","index","super","zsuper","lambda"]['$include?'](f.$type()))?h.$n(k,[f,j,r],h.$block_map(f.$loc().$expression(),l,p)):(b=[].concat(g(f)),m=b[0]==null?a:b[0],b,n=h.$n(k,[m,j,r],h.$block_map(m.$loc().$expression(),l,p)),h.$n(f.$type(),[n],f.$loc().$with_expression(h.$join_exprs(f,n))))}),b(s,'$block_pass',function(c,a){var b=this;return b.$n("block_pass",[a],b.$unary_op_map(c,a))}),b(s,'$objc_varargs',function(c,h){var b,i=this,f=a,e=a,d=a;return b=[].concat(g(c)),f=b[0]==null?a:b[0],e=b[1]==null?a:b[1],b,d=i.$array(a,[e].concat(g(h)),a).$updated("objc_varargs"),c.$updated(a,[f,d],new Map([["location",c.$loc().$with_expression(c.$loc().$expression().$join(d.$loc().$expression()))]]))}),b(s,'$attr_asgn',function(d,e,f){var b=this,g=a,c=a;return g=k(b.$value(f),"=").$to_sym(),c=b.$call_type_for_dot(e),b.$n(c,[d,g],b.$send_map(d,e,f))}),b(s,'$index',function(b,e,d,f){var a=this;return c(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(d),c(a.$class().$emit_index())?a.$n("index",[b].concat(g(d)),a.$index_map(b,e,f)):a.$n("send",[b,"[]"].concat(g(d)),a.$send_index_map(b,e,f))}),b(s,'$index_asgn',function(b,e,d,f){var a=this;return c(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(d),c(a.$class().$emit_index())?a.$n("indexasgn",[b].concat(g(d)),a.$index_map(b,e,f)):a.$n("send",[b,"[]="].concat(g(d)),a.$send_index_map(b,e,f))}),b(s,'$binary_op',function(g,i,h){var b=this,d=a,f=a,j=a;if(d=b.$send_binary_op_map(g,i,h),e(b.parser.$version(),18))if(f=b.$value(i),e(f,"!=")?j=b.$n("send",[g,"==",h],d):e(f,"!~")&&(j=b.$n("send",[g,"=~",h],d)),c(["!=","!~"]['$include?'](f)))return b.$n("not",[j],b.$expr_map(d.$expression()));return b.$n("send",[g,b.$value(i).$to_sym(),h],d)}),b(s,'$match_op',function(d,i,e){var b=this,f=a,g=a;return f=b.$send_binary_op_map(d,i,e),c(g=b.$static_regexp_node(d))?(h(g.$names(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.parser==null&&(c.parser=a),b==null&&(b=a),c.parser.$static_env().$declare(b)},{$$s:b}),b.$n("match_with_lvasgn",[d,e],f)):b.$n("send",[d,"=~",e],f)}),b(s,'$unary_op',function(c,e){var b=this,d=a;switch(b.$value(c).valueOf()){case"+":case"-":d=k(b.$value(c),"@");break;default:d=b.$value(c)}return b.$n("send",[e,d.$to_sym()],b.$send_unary_op_map(c,e))}),b(s,'$not_op',function(i,f,d,g){var b=this,h=a;return f==null&&(f=a),d==null&&(d=a),g==null&&(g=a),e(b.parser.$version(),18)?b.$n("not",[b.$check_condition(d)],b.$unary_op_map(i,d)):c(d['$nil?']())?(h=b.$n0("begin",b.$collection_map(f,a,g)),b.$n("send",[h,"!"],b.$send_unary_op_map(i,h))):b.$n("send",[b.$check_condition(d),"!"],b.$send_map(a,a,i,f,[d],g))},-2),b(s,'$logical_op',function(d,a,e,b){var c=this;return c.$n(d,[a,b],c.$binary_op_map(a,e,b))}),b(s,'$condition',function(e,d,f,c,g,b,h){var a=this;return a.$n("if",[a.$check_condition(d),c,b],a.$condition_map(e,d,f,c,g,b,h))}),b(s,'$condition_mod',function(e,f,h,g){var b=this,d=a;return b.$n("if",[b.$check_condition(g),e,f],b.$keyword_mod_map(c(d=e)?d:f,h,g))}),b(s,'$ternary',function(b,e,c,f,d){var a=this;return a.$n("if",[a.$check_condition(b),c,d],a.$ternary_map(b,e,c,f,d))}),b(s,'$when',function(d,e,f,g){var c=this,b=a;return b=e['$<<'](g),c.$n("when",b,c.$keyword_map(d,f,b,a))}),b(s,'$case',function(i,c,f,h,d,e){var b=this;return b.$n("case",[c].concat(g(f['$<<'](d))),b.$condition_map(i,c,a,a,h,d,e))}),b(s,'$loop',function(h,d,e,f,g,c){var b=this;return b.$n(h,[b.$check_condition(e),g],b.$keyword_map(d,f,a,c))}),b(s,'$loop_mod',function(a,b,f,d){var c=this;return e(b.$type(),"kwbegin")&&(a=""+a+"_post"),c.$n(a,[c.$check_condition(d),b],c.$keyword_mod_map(b,f,d))}),b(s,'$for',function(c,h,d,e,f,b,g){var a=this;return a.$n("for",[h,e,b],a.$for_map(c,d,f,g))}),b(s,'$keyword_cmd',function(f,j,g,b,h){var d=this,i=a;return g==null&&(g=a),b==null&&(b=[]),h==null&&(h=a),e(f,"yield")&&c(m(b.$count(),0))&&(i=b.$last(),e(i.$type(),"block_pass")&&d.$diagnostic("error","block_given_to_yield",a,d.$loc(j),[i.$loc().$expression()])),c(["yield","super"]['$include?'](f))&&c(d.$class().$emit_kwargs())&&d.$rewrite_hash_args_to_kwargs(b),d.$n(f,b,d.$keyword_map(j,g,b,h))},-3),b(s,'$preexe',function(b,c,d,e){var a=this;return a.$n("preexe",[d],a.$keyword_map(b,c,[],e))}),b(s,'$postexe',function(b,c,d,e){var a=this;return a.$n("postexe",[d],a.$keyword_map(b,c,[],e))}),b(s,'$rescue_body',function(g,c,e,d,f,a){var b=this;return b.$n("resbody",[c,d,a],b.$rescue_body_map(g,c,e,d,f,a))}),b(s,'$begin_body',function(b,f,j,l,n,m){var d=this,h=a;return f==null&&(f=[]),j==null&&(j=a),l==null&&(l=a),n==null&&(n=a),m==null&&(m=a),c(f['$any?']())?c(j)?b=d.$n("rescue",[b].concat(g(k(f,[l]))),d.$eh_keyword_map(b,a,f,j,l)):b=d.$n("rescue",[b].concat(g(k(f,[a]))),d.$eh_keyword_map(b,a,f,a,a)):c(j)&&(h=[],i(b['$nil?']())&&(e(b.$type(),"begin")?h=k(h,b.$children()):h.$push(b)),h.$push(d.$n("begin",[l],d.$collection_map(j,[l],a))),b=d.$n("begin",h,d.$collection_map(a,h,a))),c(n)&&(b=d.$n("ensure",[b,m],d.$eh_keyword_map(b,n,[m],a,a))),b},-2),b(s,'$compstmt',function(b){var d=this;return c(b['$none?']())?a:c(b['$one?']())?b.$first():d.$n("begin",b,d.$collection_map(a,b,a))}),b(s,'$begin',function(f,b,g){var d=this;return c(b['$nil?']())?d.$n0("begin",d.$collection_map(f,a,g)):e(b.$type(),"mlhs")||e(b.$type(),"begin")&&c(b.$loc().$begin()['$nil?']())&&c(b.$loc().$end()['$nil?']())?d.$n(b.$type(),b.$children(),d.$collection_map(f,b.$children(),g)):d.$n("begin",[b],d.$collection_map(f,[b],g))}),b(s,'$begin_keyword',function(f,b,g){var d=this;return c(b['$nil?']())?d.$n0("kwbegin",d.$collection_map(f,a,g)):e(b.$type(),"begin")&&c(b.$loc().$begin()['$nil?']())&&c(b.$loc().$end()['$nil?']())?d.$n("kwbegin",b.$children(),d.$collection_map(f,b.$children(),g)):d.$n("kwbegin",[b],d.$collection_map(f,[b],g))}),b(s,'$case_match',function(k,f,j,e,d,h){var b=this;return c(e)&&i(d)&&(d=b.$n("empty_else",a,b.$token_map(e))),b.$n("case_match",[f].concat(g(j['$<<'](d))),b.$condition_map(k,f,a,a,e,d,h))}),b(s,'$in_match',function(a,d,b){var c=this;return c.$n("in_match",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$match_pattern',function(a,d,b){var c=this;return c.$n("match_pattern",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$match_pattern_p',function(a,d,b){var c=this;return c.$n("match_pattern_p",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$in_pattern',function(h,d,e,f,g){var c=this,b=a;return b=[d,e,g],c.$n("in_pattern",b,c.$keyword_map(h,f,b.$compact(),a))}),b(s,'$if_guard',function(c,a){var b=this;return b.$n("if_guard",[a],b.$guard_map(c,a))}),b(s,'$unless_guard',function(c,a){var b=this;return b.$n("unless_guard",[a],b.$guard_map(c,a))}),b(s,'$match_var',function(d){var b=this,c=a,e=a;return c=b.$value(d).$to_sym(),e=b.$loc(d),b.$check_lvar_name(c,e),b.$check_duplicate_pattern_variable(c,e),b.parser.$static_env().$declare(c),b.$n("match_var",[c],b.$variable_map(d))}),b(s,'$match_hash_var',function(g){var b=this,c=a,f=a,e=a;return c=b.$value(g).$to_sym(),f=b.$loc(g),e=f.$adjust(new Map([["end_pos",-1]])),b.$check_lvar_name(c,e),b.$check_duplicate_pattern_variable(c,e),b.parser.$static_env().$declare(c),b.$n("match_var",[c],d(d(y('Source'),'Map'),'Variable').$new(e,f))}),b(s,'$match_hash_var_from_str',function(k,l,i){var j,b=this,e=a,h=a,f=a,n=a,o=a,p=a;switch(c(m(l.$length(),1))&&b.$diagnostic("error","pm_interp_in_var_name",a,b.$loc(k).$join(b.$loc(i))),e=l['$[]'](0),e.$type().valueOf()){case"str":return j=[].concat(g(e)),h=j[0]==null?a:j[0],j,f=e.$loc().$expression(),b.$check_lvar_name(h,f),b.$check_duplicate_pattern_variable(h,f),b.parser.$static_env().$declare(h),c(n=e.$loc().$begin())&&(f=f.$adjust(new Map([["begin_pos",n.$length()]]))),c(o=e.$loc().$end())&&(f=f.$adjust(new Map([["end_pos",o.$length()['$-@']()]]))),p=b.$loc(k).$join(e.$loc().$expression()).$join(b.$loc(i)),b.$n("match_var",[h.$to_sym()],d(d(y('Source'),'Map'),'Variable').$new(f,p));case"begin":return b.$match_hash_var_from_str(k,e.$children(),i);default:return b.$diagnostic("error","pm_interp_in_var_name",a,b.$loc(k).$join(b.$loc(i)))}}),b(s,'$match_rest',function(f,d){var b=this,e=a;return d==null&&(d=a),c(d['$nil?']())?b.$n0("match_rest",b.$unary_op_map(f)):(e=b.$match_var(d),b.$n("match_rest",[e],b.$unary_op_map(f,e)))},-2),b(s,'$hash_pattern',function(d,e,f){var b=this,c=a;return c=b.$check_duplicate_args(e),b.$n("hash_pattern",c,b.$collection_map(d,c,f))}),b(s,'$array_pattern',function(i,f,j){var b=this,d=a,g=a,k=a;return c(f['$nil?']())?b.$n("array_pattern",a,b.$collection_map(i,[],j)):(d=!1,g=h(f,'map',[],function(b){return b==null&&(b=a),e(b.$type(),"match_with_trailing_comma")?(d=!0,b.$children().$first()):(d=!1,b)}),k=c(d)?"array_pattern_with_tail":"array_pattern",b.$n(k,g,b.$collection_map(i,f,j)))}),b(s,'$find_pattern',function(c,a,d){var b=this;return b.$n("find_pattern",a,b.$collection_map(c,a,d))}),b(s,'$match_with_trailing_comma',function(b,c){var a=this;return a.$n("match_with_trailing_comma",[b],a.$expr_map(b.$loc().$expression().$join(a.$loc(c))))}),b(s,'$const_pattern',function(b,e,f,c){var a=this;return a.$n("const_pattern",[b,f],d(d(y('Source'),'Map'),'Collection').$new(a.$loc(e),a.$loc(c),b.$loc().$expression().$join(a.$loc(c))))}),b(s,'$pin',function(c,a){var b=this;return b.$n("pin",[a],b.$send_unary_op_map(c,a))}),b(s,'$match_alt',function(b,f,c){var d=this,e=a;return e=d.$binary_op_map(b,f,c),d.$n("match_alt",[b,c],e)}),b(s,'$match_as',function(b,f,c){var d=this,e=a;return e=d.$binary_op_map(b,f,c),d.$n("match_as",[b,c],e)}),b(s,'$match_nil_pattern',function(b,c){var a=this;return a.$n0("match_nil_pattern",a.$arg_prefix_map(b,c))}),b(s,'$match_pair',function(o,f,l){var d,i,b=this,g=a,j=a,h=a,k=a,m=a;return e(o,"label")?(b.$check_duplicate_pattern_key(f['$[]'](0),f['$[]'](1)),b.$pair_keyword(f,l)):(i=f,d=n(i),g=d[0]==null?a:d[0],j=d[1]==null?a:d[1],h=d[2]==null?a:d[2],i,k=b.$loc(g).$join(b.$loc(h)),c(m=b.$static_string(j))?b.$check_duplicate_pattern_key(m,k):b.$diagnostic("error","pm_interp_in_var_name",a,k),b.$pair_quoted(g,j,h,l))}),b(s,'$match_label',function(j,g){var b,c,h=this,d=a,f=a,i=a;return e(j,"label")?h.$match_hash_var(g):(c=g,b=n(c),d=b[0]==null?a:b[0],f=b[1]==null?a:b[1],i=b[2]==null?a:b[2],c,h.$match_hash_var_from_str(d,f,i))}),s.$private(),b(s,'$check_condition',function(b){var d,f=this,h=a,i=a,j=a,k=a,l=a,m=a;switch(b.$type().valueOf()){case"masgn":return c(x(f.parser.$version(),23))?f.$diagnostic("error","masgn_as_condition",a,b.$loc().$expression()):b;break;case"begin":return e(b.$children().$count(),1)?b.$updated(a,[f.$check_condition(b.$children().$last())]):b;break;case"and":case"or":return d=[].concat(g(b)),h=d[0]==null?a:d[0],i=d[1]==null?a:d[1],d,e(f.parser.$version(),18)?b:b.$updated(b.$type(),[f.$check_condition(h),f.$check_condition(i)]);break;case"irange":case"erange":return d=[].concat(g(b)),h=d[0]==null?a:d[0],i=d[1]==null?a:d[1],d,j=t("irange",k=b.$type())?"iflipflop":t("erange",k)?"eflipflop":a,c(h['$nil?']())||(l=f.$check_condition(h)),c(i['$nil?']())||(m=f.$check_condition(i)),b.$updated(j,[l,m]);case"regexp":return f.$n("match_current_line",[b],f.$expr_map(b.$loc().$expression()));default:return b}}),b(s,'$check_duplicate_args',function(d,b){var e=this;return b==null&&(b=new Map),h(d,'each',[],function f(d){var e=f.$$s==null?this:f.$$s;switch(d==null&&(d=a),d.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return e.$check_duplicate_arg(d,b);case"procarg0":return c(d.$children()['$[]'](0)['$is_a?'](y('Symbol')))?e.$check_duplicate_arg(d,b):e.$check_duplicate_args(d.$children(),b);break;case"mlhs":return e.$check_duplicate_args(d.$children(),b);default:return a}},{$$s:e})},-2),b(s,'$check_duplicate_arg',function(i,e){var b,j=this,f=a,d=a,k=a;return e==null&&(e=new Map),b=[].concat(g(i)),f=b[0]==null?a:b[0],b,d=e['$[]'](f),b=[].concat(g(d)),k=b[0]==null?a:b[0],b,c(d['$nil?']())?(b=[f,i],h(e,'[]=',b),b[b.length-1]):c(j['$arg_name_collides?'](f,k))?j.$diagnostic("error","duplicate_argument",a,i.$loc().$name(),[d.$loc().$name()]):a},-2),b(s,'$validate_no_forward_arg_after_restarg',function(d){var e=this,b=a,c=a;return b=a,c=a,h(d,'each',[],function(d){switch(d==null&&(d=a),d.$type().valueOf()){case"restarg":return b=d;case"forward_arg":return c=d;default:return a}}),i(c['$nil?']())&&i(b['$nil?']())?e.$diagnostic("error","forward_arg_after_restarg",a,c.$loc().$expression(),[b.$loc().$expression()]):a}),b(s,'$check_assignment_to_numparam',function(e,h){var b=this,f=a,g=a,d=a;return c(r(b.parser.$version(),27))?a:(f=c(g=c(d=b.parser.$context()['$in_dynamic_block?']())?e['$=~'](/^_([1-9])$/):d)?b.parser.$max_numparam_stack()['$has_numparams?']():g,c(f))?b.$diagnostic("error","cant_assign_to_numparam",new Map([["name",e]]),h):a}),b(s,'$check_reserved_for_numparam',function(b,e){var d=this;return c(r(d.parser.$version(),30))?a:c(b['$=~'](/^_([1-9])$/))?d.$diagnostic("error","reserved_for_numparam",new Map([["name",b]]),e):a}),b(s,'$arg_name_collides?',function(b,e){var g=this,d=a,f=a;switch(g.parser.$version().valueOf()){case 18:return b['$=='](e);case 19:return c(d=b['$!=']("_"))?b['$=='](e):d;break;default:return c(d=c(f=b)?b['$[]'](0)['$!=']("_"):f)?b['$=='](e):d}}),b(s,'$check_lvar_name',function(b,d){var e=this;return c(b['$=~'](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?a:e.$diagnostic("error","lvar_name",new Map([["name",b]]),d)}),b(s,'$check_duplicate_pattern_variable',function(b,e){var d=this;return c(b.$to_s()['$start_with?']("_"))?a:(c(d.parser.$pattern_variables()['$declared?'](b))&&d.$diagnostic("error","duplicate_variable_name",new Map([["name",b.$to_s()]]),e),d.parser.$pattern_variables().$declare(b))}),b(s,'$check_duplicate_pattern_key',function(a,d){var b=this;return c(b.parser.$pattern_hash_keys()['$declared?'](a))&&b.$diagnostic("error","duplicate_pattern_key",new Map([["name",a.$to_s()]]),d),b.parser.$pattern_hash_keys().$declare(a)}),b(s,'$n',function(a,b,c){return d(y('AST'),'Node').$new(a,b,new Map([["location",c]]))}),b(s,'$n0',function(a,b){var c=this;return c.$n(a,[],b)}),b(s,'$join_exprs',function(a,b){return a.$loc().$expression().$join(b.$loc().$expression())}),b(s,'$token_map',function(a){var b=this;return d(y('Source'),'Map').$new(b.$loc(a))}),b(s,'$delimited_string_map',function(c){var e=this,b=a,f=a,g=a;return b=e.$loc(c),f=b.$with(new Map([["end_pos",k(b.$begin_pos(),1)]])),g=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),d(d(y('Source'),'Map'),'Collection').$new(f,g,e.$loc(c))}),b(s,'$prefix_string_map',function(c){var e=this,b=a,f=a;return b=e.$loc(c),f=b.$with(new Map([["end_pos",k(b.$begin_pos(),1)]])),d(d(y('Source'),'Map'),'Collection').$new(f,a,e.$loc(c))}),b(s,'$unquoted_map',function(b){var c=this;return d(d(y('Source'),'Map'),'Collection').$new(a,a,c.$loc(b))}),b(s,'$pair_keyword_map',function(f,g){var h=this,b=a,e=a,c=a;return b=h.$loc(f),e=b.$adjust(new Map([["end_pos",-1]])),c=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),[d(d(y('Source'),'Map'),'Collection').$new(a,a,e),d(d(y('Source'),'Map'),'Operator').$new(c,b.$join(g.$loc().$expression()))]}),b(s,'$pair_quoted_map',function(i,g,h){var c=this,b=a,e=a,f=a;return b=c.$loc(g),e=b.$with(new Map([["begin_pos",j(b.$end_pos(),2)],["end_pos",j(b.$end_pos(),1)]])),f=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),[[c.$value(g),e],d(d(y('Source'),'Map'),'Operator').$new(f,c.$loc(i).$join(h.$loc().$expression()))]}),b(s,'$expr_map',function(a){return d(y('Source'),'Map').$new(a)}),b(s,'$collection_map',function(e,h,f){var b=this,g=a;return c(e['$nil?']())||c(f['$nil?']())?c(h['$any?']())?g=b.$join_exprs(h.$first(),h.$last()):i(e['$nil?']())?g=b.$loc(e):i(f['$nil?']())&&(g=b.$loc(f)):g=b.$loc(e).$join(b.$loc(f)),d(d(y('Source'),'Map'),'Collection').$new(b.$loc(e),b.$loc(f),g)}),b(s,'$string_map',function(e,f,g){var b=this,h=a;return c(e)&&c(b.$value(e)['$start_with?']("<<"))?(c(f['$any?']())?h=b.$join_exprs(f.$first(),f.$last()):h=b.$loc(g).$begin(),d(d(y('Source'),'Map'),'Heredoc').$new(b.$loc(e),h,b.$loc(g))):b.$collection_map(e,f,g)}),b(s,'$regexp_map',function(b,c,e){var a=this;return d(d(y('Source'),'Map'),'Collection').$new(a.$loc(b),a.$loc(c),a.$loc(b).$join(e.$loc().$expression()))}),b(s,'$constant_map',function(g,h,e){var b=this,f=a;return c(g['$nil?']())?f=b.$loc(e):f=g.$loc().$expression().$join(b.$loc(e)),d(d(y('Source'),'Map'),'Constant').$new(b.$loc(h),b.$loc(e),f)}),b(s,'$variable_map',function(a){var b=this;return d(d(y('Source'),'Map'),'Variable').$new(b.$loc(a))}),b(s,'$binary_op_map',function(b,c,e){var a=this;return d(d(y('Source'),'Map'),'Operator').$new(a.$loc(c),a.$join_exprs(b,e))}),b(s,'$unary_op_map',function(e,b){var f=this,g=a;return b==null&&(b=a),c(b['$nil?']())?g=f.$loc(e):g=f.$loc(e).$join(b.$loc().$expression()),d(d(y('Source'),'Map'),'Operator').$new(f.$loc(e),g)},-2),b(s,'$range_map',function(b,h,e){var f=this,g=a;return c(b)&&c(e)?g=f.$join_exprs(b,e):c(b)?g=b.$loc().$expression().$join(f.$loc(h)):c(e)&&(g=f.$loc(h).$join(e.$loc().$expression())),d(d(y('Source'),'Map'),'Operator').$new(f.$loc(h),g)}),b(s,'$arg_prefix_map',function(g,b){var e=this,f=a;return b==null&&(b=a),c(b['$nil?']())?f=e.$loc(g):f=e.$loc(g).$join(e.$loc(b)),d(d(y('Source'),'Map'),'Variable').$new(e.$loc(b),f)},-2),b(s,'$kwarg_map',function(f,b){var g=this,h=a,i=a,e=a;return b==null&&(b=a),h=g.$loc(f),i=h.$adjust(new Map([["end_pos",-1]])),c(b)?e=g.$loc(f).$join(b.$loc().$expression()):e=g.$loc(f),d(d(y('Source'),'Map'),'Variable').$new(i,e)},-2),b(s,'$module_definition_map',function(g,f,h,i){var b=this,e=a;return c(f)&&(e=f.$loc().$expression()),d(d(y('Source'),'Map'),'Definition').$new(b.$loc(g),b.$loc(h),e,b.$loc(i))}),b(s,'$definition_map',function(c,e,f,g){var b=this;return d(d(y('Source'),'Map'),'MethodDefinition').$new(b.$loc(c),b.$loc(e),b.$loc(f),b.$loc(g),a,a)}),b(s,'$endless_definition_map',function(i,e,f,g,h){var b=this,c=a;return c=h.$loc().$expression(),d(d(y('Source'),'Map'),'MethodDefinition').$new(b.$loc(i),b.$loc(e),b.$loc(f),a,b.$loc(g),c)}),b(s,'$send_map',function(k,l,f,j,g,e){var b=this,i=a,h=a;return j==null&&(j=a),g==null&&(g=[]),e==null&&(e=a),c(k)?i=k.$loc().$expression():c(f)&&(i=b.$loc(f)),c(e)?h=b.$loc(e):c(g['$any?']())?h=g.$last().$loc().$expression():c(f)&&(h=b.$loc(f)),d(d(y('Source'),'Map'),'Send').$new(b.$loc(l),b.$loc(f),b.$loc(j),b.$loc(e),i.$join(h))},-4),b(s,'$var_send_map',function(b){return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc().$expression(),a,a,b.$loc().$expression())}),b(s,'$send_binary_op_map',function(c,e,f){var b=this;return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc(e),a,a,b.$join_exprs(c,f))}),b(s,'$send_unary_op_map',function(b,g){var e=this,f=a;return c(g['$nil?']())?f=e.$loc(b):f=e.$loc(b).$join(g.$loc().$expression()),d(d(y('Source'),'Map'),'Send').$new(a,e.$loc(b),a,a,f)}),b(s,'$index_map',function(c,e,b){var a=this;return d(d(y('Source'),'Map'),'Index').$new(a.$loc(e),a.$loc(b),c.$loc().$expression().$join(a.$loc(b)))}),b(s,'$send_index_map',function(e,f,c){var b=this;return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc(f).$join(b.$loc(c)),a,a,e.$loc().$expression().$join(b.$loc(c)))}),b(s,'$block_map',function(c,e,b){var a=this;return d(d(y('Source'),'Map'),'Collection').$new(a.$loc(e),a.$loc(b),c.$join(a.$loc(b)))}),b(s,'$keyword_map',function(h,k,b,g){var e=this,j=a,f=a;return b=c(j=b)?j:[],c(g)?f=e.$loc(g):c(b['$any?']())&&i(b.$last()['$nil?']())?f=b.$last().$loc().$expression():c(b['$any?']())&&c(m(b.$count(),1))?f=b['$[]'](-2).$loc().$expression():f=e.$loc(h),d(d(y('Source'),'Map'),'Keyword').$new(e.$loc(h),e.$loc(k),e.$loc(g),e.$loc(h).$join(f))}),b(s,'$keyword_mod_map',function(c,e,f){var b=this;return d(d(y('Source'),'Map'),'Keyword').$new(b.$loc(e),a,a,b.$join_exprs(c,f))}),b(s,'$condition_map',function(k,l,j,h,i,f,g){var b=this,e=a;return c(g)?e=b.$loc(g):c(f)&&c(f.$loc().$expression())?e=f.$loc().$expression():c(b.$loc(i))?e=b.$loc(i):c(h)&&c(h.$loc().$expression())?e=h.$loc().$expression():c(b.$loc(j))?e=b.$loc(j):e=l.$loc().$expression(),d(d(y('Source'),'Map'),'Condition').$new(b.$loc(k),b.$loc(j),b.$loc(i),b.$loc(g),b.$loc(k).$join(e))}),b(s,'$ternary_map',function(b,c,g,e,f){var a=this;return d(d(y('Source'),'Map'),'Ternary').$new(a.$loc(c),a.$loc(e),a.$join_exprs(b,f))}),b(s,'$for_map',function(b,e,f,c){var a=this;return d(d(y('Source'),'Map'),'For').$new(a.$loc(b),a.$loc(e),a.$loc(f),a.$loc(c),a.$loc(b).$join(a.$loc(c)))}),b(s,'$rescue_body_map',function(g,j,k,i,f,h){var e=this,b=a;return c(h)&&(b=h.$loc().$expression()),c(b['$nil?']())&&c(f)&&(b=e.$loc(f)),c(b['$nil?']())&&c(i)&&(b=i.$loc().$expression()),c(b['$nil?']())&&c(j)&&(b=j.$loc().$expression()),c(b['$nil?']())&&(b=e.$loc(g)),d(d(y('Source'),'Map'),'RescueBody').$new(e.$loc(g),e.$loc(k),e.$loc(f),e.$loc(g).$join(b))}),b(s,'$eh_keyword_map',function(l,g,h,j,k){var b=this,f=a,e=a;return c(l['$nil?']())?c(g['$nil?']())?f=h.$first().$loc().$expression():f=b.$loc(g):f=l.$loc().$expression(),c(j)?c(k['$nil?']())?e=b.$loc(j):e=k.$loc().$expression():i(h.$last()['$nil?']())?e=h.$last().$loc().$expression():e=b.$loc(g),d(d(y('Source'),'Map'),'Condition').$new(b.$loc(g),a,b.$loc(j),a,f.$join(e))}),b(s,'$guard_map',function(e,f){var g=this,b=a,c=a;return b=g.$loc(e),c=f.$loc().$expression(),d(d(y('Source'),'Map'),'Keyword').$new(b,a,a,b.$join(c))}),b(s,'$static_string',function(e){var b,d;try{return b=v('return'),d=this,h(e,'map',[],function e(d){var g=e.$$s==null?this:e.$$s,f=a;switch(d==null&&(d=a),d.$type().valueOf()){case"str":return d.$children()['$[]'](0);case"begin":if(c(f=g.$static_string(d.$children())))return f;b.$throw(a,e.$$is_lambda);break;default:b.$throw(a,e.$$is_lambda)}},{$$s:d,$$ret:b}).$join()}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}),b(s,'$static_regexp',function(h,e){var f,i=this,b=a,g=a;return l.VERBOSE==null&&(l.VERBOSE=a),b=i.$static_string(h),c(b['$nil?']())?a:(b=c(e.$children()['$include?']("u"))?b.$encode(d(y('Encoding'),'UTF_8')):c(e.$children()['$include?']("e"))?b.$encode(d(y('Encoding'),'EUC_JP')):c(e.$children()['$include?']("s"))?b.$encode(d(y('Encoding'),'WINDOWS_31J')):c(e.$children()['$include?']("n"))?b.$encode(d(y('Encoding'),'BINARY')):b,function(){try{return f=[l.VERBOSE,a],g=f[0],l.VERBOSE=f[1],f,y('Regexp').$new(b,c(e.$children()['$include?']("x"))?d(y('Regexp'),'EXTENDED'):a)}finally{l.VERBOSE=g}}())}),b(s,'$static_regexp_node',function(b){var d,f=this,g=a,i=a;return e(b.$type(),"regexp")?c(p(f.parser.$version(),33))&&c(h(b.$children()['$[]'](o(0,-2,!1)),'any?',[],function(b){return b==null&&(b=a),b.$type()['$!=']("str")}))?a:(d=[b.$children()['$[]'](o(0,-2,!1)),b.$children()['$[]'](-1)],g=d[0],i=d[1],d,f.$static_regexp(g,i)):a}),b(s,'$collapse_string_parts?',function(b){var d=a;return c(d=b['$one?']())?["str","dstr"]['$include?'](b.$first().$type()):d}),b(s,'$value',function(a){return a['$[]'](0)}),b(s,'$string_value',function(b){var d=this;return c(b['$[]'](0)['$valid_encoding?']())||d.$diagnostic("error","invalid_encoding",a,b['$[]'](1)),b['$[]'](0)}),b(s,'$loc',function(b){return c(b)&&c(b['$[]'](0))?b['$[]'](1):a}),b(s,'$diagnostic',function(d,f,g,h,b){var c=this;return b==null&&(b=[]),c.parser.$diagnostics().$process(y('Diagnostic').$new(d,f,g,h,b)),e(d,"error")?c.parser.$send("yyerror"):a},-5),b(s,'$validate_definee',function(b){var c=this;switch(b.$type().valueOf()){case"int":case"str":case"dstr":case"sym":case"dsym":case"regexp":case"array":case"hash":return c.$diagnostic("error","singleton_literal",a,b.$loc().$expression()),!1;default:return!0}}),b(s,'$rewrite_hash_args_to_kwargs',function(b){var d,f=this;return c(b['$any?']())&&c(f['$kwargs?'](b.$last()))?(d=[j(b.$length(),1),b['$[]'](j(b.$length(),1)).$updated("kwargs")],h(b,'[]=',d),d[d.length-1]):c(m(b.$length(),1))&&e(b.$last().$type(),"block_pass")&&c(f['$kwargs?'](b['$[]'](j(b.$length(),2))))?(d=[j(b.$length(),2),b['$[]'](j(b.$length(),2)).$updated("kwargs")],h(b,'[]=',d),d[d.length-1]):a}),b(s,'$kwargs?',function(b){var d=a,e=a;return c(d=c(e=b.$type()['$==']("hash"))?b.$loc().$begin()['$nil?']():e)?b.$loc().$end()['$nil?']():d})}(D('Builders'),null,s)}(s[0],s)},Opal.modules["parser/context"]=function(a){var d=a.module,i=a.klass,e=a.const_set,b=a.def,f=a.send,g=a.to_a,h=a.truthy,c=[],j=a.nil;return a.add_stubs('reset,attr_accessor,in_block,in_lambda'),function(k,l){var m=d(k,'Parser'),c=[m].concat(l);return function(k,l,m){var c=i(k,l,'Context'),d=[c].concat(m),n=a.$r(d);return e(d[0],'FLAGS',["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda","cant_return"]),b(c,'$initialize',function(){var a=this;return a.$reset()}),b(c,'$reset',function(){var a=this;return a.in_defined=!1,a.in_kwarg=!1,a.in_argdef=!1,a.in_def=!1,a.in_class=!1,a.in_block=!1,a.in_lambda=!1,a.cant_return=!1}),f(c,'attr_accessor',g(n('FLAGS'))),b(c,'$in_dynamic_block?',function(){var a=this,b=j;return h(b=a.$in_block())?b:a.$in_lambda()})}(c[0],null,c)}(c[0],c)},Opal.modules["parser/max_numparam_stack"]=function(a){var e=a.module,f=a.klass,g=a.const_set,b=a.def,l=a.truthy,h=a.rb_gt,i=a.ensure_kwargs,j=a.get_kwarg,k=a.send,d=[],c=a.nil;return a.add_stubs('attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]='),function(m,n){var o=e(m,'Parser'),d=[o].concat(n);return function(n,o,p){var d=f(n,o,'MaxNumparamStack'),e=[d].concat(p),m=a.$r(e),q=d.$$prototype;return q.stack=c,d.$attr_reader("stack"),g(e[0],'ORDINARY_PARAMS',-1),b(d,'$initialize',function(){var a=this;return a.stack=[]}),b(d,'$empty?',function(){var a=this;return a.stack.$size()['$=='](0)}),b(d,'$has_ordinary_params!',function(){var a=this;return a.$set(m('ORDINARY_PARAMS'))}),b(d,'$has_ordinary_params?',function(){var a=this;return a.$top()['$=='](m('ORDINARY_PARAMS'))}),b(d,'$has_numparams?',function(){var a=this,b=c;return l(b=a.$top())?h(a.$top(),0):b}),b(d,'$register',function(b){var a=this;return a.$set([a.$top(),b].$max())}),b(d,'$top',function(){var a=this;return a.stack.$last()['$[]']("value")}),b(d,'$push',function(a){var b,c=this;return a=i(a),b=j(a,"static"),c.stack.$push(new Map([["value",0],["static",b]]))}),b(d,'$pop',function(){var a=this;return a.stack.$pop()['$[]']("value")}),d.$private(),b(d,'$set',function(b){var a,c=this;return a=["value",b],k(c.stack.$last(),'[]=',a),a[a.length-1]})}(d[0],null,d)}(d[0],d)},Opal.modules["parser/current_arg_stack"]=function(a){var d=a.module,e=a.klass,b=a.def,f=a.rb_minus,g=a.send,c=[],h=a.nil;return a.add_stubs('attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last'),function(a,c){var i=d(a,'Parser'),j=[i].concat(c);return function(c,d){var a=e(c,d,'CurrentArgStack'),i=a.$$prototype;return i.stack=h,a.$attr_reader("stack"),b(a,'$initialize',function(){var a=this;return a.stack=[],a.$freeze()}),b(a,'$empty?',function(){var a=this;return a.stack.$size()['$=='](0)}),b(a,'$push',function(a){var b=this;return b.stack['$<<'](a)}),b(a,'$set',function(c){var a,b=this;return a=[f(b.stack.$length(),1),c],g(b.stack,'[]=',a),a[a.length-1]}),b(a,'$pop',function(){var a=this;return a.stack.$pop()}),b(a,'$reset',function(){var a=this;return a.stack.$clear()}),b(a,'$top',function(){var a=this;return a.stack.$last()})}(j[0],null)}(c[0],c)},Opal.modules["parser/variables_stack"]=function(b){var d=b.module,e=b.klass,a=b.def,c=[],f=b.nil;return b.add_stubs('push,empty?,<<,new,pop,clear,last,to_sym,include?'),function(g,h){var i=d(g,'Parser'),c=[i].concat(h);return function(d,g,h){var c=e(d,g,'VariablesStack'),i=[c].concat(h),j=b.$r(i),k=c.$$prototype;return k.stack=f,a(c,'$initialize',function(){var a=this;return a.stack=[],a.$push()}),a(c,'$empty?',function(){var a=this;return a.stack['$empty?']()}),a(c,'$push',function(){var a=this;return a.stack['$<<'](j('Set').$new())}),a(c,'$pop',function(){var a=this;return a.stack.$pop()}),a(c,'$reset',function(){var a=this;return a.stack.$clear()}),a(c,'$declare',function(a){var b=this;return b.stack.$last()['$<<'](a.$to_sym())}),a(c,'$declared?',function(a){var b=this;return b.stack.$last()['$include?'](a.$to_sym())})}(c[0],null,c)}(c[0],c)},Opal.modules["parser/base"]=function(b){var n=b.module,o=b.klass,f=b.defs,e=b.send,g=b.gvars,j=b.eqeq,h=b.truthy,c=b.def,m=b.not,k=b.eqeqeq,i=b.to_ary,l=[],a=b.nil,d=b.$$$;return b.add_stubs('default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,lambda,puts,render,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(p,q){var r=n(p,'Parser'),l=[r].concat(q),s=b.$r(l);return function(t,q,r){var l=o(t,q,'Base'),s=[l].concat(r),n=b.$r(s),p=l.$$prototype;return p.lexer=p.diagnostics=p.static_env=p.context=p.builder=p.current_arg_stack=p.pattern_variables=p.pattern_hash_keys=a,f(l,'$parse',function(g,b,c){var f=this,d=a,e=a;return b==null&&(b="(string)"),c==null&&(c=1),d=f.$default_parser(),e=f.$setup_source_buffer(b,c,g,d.$default_encoding()),d.$parse(e)},-2),f(l,'$parse_with_comments',function(g,b,c){var f=this,d=a,e=a;return b==null&&(b="(string)"),c==null&&(c=1),d=f.$default_parser(),e=f.$setup_source_buffer(b,c,g,d.$default_encoding()),d.$parse_with_comments(e)},-2),f(l,'$parse_file',function(a){var b=this;return b.$parse(n('File').$read(a),a)}),f(l,'$parse_file_with_comments',function(a){var b=this;return b.$parse_with_comments(n('File').$read(a),a)}),f(l,'$default_parser',function(){var c=this,b=a;return b=c.$new(),b.$diagnostics()['$all_errors_are_fatal='](!0),b.$diagnostics()['$ignore_warnings='](!0),b.$diagnostics()['$consumer='](e(c,'lambda',[],function(b){return g.stderr==null&&(g.stderr=a),b==null&&(b=a),g.stderr.$puts(b.$render())})),b}),f(l,'$setup_source_buffer',function(e,f,c,g){var h=this,b=a;return c=c.$dup().$force_encoding(g),b=d(n('Source'),'Buffer').$new(e,f),j(h.$name(),"Parser::Ruby18")?b['$raw_source='](c):b['$source='](c),b}),l.$private_class_method("setup_source_buffer"),l.$attr_reader("lexer"),l.$attr_reader("diagnostics"),l.$attr_reader("builder"),l.$attr_reader("static_env"),l.$attr_reader("source_buffer"),l.$attr_reader("context"),l.$attr_reader("max_numparam_stack"),l.$attr_reader("current_arg_stack"),l.$attr_reader("pattern_variables"),l.$attr_reader("pattern_hash_keys"),c(l,'$initialize',function(c){var b=this;return c==null&&(c=d(d(n('Parser'),'Builders'),'Default').$new()),b.diagnostics=d(n('Diagnostic'),'Engine').$new(),b.static_env=n('StaticEnvironment').$new(),b.context=n('Context').$new(),b.max_numparam_stack=n('MaxNumparamStack').$new(),b.current_arg_stack=n('CurrentArgStack').$new(),b.pattern_variables=n('VariablesStack').$new(),b.pattern_hash_keys=n('VariablesStack').$new(),b.lexer=n('Lexer').$new(b.$version()),b.lexer['$diagnostics='](b.diagnostics),b.lexer['$static_env='](b.static_env),b.lexer['$context='](b.context),b.builder=c,b.builder['$parser='](b),b.last_token=a,h(d(b.$class(),'Racc_debug_parser'))&&h(n('ENV')['$[]']("RACC_DEBUG"))&&(b.yydebug=!0),b.$reset()},-1),c(l,'$reset',function(){var b=this;return b.source_buffer=a,b.lexer.$reset(),b.static_env.$reset(),b.context.$reset(),b.current_arg_stack.$reset(),b.pattern_variables.$reset(),b.pattern_hash_keys.$reset(),b}),c(l,'$parse',function(d){var c,b=this,f=a;return function(){try{return b.lexer['$source_buffer='](d),b.source_buffer=d,h(f=b.$do_parse())?f:a}finally{b.source_buffer=a,(c=[a],e(b.lexer,'source_buffer=',c),c[c.length-1])}}()}),c(l,'$parse_with_comments',function(d){var b,c=this;return function(){try{return c.lexer['$comments=']([]),[c.$parse(d),c.lexer.$comments()]}finally{b=[a],e(c.lexer,'comments=',b),b[b.length-1]}}()}),c(l,'$tokenize',function(i,g){var c,f=this,h=a;return g==null&&(g=!1),function(){try{f.lexer['$tokens=']([]),f.lexer['$comments=']([]);try{h=f.$parse(i)}catch(a){if(b.rescue(a,[d(n('Parser'),'SyntaxError')]))try{m(g)&&f.$raise()}finally{b.pop_exception(a)}else throw a}return[h,f.lexer.$comments(),f.lexer.$tokens()]}finally{c=[a],e(f.lexer,'tokens=',c),c[c.length-1],(c=[a],e(f.lexer,'comments=',c),c[c.length-1])}}()},-2),l.$private(),c(l,'$next_token',function(){var c=this,b=a;return b=c.lexer.$advance(),c.last_token=b,b}),c(l,'$check_kwarg_name',function(b){var d=this,c=a;return k(/^[a-z_]/,c=b['$[]'](0))?a:k(/^[A-Z]/,c)?d.$diagnostic("error","argument_const",a,b):a}),c(l,'$diagnostic',function(k,m,o,p,d){var b,c,f=this,g=a,h=a,l=a;return d==null&&(d=[]),c=p,b=i(c),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],c,l=e(d,'map',[],function(c){var b,d,e=a;return c==null&&(c=a),d=c,b=i(d),g=b[0]==null?a:b[0],e=b[1]==null?a:b[1],d,e}),f.diagnostics.$process(n('Diagnostic').$new(k,m,o,h,l)),j(k,"error")?f.$yyerror():a},-5),c(l,'$on_error',function(h,g,l){var b,c,d=this,e=a,j=a,f=a;return e=d.$token_to_str(h),c=g,b=i(c),j=b[0]==null?a:b[0],f=b[1]==null?a:b[1],c,d.diagnostics.$process(n('Diagnostic').$new("error","unexpected_token",new Map([["token",e]]),f))})}(l[0],d(s('Racc'),'Parser'),l)}(l[0],l)},Opal.modules["parser/rewriter"]=function(a){var f=a.module,g=a.klass,b=a.def,k=a.const_set,l=a.slice,h=a.send2,i=a.find_super,j=a.to_a,e=[],d=a.nil,c=a.$$$;return a.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation='),function(m,n){var o=f(m,'Parser'),e=[o].concat(n),p=a.$r(e);return function(n,o,p){var e=g(n,o,'Rewriter'),m=[e].concat(p),f=a.$r(m),q=e.$$prototype;return q.source_rewriter=d,b(e,'$rewrite',function(b,d){var a=this;return a.source_rewriter=c(f('Source'),'Rewriter').$new(b),a.$process(d),a.source_rewriter.$process()}),b(e,'$assignment?',function(a){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]['$include?'](a.$type())}),b(e,'$remove',function(a){var b=this;return b.source_rewriter.$remove(a)}),b(e,'$wrap',function(a,b,c){var d=this;return d.source_rewriter.$wrap(a,b,c)}),b(e,'$insert_before',function(a,b){var c=this;return c.source_rewriter.$insert_before(a,b)}),b(e,'$insert_after',function(a,b){var c=this;return c.source_rewriter.$insert_after(a,b)}),b(e,'$replace',function(a,b){var c=this;return c.source_rewriter.$replace(a,b)}),k(m[0],'DEPRECATION_WARNING',["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),e.$extend(f('Deprecation')),b(e,'$initialize',function a(m){var e,g,k=a.$$p||d,b=this;return a.$$p=null,e=l(arguments),g=e,b.$class().$warn_of_deprecation(),c(f('Source'),'Rewriter')['$warned_of_deprecation='](!0),h(b,i(b,'initialize',a,!1,!0),'initialize',j(g),k)},-1)}(e[0],c(c(p('Parser'),'AST'),'Processor'),e)}(e[0],e)},Opal.modules["parser/tree_rewriter"]=function(a){var e=a.module,i=a.klass,f=a.ensure_kwargs,g=a.kwrestargs,b=a.def,d=[],h=a.nil,c=a.$$$;return a.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace'),function(j,k){var l=e(j,'Parser'),d=[l].concat(k),m=a.$r(d);return function(e,j,k){var d=i(e,j,'TreeRewriter'),l=[d].concat(k),m=a.$r(l),n=d.$$prototype;return n.source_rewriter=h,b(d,'$rewrite',function(h,i,b){var e,d=this;return b=f(b),e=g(b,{}),d.source_rewriter=c(c(m('Parser'),'Source'),'TreeRewriter').$new(h,a.to_hash(e)),d.$process(i),d.source_rewriter.$process()},-3),b(d,'$assignment?',function(a){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]['$include?'](a.$type())}),b(d,'$remove',function(a){var b=this;return b.source_rewriter.$remove(a)}),b(d,'$wrap',function(a,b,c){var d=this;return d.source_rewriter.$wrap(a,b,c)}),b(d,'$insert_before',function(a,b){var c=this;return c.source_rewriter.$insert_before(a,b)}),b(d,'$insert_after',function(a,b){var c=this;return c.source_rewriter.$insert_after(a,b)}),b(d,'$replace',function(a,b){var c=this;return c.source_rewriter.$replace(a,b)})}(d[0],c(c(m('Parser'),'AST'),'Processor'),d)}(d[0],d)},Opal.modules.parser=function(a){var f=a.truthy,c=a.module,g=a.eqeq,b=a.top,e=[],d=a.$r(e),i=a.nil,h=a.$$$;return a.add_stubs('=~,raise,require,=='),f(d('RUBY_VERSION')['$=~'](/^1\.[89]\./))&&(b.$require("./parser.rb/../parser/version"),b.$raise(d('LoadError'),"parser v"+h(d('Parser'),'VERSION')+" cannot run on Ruby "+d('RUBY_VERSION')+".\n"+"Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),b.$require("set"),b.$require("racc/parser"),b.$require("ast"),function(e,f){var b=c(e,'Parser'),d=[b].concat(f),h=a.$r(d);return b.$require("./parser.rb/../parser/version"),b.$require("./parser.rb/../parser/messages"),b.$require("./parser.rb/../parser/deprecation"),function(b){var a=c(b,'AST');return a.$require("./parser.rb/../parser/ast/node"),a.$require("./parser.rb/../parser/ast/processor"),a.$require("./parser.rb/../parser/meta")}(d[0]),function(b){var a=c(b,'Source');return a.$require("./parser.rb/../parser/source/buffer"),a.$require("./parser.rb/../parser/source/range"),a.$require("./parser.rb/../parser/source/comment"),a.$require("./parser.rb/../parser/source/comment/associator"),a.$require("./parser.rb/../parser/source/rewriter"),a.$require("./parser.rb/../parser/source/rewriter/action"),a.$require("./parser.rb/../parser/source/tree_rewriter"),a.$require("./parser.rb/../parser/source/tree_rewriter/action"),a.$require("./parser.rb/../parser/source/map"),a.$require("./parser.rb/../parser/source/map/operator"),a.$require("./parser.rb/../parser/source/map/collection"),a.$require("./parser.rb/../parser/source/map/constant"),a.$require("./parser.rb/../parser/source/map/variable"),a.$require("./parser.rb/../parser/source/map/keyword"),a.$require("./parser.rb/../parser/source/map/definition"),a.$require("./parser.rb/../parser/source/map/method_definition"),a.$require("./parser.rb/../parser/source/map/send"),a.$require("./parser.rb/../parser/source/map/index"),a.$require("./parser.rb/../parser/source/map/condition"),a.$require("./parser.rb/../parser/source/map/ternary"),a.$require("./parser.rb/../parser/source/map/for"),a.$require("./parser.rb/../parser/source/map/rescue_body"),a.$require("./parser.rb/../parser/source/map/heredoc"),a.$require("./parser.rb/../parser/source/map/objc_kwarg")}(d[0]),b.$require("./parser.rb/../parser/syntax_error"),b.$require("./parser.rb/../parser/clobbering_error"),b.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),b.$require("./parser.rb/../parser/diagnostic"),b.$require("./parser.rb/../parser/diagnostic/engine"),b.$require("./parser.rb/../parser/static_environment"),g(h('RUBY_ENGINE'),"truffleruby")?b.$require("./parser.rb/../parser/lexer-F0"):b.$require("./parser.rb/../parser/lexer-F1"),b.$require("./parser.rb/../parser/lexer-strings"),b.$require("./parser.rb/../parser/lexer/literal"),b.$require("./parser.rb/../parser/lexer/stack_state"),b.$require("./parser.rb/../parser/lexer/dedenter"),function(a){var b=c(a,'Builders');return b.$require("./parser.rb/../parser/builders/default")}(d[0]),b.$require("./parser.rb/../parser/context"),b.$require("./parser.rb/../parser/max_numparam_stack"),b.$require("./parser.rb/../parser/current_arg_stack"),b.$require("./parser.rb/../parser/variables_stack"),b.$require("./parser.rb/../parser/base"),b.$require("./parser.rb/../parser/rewriter"),b.$require("./parser.rb/../parser/tree_rewriter")}(e[0],e)},Opal.modules["parser/ruby32"]=function(e){var s=e.module,r=e.klass,j=e.return_val,a=e.def,f=e.truthy,g=e.not,h=e.send,q=e.rb_gt,p=e.thrower,t=e.hash_rehash,k=e.const_set,d=e.to_a,c=e.to_ary,l=e.eqeq,i=e.slice,m=e.top,n=[],b=e.nil,o=e.$$$;return e.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,make_shareable,compstmt,<<,preexe,nil?,empty?,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?,declared_anonymous_restarg?,forwarded_restarg,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,declare_anonymous_kwrestarg,optarg,declare_anonymous_restarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,declared_anonymous_kwrestarg?,forwarded_kwrestarg,yyerrok'),m.$require("racc/parser.rb"),m.$require("parser/ruby32.rb/../../parser"),function(n,u){var v=s(n,'Parser'),m=[v].concat(u),w=e.$r(m);return function(N,M,L){var m=r(N,M,'Ruby32'),u=[m].concat(L),s=e.$r(u),z=b,A=b,B=b,I=b,D=b,E=b,F=b,G=b,H=b,v=b,w=b,x=b,y=b,C=b,n=m.$$prototype,J,K;return n.static_env=n.lexer=n.max_numparam_stack=n.context=n.current_arg_stack=n.builder=n.pattern_variables=n.pattern_hash_keys=n.last_token=b,a(m,'$version',j(32)),a(m,'$default_encoding',function(){return o(s('Encoding'),'UTF_8')}),a(m,'$endless_method_name',function(a){var c=this;return g(["===","==","!=","<=",">="]['$include?'](a['$[]'](0)))&&f(a['$[]'](0)['$end_with?']("="))?c.$diagnostic("error","endless_setter",b,a):b}),a(m,'$local_push',function(){var a=this;return a.static_env.$extend_static(),a.lexer.$cmdarg().$push(!1),a.lexer.$cond().$push(!1),a.max_numparam_stack.$push(new Map([["static",!0]]))}),a(m,'$local_pop',function(){var a=this;return a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),a.lexer.$cond().$pop(),a.max_numparam_stack.$pop()}),a(m,'$try_declare_numparam',function(i){var a=this,c=b,d=b,e=b;return!!(c=i.$children()['$[]'](0),f(c['$=~'](/^_[1-9]$/))&&g(a.$static_env()['$declared?'](c))&&f(a.context['$in_dynamic_block?']()))&&(d=i.$loc().$expression(),f(a.$max_numparam_stack()['$has_ordinary_params?']())&&a.$diagnostic("error","ordinary_param_defined",b,[b,d]),e=a.$max_numparam_stack().$stack().$dup(),e.$pop(),function(){try{var c=p('break');return h(e,'reverse_each',[],function e(a){var h=e.$$s==null?this:e.$$s,g=b;if(a==null&&(a=b),f(a['$[]']("static")))c.$throw(b,e.$$is_lambda);else return g=q(a['$[]']("value"),0),f(g)?h.$diagnostic("error","numparam_used_in_outer_scope",b,[b,d]):b},{$$s:a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),a.$static_env().$declare(c),a.$max_numparam_stack().$register(c['$[]'](1).$to_i()),!0)}),z=e.large_array_unpack("-614,222,223,222,223,234,-116,-614,-614,-614,928,623,-614,-614,-614,228,-614,312,240,664,127,265,227,623,-614,126,-614,-614,-614,222,223,225,699,666,-117,-124,-614,-614,623,-614,-614,-614,-614,-614,623,623,623,-116,-117,-729,700,-123,895,262,-124,928,927,264,263,241,312,-740,836,-626,-119,-121,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,229,307,-614,-614,-614,663,-614,-614,831,241,-614,1000,-118,-614,-614,241,-614,241,-614,665,-614,-511,-614,-614,311,-614,-614,-614,-614,-614,-123,-614,-615,-614,-119,-107,312,222,223,-615,-615,-615,-116,241,-615,-615,-615,-614,-615,127,-614,-614,-614,-614,126,-614,-615,-614,-615,-615,-615,127,-614,-108,-115,-614,126,311,-615,-615,-121,-615,-615,-615,-615,-615,127,-120,-118,989,-114,126,127,127,127,-116,-117,126,126,126,-116,-117,-124,-110,-112,-120,-122,-124,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,127,-122,-615,-615,-615,126,-615,-615,999,-109,-615,311,3,-615,-615,-729,-615,928,-615,127,-615,651,-615,-615,126,-615,-615,-615,-615,-615,-322,-615,241,-615,123,-627,-123,-322,-322,-322,-119,-123,-715,-322,-322,-119,-322,-615,-715,-716,-615,-615,-615,-615,-322,-615,228,-615,312,234,241,651,-615,305,136,-615,-322,-322,-110,-322,-322,-322,-322,-322,104,105,-121,241,-716,219,614,-121,-112,-120,-118,653,652,525,-120,-118,104,105,-111,-113,-117,862,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,220,228,-322,-322,-322,-740,690,-322,305,-122,-322,229,307,-322,-122,653,652,649,-322,221,-322,651,-322,-322,-110,-322,-322,-322,-322,-322,238,-322,-720,-322,699,311,-124,603,-112,-720,-720,-720,106,107,-729,-720,-720,-322,-720,127,-322,-322,951,-113,126,-322,-720,-720,106,107,-109,922,-322,224,-110,-122,229,-110,-720,-720,923,-720,-720,-720,-720,-720,-102,-614,-112,-110,241,-112,-111,301,-614,653,652,651,-88,-124,685,651,127,-112,234,864,-123,126,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,362,757,-720,-720,-720,-358,691,-720,-119,363,-720,502,-358,-720,-109,686,651,-121,-720,1034,-720,-358,-720,-720,651,-720,-720,-720,-720,-720,-614,-720,-720,-720,241,-715,-111,-119,-740,653,652,649,651,653,652,649,238,-720,651,503,-720,-720,-715,-111,-109,-720,803,-109,651,-720,1062,1055,-720,234,432,-120,-720,-720,-720,-109,-358,-720,-720,-720,-121,-720,-111,127,-118,-111,653,652,126,-720,-720,-720,-720,-720,653,652,654,-111,-716,-115,473,-720,-720,1062,-720,-720,-720,-720,-720,-633,-614,-124,653,652,656,651,630,-614,653,652,658,513,-715,878,836,-740,-614,524,653,652,662,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-715,526,-720,-720,-720,-615,924,-720,222,223,-720,636,-615,-720,-720,637,-720,-716,-720,127,-720,-615,-720,-720,126,-720,-720,-720,-720,-720,-614,-720,-720,-720,653,652,667,-118,228,-615,-716,-622,-621,282,283,522,-615,-720,-622,-621,-720,-720,-720,-720,523,-720,-623,-720,-626,-322,222,223,-720,-623,-627,-120,-322,-322,-322,527,-615,-322,-322,-322,-620,-322,895,240,630,281,280,-620,-617,-322,561,-322,-322,-322,429,-617,510,509,573,431,430,-322,-322,603,-322,-322,-322,-322,-322,229,-615,-107,-622,-621,-618,-619,636,-108,575,934,959,-618,-619,-116,930,577,636,-623,931,-117,959,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-620,757,-322,-322,-322,-114,925,-322,-617,685,-322,502,241,-322,-322,617,-322,-123,-322,136,-322,241,-322,-322,617,-322,-322,-322,-322,-322,-322,-322,-87,-322,-618,-619,90,-322,-322,-322,952,953,241,-322,-322,617,-322,-322,91,503,-322,-322,-322,-322,-322,-322,-110,-322,92,984,895,1055,-322,686,241,-122,-322,-322,-119,-322,-322,-322,-322,-322,241,1147,1148,1194,494,-624,491,490,489,499,492,588,-624,878,494,589,491,490,489,502,492,-624,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-112,596,-322,-322,-322,497,690,-322,984,895,-322,316,-121,-322,507,506,510,509,-322,241,-322,503,-322,-322,-109,-322,-322,-322,-322,-322,234,-322,-720,-322,-624,234,-118,307,600,-720,-720,-720,606,265,609,-720,-720,-322,-720,241,-322,-322,618,-322,619,-322,-720,-720,577,630,421,488,-322,634,635,-122,643,668,-720,-720,671,-720,-720,-720,-720,-720,672,-293,674,675,494,-625,491,490,489,499,492,956,-625,109,108,679,241,110,683,502,684,-625,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,307,697,-720,-720,-720,497,691,-720,698,241,-720,702,958,-720,507,506,510,509,-720,705,-720,503,-720,-720,706,-720,-720,-720,-720,-720,499,-720,-720,-720,-625,708,228,710,-387,722,502,-313,228,595,723,727,729,-720,-313,605,-720,-720,593,-720,735,-720,228,-313,523,736,265,488,-720,633,265,-120,7,81,82,83,11,65,631,510,509,71,72,265,503,265,75,-720,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,229,241,23,791,241,-313,229,241,10,53,9,12,119,118,120,111,64,109,108,112,229,110,121,122,228,104,105,49,50,48,228,639,-720,241,-323,-102,806,678,241,-720,641,-323,609,817,-715,822,676,241,-720,45,-323,824,38,827,832,66,67,-323,833,68,837,40,861,865,-323,52,866,-720,-294,265,879,856,857,-323,24,858,121,122,561,102,90,93,94,561,95,97,96,98,891,229,895,913,91,101,916,229,917,-720,241,-323,85,262,92,106,107,264,263,46,47,334,81,82,83,11,65,920,241,929,71,72,946,947,-323,75,948,73,74,76,35,36,79,80,257,961,963,301,969,84,33,32,115,114,116,117,971,1157,23,491,490,489,973,492,10,53,336,12,119,118,120,111,64,109,108,112,575,110,121,122,577,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,817,241,275,276,-322,45,307,256,338,-716,307,66,67,-322,817,68,265,40,262,895,268,52,264,263,986,260,261,281,280,266,24,267,987,241,241,102,90,93,94,228,95,97,96,98,997,241,1162,-296,91,101,241,279,1008,1012,-293,1160,85,1016,92,106,107,705,-322,46,47,7,81,82,83,11,65,700,1019,1021,71,72,1023,1025,1025,75,241,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,777,241,23,241,229,1053,1056,680,10,53,9,12,119,118,120,111,64,109,108,112,928,110,121,122,971,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,1068,241,275,276,-322,45,817,1085,38,-716,1087,66,67,-322,1092,68,1093,40,262,1098,268,52,264,263,1099,260,261,281,280,266,24,267,1100,-297,1113,102,90,93,94,228,95,97,96,98,1114,1115,1185,241,91,101,241,279,241,-265,241,641,85,241,92,106,107,241,-322,46,47,334,81,82,83,11,65,928,1122,1123,71,72,241,1127,241,75,1130,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,705,1133,23,1136,229,1138,1140,680,10,53,336,12,119,118,120,111,64,109,108,112,241,110,121,122,-387,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,228,258,259,1152,1163,275,276,1185,45,1164,1025,38,499,1025,66,67,641,1025,68,1183,40,262,502,268,52,264,263,1186,260,261,281,280,266,24,267,1191,1192,697,102,90,93,94,1114,95,97,96,98,1202,1202,705,1204,91,101,1206,279,510,509,1208,1210,85,503,92,106,107,1210,229,46,47,334,81,82,83,11,65,241,1025,-716,71,72,-715,1227,1210,75,1210,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,1210,1210,23,,,,,892,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,921,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,1157,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,494,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,494,,491,490,489,,492,,715,,494,,491,490,489,,492,719,,45,,,38,,,66,67,,,68,494,40,491,490,489,52,492,715,,,,,,,24,,719,715,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,715,,,85,,92,106,107,,719,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,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,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,246,,,254,,,66,67,,,68,,,262,,268,52,264,263,,260,261,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-443,,46,47,,,,-443,-443,-443,,,-443,-443,-443,265,-443,,,,,,,,-443,-443,-443,-443,,,,275,276,,,,-443,-443,,-443,-443,-443,-443,-443,,,,262,,268,,264,263,,260,261,,,,,,,,,,,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,,,-443,-443,-443,,,-443,,307,-443,,,-443,-443,,-443,,-443,,-443,,-443,-443,,-443,-443,-443,-443,-443,-329,-443,-443,-443,,,,-329,-329,-329,,,-329,-329,-329,,-329,-443,265,,-443,-443,,-443,-329,-443,-329,-329,,,,,-443,,275,276,-329,-329,,-329,-329,-329,-329,-329,,,,,,,262,,,,264,263,,260,261,,,,,,,,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,,,-329,-329,-329,,,-329,,316,-329,,,-329,-329,,-329,,-329,,-329,,-329,-329,,-329,-329,-329,-329,-329,,-329,,-329,,,,,,,,,,,,,,-329,,,-329,-329,,-329,,-329,81,82,83,,65,,-329,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-314,,46,47,,,,-314,-314,-314,,,-314,-314,-314,,-314,,,,,,,,-314,,-314,-314,-314,,,,115,114,116,117,-314,-314,,-314,-314,-314,-314,-314,,,,,119,118,120,,,,,,,,,,,104,105,,,359,-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,,102,90,93,94,,95,97,96,98,,,,-314,91,101,-314,-314,-314,-314,,-314,85,-314,92,106,107,,-314,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,127,,,,,126,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,,-275,,,,,,,,-275,-275,-275,-275,,,,,,,,,-275,-275,,-275,-275,-275,-275,-275,,,,,,,,,,,,,,,,,,,,,,,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,,,-275,-275,-275,,,-275,,307,-275,,,-275,-275,,-275,,-275,,-275,,-275,-275,,-275,-275,-275,-275,-275,,-275,-275,-275,494,,491,490,489,499,492,,,,,,,-275,,502,-275,-275,-721,-275,,-275,,,,-721,-721,-721,-275,,-721,-721,-721,,-721,,,497,,,,,-721,-721,-721,-721,-721,,510,509,,,,503,-721,-721,,-721,-721,-721,-721,-721,,,,,,,,,,,,,,,,,,,,,,,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,,,-721,-721,-721,,,-721,,,-721,,,-721,-721,,-721,,-721,,-721,,-721,-721,,-721,-721,-721,-721,-721,,-721,-721,-721,,,,,,,,,,,,,,-721,,,-721,-721,-721,-721,,-721,-722,-721,,,,,-721,-722,-722,-722,,,-722,-722,-722,,-722,,,,,,,,-722,-722,-722,-722,-722,,,,,,,,-722,-722,,-722,-722,-722,-722,-722,,,,,,,,,,,,,,,,,,,,,,,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,,,-722,-722,-722,,,-722,,,-722,,,-722,-722,,-722,,-722,,-722,,-722,-722,,-722,-722,-722,-722,-722,,-722,-722,-722,,,,,,,,,,,,,,-722,,,-722,-722,-722,-722,,-722,,-722,,81,82,83,-722,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,494,-275,491,490,489,499,492,,,-275,-275,-275,,,,502,,,,,,-275,-275,,-275,-275,-275,-275,-275,,494,,491,490,489,499,492,497,647,,,,,,,502,507,506,510,509,,,,503,,494,,491,490,489,499,492,-275,,,,,497,,-275,502,,,,307,-275,507,506,510,509,,,,503,,,,,,,,,497,488,,,,-275,-275,,,507,506,510,509,,,,503,,,,-275,,,-275,,81,82,83,-275,65,,488,,71,72,-275,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,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,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,870,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,342,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,361,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,396,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,408,,,403,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,403,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,591,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1106,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,138,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,295,294,296,293,182,201,200,,,,,,181,188,179,180,290,291,292,288,141,109,108,289,,110,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,300,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,494,,491,490,489,499,492,,,,119,118,120,777,,502,,780,757,,,,,104,105,,,359,502,,,,,,,,,497,,,,,,,,,,779,510,509,750,,,503,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,494,,491,490,489,499,492,778,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,241,115,114,116,117,,85,,92,106,107,497,,765,766,,,119,118,120,777,,510,509,780,,,503,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,488,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,,,,494,,491,490,489,499,492,119,118,120,777,,,,780,502,,,,,104,105,,,359,,,,,,,,,,,,,497,,,,,,,779,,,750,510,509,,748,,503,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,488,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,752,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,,,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,115,114,116,117,,,,,,,,,779,,,750,119,118,120,748,,,749,,,,,,,104,105,,,359,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,494,,491,490,489,499,492,,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,497,,,,,119,118,120,,507,506,510,509,,,,503,,104,105,,,359,115,114,116,117,,,,,,,,,,,,,119,118,120,241,,,,,,,,,,104,105,,,359,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,494,,491,490,489,499,492,,494,,491,490,489,499,492,502,,,,,,,,502,,494,,491,490,489,499,492,,,,,,497,,,502,,,,,497,507,506,510,509,,,,503,507,506,510,509,,,,503,497,,,,,,,,,507,506,510,509,,,494,503,491,490,489,499,492,494,,491,490,489,499,492,,502,488,,,,,,502,,488,494,,491,490,489,499,492,,,,,,497,,,502,488,,,497,,,,510,509,,,,503,,510,509,,,,503,,497,,,,,,,,,,,510,509,,,,503,,,,,,,,,,,,459,463,,488,460,,,,,,488,,170,171,,167,149,150,151,158,155,157,,,152,153,,,488,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,467,471,175,,466,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,810,463,175,,811,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,813,471,175,,814,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,840,463,175,,841,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,842,471,175,,843,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,845,471,175,,846,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,872,463,175,,873,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,875,471,175,,874,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1197,463,175,,1198,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1199,471,175,,1200,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1214,471,175,,1213,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175"),A=e.large_array_unpack("111,518,518,556,556,19,393,111,111,111,738,385,111,111,111,18,111,31,23,417,5,534,18,386,111,5,111,111,111,980,980,18,478,418,394,397,111,111,838,111,111,111,111,111,1015,1086,1088,1103,1104,930,478,634,1216,534,1107,935,738,534,534,23,69,19,1216,244,840,841,111,111,111,111,111,111,111,111,111,111,111,111,111,111,18,31,111,111,111,417,111,111,625,930,111,853,991,111,111,518,111,556,111,418,111,935,111,111,31,111,111,111,111,111,1163,111,112,111,1197,393,788,644,644,112,112,112,244,980,112,112,112,111,112,385,111,111,111,111,385,111,112,111,112,112,112,386,111,394,397,111,386,69,112,112,1198,112,112,112,112,112,838,1199,1218,838,634,838,1015,1086,1088,1103,1104,1015,1086,1088,1103,1104,1107,840,841,842,843,1107,112,112,112,112,112,112,112,112,112,112,112,112,112,112,625,1200,112,112,112,625,112,112,853,991,112,788,1,112,112,749,112,1057,112,644,112,659,112,112,644,112,112,112,112,112,466,112,749,112,3,245,1163,466,466,466,1197,1163,1199,466,466,1197,466,112,842,843,112,112,112,112,466,112,29,112,352,20,1057,412,112,29,9,112,466,466,810,466,466,466,466,466,48,48,1198,377,1200,12,377,1198,811,1199,1218,659,659,247,1199,1218,359,359,842,843,245,659,466,466,466,466,466,466,466,466,466,466,466,466,466,466,14,287,466,466,466,20,466,466,287,1200,466,29,352,466,1200,412,412,412,466,15,466,661,466,466,810,466,466,466,466,466,444,466,467,466,759,352,247,524,811,467,467,467,48,48,931,467,467,466,467,332,466,466,759,466,332,466,467,467,359,359,978,730,466,17,810,466,287,810,467,467,731,467,467,467,467,467,805,288,811,810,931,811,813,27,288,661,661,579,805,444,872,950,390,811,252,661,524,390,467,467,467,467,467,467,467,467,467,467,467,467,467,467,42,942,467,467,467,54,467,467,730,45,467,942,54,467,978,873,1125,731,467,926,467,54,467,467,413,467,467,467,467,467,288,467,467,467,53,813,813,872,252,579,579,579,414,950,950,950,21,467,415,942,467,467,401,467,978,467,579,978,416,732,950,942,467,253,217,467,732,732,732,978,54,732,732,732,873,732,813,512,926,813,1125,1125,512,732,732,732,732,732,413,413,413,813,402,21,230,732,732,1125,732,732,732,732,732,232,401,21,414,414,414,419,628,401,415,415,415,236,401,1005,628,253,401,246,416,416,416,732,732,732,732,732,732,732,732,732,732,732,732,732,732,401,248,732,732,732,402,732,732,16,16,732,403,402,732,732,403,732,402,732,995,732,402,732,732,995,732,732,732,732,732,401,732,732,732,419,419,419,1005,243,289,402,290,291,51,51,243,289,732,290,291,732,732,732,732,243,732,292,732,43,733,384,384,732,292,44,732,733,733,733,249,402,733,733,733,293,733,1091,255,1091,51,51,293,294,733,306,733,733,733,138,294,705,705,320,138,138,733,733,363,733,733,733,733,733,243,289,43,290,291,295,296,779,44,321,747,779,295,296,43,747,324,934,292,747,44,934,733,733,733,733,733,733,733,733,733,733,733,733,733,733,293,948,733,733,733,363,733,733,294,459,733,948,378,733,733,378,733,363,733,336,733,381,733,733,381,733,733,733,733,733,874,733,337,733,295,296,88,874,874,874,762,762,825,874,874,825,874,733,88,948,733,733,733,733,874,733,459,733,88,826,826,948,733,460,339,733,874,874,459,874,874,874,874,874,1155,1089,1089,1155,234,344,234,234,234,234,234,340,344,681,719,341,719,719,719,234,719,344,874,874,874,874,874,874,874,874,874,874,874,874,874,874,460,347,874,874,874,234,874,874,1187,1187,874,350,460,874,234,234,234,234,874,351,874,234,874,874,681,874,874,874,874,874,353,874,875,874,344,354,681,358,360,875,875,875,367,369,372,875,875,874,875,375,874,874,379,874,380,874,875,875,382,391,392,234,874,396,398,874,407,427,875,875,433,875,875,875,875,875,435,436,438,441,235,345,235,235,235,235,235,778,345,778,778,445,455,778,457,235,458,345,875,875,875,875,875,875,875,875,875,875,875,875,875,875,468,474,875,875,875,235,875,875,475,479,875,480,778,875,235,235,235,235,875,481,875,235,875,875,484,875,875,875,875,875,702,875,875,875,345,485,346,486,496,508,702,348,364,346,511,514,520,875,348,364,875,875,346,875,528,875,395,348,364,529,536,235,875,395,537,875,2,2,2,2,2,2,395,702,702,2,2,538,702,539,2,845,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,346,564,2,565,566,348,364,570,2,2,2,2,2,2,2,2,2,2,2,2,395,2,2,2,405,2,2,2,2,2,443,405,845,586,596,587,590,443,592,845,405,596,597,601,845,610,443,611,845,2,596,612,2,622,626,2,2,637,627,2,629,2,656,664,637,2,666,845,673,535,682,652,652,637,2,652,652,652,687,2,2,2,2,692,2,2,2,2,694,405,696,712,2,2,717,443,718,845,720,596,2,535,2,2,2,535,535,2,2,38,38,38,38,38,38,725,734,743,38,38,751,752,637,38,753,38,38,38,38,38,38,38,25,782,785,787,793,38,38,38,38,38,38,38,794,1098,38,1098,1098,1098,795,1098,38,38,38,38,38,38,38,38,38,38,38,38,797,38,38,38,799,38,38,38,38,38,25,25,25,25,25,25,25,25,25,25,25,814,25,25,807,809,25,25,814,38,812,25,38,814,815,38,38,814,816,38,819,38,25,828,25,38,25,25,834,25,25,25,25,25,38,25,835,839,848,38,38,38,38,1105,38,38,38,38,852,854,1105,869,38,38,871,25,880,893,896,1105,38,897,38,38,38,900,814,38,38,136,136,136,136,136,136,902,905,906,136,136,908,909,911,136,915,136,136,136,136,136,136,136,335,335,335,335,335,136,136,136,136,136,136,136,928,936,136,937,1105,941,944,448,136,136,136,136,136,136,136,136,136,136,136,136,949,136,136,136,964,136,136,136,136,136,448,448,448,448,448,448,448,448,448,448,448,846,448,448,967,968,448,448,846,136,977,982,136,846,985,136,136,846,992,136,994,136,448,1001,448,136,448,448,1002,448,448,448,448,448,136,448,1003,1004,1030,136,136,136,136,1143,136,136,136,136,1031,1036,1143,1041,136,136,1042,448,1043,448,1044,1143,136,1045,136,136,136,1046,846,136,136,219,219,219,219,219,219,1050,1051,1052,219,219,1054,1058,1065,219,1070,219,219,219,219,219,219,219,374,374,374,374,374,219,219,219,219,219,219,219,1071,1073,219,1074,1143,1075,1077,454,219,219,219,219,219,219,219,219,219,219,219,219,1078,219,219,219,1079,219,219,219,219,219,454,454,454,454,454,454,454,454,454,454,454,1184,454,454,1095,1106,454,454,1184,219,1109,1110,219,1130,1111,219,219,1184,1112,219,1141,219,454,1130,454,219,454,454,1144,454,454,454,454,454,219,454,1153,1154,1159,219,219,219,219,1169,219,219,219,219,1170,1171,1174,1177,219,219,1178,454,1130,1130,1179,1180,219,1130,219,219,219,1182,1184,219,219,231,231,231,231,231,231,1196,1201,1213,231,231,1214,1220,1221,231,1222,231,231,231,231,231,231,231,584,584,584,584,584,231,231,231,231,231,231,231,1223,1232,231,,,,,695,231,231,231,231,231,231,231,231,231,231,231,231,,231,231,231,,231,231,231,231,231,695,695,695,695,695,695,695,695,695,695,695,,695,695,,,695,695,,231,,,231,,,231,231,,,231,,231,695,,695,231,695,695,,695,695,695,695,695,231,695,,,,231,231,231,231,,231,231,231,231,,,,,231,231,,695,,,,,231,,231,231,231,,,231,231,237,237,237,237,237,237,,,,237,237,,,,237,,237,237,237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,726,237,237,237,237,237,237,237,237,237,237,237,237,,237,237,237,,237,237,237,237,237,726,726,726,726,726,726,726,726,726,726,726,,726,726,,,726,726,,237,,,237,,,237,237,,,237,,237,726,,726,237,726,726,,726,726,726,726,726,237,726,,,,237,237,237,237,,237,237,237,237,,,,,237,237,,726,,,,,237,,237,237,237,,,237,237,254,254,254,254,254,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,1194,254,1194,1194,1194,,1194,254,254,254,254,254,254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,318,318,318,318,318,318,318,318,318,318,318,,318,318,,,318,318,,254,,,254,,,254,254,,,254,,254,318,,318,254,318,318,,318,318,318,318,318,254,318,,,,254,254,254,254,,254,254,254,254,,,,,254,254,,318,,,,,254,,254,254,254,,,254,254,338,338,338,338,338,338,,,,338,338,,,,338,,338,338,338,338,338,338,338,,,,,,338,338,338,338,338,338,338,,,338,,,,,,338,338,338,338,338,338,338,338,338,338,338,338,,338,338,338,,338,338,338,338,338,553,553,553,553,553,553,553,553,553,553,553,,553,553,,,553,553,,338,,,338,,,338,338,,,338,,338,553,,553,338,553,553,,553,553,553,553,553,338,553,,,,338,338,338,338,,338,338,338,338,,,,,338,338,553,553,,,,,338,,338,338,338,,,338,338,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,343,343,343,343,343,,343,343,343,,343,343,343,343,343,820,820,820,820,820,820,820,820,820,820,820,,820,820,,,820,820,,343,,,343,,,343,343,,,343,,343,820,,820,343,820,820,,820,820,820,820,820,343,820,,,,343,343,343,343,,343,343,343,343,,,,,343,343,,820,,,,,343,,343,343,343,,,343,343,373,373,373,373,373,373,,,,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373,373,373,373,,,373,,,,,,373,373,373,373,373,373,373,373,373,373,373,373,,373,373,373,,373,373,373,373,373,877,877,877,877,877,877,877,877,877,877,877,,877,877,,,877,877,,373,,,373,,,373,373,,,373,,373,877,,877,373,877,877,,877,877,877,877,877,373,877,,,,373,373,373,373,,373,373,373,373,,,,,373,373,,877,,,,,373,,373,373,373,,,373,373,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,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009,1009,,,1009,1009,,388,,,388,,,388,388,,,388,,388,1009,,1009,388,1009,1009,,1009,1009,1009,1009,1009,388,1009,,,,388,388,388,388,,388,388,388,388,,,,,388,388,,1009,,,,,388,,388,388,388,,,388,388,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,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,389,,,389,,,389,389,,,389,,389,1010,,1010,389,1010,1010,,1010,1010,1010,1010,1010,389,1010,,,,389,389,389,389,,389,389,389,389,,,,,389,389,,1010,,,,,389,,389,389,389,,,389,389,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,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,,1032,1032,,,1032,1032,,621,,,621,,,621,621,,,621,,621,1032,,1032,621,1032,1032,,1032,1032,1032,1032,1032,621,1032,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,1032,,,,,621,,621,621,621,,,621,621,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,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,,,1033,1033,,624,,,624,,,624,624,,,624,,624,1033,,1033,624,1033,1033,,1033,1033,1033,1033,1033,624,1033,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,1033,,,,,624,,624,624,624,,,624,624,645,645,645,645,645,645,,,,645,645,,,,645,,645,645,645,645,645,645,645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,645,645,645,645,645,645,645,645,645,645,645,645,,645,645,645,,645,645,645,645,645,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,,1066,1066,,,1066,1066,,645,,,645,,,645,645,,,645,,645,1066,,1066,645,1066,1066,,1066,1066,1066,1066,1066,645,1066,,,,645,645,645,645,,645,645,645,645,,,,,645,645,,1066,,,,,645,,645,645,645,,,645,645,844,844,844,844,844,844,,,,844,844,,,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844,,497,844,497,497,497,,497,844,844,844,844,844,844,844,844,844,844,844,844,,844,844,844,,844,844,844,844,844,715,,715,715,715,,715,,497,,917,,917,917,917,,917,497,,844,,,844,,,844,844,,,844,916,844,916,916,916,844,916,715,,,,,,,844,,715,917,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,916,,,844,,844,844,844,,916,844,844,849,849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,849,849,849,849,849,849,849,849,849,849,,849,849,849,,849,849,849,849,849,365,365,365,365,365,365,365,365,365,365,365,,365,365,,,365,365,,849,,,849,,,849,849,,549,849,,849,365,,365,849,365,365,,365,365,365,365,365,849,365,,,,849,849,849,849,,849,849,849,849,,,549,,849,849,549,549,,549,549,,849,,849,849,849,,,849,849,860,860,860,860,860,860,,,,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860,860,860,860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,860,860,860,366,366,366,366,366,366,366,366,366,366,366,,366,366,,,366,366,,860,,,860,,,860,860,,550,860,,860,366,,366,860,366,366,,366,366,366,366,366,860,366,,,,860,860,860,860,,860,860,860,860,,,550,,860,860,550,550,,550,550,,860,,860,860,860,,,860,860,895,895,895,895,895,895,,,,895,895,,,,895,,895,895,895,895,895,895,895,,,,,,895,895,895,895,895,895,895,,,895,,,,,,895,895,895,895,895,895,895,895,895,895,895,895,,895,895,895,,895,895,895,895,895,532,532,532,532,532,532,532,532,532,532,532,,532,532,,,532,532,,895,,,895,,,895,895,,,895,,895,532,,532,895,532,532,,532,532,532,532,532,895,532,,,,895,895,895,895,,895,895,895,895,,,,,895,895,,1113,,1113,1113,1113,895,1113,895,895,895,,,895,895,972,972,972,972,972,972,,,,972,972,,,,972,,972,972,972,972,972,972,972,1113,,,,,972,972,972,972,972,972,972,,,972,,,,,,972,972,972,972,972,972,972,972,972,972,972,972,,972,972,972,,972,972,972,972,972,533,533,533,533,533,533,533,533,533,533,533,,533,533,,,533,533,,972,,,972,,,972,972,,,972,,972,533,,533,972,533,533,,533,533,533,533,533,972,533,,,,972,972,972,972,,972,972,972,972,,,,,972,972,,1114,,1114,1114,1114,972,1114,972,972,972,,,972,972,990,990,990,990,990,990,,,,990,990,,,,990,,990,990,990,990,990,990,990,1114,,,,,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,543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,990,,,990,,,990,990,,,990,,990,543,,543,990,543,543,,543,543,543,543,543,990,543,,,,990,990,990,990,,990,990,990,990,,,,,990,990,,,,,,,990,,990,990,990,,,990,990,996,996,996,996,996,996,,,,996,996,,,,996,,996,996,996,996,996,996,996,,,,,,996,996,996,996,996,996,996,,,996,,,,,,996,996,996,996,996,996,996,996,996,996,996,996,,996,996,996,,996,996,996,996,996,544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,996,,,996,,,996,996,,,996,,996,544,,544,996,544,544,,544,544,544,544,544,996,544,,,,996,996,996,996,,996,996,996,996,,,,,996,996,,,,,,,996,,996,996,996,,,996,996,1012,1012,1012,1012,1012,1012,,,,1012,1012,,,,1012,,1012,1012,1012,1012,1012,1012,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,,,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,,1012,1012,1012,,1012,1012,1012,1012,1012,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,1012,,,1012,,,1012,1012,,,1012,,1012,545,,545,1012,545,545,,545,545,545,545,545,1012,545,,,,1012,1012,1012,1012,,1012,1012,1012,1012,,,,,1012,1012,,,,,,,1012,,1012,1012,1012,,,1012,1012,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,546,546,546,546,546,546,546,,,546,546,,,,,,546,546,,1067,,,1067,,,1067,1067,,,1067,,1067,546,,546,1067,546,546,,546,546,546,546,546,1067,546,,,,1067,1067,1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,,,,,,1067,,1067,1067,1067,,,1067,1067,1096,1096,1096,1096,1096,1096,,,,1096,1096,,,,1096,,1096,1096,1096,1096,1096,1096,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,,,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,,1096,1096,1096,,1096,1096,1096,1096,1096,547,547,547,547,547,547,547,,,547,547,,,,,,547,547,,1096,,,1096,,,1096,1096,,,1096,,1096,547,,547,1096,547,547,,547,547,547,547,547,1096,547,,,,1096,1096,1096,1096,,1096,1096,1096,1096,,,,,1096,1096,,,,,,,1096,,1096,1096,1096,,,1096,1096,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,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,1097,,,1097,,,1097,1097,,,1097,,1097,548,,548,1097,548,548,,548,548,548,548,548,1097,548,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,,,1097,1097,,,,,,,1097,,1097,1097,1097,,,1097,1097,1102,1102,1102,1102,1102,1102,,,,1102,1102,,,,1102,,1102,1102,1102,1102,1102,1102,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,,,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,,1102,1102,1102,,1102,1102,1102,1102,1102,551,551,551,551,551,551,551,,,551,551,,,,,,551,551,,1102,,,1102,,,1102,1102,,,1102,,1102,551,,551,1102,551,551,,551,551,551,551,551,1102,551,,,,1102,1102,1102,1102,,1102,1102,1102,1102,,,,,1102,1102,,,,,,,1102,,1102,1102,1102,,,1102,1102,1145,1145,1145,1145,1145,1145,,,,1145,1145,,,,1145,,1145,1145,1145,1145,1145,1145,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,,,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,,1145,1145,1145,,1145,1145,1145,1145,1145,552,552,552,552,552,552,552,552,,552,552,,,,,,552,552,,1145,,,1145,,,1145,1145,,,1145,,1145,552,,552,1145,552,552,,552,552,552,552,552,1145,552,,,,1145,1145,1145,1145,,1145,1145,1145,1145,,,,,1145,1145,,,,,,,1145,,1145,1145,1145,,,1145,1145,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,1188,1188,1188,1188,1188,,1188,1188,1188,,1188,1188,1188,1188,1188,554,,,,,,,,,,,,,,,,554,554,,1188,,,1188,,,1188,1188,,,1188,,1188,554,,554,1188,554,554,,554,554,,,554,1188,554,,,,1188,1188,1188,1188,,1188,1188,1188,1188,,,,,1188,1188,,,,,,,1188,,1188,1188,1188,,,1188,1188,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,,7,7,7,7,7,607,,,,,,,,,,,,,,,,607,607,,7,,,7,,,7,7,,,7,,7,607,,607,7,607,607,,607,607,,,607,7,607,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,24,24,24,7,24,7,7,7,24,24,7,7,,24,,24,24,24,24,24,24,24,,,,,,24,24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24,,24,24,24,24,24,540,,,,,,,,,,,,,,,,540,540,,24,,,24,,,24,24,,,24,,,540,,540,24,540,540,,540,540,,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,,,,24,,24,24,24,32,,24,24,,,,32,32,32,,,32,32,32,541,32,,,,,,,,32,32,32,32,,,,541,541,,,,32,32,,32,32,32,32,32,,,,541,,541,,541,541,,541,541,,,,,,,,,,,32,32,32,32,32,32,32,32,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,32,32,32,,,,33,33,33,,,33,33,33,,33,32,542,,32,32,,32,33,32,33,33,,,,,32,,542,542,33,33,,33,33,33,33,33,,,,,,,542,,,,542,542,,542,542,,,,,,,,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,,,,35,35,35,34,35,34,34,34,35,35,34,34,,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,,,,36,36,36,35,36,35,35,35,36,36,35,35,,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,,,,46,46,46,36,46,36,36,36,46,46,36,36,,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,,,,47,47,47,46,47,46,46,46,47,47,46,46,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,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,47,49,47,47,47,49,49,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,49,49,,49,49,49,49,49,,,,,,,,,,,,,,,,,,,,49,,,49,,,49,49,,,49,,,,,,49,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,,,50,50,50,49,50,49,49,49,50,50,49,49,,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,,,,52,52,52,50,52,50,50,50,52,52,50,50,,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,,,,,,,52,,52,52,52,64,,52,52,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,765,765,765,765,64,64,,64,64,64,64,64,,,,,765,765,765,,,,,,,,,,,765,765,,,765,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,,765,765,765,765,,765,765,765,765,,,,64,765,765,64,64,64,64,,64,765,64,765,765,765,,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,125,125,125,125,125,,,,125,125,,,,125,,125,125,125,125,125,125,125,,,,,,125,125,125,125,125,125,125,,,125,,,,,,125,125,125,125,125,125,125,125,125,125,125,125,,125,125,125,,125,125,125,125,125,,,,,,,,,,,,,,,,,,,,125,,,125,,,125,125,,,125,,125,,,,125,,,,,,,,,125,,,,,125,125,125,125,,125,125,125,125,,,,,125,125,,,,,,125,125,,125,125,125,,,125,125,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,,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,,,,132,132,132,131,132,131,131,131,132,132,131,131,,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,,,,133,133,133,132,133,132,132,132,133,133,132,132,,133,,133,133,133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,,,133,,,133,133,133,133,133,133,133,133,,133,133,133,,133,133,133,133,133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,,133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,,,,133,,133,133,133,,,133,133,134,134,134,134,134,,,,134,134,,,,134,,134,134,134,134,134,134,134,,,,,,134,134,134,134,134,134,134,,,134,,,,,,134,134,,134,134,134,134,134,134,134,134,134,,134,134,134,,134,134,134,134,134,,,,,,,,,,,,,,,,,,,,134,,,134,,,134,134,,,134,,134,,,,134,,,,,,,,,134,,,,,134,134,134,134,,134,134,134,134,,,,,134,134,,,,220,220,220,134,220,134,134,134,220,220,134,134,,220,,220,220,220,220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220,220,,220,220,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,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,,,,225,225,225,224,225,224,224,224,225,225,224,224,,225,,225,225,225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,225,225,225,225,225,225,225,225,225,225,,225,225,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,225,,225,,225,,,225,,,,,,225,,,,,225,225,225,225,,225,225,225,225,,,,,225,225,,,,238,238,238,225,238,225,225,225,238,238,225,225,,238,,238,238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238,238,238,239,239,238,238,,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,,,,240,240,240,239,240,239,239,239,240,240,239,239,,240,,240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240,240,240,240,,,,,240,240,240,,,251,251,251,240,251,240,240,240,251,251,240,240,,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,,,,258,258,258,251,258,251,251,251,258,258,251,251,,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,,,,269,269,269,268,269,268,268,268,269,269,268,268,,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,,,,270,270,270,269,270,269,269,269,270,270,269,269,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,271,271,271,270,271,270,270,270,271,271,270,270,,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,,,,272,272,272,271,272,271,271,271,272,272,271,271,,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,,,,273,273,273,272,273,272,272,272,273,273,272,272,,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,,,,274,274,274,273,274,273,273,273,274,274,273,273,,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,,,,275,275,275,274,275,274,274,274,275,275,274,274,,275,,275,275,275,275,275,275,275,,,,,,275,275,275,275,275,275,275,,,275,,,,,,,275,,,275,275,275,275,275,275,275,275,,275,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,276,276,275,276,275,275,275,276,276,275,275,,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,,,,277,277,277,276,277,276,276,276,277,277,276,276,,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,,,,278,278,278,277,278,277,277,277,278,278,277,277,,278,,278,278,278,278,278,278,278,,,,,,278,278,278,278,278,278,278,,,278,,,,,,,278,,,278,278,278,278,278,278,278,278,,278,278,278,,278,278,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,,278,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,,278,278,,,,279,279,279,278,279,278,278,278,279,279,278,278,,279,,279,279,279,279,279,279,279,,,,,,279,279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279,279,279,279,279,,279,279,279,,279,279,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,,279,,,,,,279,,,,,,,,,279,,,,,279,279,279,279,,279,279,279,279,,,,,279,279,,,,284,284,284,279,284,279,279,279,284,284,279,279,,284,,284,284,284,284,284,284,284,,,,,,284,284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284,284,,284,284,284,,284,284,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,,284,,,,,,284,,,,,,,,,284,,,,,284,284,284,284,,284,284,284,284,,,,,284,284,,,,300,300,300,284,300,284,284,284,300,300,284,284,,300,,300,300,300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300,,,300,300,300,300,300,300,300,300,,300,300,300,,300,300,300,300,300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,,,,300,,,,,,,,,300,,,,,300,300,300,300,,300,300,300,300,,,,,300,300,,,,307,307,307,300,307,300,300,300,307,307,300,300,,307,,307,307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307,,,,,,,307,,,307,307,307,307,307,307,307,307,307,307,307,307,,307,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,307,308,307,307,307,308,308,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,308,308,308,,308,308,308,308,308,,,,,,,,,,,,,,,,,,,,308,,,308,,,308,308,,,308,,308,,308,,308,,,308,,,,,,308,,,,,308,308,308,308,,308,308,308,308,,,,,308,308,,,,316,316,316,308,316,308,308,308,316,316,308,308,,316,,316,316,316,316,316,316,316,,,,,,316,316,316,316,316,316,316,,,316,,,,,,,316,,,316,316,316,316,316,316,316,316,316,316,316,316,,316,316,316,316,316,,,,,,,,,,,,,,,,,,,,316,,,316,,,316,316,,,316,,316,,316,,316,,,316,,,,,,316,,,,,316,316,316,316,,316,316,316,316,,,,,316,316,316,,,323,323,323,316,323,316,316,316,323,323,316,316,,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,,,,325,325,325,323,325,323,323,323,325,325,323,323,,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,325,325,,325,325,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,325,,,,,,,,,325,,,,,325,325,325,325,,325,325,325,325,,,,,325,325,,,,328,328,328,325,328,325,325,325,328,328,325,325,,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,,,,329,329,329,328,329,328,328,328,329,329,328,328,,329,,329,329,329,329,329,329,329,,,,,,329,329,329,329,329,329,329,,,329,,,,,,,329,,,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329,,,,,,,,,,,,,,,,,,,,329,,,329,,,329,329,,,329,,,,,,329,,,,,,,,,329,,,,,329,329,329,329,,329,329,329,329,,,,,329,329,,,,,,,329,,329,329,329,,,329,329,334,334,334,334,334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334,334,334,334,334,,,334,,,,,,334,334,,334,334,334,334,334,334,334,334,334,,334,334,334,,334,334,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,,,334,334,,,334,,334,,,,334,,,,,,,,,334,,,,,334,334,334,334,,334,334,334,334,,,,,334,334,,,,370,370,370,334,370,334,334,334,370,370,334,334,,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,,370,370,370,370,,,,,370,370,,,,387,387,387,370,387,370,370,370,387,387,370,370,,387,,387,387,387,387,387,387,387,,,,,,387,387,387,387,387,387,387,,,387,,,,,,,387,,,387,387,387,387,387,387,387,387,,387,387,387,,387,387,387,387,387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387,387,,,387,,,,,,387,,,,,,,,,387,,,,,387,387,387,387,,387,387,387,387,,,,,387,387,,,,408,408,408,387,408,387,387,387,408,408,387,387,,408,,408,408,408,408,408,408,408,,,,,,408,408,408,408,408,408,408,,,408,,,,,,,408,,,408,408,408,408,408,408,408,408,,408,408,408,,408,408,408,408,408,,,,,,,,,,,,,,,,,,,,408,,,408,,,408,408,,,408,,,,,,408,,,,,,,,,408,,,,,408,408,408,408,,408,408,408,408,,,,,408,408,,,,437,437,437,408,437,408,408,408,437,437,408,408,,437,,437,437,437,437,437,437,437,,,,,,437,437,437,437,437,437,437,,,437,,,,,,,437,,,437,437,437,437,437,437,437,437,,437,437,437,,437,437,437,437,437,,,,,,,,,,,,,,,,,,,,437,,,437,,,437,437,,,437,,,,,,437,,,,,,,,,437,,,,,437,437,437,437,,437,437,437,437,,,,,437,437,,,,,,,437,,437,437,437,461,,437,437,,,,461,461,461,,,461,461,461,,461,,,,,,,,461,461,461,461,,,,,,,,,461,461,,461,461,461,461,461,,,,,,,,,,,,,,,,,,,,,,,461,461,461,461,461,461,461,461,461,461,461,461,461,461,,,461,461,461,,,461,,461,461,,,461,461,,461,,461,,461,,461,461,,461,461,461,461,461,,461,461,461,1138,,1138,1138,1138,1138,1138,,,,,,,461,,1138,461,461,471,461,,461,,,,471,471,471,461,,471,471,471,,471,,,1138,,,,,471,471,471,471,471,,1138,1138,,,,1138,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,472,471,,,,,471,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,472,472,,472,,472,,473,473,473,472,473,,,,473,473,,,,473,,473,473,473,473,473,473,473,,,,,,473,473,473,473,473,473,473,,,473,,,,,,,473,,,473,473,473,473,473,473,473,473,,473,473,473,,473,473,473,473,473,,,,,,,,,,,,,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,,473,,,,,473,473,473,473,,473,473,473,473,,,,,473,473,,,,500,500,500,473,500,473,473,473,500,500,473,473,,500,,500,500,500,500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,,,500,,,500,500,500,500,500,500,500,500,,500,500,500,,500,500,500,500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,,,,,500,,,,,,,,,500,,,,,500,500,500,500,,500,500,500,500,,,,,500,500,,,,513,513,513,500,513,500,500,500,513,513,500,500,,513,,513,513,513,513,513,513,513,,,,,,513,513,513,513,513,513,513,,,513,,,,,,,513,,,513,513,513,513,513,513,513,513,,513,513,513,,513,513,513,513,513,,,,,,,,,,,,,,,,,,,,513,,,513,,,513,513,,,513,,,,,,513,,,,,,,,,513,,,,,513,513,513,513,,513,513,513,513,,,,,513,513,,,,523,523,523,513,523,513,513,513,523,523,513,513,,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,523,523,,,,,523,523,,,,525,525,525,523,525,523,523,523,525,525,523,523,,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,,,,526,526,526,525,526,525,525,525,526,526,525,525,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526,,526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,,,,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526,,,,527,527,527,526,527,526,526,526,527,527,526,526,,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,527,558,,527,527,,,,558,558,558,,,558,558,558,410,558,410,410,410,410,410,,,558,558,558,,,,410,,,,,,558,558,,558,558,558,558,558,,647,,647,647,647,647,647,410,410,,,,,,,647,410,410,410,410,,,,410,,1133,,1133,1133,1133,1133,1133,558,,,,,647,,558,1133,,,,558,558,647,647,647,647,,,,647,,,,,,,,,1133,410,,,,558,558,,,1133,1133,1133,1133,,,,1133,,,,558,,,558,,563,563,563,558,563,,647,,563,563,558,,,563,,563,563,563,563,563,563,563,,,,,,563,563,563,563,563,563,563,,,563,,,,,,,563,,,563,563,563,563,563,563,563,563,,563,563,563,,563,563,563,563,563,,,,,,,,,,,,,,,,,,,,563,,,563,,,563,563,,,563,,,,,,563,,,,,,,,,563,,,,,563,563,563,563,,563,563,563,563,,,,,563,563,,,,573,573,573,563,573,563,563,563,573,573,563,563,,573,,573,573,573,573,573,573,573,,,,,,573,573,573,573,573,573,573,,,573,,,,,,,573,,,573,573,573,573,573,573,573,573,573,573,573,573,,573,573,573,573,573,,,,,,,,,,,,,,,,,,,,573,,,573,,,573,573,,,573,,573,,573,,573,,,573,,,,,,573,,,,,573,573,573,573,,573,573,573,573,,,,,573,573,,,,575,575,575,573,575,573,573,573,575,575,573,573,,575,,575,575,575,575,575,575,575,,,,,,575,575,575,575,575,575,575,,,575,,,,,,,575,,,575,575,575,575,575,575,575,575,575,575,575,575,,575,575,575,575,575,,,,,,,,,,,,,,,,,,,,575,,,575,,,575,575,,,575,,,,575,,575,,,575,,,,,,575,,,,,575,575,575,575,,575,575,575,575,,,,,575,575,,,,577,577,577,575,577,575,575,575,577,577,575,575,,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,,,,,577,577,,,,,,,577,,577,577,577,,,577,577,583,583,583,583,583,,,,583,583,,,,583,,583,583,583,583,583,583,583,,,,,,583,583,583,583,583,583,583,,,583,,,,,,583,583,583,583,583,583,583,583,583,583,583,583,,583,583,583,,583,583,583,583,583,,,,,,,,,,,,,,,,,,,,583,,,583,,,583,583,,,583,,583,,,,583,,,,,,,,,583,,,,,583,583,583,583,,583,583,583,583,,,,,583,583,,,,,,583,583,,583,583,583,,,583,583,593,593,593,,593,,,,593,593,,,,593,,593,593,593,593,593,593,593,,,,,,593,593,593,593,593,593,593,,,593,,,,,,,593,,,593,593,593,593,593,593,593,593,593,593,593,593,,593,593,593,593,593,,,,,,,,,,,,,,,,,,,,593,,,593,,,593,593,,,593,,593,,593,,593,,,593,,,,,,593,,,,,593,593,593,593,,593,593,593,593,,,,,593,593,,,,603,603,603,593,603,593,593,593,603,603,593,593,,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,,,,606,606,606,603,606,603,603,603,606,606,603,603,,606,,606,606,606,606,606,606,606,,,,,,606,606,606,606,606,606,606,,,606,,,,,,,606,,,606,606,606,606,606,606,606,606,,606,606,606,,606,606,606,606,606,,,,,,,,,,,,,,,,,,,,606,,,606,,,606,606,,,606,,,,,,606,,,,,,,,,606,,,,,606,606,606,606,,606,606,606,606,,,,,606,606,,,,608,608,608,606,608,606,606,606,608,608,606,606,,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,,,,614,614,614,608,614,608,608,608,614,614,608,608,,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,614,,,,617,617,617,614,617,614,614,614,617,617,614,614,,617,,617,617,617,617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617,,,,,,,617,,,617,617,617,617,617,617,617,617,617,617,617,617,,617,617,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,617,,,,,,617,,,,,617,617,617,617,,617,617,617,617,,,,,617,617,,,,630,630,630,617,630,617,617,617,630,630,617,617,,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,630,630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,630,,,,630,,,,,,,,,630,,,,,630,630,630,630,,630,630,630,630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631,631,630,630,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,631,631,631,631,,631,631,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,631,,631,,631,,,631,,,,,,631,,,,,631,631,631,631,,631,631,631,631,,,,,631,631,,,,641,641,641,631,641,631,631,631,641,641,631,631,,641,,641,641,641,641,641,641,641,,,,,,641,641,641,641,641,641,641,,,641,,,,,,,641,,,641,641,641,641,641,641,641,641,641,641,641,641,,641,641,641,641,641,,,,,,,,,,,,,,,,,,,,641,,,641,,,641,641,,,641,,641,,641,,641,,,641,,,,,,641,,,,,641,641,641,641,,641,641,641,641,,,,,641,641,,,,,,,641,,641,641,641,,,641,641,672,672,672,672,672,,,,672,672,,,,672,,672,672,672,672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,672,672,,672,672,672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672,,672,,,,672,,,,,,,,,672,,,,,672,672,672,672,,672,672,672,672,,,,,672,672,,,,674,674,674,672,674,672,672,672,674,674,672,672,,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,,,,675,675,675,674,675,674,674,674,675,675,674,674,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675,675,,675,675,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,,,675,,,,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,676,676,676,675,676,675,675,675,676,676,675,675,,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,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,,,,,679,679,679,679,,679,679,679,679,,,,,679,679,,,,680,680,680,679,680,679,679,679,680,680,679,679,,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,,,,683,683,683,680,683,680,680,680,683,683,680,680,,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,,,,,683,683,,,,684,684,684,683,684,683,683,683,684,684,683,683,,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,684,,,,,684,684,,,,685,685,685,684,685,684,684,684,685,685,684,684,,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,,,,686,686,686,685,686,685,685,685,686,686,685,685,,686,,686,686,686,686,686,686,686,,,,,,686,686,686,686,686,686,686,,,686,,,,,,,686,,,686,686,686,686,686,686,686,686,,686,686,686,,686,686,686,686,686,,,,,,,,,,,,,,,,,,,,686,,,686,,,686,686,,,686,,,,,,686,,,,,,,,,686,,,,,686,686,686,686,,686,686,686,686,,,,,686,686,,,,690,690,690,686,690,686,686,686,690,690,686,686,,690,,690,690,690,690,690,690,690,,,,,,690,690,690,690,690,690,690,,,690,,,,,,,690,,,690,690,690,690,690,690,690,690,,690,690,690,,690,690,690,690,690,,,,,,,,,,,,,,,,,,,,690,,,690,,,690,690,,,690,,,,,,690,,,,,,,,,690,,,,,690,690,690,690,,690,690,690,690,,,,,690,690,,,,691,691,691,690,691,690,690,690,691,691,690,690,,691,,691,691,691,691,691,691,691,,,,,,691,691,691,691,691,691,691,,,691,,,,,,,691,,,691,691,691,691,691,691,691,691,,691,691,691,,691,691,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,,,,,,691,,,,,,,,,691,,,,,691,691,691,691,,691,691,691,691,,,,,691,691,,,,697,697,697,691,697,691,691,691,697,697,691,691,,697,,697,697,697,697,697,697,697,,,,,,697,697,697,697,697,697,697,,,697,,,,,,,697,,,697,697,697,697,697,697,697,697,,697,697,697,,697,697,697,697,697,,,,,,,,,,,,,,,,,,,,697,,,697,,,697,697,,,697,,697,,,,697,,,,,,,,,697,,,,,697,697,697,697,,697,697,697,697,,,,,697,697,,,,713,713,713,697,713,697,697,697,713,713,697,697,,713,,713,713,713,713,713,713,713,,,,,,713,713,713,713,713,713,713,,,713,,,,,,,713,,,713,713,713,713,713,713,713,713,,713,713,713,,713,713,713,713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,,,,,,713,,,,,,,,,713,,,,,713,713,713,713,,713,713,713,713,,,,,713,713,,,,735,735,735,713,735,713,713,713,735,735,713,713,,735,,735,735,735,735,735,735,735,,,,,,735,735,735,735,735,735,735,,,735,,,,,,,735,,,735,735,735,735,735,735,735,735,,735,735,735,,735,735,735,735,735,,,,,,,,,,,,,,,,,,,,735,,,735,,,735,735,,,735,,,,,,735,,,,,,,,,735,,,,,735,735,735,735,,735,735,735,735,,,,,735,735,,,,736,736,736,735,736,735,735,735,736,736,735,735,,736,,736,736,736,736,736,736,736,,,,,,736,736,736,736,736,736,736,,,736,,,,,,,736,,,736,736,736,736,736,736,736,736,,736,736,736,,736,736,736,736,736,,,,,,,,,,,,,,,,,,,,736,,,736,,,736,736,,,736,,,,,,736,,,,,,,,,736,,,,,736,736,736,736,,736,736,736,736,,,,,736,736,,,,791,791,791,736,791,736,736,736,791,791,736,736,,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,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,,,,800,800,800,791,800,791,791,791,800,800,791,791,,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,,,,803,803,803,800,803,800,800,800,803,803,800,800,,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,803,803,,,,,803,803,,,,821,821,821,803,821,803,803,803,821,821,803,803,,821,,821,821,821,821,821,821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,,,,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821,821,,821,821,821,821,,,,,821,821,,,,850,850,850,821,850,821,821,821,850,850,821,821,,850,,850,850,850,850,850,850,850,,,,,,850,850,850,850,850,850,850,,,850,,,,,,,850,,,850,850,850,850,850,850,850,850,,850,850,850,,850,850,850,850,850,,,,,,,,,,,,,,,,,,,,850,,,850,,,850,850,,,850,,,,,,850,,,,,,,,,850,,,,,850,850,850,850,,850,850,850,850,,,,,850,850,,,,870,870,870,850,870,850,850,850,870,870,850,850,,870,,870,870,870,870,870,870,870,,,,,,870,870,870,870,870,870,870,,,870,,,,,,,870,,,870,870,870,870,870,870,870,870,,870,870,870,,870,870,870,870,870,,,,,,,,,,,,,,,,,,,,870,,,870,,,870,870,,,870,,,,,,870,,,,,,,,,870,,,,,870,870,870,870,,870,870,870,870,,,,,870,870,,,,878,878,878,870,878,870,870,870,878,878,870,870,,878,,878,878,878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878,,,878,878,878,878,878,878,878,878,,878,878,878,,878,878,878,878,878,,,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,,878,,,,,878,878,878,878,,878,878,878,878,,,,,878,878,,,,891,891,891,878,891,878,878,878,891,891,878,878,,891,,891,891,891,891,891,891,891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891,891,,891,891,891,,891,891,891,891,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,,,,,891,,,,,,,,,891,,,,,891,891,891,891,,891,891,891,891,,,,,891,891,,,,892,892,892,891,892,891,891,891,892,892,891,891,,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,,892,892,892,892,,,,,892,892,,,,920,920,920,892,920,892,892,892,920,920,892,892,,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,,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,,,,,,,,,,,,,,,,,,,,921,,,921,,,921,921,,,921,,,,,,921,,,,,,,,,921,,,,,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,,,,,,,,,,,,,,,,,,,,922,,,922,,,922,922,,,922,,,,,,922,,,,,,,,,922,,,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,923,923,923,922,923,922,922,922,923,923,922,922,,923,,923,923,923,923,923,923,923,,,,,,923,923,923,923,923,923,923,,,923,,,,,,,923,,,923,923,923,923,923,923,923,923,,923,923,923,,923,923,923,923,923,,,,,,,,,,,,,,,,,,,,923,,,923,,,923,923,,,923,,,,,,923,,,,,,,,,923,,,,,923,923,923,923,,923,923,923,923,,,,,923,923,,,,924,924,924,923,924,923,923,923,924,924,923,923,,924,,924,924,924,924,924,924,924,,,,,,924,924,924,924,924,924,924,,,924,,,,,,,924,,,924,924,924,924,924,924,924,924,,924,924,924,,924,924,924,924,924,,,,,,,,,,,,,,,,,,,,924,,,924,,,924,924,,,924,,,,,,924,,,,,,,,,924,,,,,924,924,924,924,,924,924,924,924,,,,,924,924,,,,925,925,925,924,925,924,924,924,925,925,924,924,,925,,925,925,925,925,925,925,925,,,,,,925,925,925,925,925,925,925,,,925,,,,,,,925,,,925,925,925,925,925,925,925,925,,925,925,925,,925,925,925,925,925,,,,,,,,,,,,,,,,,,,,925,,,925,,,925,925,,,925,,,,,,925,,,,,,,,,925,,,,,925,925,925,925,,925,925,925,925,,,,,925,925,,,,958,958,958,925,958,925,925,925,958,958,925,925,,958,,958,958,958,958,958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,,958,,,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958,,,,,,,,,,,,,,,,,,,,958,,,958,,,958,958,,,958,,,,,,958,,,,,,,,,958,,,,,958,958,958,958,,958,958,958,958,,,,,958,958,,,,961,961,961,958,961,958,958,958,961,961,958,958,,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,,961,961,961,961,,,,,961,961,,,,984,984,984,961,984,961,961,961,984,984,961,961,,984,,984,984,984,984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984,984,984,984,984,984,984,984,,984,984,984,,984,984,984,984,984,,,,,,,,,,,,,,,,,,,,984,,,984,,,984,984,,,984,,,,,,984,,,,,,,,,984,,,,,984,984,984,984,,984,984,984,984,,,,,984,984,,,,989,989,989,984,989,984,984,984,989,989,984,984,,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,989,,989,989,989,989,989,,,,,,,,,,,,,,,,,,,,989,,,989,,,989,989,,,989,,989,,,,989,,,,,,,,,989,,,,,989,989,989,989,,989,989,989,989,,,,,989,989,,,,1008,1008,1008,989,1008,989,989,989,1008,1008,989,989,,1008,,1008,1008,1008,1008,1008,1008,1008,,,,,,1008,1008,1008,1008,1008,1008,1008,,,1008,,,,,,,1008,,,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,,1008,1008,1008,1008,1008,,,,,,,,,,,,,,,,,,,,1008,,,1008,,,1008,1008,,,1008,,,,1008,,1008,,,1008,,,,,,1008,,,,,1008,1008,1008,1008,,1008,1008,1008,1008,,,,,1008,1008,,,,1034,1034,1034,1008,1034,1008,1008,1008,1034,1034,1008,1008,,1034,,1034,1034,1034,1034,1034,1034,1034,,,,,,1034,1034,1034,1034,1034,1034,1034,,,1034,,,,,,,1034,,,1034,1034,1034,1034,1034,1034,1034,1034,,1034,1034,1034,,1034,1034,1034,1034,1034,,,,,,,,,,,,,,,,,,,,1034,,,1034,,,1034,1034,,,1034,,,,,,1034,,,,,,,,,1034,,,,,1034,1034,1034,1034,,1034,1034,1034,1034,,,,,1034,1034,,,,1147,1147,1147,1034,1147,1034,1034,1034,1147,1147,1034,1034,,1147,,1147,1147,1147,1147,1147,1147,1147,,,,,,1147,1147,1147,1147,1147,1147,1147,,,1147,,,,,,,1147,,,1147,1147,1147,1147,1147,1147,1147,1147,,1147,1147,1147,,1147,1147,1147,1147,1147,,,,,,,,,,,,,,,,,,,,1147,,,1147,,,1147,1147,,,1147,,,,,,1147,,,,,,,,,1147,,,,,1147,1147,1147,1147,,1147,1147,1147,1147,,,,,1147,1147,,,,1148,1148,1148,1147,1148,1147,1147,1147,1148,1148,1147,1147,,1148,,1148,1148,1148,1148,1148,1148,1148,,,,,,1148,1148,1148,1148,1148,1148,1148,,,1148,,,,,,,1148,,,1148,1148,1148,1148,1148,1148,1148,1148,,1148,1148,1148,,1148,1148,1148,1148,1148,,,,,,,,,,,,,,,,,,,,1148,,,1148,,,1148,1148,,,1148,,,,,,1148,,,,,,,,,1148,,,,,1148,1148,1148,1148,,1148,1148,1148,1148,,,,,1148,1148,,,,1160,1160,1160,1148,1160,1148,1148,1148,1160,1160,1148,1148,,1160,,1160,1160,1160,1160,1160,1160,1160,,,,,,1160,1160,1160,1160,1160,1160,1160,,,1160,,,,,,,1160,,,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,,1160,1160,1160,1160,1160,,,,,,,,,,,,,,,,,,,,1160,,,1160,,,1160,1160,,,1160,,1160,,1160,,1160,,,1160,,,,,,1160,,,,,1160,1160,1160,1160,,1160,1160,1160,1160,,,,,1160,1160,,,,39,39,39,1160,39,1160,1160,1160,39,39,1160,1160,,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,,,,40,40,40,39,40,39,39,39,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,,,1206,,1206,1206,1206,1206,1206,,,,,,,,,1206,,40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1206,40,,40,40,40,76,76,76,,76,1206,1206,,76,76,1206,,,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,,,,77,77,77,76,77,76,76,76,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,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,78,78,77,78,77,77,77,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,,,,342,342,342,78,342,78,78,78,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,,,1208,,1208,1208,1208,1208,1208,,,,,,,,,1208,,342,342,342,342,,342,342,342,342,,,,,342,342,,,,342,,1208,342,,342,342,342,361,361,361,,361,1208,1208,,361,361,1208,,,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,,,,591,591,591,361,591,361,361,361,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,,,,600,600,600,591,600,591,591,591,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,,,,806,806,806,600,806,600,600,600,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806,806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806,806,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,806,806,806,,806,806,806,806,,,,,806,806,,,,817,817,817,806,817,806,806,806,817,817,,,,817,,817,817,817,817,817,817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817,817,817,817,817,817,,817,817,817,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,,,817,,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,817,817,817,,817,817,817,817,,,,,817,817,,,,1016,1016,1016,817,1016,817,817,817,1016,1016,,,,1016,,1016,1016,1016,1016,1016,1016,1016,,,,,,1016,1016,1016,1016,1016,1016,1016,,,1016,,,,,,,1016,,,1016,1016,1016,1016,1016,1016,1016,1016,,1016,1016,1016,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,,,1016,,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,1016,1016,1016,,1016,1016,1016,1016,,,,,1016,1016,,,,1080,1080,1080,1016,1080,1016,1016,1016,1080,1080,,,,1080,,1080,1080,1080,1080,1080,1080,1080,,,,,,1080,1080,1080,1080,1080,1080,1080,,,1080,,,,,,,1080,,,1080,1080,1080,1080,1080,1080,1080,1080,,1080,1080,1080,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,,,1080,,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,1080,1080,1080,,1080,1080,1080,1080,,,,,1080,1080,,,,1142,1142,1142,1080,1142,1080,1080,1080,1142,1142,,,,1142,,1142,1142,1142,1142,1142,1142,1142,,,,,,1142,1142,1142,1142,1142,1142,1142,,,1142,,,,,,,1142,,,1142,1142,1142,1142,1142,1142,1142,1142,,1142,1142,1142,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,,,1142,,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,1142,1142,1142,,1142,1142,1142,1142,,,,,1142,1142,,,,,,,1142,,1142,1142,1142,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,,10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10,,,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,,,,,,11,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,,,,428,428,428,428,428,428,428,428,428,428,,,,,,428,428,428,428,428,428,428,428,428,,,428,,,,,,,,428,428,,428,428,428,428,428,428,428,,,428,428,,,,428,428,428,428,,,,,,,,,,,,,,428,428,,428,428,428,428,428,428,428,428,428,428,428,428,,,428,428,,,,,,,,,,,,,,428,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,670,,,,670,670,670,670,,,,,,,,,,,,,,670,670,,670,670,670,670,670,670,670,670,670,670,670,670,,,670,670,,,,,,,,,,,,,,670,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,530,530,530,530,,,1210,,1210,1210,1210,1210,1210,,,,530,530,530,530,,1210,,530,530,,,,,530,530,,,530,530,,,,,,,,,1210,,,,,,,,,,530,1210,1210,530,,,1210,530,,,530,,530,,,,,,,530,,,,,,,530,,,,530,530,530,530,,530,530,530,530,,,,,530,530,531,531,531,531,,,530,,530,530,530,,,530,530,,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,531,748,748,748,748,,,531,,531,531,531,,,531,531,,748,748,748,748,,,,748,,,,,,748,748,,,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,,748,,,748,,748,,,,,,,710,,710,710,710,710,710,748,,,,748,748,748,748,710,748,748,748,748,,,,,748,748,748,756,756,756,756,,748,,748,748,748,710,,748,748,,,756,756,756,756,,710,710,756,,,710,,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,,756,,,756,,,710,,,,,,,,,,,,,756,,,,756,756,756,756,,756,756,756,756,,,,,756,756,,,,,,,756,,756,756,756,,,756,756,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,,,,783,783,783,783,783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,783,783,,,783,,,,,,,,783,783,,783,783,783,783,783,783,783,,,783,783,,,,783,783,783,783,,,,,,,,,,,,,,783,783,,783,783,783,783,783,783,783,783,783,783,783,783,,,783,927,927,927,927,,,,,,1021,,1021,1021,1021,1021,1021,927,927,927,927,,,,927,1021,,,,,927,927,,,927,,,,,,,,,,,,,1021,,,,,,,927,,,927,1021,1021,,927,,1021,927,,927,,,,,,,,,,,,,,927,,,,927,927,927,927,,927,927,927,927,,,,,927,927,929,929,929,929,1021,,927,,927,927,927,,,927,927,,929,929,929,929,,,1136,929,1136,1136,1136,1136,1136,929,929,,,929,,,,1136,,,,,,,,,,,,,,,,929,,,929,,,1136,929,,,929,,,,,1136,1136,1136,1136,,,,1136,,,,929,,,,929,929,929,929,,929,929,929,929,,,,,929,929,932,932,932,932,,,929,,929,929,929,,,929,929,,932,932,932,932,,,,932,932,,,,,932,932,,,932,932,,,,,,,,,,,,,,,,,,,932,,,932,,,,932,,,932,,932,,,,,,,932,,,,,,,932,,,,932,932,932,932,,932,932,932,932,,,,,932,932,933,933,933,933,,,932,,932,932,932,,,932,932,,933,933,933,933,,,,933,933,,,,,933,933,,,933,933,,,,,,,,,,,,,,,,,,,933,,,933,,,,933,,,933,,933,,,,,,,933,,,,,,,933,,,,933,933,933,933,,933,933,933,933,,,,,933,933,939,939,939,939,,,933,,933,933,933,,,933,933,,939,939,939,939,,,1204,939,1204,1204,1204,1204,1204,939,939,,,939,,,,1204,,,,,,,,,,,,,,,,939,,,939,,,1204,939,,,939,,939,,,1204,1204,1204,1204,,,,1204,,,,939,,,,939,939,939,939,,939,939,939,939,,,,,939,939,945,945,945,945,,,939,,939,939,939,,,939,939,,945,945,945,945,,,1227,945,1227,1227,1227,1227,1227,945,945,,,945,,,,1227,,,,,,,,,,,,,,,,945,,,945,,,1227,945,,,945,,,,,,,1227,1227,,,,1227,,,,945,,,,945,945,945,945,,945,945,945,945,,,,,945,945,946,946,946,946,,,945,,945,945,945,,,945,945,,946,946,946,946,,,,946,,,,,,946,946,,,946,,,,,,,,,,,,,,,,,,,,946,,,946,,,,946,,,946,,,,,,,,,,,,,,,,946,,,,946,946,946,946,,946,946,946,946,,,,,946,946,988,988,988,988,,,946,,946,946,946,,,946,946,,988,988,988,988,,,,988,988,,,,,988,988,,,988,988,,,,,,,,,,,,,,,,,,,988,,,988,,,,988,,,988,,988,,,,,,,988,,,,,,,988,,,,988,988,988,988,,988,988,988,988,,,,,988,988,1115,1115,1115,1115,,,988,,988,988,988,,,988,988,,1115,1115,1115,1115,,,,1115,,,,,,1115,1115,,,1115,,,,,,,,,,,,,,,,,,,,1115,,,1115,,,,1115,,,1115,,,,,,,,,,,,,,,,1115,,,,1115,1115,1115,1115,,1115,1115,1115,1115,,,,,1115,1115,1123,1123,1123,1123,,,1115,,1115,1115,1115,,,1115,1115,,1123,1123,1123,1123,,,,1123,,,,,,1123,1123,,,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,,1123,,,1123,,,,,,,,,,,,,,,,1123,,,,1123,1123,1123,1123,,1123,1123,1123,1123,,,,,1123,1123,1127,1127,1127,1127,,,1123,,1123,1123,1123,,,1123,1123,,1127,1127,1127,1127,,,,1127,,,,,,1127,1127,,,1127,,,,,,,,,,,,,,,,,,,,1127,,,1127,,,,1127,,,1127,,1127,,,,,,,,,,,,,,1127,,,,1127,1127,1127,1127,,1127,1127,1127,1127,,,,,1127,1127,1202,1202,1202,1202,,,1127,,1127,1127,1127,,,1127,1127,,1202,1202,1202,1202,,,,1202,,,,,,1202,1202,,,1202,,,,,,,,766,766,766,766,,,,,,,,,1202,,,1202,766,766,766,1202,,,1202,,,,,,,766,766,,,766,,,,,1202,,,,1202,1202,1202,1202,,1202,1202,1202,1202,,,,,1202,1202,,,,,,,1202,,1202,1202,1202,,,1202,1202,971,,971,971,971,971,971,,,,,766,766,766,766,971,766,766,766,766,,,,,766,766,952,952,952,952,,,766,,766,766,766,971,,,,,952,952,952,,971,971,971,971,,,,971,,952,952,,,952,953,953,953,953,,,,,,,,,,,,,953,953,953,971,,,,,,,,,,953,953,,,953,,,,,,,,,,,,,,,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952,,,,,,,,,953,953,953,953,,953,953,953,953,,,,,953,953,,,,,,,953,,953,953,953,706,,706,706,706,706,706,,708,,708,708,708,708,708,706,,,,,,,,708,,1019,,1019,1019,1019,1019,1019,,,,,,706,,,1019,,,,,708,706,706,706,706,,,,706,708,708,708,708,,,,708,1019,,,,,,,,,1019,1019,1019,1019,,,1023,1019,1023,1023,1023,1023,1023,1025,,1025,1025,1025,1025,1025,,1023,706,,,,,,1025,,708,1164,,1164,1164,1164,1164,1164,,,,,,1023,,,1164,1019,,,1025,,,,1023,1023,,,,1023,,1025,1025,,,,1025,,1164,,,,,,,,,,,1164,1164,,,,1164,,,,,,,,,,,,226,226,,1023,226,,,,,,1025,,226,226,,226,226,226,226,226,226,226,,,226,226,,,1164,226,226,226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,227,227,226,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,,,227,227,,,,227,227,227,227,,,,,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,227,227,227,227,227,303,303,227,,303,,,,,,,,303,303,,303,303,303,303,303,303,303,,,303,303,,,,303,303,303,303,,,,,,,,,,,,,,303,303,,303,303,303,303,303,303,303,303,303,303,303,303,521,521,303,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,,,521,521,,,,521,521,521,521,,,,,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,521,521,521,521,521,522,522,521,,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,594,594,522,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,,,594,594,,,,594,594,594,594,,,,,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,594,594,594,594,594,595,595,594,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,,,595,595,,,,595,595,595,595,,,,,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,595,595,595,595,595,604,604,595,,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,605,605,604,,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,632,632,605,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,,,632,632,,,,632,632,632,632,,,,,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,632,632,632,632,632,633,633,632,,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,639,639,633,,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,640,640,639,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,,,640,640,,,,640,640,640,640,,,,,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,640,640,640,640,640,677,677,640,,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,678,678,677,,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,1161,1161,678,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,,,1161,1161,,,,1161,1161,1161,1161,,,,,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1162,1162,1161,,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,1185,1185,1162,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,,,1185,1185,,,,1185,1185,1185,1185,,,,,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,,,1185"),B=e.large_array_unpack(",204,979,226,,-110,,5154,964,144,24967,25095,159,,157,176,525,279,-62,-84,162,374,,-71,5285,1123,25479,358,,171,,-8,5426,5536,5670,5801,5932,,1123,23109,23240,,281,525,531,368,6063,6194,205,6325,6456,525,6587,318,342,,,,,,,,,,6728,,6869,7000,7131,35,,7262,7393,,,7524,23379,23510,23641,,,,,,,,,,612,,,,,,,,,,,,,,,,,,,,,,,0,112,,,,,,,,,,,,,7667,,,,,7810,7941,8072,8203,8346,,1267,,588,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,345,,1411,8477,8608,8739,8870,9001,9132,27591,27652,,,363,1555,372,,719,831,384,1699,9263,9394,9525,,,514,-23,141,480,193,409,536,,9656,307,388,1843,541,,,9787,9918,10049,10180,10311,10442,10573,10704,10835,10966,11097,11228,11359,11490,11621,11752,11883,12014,12145,12276,12407,12538,,,,,12669,,,226,302,515,517,518,532,550,558,584,585,,,,12800,,,27713,,,541,12931,13062,,,,,,,,13193,,1843,,512,532,,13324,585,13455,,,13586,13717,,,221,,13860,1252,599,579,1987,626,687,648,23772,2131,694,806,873,748,878,,724,691,225,743,748,,,,750,221,707,23911,,564,879,3283,3427,778,,779,13991,,757,2275,1396,721,,139,574,760,743,583,773,,577,-1,11,14122,2419,2563,264,845,727,-18,10,893,810,11,842,,,441,481,513,,962,,761,14253,,15821,,193,378,396,402,412,-41,-27,463,,,,,,,,756,25223,,,,,759,,835,746,14384,747,,,736,,968,246,850,,,1267,,,,,,1411,764,,763,765,615,669,14525,,,,,222,334,825,,,14657,14793,14930,908,913,,,-1,793,792,800,,,805,816,818,,,,,,,,,,807,3125,,,15061,,,,,,,,902,,,907,361,15192,950,,,,-35,,870,27774,27835,15323,253,15454,15585,15716,823,828,25562,25660,3571,3715,-45,1018,908,912,925,927,5285,5375,5488,3859,4003,4147,4291,4435,4579,3311,3455,4723,4867,1987,5011,,-33,,15857,,,,,15987,886,885,889,,,,892,,,16118,,16249,,16380,,329,,,,16523,1540,,918,917,,,918,24042,923,16666,27896,27957,972,968,,,24173,925,,16797,28018,28079,16928,5154,17059,,1051,932,976,,17190,,,17321,,,,2707,1056,,2851,62,1060,1064,508,1066,17452,17583,28140,28201,27,,,995,,28262,28323,17714,,,81,2995,,15851,,,,,1033,,,,958,,,153,,263,,,944,,947,,,,25351,,17857,950,17988,18119,18250,28384,28445,18393,18524,693,991,18655,18786,18917,19048,997,,,19179,19310,1002,,1060,1555,1091,19441,,,,,888,,,544,27424,,27432,,25811,,961,19572,,3154,,976,978,729,983,,,,,1087,1699,,,,277,286,473,612,1001,19703,19834,,-77,,,,,1023,,,,582,25758,94,,1002,1085,1006,,,25857,,,303,,,654,,,6728,27202,,,,,,,,,,,,838,612,,,1016,26000,,1140,,1123,91,,,19965,,1038,1050,1156,,1046,,1096,20096,,,20227,,245,24304,1070,,1074,236,250,1120,360,1123,1124,1084,24435,,1153,2131,20358,,,,604,738,,1208,,,,,,1218,1226,,,26,1106,40,41,151,152,3139,970,1267,,1107,3283,20489,,1238,63,1118,,,,,,3427,,,,,,,,,1117,20620,1123,306,343,722,834,,2275,20751,,1122,,,,,,,,,,,20882,21013,1248,,3571,1124,1173,,,1131,,1223,,,1142,1143,,1146,1147,,1148,,,,1153,3184,3164,,,21144,21275,21406,21537,21668,21799,347,26083,1252,26181,-41,252,26279,26377,622,-32,1174,1176,,26475,,1175,359,,1196,26573,26671,,637,1236,333,,27300,27334,,,,,21930,,,22061,,,1218,,,1234,1218,,,27255,3715,,,,,1220,338,,-7,,1345,,22192,1348,,,26769,22323,3859,68,1352,,1354,442,4003,,,,,1231,1281,1252,1247,445,,,22454,2419,2563,,4147,,,32,24566,,,27449,,26073,,27501,,27508,,,,,1248,1258,2707,2851,22585,,1259,,,,,1264,1267,1269,1271,1274,1278,,,,1331,1286,1287,,1293,,,122,1291,,,,,,,1295,2995,4291,,,1294,1314,,1315,1317,1319,,1344,1337,1326,24697,,,,,,33,,34,728,,615,,,,1482,4435,4579,1109,,,,4723,35,36,1165,1437,42,,1364,1365,1368,1372,3651,3795,26867,,,,,,,,26965,,370,,27063,,,1444,,,15876,,,26184,,14588,,,1398,24828,1309,1460,4867,,22716,22847,,,,,1410,1515,636,,,,1518,22978,28506,28567,98,27526,,,,,1397,1402,1403,,,1404,,,1405,1408,1412,1413,,1419,,1411,28628,,797,5011,,,,,,1829,,1432,102,138,145,181,1430,27161,,26478,,23287,,23819,,25549,,,1475,1478,,38,,146,,1435,1436,1438,1458,,,,26576,,,,,1459,"),I=e.large_array_unpack("-1,-741,-4,-741,-2,-727,-5,-741,-8,-741,-741,-741,-741,-31,-741,-741,-36,-741,-741,-637,-637,-313,-52,-729,-741,-61,-741,-69,-70,-71,-75,-287,-287,-287,-326,-354,-355,-87,-13,-91,-99,-101,-741,-624,-625,-741,-741,-741,-741,-741,-741,-239,-741,-729,-258,-304,-305,-306,-307,-308,-309,-310,-311,-312,-717,-315,-319,-740,-705,-335,-337,-741,-741,-63,-63,-727,-741,-741,-741,-356,-357,-359,-360,-361,-362,-421,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-611,-612,-613,-715,-716,-616,-617,-618,-619,-620,-621,-622,-623,-628,-629,1234,-3,-728,-736,-737,-738,-7,-741,-741,-741,-741,-741,-9,-4,-19,-741,-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,-741,-741,-741,-741,-741,-277,-741,-741,-725,-726,-741,-13,-636,-634,-660,-660,-741,-13,-741,-741,-729,-730,-56,-741,-624,-625,-741,-313,-741,-741,-245,-741,-637,-637,-13,-741,-57,-59,-222,-223,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-259,-260,-261,-262,-741,-65,-66,-741,-130,-131,-170,-171,-172,-188,-193,-200,-203,-624,-625,-703,-741,-430,-432,-741,-723,-724,-76,-277,-741,-334,-436,-445,-447,-82,-442,-83,-729,-84,-265,-282,-292,-292,-286,-290,-293,-295,-587,-707,-711,-714,-85,-86,-727,-14,-741,-17,-741,-89,-13,-729,-741,-92,-95,-13,-107,-108,-741,-741,-115,-326,-329,-729,-741,-637,-637,-354,-355,-358,-443,-741,-97,-741,-103,-323,-741,-224,-225,-606,-233,-234,-741,-246,-251,-13,-317,-729,-266,-729,-729,-741,-741,-729,-741,-336,-62,-741,-741,-741,-13,-13,-727,-741,-728,-624,-625,-741,-741,-313,-741,-372,-373,-125,-126,-741,-128,-741,-313,-632,-741,-350,-660,-567,-741,-741,-741,-741,-741,-741,-741,-741,-6,-739,-25,-26,-27,-28,-29,-741,-741,-21,-22,-23,-138,-741,-32,-35,-300,-295,-741,-299,-33,-741,-37,-741,-313,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-729,-278,-292,-292,-715,-716,-287,-440,-717,-718,-719,-716,-715,-287,-439,-441,-717,-719,-741,-555,-741,-385,-386,-686,-729,-702,-702,-642,-643,-645,-645,-645,-659,-661,-662,-663,-664,-665,-666,-667,-668,-669,-741,-671,-673,-675,-680,-682,-683,-684,-691,-693,-694,-696,-697,-698,-700,-741,-741,-741,-48,-219,-55,-729,-333,-741,-741,-741,-277,-323,-741,-741,-741,-741,-741,-741,-741,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-729,-263,-67,-729,-451,-287,-715,-716,-73,-77,-661,-729,-292,-729,-288,-449,-451,-729,-328,-283,-741,-284,-741,-289,-741,-294,-741,-710,-713,-12,-728,-16,-18,-729,-88,-321,-104,-93,-741,-729,-277,-741,-741,-114,-741,-636,-606,-741,-100,-105,-741,-741,-741,-741,-264,-741,-330,-741,-729,-741,-267,-735,-734,-269,-735,-324,-325,-706,-13,-363,-364,-13,-741,-741,-741,-741,-741,-741,-277,-741,-741,-323,-63,-125,-126,-127,-741,-741,-277,-346,-630,-741,-13,-422,-660,-425,-568,-588,-593,-741,-595,-571,-590,-741,-592,-573,-741,-576,-741,-578,-581,-741,-582,-741,-604,-10,-20,-741,-30,-741,-303,-741,-741,-277,-741,-741,-741,-741,-444,-741,-279,-281,-741,-741,-78,-276,-437,-741,-741,-80,-438,-44,-254,-740,-740,-352,-524,-685,-635,-741,-640,-641,-741,-741,-652,-741,-655,-741,-657,-741,-741,-374,-741,-376,-378,-381,-384,-729,-674,-695,-699,-638,-46,-256,-353,-332,-731,-715,-716,-715,-716,-729,-741,-741,-58,-465,-468,-469,-470,-471,-473,-475,-478,-479,-534,-729,-491,-494,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-741,-741,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-741,-741,-553,-60,-741,-741,-704,-741,-452,-72,-433,-449,-272,-279,-274,-741,-411,-741,-327,-292,-291,-296,-298,-708,-709,-741,-15,-90,-741,-96,-102,-729,-715,-716,-275,-720,-113,-741,-98,-741,-218,-232,-252,-741,-316,-318,-320,-729,-740,-365,-740,-64,-366,-367,-340,-341,-741,-741,-457,-343,-741,-729,-715,-716,-720,-322,-13,-125,-126,-129,-729,-13,-741,-348,-741,-741,-729,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-301,-298,-729,-715,-716,-716,-715,-50,-271,-741,-732,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-741,-741,-740,-370,-13,-556,-740,-557,-558,-702,-681,-686,-701,-644,-645,-645,-672,-645,-645,-692,-645,-669,-388,-687,-729,-741,-741,-383,-670,-741,-741,-741,-741,-741,-741,-444,-466,-741,-741,-476,-477,-741,-741,-741,-496,-729,-729,-490,-497,-501,-741,-741,-493,-741,-741,-741,-507,-514,-518,-741,-522,-530,-531,-535,-536,-548,-549,-741,-126,-551,-741,-68,-431,-411,-435,-434,-741,-729,-446,-412,-729,-13,-448,-285,-297,-712,-94,-444,-106,-729,-268,-741,-368,-741,-741,-342,-344,-741,-741,-13,-444,-741,-444,-741,-741,-13,-351,-423,-426,-428,-415,-741,-741,-302,-444,-39,-213,-280,-45,-255,-11,-13,-562,-371,-741,-741,-560,-639,-741,-648,-741,-650,-741,-653,-741,-656,-658,-375,-377,-379,-382,-47,-257,-741,-467,-504,-472,-474,-483,-487,-729,-729,-729,-729,-729,-729,-552,-488,-489,-511,-498,-499,-502,-729,-587,-733,-729,-505,-509,-512,-517,-521,-528,-529,-729,-253,-13,-74,-273,-702,-702,-392,-394,-394,-394,-410,-741,-729,-669,-677,-678,-689,-450,-331,-338,-741,-339,-741,-462,-296,-740,-345,-347,-631,-741,-13,-13,-741,-424,-596,-561,-13,-624,-625,-741,-741,-313,-559,-645,-645,-645,-645,-741,-741,-741,-480,-481,-482,-484,-485,-486,-503,-741,-492,-741,-495,-741,-550,-453,-741,-390,-391,-395,-401,-403,-741,-406,-741,-408,-413,-741,-741,-676,-741,-13,-458,-741,-741,-454,-455,-456,-349,-741,-741,-729,-417,-419,-420,-555,-277,-741,-741,-323,-741,-646,-649,-651,-654,-380,-505,-500,-506,-510,-702,-679,-393,-394,-394,-394,-394,-690,-394,-414,-688,-741,-323,-740,-13,-463,-464,-427,-429,-416,-741,-554,-729,-715,-716,-720,-322,-645,-741,-389,-741,-398,-741,-400,-741,-404,-741,-407,-409,-322,-720,-369,-740,-418,-444,-647,-394,-394,-394,-394,-459,-460,-461,-741,-396,-399,-402,-405,-394,-397"),D=e.large_array_unpack("44,412,475,341,340,44,142,142,514,319,319,319,696,419,233,233,226,302,286,638,496,496,142,285,298,383,128,304,455,385,386,714,893,390,137,218,44,345,345,145,145,713,15,629,357,357,835,15,388,389,566,703,704,900,461,468,907,621,624,737,781,562,376,125,44,135,574,310,314,982,439,440,242,124,394,298,298,798,15,798,801,357,357,357,306,313,315,237,422,423,424,425,367,910,303,906,128,908,793,17,740,740,446,360,17,446,15,337,1029,601,564,613,616,479,512,620,399,487,487,446,720,1031,801,44,707,709,711,1036,320,320,320,558,44,1002,44,17,4,972,339,1052,943,452,129,391,610,785,1074,1,903,1156,1158,903,2,1181,1011,515,804,795,936,1043,1046,377,217,17,985,15,407,409,400,1054,659,661,598,598,15,435,15,954,955,8,317,330,331,428,8,433,530,798,798,801,531,829,1051,287,783,789,496,759,759,1059,319,670,370,574,1058,608,379,788,299,380,398,642,373,655,657,660,660,44,611,375,340,1181,17,472,821,849,996,645,1030,44,937,17,1076,17,1134,44,1078,579,1155,230,236,521,646,374,998,1217,1158,233,233,714,1077,410,44,918,853,847,738,738,1096,15,420,441,462,1097,441,557,568,569,434,445,427,15,445,964,1149,1088,1224,15,441,988,834,1188,319,319,1037,304,445,1038,932,648,933,319,942,487,15,798,321,321,321,945,1060,1061,8,957,340,897,1029,1067,1177,340,1015,426,411,8,438,438,17,1169,17,967,237,17,464,464,413,602,734,1172,17,378,381,414,44,415,17,17,44,1035,915,807,345,44,1041,1044,594,625,416,357,816,461,468,17,555,128,626,627,417,1141,418,345,1075,855,604,860,1063,1064,357,850,1059,902,905,44,901,1170,15,907,1059,1175,15,,1173,1171,,15,,,44,44,310,,583,,585,632,314,960,809,,,464,582,565,320,599,910,590,,337,1109,,320,128,337,15,1042,1045,852,1072,,,,237,812,,142,761,761,1150,15,15,1215,17,812,496,839,17,,,586,,17,677,885,592,848,1124,,890,694,,714,714,669,,567,1173,,145,628,863,812,863,570,,,,239,,812,,17,1018,528,529,935,,384,384,,871,384,1174,949,907,,17,17,,725,,,,496,519,496,,372,688,319,,,,,,693,461,468,,,,990,584,798,801,687,,,1089,472,,,692,1178,,,1179,854,,775,775,487,,,724,968,384,384,384,384,909,,911,974,,,1020,1022,898,1024,1026,1047,1027,1225,,977,602,446,462,740,981,907,,,,602,,446,446,319,571,321,446,446,,,,903,,321,1072,,44,1072,,1072,,,826,,345,828,472,587,1220,688,,357,,345,759,759,472,881,883,,357,319,886,888,759,844,787,,,,759,319,464,464,44,994,,44,15,1142,974,,450,451,472,462,,,,1226,472,,,,,462,1131,1132,44,517,518,830,714,714,,1072,319,1072,935,1072,759,1072,,935,935,,15,,,15,851,142,,462,950,44,1057,,1072,472,,462,44,,,17,,,,,15,,1102,,,464,464,899,,867,,,1195,,145,464,464,,,,556,,,,,,,15,462,738,441,,,17,15,,17,,445,838,441,441,,464,464,441,441,701,445,445,464,464,,445,445,,,17,1151,966,1203,775,,1071,1165,1166,1167,1168,,775,,,1079,1145,446,1146,,,775,775,,,1095,,17,602,728,17,464,464,962,17,965,,142,285,979,17,17,,,,17,17,,,438,384,,597,1006,,902,,,,,1073,,345,496,,,995,784,992,357,,644,,345,,790,612,792,615,615,357,796,615,,1003,761,761,,,,,,,797,,761,1129,805,1080,1219,44,761,,808,,44,688,868,1110,693,1111,,1112,,876,,44,,,1014,,,823,,,,1154,,,,,,,,825,,,,,,,761,15,,,453,1013,15,,,1017,44,,,,,682,,15,516,,,,,,,,,1071,,,1071,382,1071,1065,,441,1079,,,1079,,,775,445,775,,,775,775,,,,15,,775,1083,,,17,1086,775,775,880,17,,,,775,775,,,,,1091,17,,,,,,1196,,,1125,1180,,1182,44,,,919,,17,,,1101,,,1071,,1071,,1071,775,1071,44,812,1079,,17,,44,1201,782,,,1080,,,1080,,1071,1080,,1080,,,44,,15,,1104,,1094,,,,,357,,,,,,,,,15,,,,,1221,15,1222,,1223,,,,,,,,,,,,,15,880,,,1108,,1232,,,,1153,,,44,436,449,1159,17,,,,1080,,1080,,1080,298,1080,,,,,,357,18,17,,,,18,,17,44,44,1080,1135,1137,1139,44,,,1161,,1189,1190,15,243,17,,1187,,775,,,,,243,243,243,775,18,346,346,775,,,,,,,681,,,319,15,15,,,298,,15,44,,,,357,,,18,,,,1216,243,243,,472,243,395,405,405,,17,,,,1028,576,,578,,,580,581,,682,,,,472,,1039,,15,44,,516,,453,682,944,17,17,,,462,,17,775,1205,1207,1209,1211,,1212,,,18,,,,,243,243,243,243,18,,18,1069,,,,,980,,15,,,,,1084,,,,,,,,,17,,1228,1229,1230,1231,,,,,682,,,384,1233,464,464,,,,,,,,818,,615,,,,,,,,,767,767,,,464,682,673,,17,,,,,,682,,,1116,1117,1118,1001,,,,,,18,243,443,243,243,443,243,1126,,,,682,18,,,1128,,,18,443,243,243,,,,,,,,19,,,,,19,18,,,,,,,,721,,882,884,,,,887,889,,,,,,,,,384,,,,,19,353,353,,,,682,,,,,682,682,,,,243,768,768,,,384,,243,243,,,,19,,,,243,,,,,20,353,353,353,,20,926,,,1001,,,,18,799,,382,18,802,,938,346,18,,,,,,,,,,,,,,20,354,354,,346,,,,,,,,,,19,,18,,,799,,,382,19,,19,,,20,,243,18,18,,,449,,,354,354,354,,,,,978,682,682,682,,,243,,,767,,944,,,,,,767,,,,,,,,,767,767,,,991,,,,869,1001,,,,993,,,20,799,382,,,,,,,20,,20,,1007,,896,,,,,1005,19,,19,384,384,19,,,243,,914,,19,,,,,,19,19,,,,,,,,,,,,,,,,19,882,884,889,887,,,,,,,,,243,1193,,,,,768,,,,243,1040,,,768,,1048,1049,,,,,,768,768,20,,20,,,20,,,,,,,20,,,799,,682,20,20,,,,,975,,,976,,,,,,,,20,,,,769,769,,19,,,18,19,,,,353,19,767,346,767,243,,767,767,,,,346,,767,,,,,353,767,767,,,,1007,,767,767,,,19,,18,,,18,,,,,,,243,1004,,19,19,,1119,1120,1121,,243,,,,18,,,,,,767,,20,,,,20,,,,354,20,,,,,,,,,,18,,,443,243,,,18,354,,,,,443,443,,,,443,443,20,,,,,,768,,768,,,768,768,,,20,20,,768,,,,,,768,768,,,,,,768,768,,,,,,,,,,,,,,,,,,,,,,,,,,,1090,,,,,,,,768,,,,,,,,,,,382,,,,,,,,767,,,,,,,,767,,,1218,767,,,,,769,,,,,,,,769,,,346,,,,,,769,769,,,,346,,,,243,,,,21,,,,19,21,,,,,,,353,,,,,,,18,,353,,,18,243,,,,,,,,770,770,18,21,348,348,,767,,19,,,19,,,,,,,,443,,,,,,,,768,,,21,,19,,,768,18,771,771,768,397,406,406,20,,,,,,,,354,,,,,,,,19,354,,19,,,,19,,,,,,19,19,,,,19,19,,,20,,,20,,,,,21,,,,,,772,772,,21,243,21,,,,,20,,,,,,,,18,768,769,,769,,,769,769,,,,243,,769,,,,18,20,769,769,20,,18,,20,769,769,,,,20,20,,,,20,20,,18,,,,1105,,,,,,,,,,,,,,,,,,,769,,,,,,,21,,444,,,444,,,,,353,,21,,,,,,21,444,,353,,,,18,,,,,,,,,770,21,,,1143,,,,770,,,,,,19,,,770,770,19,18,18,,,,,18,,,,19,,,,,,,,771,,,,,,,,771,,19,354,,,,,,771,771,,,,354,,,,,19,1184,,,18,,243,243,,,,,,,,,21,,,243,21,769,20,,348,21,,20,,769,,772,,769,,,,,20,772,,,,348,,,,18,772,772,,,,,,21,20,,,,,,,,,,,,,,21,21,,20,,,,19,,,,,,,,,,,,,,,,,,19,,,,,,19,,,,,,,769,,,,,,770,,770,19,,770,770,353,,,,,770,,,,,,770,770,,,,,,770,770,,,,,,,,,,20,,771,,771,,,771,771,,,,,,771,,,,20,,771,771,19,,20,770,,771,771,,,,,,,353,,,,,20,,,,354,,,,,,,19,19,,,,,19,,,772,,772,771,,772,772,,,,,,772,,,,,,772,772,,,,,,772,772,,,,,,,,,20,,353,773,773,19,,,,,,,,354,,,,,,,21,,,,,,772,,348,20,20,,,,,20,,348,,,,,,,,,,,19,,,,,,,,,770,21,,,21,,,,770,,,,770,,,31,,,354,,31,20,,,,21,,,,,,,859,,,,,31,771,,,,,,,,771,31,31,31,771,31,21,,,444,,43,,21,,,43,,20,444,444,,,,444,444,,,,,,,,31,,297,,,31,31,,770,31,,,,,43,344,344,772,,,,,,,,772,,,,772,,,,,,,,,,,,,43,,,,771,,,,,,393,297,297,,,,,31,,,,,31,31,31,31,31,,31,,,,,,,,,,,,,,,773,,,,,,,,773,,,,,,,,43,773,773,772,,,348,,,43,,43,,,,,,348,,,,,,,,774,774,,,,,,,,,,,,,,,,,,21,,,,,21,,,31,31,31,31,31,31,31,,21,,,,31,,,,,,31,31,31,31,,,,,444,,,,,,,,,31,,,,,,,43,21,,,,,,,,,,,43,,,,,,43,,,,,,,,,,,,,,,,,43,,,,31,,,,,,,31,31,,,,,,,,31,,,,,,,,,,,,,,773,,773,,31,773,773,,31,21,,,773,31,,,,,773,773,,,,,,773,773,21,,,,,,21,,,,,,,,,,31,,,43,,,21,43,,,1107,344,43,,31,31,31,,773,,,,,,,,,,,,344,,,,,31,,774,,,,,43,,34,774,,,,34,,,,,774,774,,43,43,,,21,,,,,34,,,,,,,,406,,34,34,34,,34,,,,,,,,,,21,21,,,,,21,,,,31,,,,,,,,34,,,,,34,34,,,34,,,,,,,,,,,,,,,,,,,406,776,776,21,31,,,,,773,,,,,31,,,773,,,,773,,,,,,,,,,34,,,,,34,34,34,34,34,,34,,,,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,31,,,,,,774,,774,,31,774,774,,,,,,774,,,,773,,774,774,,,,,,774,774,,,,,,31,,,31,43,,,,,,31,,344,34,34,34,34,34,34,34,31,344,,,31,34,,,,774,,34,34,34,34,,,,,,,,43,,,43,,,34,,,31,,,31,31,,,31,,,,,,31,31,43,,,31,31,,,,,,,,,,,,,,,,,,,,,,,43,34,,,,,,43,34,34,,,,,776,,,34,,,,,776,,,,,,,,,776,776,,,34,,,,34,,,,,34,,,,,,,,,,,,,,,,,,,774,,,,,,,,774,,,34,774,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,31,,34,,,,,,,,,,,,,,,,,,,,,31,,,,344,31,31,,,,,,,,,344,31,,,,774,,,,,,,,,,,,,,31,,,,,,,,43,,34,,,43,,,,31,,,,,,,43,,,,,776,,776,,,776,776,,,,,,776,,,,,,776,776,,34,,,,776,776,,,,43,34,,,,,,,,,,,,,,,,,,,,31,,,,,,,,,,776,,,,31,,,,,,,,,,,,31,,,,,,31,,,,,,31,,34,,,,,,,,,,34,,,,31,,43,,,,,,,,,,,,,,,,,,43,,,,34,,43,34,,,,,,,34,,,,,,,,43,,34,,1103,,34,,,,,,,31,,,,,,,,,,,,,,,,,,,,34,,,34,34,,,34,776,31,31,,,34,34,31,776,,34,34,776,250,43,,,,,,,,,318,318,318,,297,,,,,,,,365,366,,368,369,,371,,43,43,,,,,43,31,,31,31,,,318,318,,,,,,,,31,,,,,,,,,,,,,,,,,,,,,,776,,297,,,43,31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,318,448,,,454,318,34,,,,,,,,,,,,454,,,,,,,,,,,,,250,,,,,,,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,,,,,554,,,,,34,,,,,,,,,,,,,,34,,,,318,318,,,,,,,34,318,,,,,34,,318,,318,,34,318,318,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,607,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,34,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,695,,,34,,34,34,,,,,,,,,,,,34,,,,,,,,,318,,,,,,,,,,,,,726,,,,,,34,,,,318,,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,366,,,,,,,,,,318,,318,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,454,,,819,,820,,,,,,318,,,318,,,,,,,,,,,,,318,318,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,454,318,,,,877,,,318,318,454,454,,,,454,454,,,,,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,695,726,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,318,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,454,,,,,,,,,,,,,1009,1010,,,,,,,,,,,,,,,,,,,,,,,,,,,,1032,1033,454,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318"),E=e.large_array_unpack("72,198,10,68,11,72,75,75,10,36,36,36,12,198,87,87,33,158,46,73,230,230,75,48,72,107,117,33,31,19,19,128,13,19,17,17,72,72,72,77,77,135,23,112,82,82,113,23,44,44,92,139,139,133,55,55,231,110,110,41,41,57,87,7,72,9,94,91,91,111,24,24,22,5,72,72,72,95,23,95,239,82,82,82,56,56,56,119,19,19,19,19,80,235,51,146,117,146,58,29,177,177,20,69,29,20,23,64,127,70,31,89,89,157,157,89,23,225,225,20,129,130,239,72,228,228,228,192,88,88,88,55,72,149,72,29,2,147,65,192,187,28,6,5,10,161,145,1,140,151,152,140,3,236,14,28,16,161,175,178,178,88,18,29,13,23,74,74,21,178,214,214,224,224,23,25,23,202,202,8,63,63,63,27,8,11,42,95,95,239,43,45,191,50,52,60,230,200,200,191,36,78,83,94,193,84,86,93,105,106,114,116,120,215,215,215,215,72,121,122,11,236,29,75,123,124,125,126,131,72,176,29,136,29,142,72,143,198,150,35,35,33,153,8,154,151,152,87,87,128,149,155,72,128,156,73,174,174,159,23,6,23,91,160,23,162,164,165,22,22,2,23,22,168,169,170,171,23,23,172,112,173,36,36,180,33,22,182,183,157,184,36,188,225,23,95,90,90,90,189,195,196,8,205,11,206,127,147,145,11,207,8,210,8,88,88,29,130,29,58,119,29,61,61,211,68,31,192,29,90,90,212,72,213,29,29,72,175,129,70,72,72,175,175,33,19,216,82,70,55,55,29,51,117,11,11,217,149,218,72,146,219,33,220,202,202,82,223,191,200,229,72,233,193,23,231,191,234,23,,191,193,,23,,,72,72,91,,7,,9,33,91,73,31,,,61,5,88,88,80,235,69,,64,146,,88,117,64,23,176,176,10,140,,,,119,55,,75,201,201,13,23,23,111,29,55,230,31,29,,,65,,29,33,57,65,31,187,,57,36,,128,128,17,,63,191,,77,5,215,55,215,63,,,,40,,55,,29,139,35,35,174,,26,26,,31,26,133,174,231,,29,29,,36,,,,230,66,230,,40,91,36,,,,,,91,55,55,,,,110,8,95,239,56,,,41,75,,,56,146,,,146,157,,72,72,225,,,117,92,26,26,26,26,144,,144,94,,,228,228,24,228,228,73,228,13,,70,68,20,91,177,89,231,,,,68,,20,20,36,66,90,20,20,,,,140,,90,140,,72,140,,140,,,11,,72,11,75,66,146,91,,82,,72,200,200,75,28,28,,82,36,28,28,200,44,56,,,,200,36,61,61,72,10,,72,23,135,94,,26,26,75,91,,,,113,75,,,,,91,139,139,72,26,26,117,128,128,,140,36,140,174,140,200,140,,174,174,,23,,,23,117,75,,91,198,72,174,,140,75,,91,72,,,29,,,,,23,,110,,,61,61,87,,17,,,12,,77,61,61,,,,26,,,,,,,23,91,174,23,,,29,23,,29,,22,88,23,23,,61,61,23,23,66,22,22,61,61,,22,22,,,29,112,107,139,72,,132,228,228,228,228,,72,,,230,110,20,110,,,72,72,,,10,,29,68,66,29,61,61,46,29,158,,75,48,68,29,29,,,,29,29,,,88,26,,40,28,,200,,,,,144,,72,230,,,19,66,11,82,,26,,72,,66,40,66,40,40,82,66,40,,11,201,201,,,,,,,90,,201,10,66,232,228,72,201,,66,,72,91,8,144,91,144,,144,,8,,72,,,11,,,66,,,,10,,,,,,,,90,,,,,,,201,23,,,79,87,23,,,87,72,,,,,40,,23,79,,,,,,,,,132,,,132,85,132,19,,23,230,,,230,,,72,22,72,,,72,72,,,,23,,72,11,,,29,19,72,72,90,29,,,,72,72,,,,,11,29,,,,,,31,,,198,144,,144,72,,,66,,29,,,11,,,132,,132,,132,72,132,72,55,230,,29,,72,144,40,,,232,,,232,,132,232,,232,,,72,,23,,72,,117,,,,,82,,,,,,,,,23,,,,,144,23,144,,144,,,,,,,,,,,,,23,90,,,23,,144,,,,11,,,72,85,85,11,29,,,,232,,232,,232,72,232,,,,,,82,30,29,,,,30,,29,72,72,232,141,141,141,72,,,33,,19,19,23,30,29,,11,,72,,,,,30,30,30,72,30,30,30,72,,,,,,,32,,,36,23,23,,,72,,23,72,,,,82,,,30,,,,11,30,30,,75,30,30,30,30,,29,,,,66,85,,85,,,85,85,,40,,,,75,,66,,23,72,,79,,79,40,40,29,29,,,91,,29,72,141,141,141,141,,141,,,30,,,,,30,30,30,30,30,,30,66,,,,,26,,23,,,,,66,,,,,,,,,29,,141,141,141,141,,,,,40,,,26,141,61,61,,,,,,,,79,,40,,,,,,,,,97,97,,,61,40,85,,29,,,,,,40,,,66,66,66,40,,,,,,30,30,30,30,30,30,30,66,,,,40,30,,,66,,,30,30,30,30,,,,,,,,34,,,,,34,30,,,,,,,,85,,79,79,,,,79,79,,,,,,,,,26,,,,,34,34,34,,,,40,,,,,40,40,,,,30,98,98,,,26,,30,30,,,,34,,,,30,,,,,38,34,34,34,,38,32,,,40,,,,30,85,,85,30,85,,32,30,30,,,,,,,,,,,,,,38,38,38,,30,,,,,,,,,,34,,30,,,85,,,85,34,,34,,,38,,30,30,30,,,85,,,38,38,38,,,,,32,40,40,40,,,30,,,97,,40,,,,,,97,,,,,,,,,97,97,,,32,,,,85,40,,,,32,,,38,85,85,,,,,,,38,,38,,79,,85,,,,,32,34,,34,26,26,34,,,30,,85,,34,,,,,,34,34,,,,,,,,,,,,,,,,34,79,79,79,79,,,,,,,,,30,40,,,,,98,,,,30,32,,,98,,32,32,,,,,,98,98,38,,38,,,38,,,,,,,38,,,85,,40,38,38,,,,,85,,,85,,,,,,,,38,,,,99,99,,34,,,30,34,,,,34,34,97,30,97,30,,97,97,,,,30,,97,,,,,34,97,97,,,,79,,97,97,,,34,,30,,,30,,,,,,,30,85,,34,34,,32,32,32,,30,,,,30,,,,,,97,,38,,,,38,,,,38,38,,,,,,,,,,30,,,30,30,,,30,38,,,,,30,30,,,,30,30,38,,,,,,98,,98,,,98,98,,,38,38,,98,,,,,,98,98,,,,,,98,98,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,,,,,98,,,,,,,,,,,85,,,,,,,,97,,,,,,,,97,,,32,97,,,,,99,,,,,,,,99,,,30,,,,,,99,99,,,,30,,,,30,,,,39,,,,34,39,,,,,,,34,,,,,,,30,,34,,,30,30,,,,,,,,100,100,30,39,39,39,,97,,34,,,34,,,,,,,,30,,,,,,,,98,,,39,,34,,,98,30,101,101,98,39,39,39,38,,,,,,,,38,,,,,,,,34,38,,34,,,,34,,,,,,34,34,,,,34,34,,,38,,,38,,,,,39,,,,,,102,102,,39,30,39,,,,,38,,,,,,,,30,98,99,,99,,,99,99,,,,30,,99,,,,30,38,99,99,38,,30,,38,99,99,,,,38,38,,,,38,38,,30,,,,30,,,,,,,,,,,,,,,,,,,99,,,,,,,39,,39,,,39,,,,,34,,39,,,,,,39,39,,34,,,,30,,,,,,,,,100,39,,,30,,,,100,,,,,,34,,,100,100,34,30,30,,,,,30,,,,34,,,,,,,,101,,,,,,,,101,,34,38,,,,,,101,101,,,,38,,,,,34,30,,,30,,30,30,,,,,,,,,39,,,30,39,99,38,,39,39,,38,,99,,102,,99,,,,,38,102,,,,39,,,,30,102,102,,,,,,39,38,,,,,,,,,,,,,,39,39,,38,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,34,,,,,,,99,,,,,,100,,100,34,,100,100,34,,,,,100,,,,,,100,100,,,,,,100,100,,,,,,,,,,38,,101,,101,,,101,101,,,,,,101,,,,38,,101,101,34,,38,100,,101,101,,,,,,,34,,,,,38,,,,38,,,,,,,34,34,,,,,34,,,102,,102,101,,102,102,,,,,,102,,,,,,102,102,,,,,,102,102,,,,,,,,,38,,34,103,103,34,,,,,,,,38,,,,,,,39,,,,,,102,,39,38,38,,,,,38,,39,,,,,,,,,,,34,,,,,,,,,100,39,,,39,,,,100,,,,100,,,59,,,38,,59,38,,,,39,,,,,,,39,,,,,59,101,,,,,,,,101,59,59,59,101,59,39,,,39,,71,,39,,,71,,38,39,39,,,,39,39,,,,,,,,59,,71,,,59,59,,100,59,,,,,71,71,71,102,,,,,,,,102,,,,102,,,,,,,,,,,,,71,,,,101,,,,,,71,71,71,,,,,59,,,,,59,59,59,59,59,,59,,,,,,,,,,,,,,,103,,,,,,,,103,,,,,,,,71,103,103,102,,,39,,,71,,71,,,,,,39,,,,,,,,104,104,,,,,,,,,,,,,,,,,,39,,,,,39,,,59,59,59,59,59,59,59,,39,,,,59,,,,,,59,59,59,59,,,,,39,,,,,,,,,59,,,,,,,71,39,,,,,,,,,,,71,,,,,,71,,,,,,,,,,,,,,,,,71,,,,59,,,,,,,59,59,,,,,,,,59,,,,,,,,,,,,,,103,,103,,59,103,103,,59,39,,,103,59,,,,,103,103,,,,,,103,103,39,,,,,,39,,,,,,,,,,59,,,71,,,39,71,,,39,71,71,,59,59,59,,103,,,,,,,,,,,,71,,,,,59,,104,,,,,71,,62,104,,,,62,,,,,104,104,,71,71,,,39,,,,,62,,,,,,,,39,,62,62,62,,62,,,,,,,,,,39,39,,,,,39,,,,59,,,,,,,,62,,,,,62,62,,,62,,,,,,,,,,,,,,,,,,,39,109,109,39,59,,,,,103,,,,,59,,,103,,,,103,,,,,,,,,,62,,,,,62,62,62,62,62,,62,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,104,,104,,59,104,104,,,,,,104,,,,103,,104,104,,,,,,104,104,,,,,,59,,,59,71,,,,,,59,,71,62,62,62,62,62,62,62,59,71,,,59,62,,,,104,,62,62,62,62,,,,,,,,71,,,71,,,62,,,59,,,59,59,,,59,,,,,,59,59,71,,,59,59,,,,,,,,,,,,,,,,,,,,,,,71,62,,,,,,71,62,62,,,,,109,,,62,,,,,109,,,,,,,,,109,109,,,62,,,,62,,,,,62,,,,,,,,,,,,,,,,,,,104,,,,,,,,104,,,62,104,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,59,,62,,,,,,,,,,,,,,,,,,,,,59,,,,71,59,59,,,,,,,,,71,59,,,,104,,,,,,,,,,,,,,59,,,,,,,,71,,62,,,71,,,,59,,,,,,,71,,,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,62,,,,109,109,,,,71,62,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,109,,,,59,,,,,,,,,,,,59,,,,,,59,,,,,,59,,62,,,,,,,,,,62,,,,59,,71,,,,,,,,,,,,,,,,,,71,,,,62,,71,62,,,,,,,62,,,,,,,,71,,62,,71,,62,,,,,,,59,,,,,,,,,,,,,,,,,,,,62,,,62,62,,,62,109,59,59,,,62,62,59,109,,62,62,109,37,71,,,,,,,,,37,37,37,,71,,,,,,,,37,37,,37,37,,37,,71,71,,,,,71,59,,59,59,,,37,37,,,,,,,,59,,,,,,,,,,,,,,,,,,,,,,109,,71,,,71,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,37,37,,,37,37,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,,,,,62,,,,,,,,,,,,,,62,,,,37,37,,,,,,,62,37,,,,,62,,37,,37,,62,37,37,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,62,,,,,62,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,62,,62,62,,,,,,,,,,,,62,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,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,,,,,,,,,37,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"),F=e.large_array_unpack(",147,134,152,,68,135,58,177,56,-229,-34,-462,-664,-739,,-427,24,151,-42,-119,92,48,40,-150,-45,405,46,-83,97,1084,-197,677,-2,1330,220,-25,3624,1403,1907,443,-471,-70,-67,-25,-434,-8,,-3,,167,65,-361,,,-172,53,-245,-470,2540,-366,96,2955,146,69,100,253,,-36,63,-252,2582,-2,-384,89,-4,,29,-231,663,44,,5,151,-167,846,139,-5,94,-266,262,36,-257,-351,-255,-496,,747,855,1131,1412,1450,1508,1943,2202,182,141,-44,,2520,-328,-757,-348,-582,134,,-196,21,,67,147,-156,153,-385,-417,-625,-182,-808,-466,-377,-796,-688,-223,-649,,-455,-739,,,-429,-554,24,-839,-735,-169,-825,-611,-657,,-721,-860,-949,-948,-168,-609,166,-392,-121,-10,-741,-737,-412,-36,,-45,-45,,,-513,-817,-713,-940,-557,-865,-274,-590,-518,-430,-773,,-644,,-642,-459,-457,,,-609,-457,-451,,-747,-800,-742,,-648,-647,,-89,,-333,-105,-588,,,-475,-392,-587,,,224,231,237,238,-245,-200,250,259,260,-291,-290,,,-276,-181,-117,,,-360,-336,-214,-650,-131,-330,-753,-615,-983,,,-495"),G=e.large_array_unpack(",,,,5,,6,392,335,,,474,,983,,332,333,,,,13,14,22,248,,,16,,442,249,364,,,640,252,,27,25,253,247,520,,,,,,,387,144,26,,,,28,29,815,,,,352,,30,349,456,37,,,39,42,41,,244,245,404,,465,143,87,,447,103,51,54,284,,324,,894,457,,458,470,483,689,572,322,308,55,56,57,58,59,60,61,62,63,,309,69,70,,,,,,77,,622,78,231,,,,,,,,716,495,,717,718,481,476,477,,1176,712,1070,,482,,,,484,,486,,970,,,,493,,,,,,,,,,,469,,,794,786,,,,,,,1050,,739,940,741,742,746,743,744,,,745,747,,,,939,941,751,,753,754,755,756,,760,478,504,762,763,764,113,,,86,88,89,,,,,650,,,,,,99,100,,232,904,235,480,,485,912,498,500,501,1081,505,1082,508,511,327"),H=e.large_array_unpack("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,1,235,_reduce_295,3,235,_reduce_296,4,235,_reduce_297,3,235,_reduce_298,1,172,_reduce_299,1,172,_reduce_none,3,171,_reduce_301,4,171,_reduce_302,2,171,_reduce_303,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_314,0,267,_reduce_315,4,229,_reduce_316,0,268,_reduce_317,4,229,_reduce_318,0,269,_reduce_319,4,229,_reduce_320,3,229,_reduce_321,3,229,_reduce_322,2,229,_reduce_323,3,229,_reduce_324,3,229,_reduce_325,1,229,_reduce_326,4,229,_reduce_327,3,229,_reduce_328,1,229,_reduce_329,0,270,_reduce_330,6,229,_reduce_331,4,229,_reduce_332,3,229,_reduce_333,2,229,_reduce_334,1,229,_reduce_none,2,229,_reduce_336,1,229,_reduce_none,6,229,_reduce_338,6,229,_reduce_339,4,229,_reduce_340,4,229,_reduce_341,5,229,_reduce_342,4,229,_reduce_343,5,229,_reduce_344,6,229,_reduce_345,0,271,_reduce_346,6,229,_reduce_347,0,272,_reduce_348,7,229,_reduce_349,0,273,_reduce_350,5,229,_reduce_351,4,229,_reduce_352,4,229,_reduce_353,1,229,_reduce_354,1,229,_reduce_355,1,229,_reduce_356,1,229,_reduce_357,1,177,_reduce_none,1,262,_reduce_359,1,265,_reduce_360,1,196,_reduce_361,1,209,_reduce_362,1,257,_reduce_none,1,257,_reduce_none,2,257,_reduce_365,1,192,_reduce_none,1,192,_reduce_none,1,258,_reduce_none,5,258,_reduce_369,1,160,_reduce_none,2,160,_reduce_371,1,261,_reduce_none,1,261,_reduce_none,1,274,_reduce_374,3,274,_reduce_375,1,277,_reduce_376,3,277,_reduce_377,1,276,_reduce_none,3,276,_reduce_379,5,276,_reduce_380,1,276,_reduce_381,3,276,_reduce_382,2,278,_reduce_383,1,278,_reduce_384,1,279,_reduce_none,1,279,_reduce_none,0,284,_reduce_387,2,282,_reduce_388,4,283,_reduce_389,2,283,_reduce_390,2,283,_reduce_391,1,283,_reduce_392,2,288,_reduce_393,0,288,_reduce_394,1,289,_reduce_none,6,290,_reduce_396,8,290,_reduce_397,4,290,_reduce_398,6,290,_reduce_399,4,290,_reduce_400,2,290,_reduce_none,6,290,_reduce_402,2,290,_reduce_403,4,290,_reduce_404,6,290,_reduce_405,2,290,_reduce_406,4,290,_reduce_407,2,290,_reduce_408,4,290,_reduce_409,1,290,_reduce_none,0,294,_reduce_411,1,294,_reduce_412,3,295,_reduce_413,4,295,_reduce_414,1,296,_reduce_415,4,296,_reduce_416,1,297,_reduce_417,3,297,_reduce_418,1,298,_reduce_419,1,298,_reduce_none,0,302,_reduce_421,0,303,_reduce_422,5,256,_reduce_423,4,300,_reduce_424,1,300,_reduce_425,0,306,_reduce_426,4,301,_reduce_427,0,307,_reduce_428,4,301,_reduce_429,0,309,_reduce_430,4,305,_reduce_431,2,201,_reduce_432,4,201,_reduce_433,5,201,_reduce_434,5,201,_reduce_435,2,255,_reduce_436,4,255,_reduce_437,4,255,_reduce_438,3,255,_reduce_439,3,255,_reduce_440,3,255,_reduce_441,2,255,_reduce_442,1,255,_reduce_443,4,255,_reduce_444,0,311,_reduce_445,4,254,_reduce_446,0,312,_reduce_447,4,254,_reduce_448,0,313,_reduce_449,3,205,_reduce_450,0,314,_reduce_451,0,315,_reduce_452,4,308,_reduce_453,5,259,_reduce_454,1,316,_reduce_455,1,316,_reduce_none,0,319,_reduce_457,0,320,_reduce_458,7,260,_reduce_459,1,318,_reduce_460,1,318,_reduce_none,1,317,_reduce_462,3,317,_reduce_463,3,317,_reduce_464,1,188,_reduce_none,2,188,_reduce_466,3,188,_reduce_467,1,188,_reduce_468,1,188,_reduce_469,1,188,_reduce_470,1,321,_reduce_none,3,326,_reduce_472,1,326,_reduce_none,3,328,_reduce_474,1,328,_reduce_none,1,330,_reduce_476,1,331,_reduce_477,1,329,_reduce_none,1,329,_reduce_none,4,329,_reduce_480,4,329,_reduce_481,4,329,_reduce_482,3,329,_reduce_483,4,329,_reduce_484,4,329,_reduce_485,4,329,_reduce_486,3,329,_reduce_487,3,329,_reduce_488,3,329,_reduce_489,2,329,_reduce_490,0,335,_reduce_491,4,329,_reduce_492,2,329,_reduce_493,0,336,_reduce_494,4,329,_reduce_495,1,322,_reduce_496,1,322,_reduce_497,2,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,339,_reduce_507,1,339,_reduce_508,1,340,_reduce_509,3,340,_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_526,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_none,1,219,_reduce_617,1,219,_reduce_618,1,219,_reduce_619,1,219,_reduce_620,1,219,_reduce_621,1,219,_reduce_622,1,219,_reduce_623,1,252,_reduce_624,1,252,_reduce_625,1,176,_reduce_626,1,176,_reduce_627,1,186,_reduce_628,1,186,_reduce_629,0,370,_reduce_630,4,263,_reduce_631,0,263,_reduce_632,1,182,_reduce_none,1,182,_reduce_634,3,371,_reduce_635,1,266,_reduce_none,0,373,_reduce_637,3,266,_reduce_638,4,372,_reduce_639,2,372,_reduce_640,2,372,_reduce_641,1,372,_reduce_642,1,372,_reduce_643,2,375,_reduce_644,0,375,_reduce_645,6,304,_reduce_646,8,304,_reduce_647,4,304,_reduce_648,6,304,_reduce_649,4,304,_reduce_650,6,304,_reduce_651,2,304,_reduce_652,4,304,_reduce_653,6,304,_reduce_654,2,304,_reduce_655,4,304,_reduce_656,2,304,_reduce_657,4,304,_reduce_658,1,304,_reduce_659,0,304,_reduce_660,1,239,_reduce_661,1,299,_reduce_662,1,299,_reduce_663,1,299,_reduce_664,1,299,_reduce_665,1,275,_reduce_none,1,275,_reduce_667,1,377,_reduce_668,1,378,_reduce_669,3,378,_reduce_670,1,291,_reduce_671,3,291,_reduce_672,1,379,_reduce_673,2,380,_reduce_674,1,380,_reduce_675,2,381,_reduce_676,1,381,_reduce_677,1,285,_reduce_678,3,285,_reduce_679,1,374,_reduce_680,3,374,_reduce_681,1,347,_reduce_none,1,347,_reduce_none,1,281,_reduce_684,2,280,_reduce_685,1,280,_reduce_686,3,382,_reduce_687,3,383,_reduce_688,1,292,_reduce_689,3,292,_reduce_690,1,376,_reduce_691,3,376,_reduce_692,1,384,_reduce_none,1,384,_reduce_none,2,293,_reduce_695,1,293,_reduce_696,1,385,_reduce_none,1,385,_reduce_none,2,287,_reduce_699,1,287,_reduce_700,2,286,_reduce_701,0,286,_reduce_702,1,197,_reduce_none,3,197,_reduce_704,0,253,_reduce_705,2,253,_reduce_none,1,237,_reduce_707,3,237,_reduce_708,3,386,_reduce_709,2,386,_reduce_710,1,386,_reduce_711,4,386,_reduce_712,2,386,_reduce_713,1,386,_reduce_714,1,208,_reduce_none,1,208,_reduce_none,1,208,_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_725,1,180,_reduce_726,0,152,_reduce_none,1,152,_reduce_none,0,187,_reduce_none,1,187,_reduce_none,2,213,_reduce_731,2,179,_reduce_732,2,334,_reduce_733,1,236,_reduce_none,1,236,_reduce_none,1,264,_reduce_736,1,264,_reduce_none,1,154,_reduce_none,2,154,_reduce_none,0,234,_reduce_740"),v=741,w=1234,x=t(new Map([[!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]])),y=147,C=!0,k(u[0],'Racc_arg',[z,A,I,B,D,E,G,F,y,H,x,w,v,C]),f((K=s('Ractor','skip_raise'))?'constant':b)&&s('Ractor').$make_shareable(s('Racc_arg')),k(u[0],'Racc_token_to_s_table',e.large_array_unpack("$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_rest,p_args_post,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")),f((J=s('Ractor','skip_raise'))?'constant':b)&&s('Ractor').$make_shareable(s('Racc_token_to_s_table')),k(u[0],'Racc_debug_parser',!1),a(m,'$_reduce_1',function(e,f,c){var a=this;return a.current_arg_stack.$push(b),a.max_numparam_stack.$push(new Map([["static",!0]])),c}),a(m,'$_reduce_2',function(c,e,a){var b=this;return a=c['$[]'](1),b.current_arg_stack.$pop(),b.max_numparam_stack.$pop(),a}),a(m,'$_reduce_3',function(a,d,e){var b=this;return b.builder.$compstmt(a['$[]'](0))}),a(m,'$_reduce_4',function(b,c,d){return[]}),a(m,'$_reduce_5',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_6',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_7',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_9',function(a,e,f){var b=this;return h(b.builder,'preexe',[a['$[]'](0)].concat(d(a['$[]'](1))))}),a(m,'$_reduce_10',function(a,c,d){return a}),a(m,'$_reduce_11',function(e,o,p){var a,d,j=this,i=b,h=b,k=b,l=b,m=b;return i=e['$[]'](1),d=e['$[]'](2),a=c(d),h=a[0]==null?b:a[0],k=a[1]==null?b:a[1],d,d=e['$[]'](3),a=c(d),l=a[0]==null?b:a[0],m=a[1]==null?b:a[1],d,f(i['$empty?']())&&g(h['$nil?']())&&j.$diagnostic("error","useless_else",b,h),j.builder.$begin_body(e['$[]'](0),i,h,k,l,m)}),a(m,'$_reduce_12',function(a,d,e){var b=this;return b.builder.$compstmt(a['$[]'](0))}),a(m,'$_reduce_13',function(b,c,d){return[]}),a(m,'$_reduce_14',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_15',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_16',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_18',function(a,f,c){var d=this;return d.$diagnostic("error","begin_in_method",b,a['$[]'](0)),c}),a(m,'$_reduce_19',function(d,e,a){var b=this;return b.lexer['$state=']("expr_fname"),a}),a(m,'$_reduce_20',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_21',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),b.builder.$gvar(a['$[]'](1)),b.builder.$gvar(a['$[]'](2)))}),a(m,'$_reduce_22',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),b.builder.$gvar(a['$[]'](1)),b.builder.$back_ref(a['$[]'](2)))}),a(m,'$_reduce_23',function(a,f,c){var d=this;return d.$diagnostic("error","nth_ref_alias",b,a['$[]'](2)),c}),a(m,'$_reduce_24',function(a,d,e){var b=this;return b.builder.$undef_method(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_25',function(a,e,f){var c=this;return c.builder.$condition_mod(a['$[]'](0),b,a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_26',function(a,e,f){var c=this;return c.builder.$condition_mod(b,a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_27',function(a,d,e){var b=this;return b.builder.$loop_mod("while",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_28',function(a,d,e){var b=this;return b.builder.$loop_mod("until",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_29',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_30',function(a,d,e){var b=this;return b.builder.$postexe(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_32',function(a,d,e){var b=this;return b.builder.$multi_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_33',function(a,e,f){var c=this;return c.builder.$assign(a['$[]'](0),a['$[]'](1),c.builder.$array(b,a['$[]'](2),b))}),a(m,'$_reduce_34',function(a,f,g){var c=this,e=b,d=b;return e=c.builder.$rescue_body(a['$[]'](3),b,b,b,b,a['$[]'](4)),d=c.builder.$begin_body(a['$[]'](2),[e]),c.builder.$multi_assign(a['$[]'](0),a['$[]'](1),d)}),a(m,'$_reduce_35',function(a,d,e){var b=this;return b.builder.$multi_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_37',function(a,d,e){var b=this;return b.builder.$assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_38',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_39',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3)),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_40',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_41',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_42',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))),c.builder.$op_assign(d,a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_43',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_44',function(f,m,j){var e,h,a,d=this,i=b,g=b,k=b;return h=f['$[]'](0),e=c(h),i=e[0]==null?b:e[0],(a=c(e[1]==null?b:e[1]),g=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),h,d.$endless_method_name(g),j=d.builder.$def_endless_method(i,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](k.$in_def()),j}),a(m,'$_reduce_45',function(d,n,j){var f,h,e,a=this,k=b,g=b,m=b,l=b,i=b;return h=d['$[]'](0),f=c(h),k=f[0]==null?b:f[0],(e=c(f[1]==null?b:f[1]),g=e[0]==null?b:e[0],m=e[1]==null?b:e[1]),h,a.$endless_method_name(g),l=a.builder.$rescue_body(d['$[]'](4),b,b,b,b,d['$[]'](5)),i=a.builder.$begin_body(d['$[]'](3),[l]),j=a.builder.$def_endless_method(k,g,d['$[]'](1),d['$[]'](2),i),a.$local_pop(),a.current_arg_stack.$pop(),a.context['$in_def='](m.$in_def()),j}),a(m,'$_reduce_46',function(f,n,j){var a,h,d,e=this,k=b,l=b,m=b,g=b,i=b;return h=f['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1]),h,e.$endless_method_name(g),j=e.builder.$def_endless_singleton(k,l,m,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),e.$local_pop(),e.current_arg_stack.$pop(),e.context['$in_def='](i.$in_def()),j}),a(m,'$_reduce_47',function(e,p,j){var a,h,f,d=this,k=b,l=b,m=b,g=b,o=b,n=b,i=b;return h=e['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(f=c(a[3]==null?b:a[3]),g=f[0]==null?b:f[0],o=f[1]==null?b:f[1]),h,d.$endless_method_name(g),n=d.builder.$rescue_body(e['$[]'](4),b,b,b,b,e['$[]'](5)),i=d.builder.$begin_body(e['$[]'](3),[n]),j=d.builder.$def_endless_singleton(k,l,m,g,e['$[]'](1),e['$[]'](2),i),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](o.$in_def()),j}),a(m,'$_reduce_48',function(a,e,b){var c=this;return c.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2)),b}),a(m,'$_reduce_50',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_53',function(a,d,e){var b=this;return b.builder.$logical_op("and",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_54',function(a,d,e){var b=this;return b.builder.$logical_op("or",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_55',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](2),b)}),a(m,'$_reduce_56',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_57',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_58',function(a,d,e){var b=this;return b.pattern_variables.$pop(),b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](2)),b.builder.$match_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_59',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_60',function(a,d,e){var b=this;return b.pattern_variables.$pop(),b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](2)),b.builder.$match_pattern_p(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_63',function(d,e,a){var b=this;return b.lexer.$cond().$push(!0),a}),a(m,'$_reduce_64',function(a,d,e){var b=this;return b.lexer.$cond().$pop(),[a['$[]'](1),a['$[]'](2)]}),a(m,'$_reduce_65',function(d,f,c){var a=this;return a.$local_push(),a.current_arg_stack.$push(b),c=[d['$[]'](0),a.context.$dup()],a.context['$in_def='](!0),c}),a(m,'$_reduce_66',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_67',function(d,e,b){var a=this;return a.lexer['$state=']("expr_fname"),a.context['$in_argdef='](!0),b}),a(m,'$_reduce_68',function(a,c,d){return[a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](4)]}),a(m,'$_reduce_72',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_73',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_74',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_76',function(a,e,f){var c=this;return c.builder.$call_method(b,b,a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_77',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(b,b,d['$[]'](0),b,d['$[]'](1),b),e=d['$[]'](2),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_78',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_79',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_80',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_81',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_82',function(a,e,f){var c=this;return c.builder.$keyword_cmd("super",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_83',function(a,e,f){var c=this;return c.builder.$keyword_cmd("yield",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_84',function(a,e,f){var c=this;return c.builder.$keyword_cmd("return",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_85',function(a,e,f){var c=this;return c.builder.$keyword_cmd("break",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_86',function(a,e,f){var c=this;return c.builder.$keyword_cmd("next",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_87',function(a,e,f){var c=this;return c.builder.$multi_lhs(b,a['$[]'](0),b)}),a(m,'$_reduce_88',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_89',function(a,e,f){var c=this;return c.builder.$multi_lhs(b,a['$[]'](0),b)}),a(m,'$_reduce_90',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_92',function(a,c,d){return a['$[]'](0).$push(a['$[]'](1))}),a(m,'$_reduce_93',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_94',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1),a['$[]'](2))).$concat(a['$[]'](4))}),a(m,'$_reduce_95',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1)))}),a(m,'$_reduce_96',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1))).$concat(a['$[]'](3))}),a(m,'$_reduce_97',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_98',function(a,e,f){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))].concat(d(a['$[]'](3)))}),a(m,'$_reduce_99',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0))]}),a(m,'$_reduce_100',function(a,e,f){var b=this;return[b.builder.$splat(a['$[]'](0))].concat(d(a['$[]'](2)))}),a(m,'$_reduce_102',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_103',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_104',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_105',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_106',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_107',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_108',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_109',function(a,d,e){var b=this;return b.builder.$index_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_110',function(a,e,f){var c=this;return l(a['$[]'](1)['$[]'](0),"anddot")&&c.$diagnostic("error","csend_in_lhs_of_masgn",b,a['$[]'](1)),c.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_111',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_112',function(a,e,f){var c=this;return l(a['$[]'](1)['$[]'](0),"anddot")&&c.$diagnostic("error","csend_in_lhs_of_masgn",b,a['$[]'](1)),c.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_113',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_114',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_global(a['$[]'](0),a['$[]'](1)))}),a(m,'$_reduce_115',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_116',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_117',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_118',function(a,d,e){var b=this;return b.builder.$index_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_119',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_120',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_121',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_122',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_123',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_global(a['$[]'](0),a['$[]'](1)))}),a(m,'$_reduce_124',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_125',function(a,f,c){var d=this;return d.$diagnostic("error","module_name_const",b,a['$[]'](0)),c}),a(m,'$_reduce_127',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_128',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_129',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_135',function(a,d,e){var b=this;return b.builder.$symbol_internal(a['$[]'](0))}),a(m,'$_reduce_137',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_138',function(d,e,a){var b=this;return b.lexer['$state=']("expr_fname"),a}),a(m,'$_reduce_139',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](3))}),a(m,'$_reduce_211',function(a,d,e){var b=this;return b.builder.$assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_212',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_213',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3)),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_214',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_215',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_216',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_217',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))),c.builder.$op_assign(d,a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_218',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_global(a['$[]'](0),a['$[]'](1))),c.builder.$op_assign(d,a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_219',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_220',function(a,d,e){var b=this;return b.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_221',function(a,d,e){var b=this;return b.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_222',function(a,e,f){var c=this;return c.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_223',function(a,e,f){var c=this;return c.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_224',function(a,e,f){var c=this;return c.builder.$range_inclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_225',function(a,e,f){var c=this;return c.builder.$range_exclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_226',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_227',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_228',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_229',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_230',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_231',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_232',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),b.builder.$binary_op(a['$[]'](1),a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_233',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_234',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_235',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_236',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_237',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_238',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_240',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_241',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_242',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_243',function(a,d,e){var b=this;return b.builder.$match_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_244',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_245',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_246',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_247',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_248',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_249',function(a,d,e){var b=this;return b.builder.$logical_op("and",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_250',function(a,d,e){var b=this;return b.builder.$logical_op("or",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_251',function(d,e,a){var b=this;return b.context['$in_defined='](!0),a}),a(m,'$_reduce_252',function(a,e,f){var c=this;return c.context['$in_defined='](!1),c.builder.$keyword_cmd("defined?",a['$[]'](0),b,[a['$[]'](3)],b)}),a(m,'$_reduce_253',function(a,d,e){var b=this;return b.builder.$ternary(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_254',function(f,m,j){var e,h,a,d=this,i=b,g=b,k=b;return h=f['$[]'](0),e=c(h),i=e[0]==null?b:e[0],(a=c(e[1]==null?b:e[1]),g=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),h,d.$endless_method_name(g),j=d.builder.$def_endless_method(i,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](k.$in_def()),j}),a(m,'$_reduce_255',function(d,n,j){var f,h,e,a=this,k=b,g=b,m=b,l=b,i=b;return h=d['$[]'](0),f=c(h),k=f[0]==null?b:f[0],(e=c(f[1]==null?b:f[1]),g=e[0]==null?b:e[0],m=e[1]==null?b:e[1]),h,a.$endless_method_name(g),l=a.builder.$rescue_body(d['$[]'](4),b,b,b,b,d['$[]'](5)),i=a.builder.$begin_body(d['$[]'](3),[l]),j=a.builder.$def_endless_method(k,g,d['$[]'](1),d['$[]'](2),i),a.$local_pop(),a.current_arg_stack.$pop(),a.context['$in_def='](m.$in_def()),j}),a(m,'$_reduce_256',function(f,n,j){var a,h,d,e=this,k=b,l=b,m=b,g=b,i=b;return h=f['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1]),h,e.$endless_method_name(g),j=e.builder.$def_endless_singleton(k,l,m,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),e.$local_pop(),e.current_arg_stack.$pop(),e.context['$in_def='](i.$in_def()),j}),a(m,'$_reduce_257',function(e,p,j){var a,h,f,d=this,k=b,l=b,m=b,g=b,o=b,n=b,i=b;return h=e['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(f=c(a[3]==null?b:a[3]),g=f[0]==null?b:f[0],o=f[1]==null?b:f[1]),h,d.$endless_method_name(g),n=d.builder.$rescue_body(e['$[]'](4),b,b,b,b,e['$[]'](5)),i=d.builder.$begin_body(e['$[]'](3),[n]),j=d.builder.$def_endless_singleton(k,l,m,g,e['$[]'](1),e['$[]'](2),i),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](o.$in_def()),j}),a(m,'$_reduce_263',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_264',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_268',function(a,e,f){var c=this;return a['$[]'](0)['$<<'](c.builder.$associate(b,a['$[]'](2),b))}),a(m,'$_reduce_269',function(a,e,f){var c=this;return[c.builder.$associate(b,a['$[]'](0),b)]}),a(m,'$_reduce_271',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_272',function(a,c,d){return a}),a(m,'$_reduce_273',function(a,e,g){var b=this;return f(b.static_env['$declared_forward_args?']())||b.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),a['$[]'](3)),[a['$[]'](0),[].concat(d(a['$[]'](1))).concat([b.builder.$forwarded_args(a['$[]'](3))]),a['$[]'](4)]}),a(m,'$_reduce_274',function(a,d,e){var b=this;return f(b.static_env['$declared_forward_args?']())||b.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),a['$[]'](1)),[a['$[]'](0),[b.builder.$forwarded_args(a['$[]'](1))],a['$[]'](2)]}),a(m,'$_reduce_275',function(c,d,e){return[b,[],b]}),a(m,'$_reduce_277',function(b,c,d){return[]}),a(m,'$_reduce_280',function(a,e,f){var c=this;return a['$[]'](0)['$<<'](c.builder.$associate(b,a['$[]'](2),b))}),a(m,'$_reduce_281',function(a,e,f){var c=this;return[c.builder.$associate(b,a['$[]'](0),b)]}),a(m,'$_reduce_282',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_283',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_284',function(c,f,a){var d=this;return a=[d.builder.$associate(b,c['$[]'](0),b)],a.$concat(c['$[]'](1)),a}),a(m,'$_reduce_285',function(a,g,c){var e=this,d=b;return d=e.builder.$associate(b,a['$[]'](2),b),c=a['$[]'](0)['$<<'](d),c.$concat(a['$[]'](3)),c}),a(m,'$_reduce_286',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_287',function(j,k,h){var a=this,c=b,d=b,e=b,g=b;return c=a.last_token['$[]'](0),d=f(e=c['$==']("tLBRACK"))?e:c['$==']("tLPAREN_ARG"),f(d)?(g=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(!0),a.lexer.$cmdarg().$push(g)):a.lexer.$cmdarg().$push(!0),h}),a(m,'$_reduce_288',function(g,h,i){var a=this,e=b,c=b,d=b;return e=a.last_token['$[]'](0),c=e['$==']("tLBRACE_ARG"),f(c)?(d=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(d)):a.lexer.$cmdarg().$pop(),g['$[]'](1)}),a(m,'$_reduce_289',function(a,d,e){var b=this;return b.builder.$block_pass(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_290',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_blockarg?']())&&a.$diagnostic("error","no_anonymous_blockarg",b,c['$[]'](0)),a.builder.$block_pass(c['$[]'](0),b)}),a(m,'$_reduce_291',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_292',function(b,c,d){return[]}),a(m,'$_reduce_293',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_294',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_295',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_restarg?']())&&a.$diagnostic("error","no_anonymous_restarg",b,c['$[]'](0)),[a.builder.$forwarded_restarg(c['$[]'](0))]}),a(m,'$_reduce_296',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_297',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$splat(a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_298',function(a,e,f){var c=this;return g(c.static_env['$declared_anonymous_restarg?']())&&c.$diagnostic("error","no_anonymous_restarg",b,a['$[]'](2)),a['$[]'](0)['$<<'](c.builder.$forwarded_restarg(a['$[]'](2)))}),a(m,'$_reduce_299',function(a,e,f){var c=this;return c.builder.$array(b,a['$[]'](0),b)}),a(m,'$_reduce_301',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_302',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$splat(a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_303',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_314',function(a,e,f){var c=this;return c.builder.$call_method(b,b,a['$[]'](0))}),a(m,'$_reduce_315',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_316',function(a,d,e){var b=this;return b.lexer.$cmdarg().$pop(),b.builder.$begin_keyword(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_317',function(d,e,a){var b=this;return b.lexer['$state=']("expr_endarg"),a}),a(m,'$_reduce_318',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_319',function(d,e,a){var b=this;return b.lexer['$state=']("expr_endarg"),a}),a(m,'$_reduce_320',function(a,e,f){var c=this;return c.builder.$begin(a['$[]'](0),b,a['$[]'](3))}),a(m,'$_reduce_321',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_322',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_323',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_324',function(a,d,e){var b=this;return b.builder.$array(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_325',function(a,d,e){var b=this;return b.builder.$associate(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_326',function(a,d,e){var b=this;return b.builder.$keyword_cmd("return",a['$[]'](0))}),a(m,'$_reduce_327',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_328',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0),a['$[]'](1),[],a['$[]'](2))}),a(m,'$_reduce_329',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0))}),a(m,'$_reduce_330',function(d,e,a){var b=this;return b.context['$in_defined='](!0),a}),a(m,'$_reduce_331',function(a,d,e){var b=this;return b.context['$in_defined='](!1),b.builder.$keyword_cmd("defined?",a['$[]'](0),a['$[]'](2),[a['$[]'](4)],a['$[]'](5))}),a(m,'$_reduce_332',function(a,d,e){var b=this;return b.builder.$not_op(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_333',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),a['$[]'](1),b,a['$[]'](2))}),a(m,'$_reduce_334',function(f,m,n){var a,d,e=this,i=b,g=b,h=b,j=b,k=b;return i=e.builder.$call_method(b,b,f['$[]'](0)),d=f['$[]'](1),a=c(d),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],d,e.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_336',function(e,l,m){var a,d,j=this,h=b,f=b,g=b,i=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],i=a[3]==null?b:a[3],d,j.builder.$block(e['$[]'](0),h,f,g,i)}),a(m,'$_reduce_338',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3),g,f,a['$[]'](5))}),a(m,'$_reduce_339',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),f,g,a['$[]'](3),a['$[]'](5))}),a(m,'$_reduce_340',function(a,e,f){var b=this;return h(b.builder,'loop',["while",a['$[]'](0)].concat(d(a['$[]'](1))).concat([a['$[]'](2),a['$[]'](3)]))}),a(m,'$_reduce_341',function(a,e,f){var b=this;return h(b.builder,'loop',["until",a['$[]'](0)].concat(d(a['$[]'](1))).concat([a['$[]'](2),a['$[]'](3)]))}),a(m,'$_reduce_342',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](3))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case(g['$[]'](0),g['$[]'](1),h,j,k,g['$[]'](4))}),a(m,'$_reduce_343',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](2))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case(g['$[]'](0),b,h,j,k,g['$[]'](3))}),a(m,'$_reduce_344',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](3))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case_match(g['$[]'](0),g['$[]'](1),h,j,k,g['$[]'](4))}),a(m,'$_reduce_345',function(a,e,f){var b=this;return h(b.builder,'for',[a['$[]'](0),a['$[]'](1),a['$[]'](2)].concat(d(a['$[]'](3))).concat([a['$[]'](4),a['$[]'](5)]))}),a(m,'$_reduce_346',function(d,e,b){var a=this;return a.context['$in_class='](!0),a.$local_push(),b}),a(m,'$_reduce_347',function(g,n,j){var a,d,e=this,h=b,i=b,k=b,l=b;return d=g['$[]'](0),a=c(d),h=a[0]==null?b:a[0],i=a[1]==null?b:a[1],d,f(e.context.$in_def())&&e.$diagnostic("error","class_in_def",b,h),d=g['$[]'](2),a=c(d),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],d,j=e.builder.$def_class(h,g['$[]'](1),k,l,g['$[]'](4),g['$[]'](5)),e.$local_pop(),e.context['$in_class='](i.$in_class()),j}),a(m,'$_reduce_348',function(d,e,b){var a=this;return a.context['$in_def='](!1),a.context['$in_class='](!1),a.$local_push(),b}),a(m,'$_reduce_349',function(a,k,h){var d,g,e=this,i=b,f=b;return g=a['$[]'](0),d=c(g),i=d[0]==null?b:d[0],f=d[1]==null?b:d[1],g,h=e.builder.$def_sclass(i,a['$[]'](1),a['$[]'](2),a['$[]'](5),a['$[]'](6)),e.$local_pop(),e.context['$in_def='](f.$in_def()),e.context['$in_class='](f.$in_class()),h}),a(m,'$_reduce_350',function(d,e,b){var a=this;return a.context['$in_class='](!0),a.$local_push(),b}),a(m,'$_reduce_351',function(e,l,j){var d,g,a=this,h=b,i=b;return g=e['$[]'](0),d=c(g),h=d[0]==null?b:d[0],i=d[1]==null?b:d[1],g,f(a.context.$in_def())&&a.$diagnostic("error","module_in_def",b,h),j=a.builder.$def_module(h,e['$[]'](1),e['$[]'](3),e['$[]'](4)),a.$local_pop(),a.context['$in_class='](i.$in_class()),j}),a(m,'$_reduce_352',function(e,m,i){var d,g,a,f=this,h=b,j=b,k=b;return g=e['$[]'](0),d=c(g),h=d[0]==null?b:d[0],(a=c(d[1]==null?b:d[1]),j=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),g,i=f.builder.$def_method(h,j,e['$[]'](1),e['$[]'](2),e['$[]'](3)),f.$local_pop(),f.current_arg_stack.$pop(),f.context['$in_def='](k.$in_def()),i}),a(m,'$_reduce_353',function(e,n,i){var a,g,d,f=this,k=b,l=b,m=b,j=b,h=b;return g=e['$[]'](0),a=c(g),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),j=d[0]==null?b:d[0],h=d[1]==null?b:d[1]),g,i=f.builder.$def_singleton(k,l,m,j,e['$[]'](1),e['$[]'](2),e['$[]'](3)),f.$local_pop(),f.current_arg_stack.$pop(),f.context['$in_def='](h.$in_def()),i}),a(m,'$_reduce_354',function(a,d,e){var b=this;return b.builder.$keyword_cmd("break",a['$[]'](0))}),a(m,'$_reduce_355',function(a,d,e){var b=this;return b.builder.$keyword_cmd("next",a['$[]'](0))}),a(m,'$_reduce_356',function(a,d,e){var b=this;return b.builder.$keyword_cmd("redo",a['$[]'](0))}),a(m,'$_reduce_357',function(a,d,e){var b=this;return b.builder.$keyword_cmd("retry",a['$[]'](0))}),a(m,'$_reduce_359',function(a,d,e){var b=this;return[a['$[]'](0),b.context.$dup()]}),a(m,'$_reduce_360',function(a,d,e){var b=this;return[a['$[]'](0),b.context.$dup()]}),a(m,'$_reduce_361',function(b,e,a){var c=this;return a=b['$[]'](0),c.context['$in_argdef='](!0),a}),a(m,'$_reduce_362',function(d,i,e){var a=this,c=b;return f(a.context.$in_class())&&g(a.context.$in_def())&&g(f(c=a.$context().$in_block())?c:a.$context().$in_lambda())&&a.$diagnostic("error","invalid_return",b,d['$[]'](0)),e}),a(m,'$_reduce_365',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_369',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,[a['$[]'](0),h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3),g,f,b)]}),a(m,'$_reduce_371',function(a,c,d){return a}),a(m,'$_reduce_374',function(a,d,e){var b=this;return b.builder.$arg(a['$[]'](0))}),a(m,'$_reduce_375',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_376',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_377',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_379',function(a,c,d){return a['$[]'](0).$push(a['$[]'](2))}),a(m,'$_reduce_380',function(a,c,d){return a['$[]'](0).$push(a['$[]'](2)).$concat(a['$[]'](4))}),a(m,'$_reduce_381',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_382',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2)))}),a(m,'$_reduce_383',function(a,d,e){var b=this;return b.builder.$restarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_384',function(a,d,e){var b=this;return b.builder.$restarg(a['$[]'](0))}),a(m,'$_reduce_387',function(d,e,a){var b=this;return b.context['$in_argdef='](!1),a}),a(m,'$_reduce_388',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_389',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_390',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_391',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_392',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_393',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_394',function(b,c,d){return[]}),a(m,'$_reduce_396',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_397',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](6)).$concat(a['$[]'](7))}),a(m,'$_reduce_398',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_399',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_400',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_402',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_403',function(a,e,b){var c=this;return f(a['$[]'](1)['$empty?']())&&l(a['$[]'](0).$size(),1)?b=[c.builder.$procarg0(a['$[]'](0)['$[]'](0))]:b=a['$[]'](0).$concat(a['$[]'](1)),b}),a(m,'$_reduce_404',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_405',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_406',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_407',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_408',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_409',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_411',function(d,e,f){var a=this;return a.builder.$args(b,[],b)}),a(m,'$_reduce_412',function(d,e,a){var b=this;return b.lexer['$state=']("expr_value"),a}),a(m,'$_reduce_413',function(c,e,f){var a=this;return a.max_numparam_stack['$has_ordinary_params!'](),a.current_arg_stack.$set(b),a.context['$in_argdef='](!1),a.builder.$args(c['$[]'](0),c['$[]'](1),c['$[]'](2))}),a(m,'$_reduce_414',function(a,e,f){var c=this;return c.max_numparam_stack['$has_ordinary_params!'](),c.current_arg_stack.$set(b),c.context['$in_argdef='](!1),c.builder.$args(a['$[]'](0),a['$[]'](1).$concat(a['$[]'](2)),a['$[]'](3))}),a(m,'$_reduce_415',function(b,c,d){return[]}),a(m,'$_reduce_416',function(a,c,d){return a['$[]'](2)}),a(m,'$_reduce_417',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_418',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_419',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](0)['$[]'](0)),b.builder.$shadowarg(a['$[]'](0))}),a(m,'$_reduce_421',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b=a.context.$dup(),a.context['$in_lambda='](!0),b}),a(m,'$_reduce_422',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_423',function(e,n,o){var d,g,a=this,j=b,h=b,i=b,k=b,l=b;return j=a.builder.$call_lambda(e['$[]'](0)),h=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):e['$[]'](2),g=e['$[]'](4),d=c(g),i=d[0]==null?b:d[0],k=d[1]==null?b:d[1],l=d[2]==null?b:d[2],g,a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),a.context['$in_lambda='](e['$[]'](1).$in_lambda()),a.builder.$block(j,i,h,k,l)}),a(m,'$_reduce_424',function(a,d,e){var b=this;return b.context['$in_argdef='](!1),b.max_numparam_stack['$has_ordinary_params!'](),b.builder.$args(a['$[]'](0),a['$[]'](1).$concat(a['$[]'](2)),a['$[]'](3))}),a(m,'$_reduce_425',function(c,e,g){var a=this;return a.context['$in_argdef='](!1),f(c['$[]'](0)['$any?']())&&a.max_numparam_stack['$has_ordinary_params!'](),a.builder.$args(b,c['$[]'](0),b)}),a(m,'$_reduce_426',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_lambda='](!0),a}),a(m,'$_reduce_427',function(a,d,e){var b=this;return b.context['$in_lambda='](a['$[]'](1).$in_lambda()),[a['$[]'](0),a['$[]'](2),a['$[]'](3)]}),a(m,'$_reduce_428',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_lambda='](!0),a}),a(m,'$_reduce_429',function(a,d,e){var b=this;return b.context['$in_lambda='](a['$[]'](1).$in_lambda()),[a['$[]'](0),a['$[]'](2),a['$[]'](3)]}),a(m,'$_reduce_430',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_431',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_432',function(e,l,m){var a,d,j=this,h=b,f=b,g=b,i=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],i=a[3]==null?b:a[3],d,j.builder.$block(e['$[]'](0),h,f,g,i)}),a(m,'$_reduce_433',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_434',function(e,o,n){var a,d,i=this,j=b,f=b,l=b,m=b,h=b,k=b,g=b;return d=e['$[]'](3),a=c(d),j=a[0]==null?b:a[0],f=a[1]==null?b:a[1],l=a[2]==null?b:a[2],d,m=i.builder.$call_method(e['$[]'](0),e['$[]'](1),e['$[]'](2),j,f,l),d=e['$[]'](4),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],k=a[2]==null?b:a[2],g=a[3]==null?b:a[3],d,i.builder.$block(m,h,f,k,g)}),a(m,'$_reduce_435',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_436',function(e,k,l){var a,d,i=this,h=b,f=b,g=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],d,i.builder.$call_method(b,b,e['$[]'](0),h,f,g)}),a(m,'$_reduce_437',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_438',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_439',function(a,d,e){var b=this;return b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_440',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](2),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),b,h,f,g)}),a(m,'$_reduce_441',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](2),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),b,h,f,g)}),a(m,'$_reduce_442',function(e,k,l){var a,d,i=this,h=b,f=b,g=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],d,i.builder.$keyword_cmd("super",e['$[]'](0),h,f,g)}),a(m,'$_reduce_443',function(a,d,e){var b=this;return b.builder.$keyword_cmd("zsuper",a['$[]'](0))}),a(m,'$_reduce_444',function(a,d,e){var b=this;return b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_445',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_446',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_447',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_448',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_449',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b}),a(m,'$_reduce_450',function(c,h,d){var a=this,e=b;return e=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):c['$[]'](1),d=[e,c['$[]'](2)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),d}),a(m,'$_reduce_451',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b}),a(m,'$_reduce_452',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_453',function(c,h,d){var a=this,e=b;return e=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):c['$[]'](2),d=[e,c['$[]'](3)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),d}),a(m,'$_reduce_454',function(a,e,f){var b=this;return[b.builder.$when(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))].concat(d(a['$[]'](4)))}),a(m,'$_reduce_455',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_457',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_458',function(b,e,c){var a=this;return a.pattern_variables.$pop(),a.pattern_hash_keys.$pop(),a.context['$in_kwarg='](b['$[]'](1)),c}),a(m,'$_reduce_459',function(a,e,f){var b=this;return[h(b.builder,'in_pattern',[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3),a['$[]'](5)]))].concat(d(a['$[]'](6)))}),a(m,'$_reduce_460',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_462',function(a,d,e){return[a['$[]'](0),b]}),a(m,'$_reduce_463',function(a,d,e){var b=this;return[a['$[]'](0),b.builder.$if_guard(a['$[]'](1),a['$[]'](2))]}),a(m,'$_reduce_464',function(a,d,e){var b=this;return[a['$[]'](0),b.builder.$unless_guard(a['$[]'](1),a['$[]'](2))]}),a(m,'$_reduce_466',function(a,f,g){var c=this,d=b;return d=c.builder.$match_with_trailing_comma(a['$[]'](0),a['$[]'](1)),c.builder.$array_pattern(b,[d],b)}),a(m,'$_reduce_467',function(a,e,f){var c=this;return c.builder.$array_pattern(b,[a['$[]'](0)].$concat(a['$[]'](2)),b)}),a(m,'$_reduce_468',function(a,e,f){var c=this;return c.builder.$find_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_469',function(a,e,f){var c=this;return c.builder.$array_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_470',function(a,e,f){var c=this;return c.builder.$hash_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_472',function(a,d,e){var b=this;return b.builder.$match_as(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_474',function(a,d,e){var b=this;return b.builder.$match_alt(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_476',function(b,e,a){var c=this;return a=b['$[]'](0),c.pattern_hash_keys.$push(),a}),a(m,'$_reduce_477',function(b,e,a){var c=this;return a=b['$[]'](0),c.pattern_hash_keys.$push(),a}),a(m,'$_reduce_480',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$array_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_481',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$find_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_482',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$hash_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_483',function(a,f,g){var c=this,d=b;return d=c.builder.$array_pattern(a['$[]'](1),b,a['$[]'](2)),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](2))}),a(m,'$_reduce_484',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$array_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_485',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$find_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_486',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$hash_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_487',function(a,f,g){var c=this,d=b;return d=c.builder.$array_pattern(a['$[]'](1),b,a['$[]'](2)),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](2))}),a(m,'$_reduce_488',function(a,d,e){var b=this;return b.builder.$array_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_489',function(a,d,e){var b=this;return b.builder.$find_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_490',function(a,d,e){var b=this;return b.builder.$array_pattern(a['$[]'](0),[],a['$[]'](1))}),a(m,'$_reduce_491',function(d,e,b){var a=this;return a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!1),b}),a(m,'$_reduce_492',function(a,d,e){var b=this;return b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](1)),b.builder.$hash_pattern(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_493',function(a,d,e){var b=this;return b.builder.$hash_pattern(a['$[]'](0),[],a['$[]'](1))}),a(m,'$_reduce_494',function(d,e,a){var b=this;return b.pattern_hash_keys.$push(),a}),a(m,'$_reduce_495',function(a,d,e){var b=this;return b.pattern_hash_keys.$pop(),b.builder.$begin(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_496',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_497',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_498',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)])}),a(m,'$_reduce_499',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)])}),a(m,'$_reduce_500',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)]).concat(d(a['$[]'](3)))}),a(m,'$_reduce_502',function(a,f,g){var d=this,c=b;return c=d.builder.$match_with_trailing_comma(a['$[]'](0),a['$[]'](1)),[c]}),a(m,'$_reduce_503',function(a,g,h){var e=this,c=b;return c=e.builder.$match_with_trailing_comma(a['$[]'](1),a['$[]'](2)),[].concat(d(a['$[]'](0))).concat([c])}),a(m,'$_reduce_504',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_505',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2)))}),a(m,'$_reduce_506',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](4)])}),a(m,'$_reduce_507',function(a,d,e){var b=this;return b.builder.$match_rest(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_508',function(a,d,e){var b=this;return b.builder.$match_rest(a['$[]'](0))}),a(m,'$_reduce_509',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_510',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](2)])}),a(m,'$_reduce_512',function(a,c,e){return[].concat(d(a['$[]'](0))).concat(d(a['$[]'](2)))}),a(m,'$_reduce_513',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_514',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_515',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_516',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_517',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](2)])}),a(m,'$_reduce_518',function(a,e,f){var b=this;return h(b.builder,'match_pair',d(a['$[]'](0)).concat([a['$[]'](1)]))}),a(m,'$_reduce_519',function(a,e,f){var b=this;return h(b.builder,'match_label',d(a['$[]'](0)))}),a(m,'$_reduce_520',function(a,c,d){return["label",a['$[]'](0)]}),a(m,'$_reduce_521',function(a,c,d){return["quoted",[a['$[]'](0),a['$[]'](1),a['$[]'](2)]]}),a(m,'$_reduce_522',function(a,d,e){var b=this;return[b.builder.$match_rest(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_523',function(a,e,f){var c=this;return[c.builder.$match_rest(a['$[]'](0),b)]}),a(m,'$_reduce_524',function(a,c,d){return a}),a(m,'$_reduce_526',function(a,d,e){var b=this;return[b.builder.$match_nil_pattern(a['$[]'](0)['$[]'](0),a['$[]'](0)['$[]'](1))]}),a(m,'$_reduce_528',function(a,d,e){var b=this;return b.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_529',function(a,d,e){var b=this;return b.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_530',function(a,e,f){var c=this;return c.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_531',function(a,e,f){var c=this;return c.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_535',function(a,e,f){var c=this;return c.builder.$range_inclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_536',function(a,e,f){var c=this;return c.builder.$range_exclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_545',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_547',function(b,d,e){var a=this;return a.builder.$assignable(a.builder.$match_var(b['$[]'](0)))}),a(m,'$_reduce_548',function(c,g,h){var a=this,d=b,e=b;return d=c['$[]'](1)['$[]'](0),e=a.builder.$accessible(a.builder.$ident(c['$[]'](1))),f(a.$static_env()['$declared?'](d))||a.$diagnostic("error","undefined_lvar",new Map([["name",d]]),c['$[]'](1)),a.builder.$pin(c['$[]'](0),e)}),a(m,'$_reduce_549',function(a,f,g){var c=this,d=b;return d=c.builder.$accessible(a['$[]'](1)),c.builder.$pin(a['$[]'](0),d)}),a(m,'$_reduce_550',function(a,f,g){var c=this,d=b;return d=c.builder.$begin(a['$[]'](1),a['$[]'](2),a['$[]'](3)),c.builder.$pin(a['$[]'](0),d)}),a(m,'$_reduce_551',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_552',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_553',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_554',function(a,m,n){var e,g,h=this,k=b,i=b,j=b;return g=a['$[]'](2),e=c(g),k=e[0]==null?b:e[0],i=e[1]==null?b:e[1],g,f(a['$[]'](1))&&(j=h.builder.$array(b,a['$[]'](1),b)),[h.builder.$rescue_body(a['$[]'](0),j,k,i,a['$[]'](3),a['$[]'](4))].concat(d(a['$[]'](5)))}),a(m,'$_reduce_555',function(b,c,d){return[]}),a(m,'$_reduce_556',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_559',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_561',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_565',function(a,e,f){var c=this;return c.builder.$string_compose(b,a['$[]'](0),b)}),a(m,'$_reduce_566',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_567',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_568',function(a,f,g){var c=this,d=b;return d=c.builder.$string_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2)),c.builder.$dedent_string(d,c.lexer.$dedent_level())}),a(m,'$_reduce_569',function(d,f,g){var a=this,c=b;return c=a.builder.$string(d['$[]'](0)),a.builder.$dedent_string(c,a.lexer.$dedent_level())}),a(m,'$_reduce_570',function(a,d,e){var b=this;return b.builder.$character(a['$[]'](0))}),a(m,'$_reduce_571',function(a,f,g){var c=this,d=b;return d=c.builder.$xstring_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2)),c.builder.$dedent_string(d,c.lexer.$dedent_level())}),a(m,'$_reduce_572',function(a,f,g){var c=this,d=b;return d=c.builder.$regexp_options(a['$[]'](3)),c.builder.$regexp_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2),d)}),a(m,'$_reduce_573',function(a,d,e){var b=this;return b.builder.$words_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_574',function(b,c,d){return[]}),a(m,'$_reduce_575',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$word(a['$[]'](1)))}),a(m,'$_reduce_576',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_577',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_578',function(a,d,e){var b=this;return b.builder.$symbols_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_579',function(b,c,d){return[]}),a(m,'$_reduce_580',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$word(a['$[]'](1)))}),a(m,'$_reduce_581',function(a,d,e){var b=this;return b.builder.$words_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_582',function(a,d,e){var b=this;return b.builder.$symbols_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_583',function(b,c,d){return[]}),a(m,'$_reduce_584',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$string_internal(a['$[]'](1)))}),a(m,'$_reduce_585',function(b,c,d){return[]}),a(m,'$_reduce_586',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$symbol_internal(a['$[]'](1)))}),a(m,'$_reduce_587',function(b,c,d){return[]}),a(m,'$_reduce_588',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_589',function(b,c,d){return[]}),a(m,'$_reduce_590',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_591',function(b,c,d){return[]}),a(m,'$_reduce_592',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_593',function(a,d,e){var b=this;return b.builder.$string_internal(a['$[]'](0))}),a(m,'$_reduce_594',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_595',function(d,e,b){var a=this;return a.lexer.$cmdarg().$push(!1),a.lexer.$cond().$push(!1),b}),a(m,'$_reduce_596',function(a,d,e){var b=this;return b.lexer.$cmdarg().$pop(),b.lexer.$cond().$pop(),b.builder.$begin(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_597',function(a,d,e){var b=this;return b.builder.$gvar(a['$[]'](0))}),a(m,'$_reduce_598',function(a,d,e){var b=this;return b.builder.$ivar(a['$[]'](0))}),a(m,'$_reduce_599',function(a,d,e){var b=this;return b.builder.$cvar(a['$[]'](0))}),a(m,'$_reduce_603',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$symbol(b['$[]'](0))}),a(m,'$_reduce_604',function(a,d,e){var b=this;return b.lexer['$state=']("expr_end"),b.builder.$symbol_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_605',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_606',function(a,e,b){var c=this;return f(c.builder['$respond_to?']("negate"))?b=c.builder.$negate(a['$[]'](0),a['$[]'](1)):b=c.builder.$unary_num(a['$[]'](0),a['$[]'](1)),b}),a(m,'$_reduce_607',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$integer(b['$[]'](0))}),a(m,'$_reduce_608',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$float(b['$[]'](0))}),a(m,'$_reduce_609',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$rational(b['$[]'](0))}),a(m,'$_reduce_610',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$complex(b['$[]'](0))}),a(m,'$_reduce_611',function(a,d,e){var b=this;return b.builder.$ivar(a['$[]'](0))}),a(m,'$_reduce_612',function(a,d,e){var b=this;return b.builder.$gvar(a['$[]'](0))}),a(m,'$_reduce_613',function(a,d,e){var b=this;return b.builder.$cvar(a['$[]'](0))}),a(m,'$_reduce_614',function(a,d,e){var b=this;return b.builder.$ident(a['$[]'](0))}),a(m,'$_reduce_615',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_617',function(a,d,e){var b=this;return b.builder.$nil(a['$[]'](0))}),a(m,'$_reduce_618',function(a,d,e){var b=this;return b.builder.$self(a['$[]'](0))}),a(m,'$_reduce_619',function(a,d,e){var b=this;return b.builder.$true(a['$[]'](0))}),a(m,'$_reduce_620',function(a,d,e){var b=this;return b.builder.$false(a['$[]'](0))}),a(m,'$_reduce_621',function(a,d,e){var b=this;return b.builder.$__FILE__(a['$[]'](0))}),a(m,'$_reduce_622',function(a,d,e){var b=this;return b.builder.$__LINE__(a['$[]'](0))}),a(m,'$_reduce_623',function(a,d,e){var b=this;return b.builder.$__ENCODING__(a['$[]'](0))}),a(m,'$_reduce_624',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_625',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_626',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_627',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_628',function(a,d,e){var b=this;return b.builder.$nth_ref(a['$[]'](0))}),a(m,'$_reduce_629',function(a,d,e){var b=this;return b.builder.$back_ref(a['$[]'](0))}),a(m,'$_reduce_630',function(d,e,a){var b=this;return b.lexer['$state=']("expr_value"),a}),a(m,'$_reduce_631',function(a,c,d){return[a['$[]'](0),a['$[]'](2)]}),a(m,'$_reduce_632',j(b)),a(m,'$_reduce_634',function(d,e,f){var a=this;return a.context['$in_argdef='](!1),a.builder.$args(b,[],b)}),a(m,'$_reduce_635',function(a,e,c){var b=this;return c=b.builder.$args(a['$[]'](0),a['$[]'](1),a['$[]'](2)),b.lexer['$state=']("expr_value"),b.context['$in_argdef='](!1),c}),a(m,'$_reduce_637',function(d,e,b){var a=this;return b=a.context.$dup(),a.context['$in_kwarg='](!0),a.context['$in_argdef='](!0),b}),a(m,'$_reduce_638',function(c,e,f){var a=this;return a.context['$in_kwarg='](c['$[]'](0).$in_kwarg()),a.context['$in_argdef='](!1),a.builder.$args(b,c['$[]'](1),b)}),a(m,'$_reduce_639',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_640',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_641',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_642',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_643',function(b,d,e){var a=this;return a.static_env.$declare_forward_args(),[a.builder.$forward_arg(b['$[]'](0))]}),a(m,'$_reduce_644',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_645',function(b,c,d){return[]}),a(m,'$_reduce_646',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_647',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](6)).$concat(a['$[]'](7))}),a(m,'$_reduce_648',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_649',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_650',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_651',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_652',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_653',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_654',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_655',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_656',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_657',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_658',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_659',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_660',function(b,c,d){return[]}),a(m,'$_reduce_661',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_662',function(a,f,c){var d=this;return d.$diagnostic("error","argument_const",b,a['$[]'](0)),c}),a(m,'$_reduce_663',function(a,f,c){var d=this;return d.$diagnostic("error","argument_ivar",b,a['$[]'](0)),c}),a(m,'$_reduce_664',function(a,f,c){var d=this;return d.$diagnostic("error","argument_gvar",b,a['$[]'](0)),c}),a(m,'$_reduce_665',function(a,f,c){var d=this;return d.$diagnostic("error","argument_cvar",b,a['$[]'](0)),c}),a(m,'$_reduce_667',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](0)['$[]'](0)),b.max_numparam_stack['$has_ordinary_params!'](),a['$[]'](0)}),a(m,'$_reduce_668',function(a,d,e){var b=this;return b.current_arg_stack.$set(a['$[]'](0)['$[]'](0)),a['$[]'](0)}),a(m,'$_reduce_669',function(b,d,e){var a=this;return a.current_arg_stack.$set(0),a.builder.$arg(b['$[]'](0))}),a(m,'$_reduce_670',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_671',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_672',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_673',function(b,d,e){var a=this;return a.$check_kwarg_name(b['$[]'](0)),a.static_env.$declare(b['$[]'](0)['$[]'](0)),a.max_numparam_stack['$has_ordinary_params!'](),a.current_arg_stack.$set(b['$[]'](0)['$[]'](0)),a.context['$in_argdef='](!1),b['$[]'](0)}),a(m,'$_reduce_674',function(c,e,f){var a=this;return a.current_arg_stack.$set(b),a.context['$in_argdef='](!0),a.builder.$kwoptarg(c['$[]'](0),c['$[]'](1))}),a(m,'$_reduce_675',function(c,e,f){var a=this;return a.current_arg_stack.$set(b),a.context['$in_argdef='](!0),a.builder.$kwarg(c['$[]'](0))}),a(m,'$_reduce_676',function(a,d,e){var b=this;return b.context['$in_argdef='](!0),b.builder.$kwoptarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_677',function(b,d,e){var a=this;return a.context['$in_argdef='](!0),a.builder.$kwarg(b['$[]'](0))}),a(m,'$_reduce_678',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_679',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_680',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_681',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_684',function(a,d,e){var b=this;return[b.builder.$kwnilarg(a['$[]'](0)['$[]'](0),a['$[]'](0)['$[]'](1))]}),a(m,'$_reduce_685',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),[b.builder.$kwrestarg(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_686',function(b,d,e){var a=this;return a.static_env.$declare_anonymous_kwrestarg(),[a.builder.$kwrestarg(b['$[]'](0))]}),a(m,'$_reduce_687',function(a,d,e){var b=this;return b.current_arg_stack.$set(0),b.context['$in_argdef='](!0),b.builder.$optarg(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_688',function(a,d,e){var b=this;return b.current_arg_stack.$set(0),b.context['$in_argdef='](!0),b.builder.$optarg(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_689',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_690',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_691',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_692',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_695',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),[b.builder.$restarg(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_696',function(b,d,e){var a=this;return a.static_env.$declare_anonymous_restarg(),[a.builder.$restarg(b['$[]'](0))]}),a(m,'$_reduce_699',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),b.builder.$blockarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_700',function(c,e,f){var a=this;return a.static_env.$declare_anonymous_blockarg(),a.builder.$blockarg(c['$[]'](0),b)}),a(m,'$_reduce_701',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_702',function(b,c,d){return[]}),a(m,'$_reduce_704',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_705',function(b,c,d){return[]}),a(m,'$_reduce_707',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_708',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_709',function(a,d,e){var b=this;return b.builder.$pair(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_710',function(a,d,e){var b=this;return b.builder.$pair_keyword(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_711',function(a,d,e){var b=this;return b.builder.$pair_label(a['$[]'](0))}),a(m,'$_reduce_712',function(a,d,e){var b=this;return b.builder.$pair_quoted(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_713',function(a,d,e){var b=this;return b.builder.$kwsplat(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_714',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_kwrestarg?']())&&a.$diagnostic("error","no_anonymous_kwrestarg",b,c['$[]'](0)),a.builder.$forwarded_kwrestarg(c['$[]'](0))}),a(m,'$_reduce_725',function(a,c,d){return["dot",a['$[]'](0)['$[]'](1)]}),a(m,'$_reduce_726',function(a,c,d){return["anddot",a['$[]'](0)['$[]'](1)]}),a(m,'$_reduce_731',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_732',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_733',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_736',function(d,e,a){var b=this;return b.$yyerrok(),a}),a(m,'$_reduce_740',j(b)),a(m,'$_reduce_none',function(a,c,d){return a['$[]'](0)})}(m[0],o(w('Parser'),'Base'),m)}(n[0],n)},Opal.modules["opal/ast/builder"]=function(a){var c=a.module,h=a.klass,f=a.Opal,g=a.def,d=a.top,e=[],i=a.nil,b=a.$$$;return a.add_stubs('require,emit_lambda=,new'),d.$require("opal/ast/node"),d.$require("parser/ruby32"),function(d,e){var i=c(d,'Opal'),a=[i].concat(e);return function(a,d){var e=c(a,'AST'),i=[e].concat(d);return function(c,d){var a=h(c,d,'Builder');return a['$emit_lambda='](!0),g(a,'$n',function(a,c,d){return b(b(f,'AST'),'Node').$new(a,c,new Map([["location",d]]))})}(i[0],b(b(b('Parser'),'Builders'),'Default'))}(a[0],a)}(e[0],e)},Opal.modules["opal/rewriters/base"]=function(a){var k=a.module,l=a.klass,i=a.slice,b=a.def,t=a.return_self,g=a.return_val,v=a.const_set,f=a.truthy,h=a.Opal,u=a.defs,e=a.alias,m=a.rb_plus,j=a.send,s=a.to_a,p=a.send2,q=a.find_super,r=a.assign_ivar_val,o=a.top,n=[],c=a.nil,d=a.$$$;return a.add_stubs('require,new,current_node,loc,process_regular_node,on_send,+,stmts_of,begin_with_stmts,nil?,include?,type,children,length,[],s,attr_accessor,current_node=,location=,raise,[]=,meta'),o.$require("parser"),o.$require("opal/ast/node"),function(o,w){var x=k(o,'Opal'),n=[x].concat(w);return function(o,w){var x=k(o,'Rewriters'),n=[x].concat(w);return function(w,x,y){var k=l(w,x,'Base'),n=[k].concat(y),o=a.$r(n),z=k.$$prototype;return z.dynamic_cache_result=c,function(f,h,j){var e=l(f,h,'DummyLocation'),k=[e].concat(j),m=a.$r(k);return b(e,'$node=',function(e){var a,b;return a=i(arguments),b=a,c},-1),b(e,'$expression',t),b(e,'$begin_pos',g(0)),b(e,'$end_pos',g(0)),b(e,'$source',g("")),b(e,'$line',g(0)),b(e,'$column',g(0)),b(e,'$last_line',function(){return d(m('Float'),'INFINITY')})}(n[0],null,n),v(n[0],'DUMMY_LOCATION',o('DummyLocation').$new()),b(k,'$s',function(j,k){var b,e,g=this,a=c;return b=i(arguments,1),e=b,a=f(g.$current_node())?g.$current_node().$loc():o('DUMMY_LOCATION'),d(d(h,'AST'),'Node').$new(j,e,new Map([["location",a]]))},-2),u(k,'$s',function(c,f){var a,b;return a=i(arguments,1),b=a,d(d(h,'AST'),'Node').$new(c,b,new Map([["location",o('DUMMY_LOCATION')]]))},-2),e(k,"on_iter","process_regular_node"),e(k,"on_zsuper","process_regular_node"),e(k,"on_jscall","on_send"),e(k,"on_jsattr","process_regular_node"),e(k,"on_jsattrasgn","process_regular_node"),e(k,"on_kwsplat","process_regular_node"),b(k,'$prepend_to_body',function(d,e){var a=this,b=c;return b=m(a.$stmts_of(e),a.$stmts_of(d)),a.$begin_with_stmts(b)}),b(k,'$append_to_body',function(d,e){var a=this,b=c;return b=m(a.$stmts_of(d),a.$stmts_of(e)),a.$begin_with_stmts(b)}),b(k,'$stmts_of',function(a){return f(a['$nil?']())?[]:f(["begin","kwbegin"]['$include?'](a.$type()))?a.$children():[a]}),b(k,'$begin_with_stmts',function(a){var b=this;switch(a.$length().valueOf()){case 0:return c;case 1:return a['$[]'](0);default:return j(b,'s',["begin"].concat(s(a)))}}),k.$attr_accessor("current_node"),b(k,'$process',function d(e){var a,f=d.$$p||c,b=this;return d.$$p=null,function(){try{return b['$current_node='](e),p(b,q(b,'process',d,!1,!0),'process',[e],f)}finally{a=[c],j(b,'current_node=',a),a[a.length-1]}}()}),b(k,'$error',function(e){var a=this,b=c;return b=d(h,'RewritingError').$new(e),f(a.$current_node())&&b['$location='](a.$current_node().$loc()),a.$raise(b)}),b(k,'$on_top',function(a){var b=this;return a=b.$process_regular_node(a),f(b.dynamic_cache_result)&&a.$meta()['$[]=']("dynamic_cache_result",!0),a}),b(k,'$dynamic!',r("dynamic_cache_result",!0))}(n[0],d(d(d('Parser'),'AST'),'Processor'),n)}(n[0],n)}(n[0],n)},Opal.modules["opal/rewriters/opal_engine_check"]=function(b){var f=b.module,j=b.klass,h=b.to_a,c=b.truthy,l=b.send2,i=b.find_super,e=b.def,d=b.const_set,k=b.top,g=[],a=b.nil;return b.add_stubs('require,children,skip_check_present?,process,s,skip_check_present_not?,=='),k.$require("opal/rewriters/base"),function(k,m){var n=f(k,'Opal'),g=[n].concat(m);return function(k,m){var n=f(k,'Rewriters'),g=[n].concat(m),o=b.$r(g);return function(m,n,o){var f=j(m,n,'OpalEngineCheck'),g=[f].concat(o),k=b.$r(g);return e(f,'$on_if',function f(j){var b,n=f.$$p||a,d=this,g=a,k=a,m=a,e=a;return f.$$p=null,b=[].concat(h(j.$children())),g=b[0]==null?a:b[0],k=b[1]==null?a:b[1],m=b[2]==null?a:b[2],b,c(d['$skip_check_present?'](g))?d.$process(c(e=k)?e:d.$s("nil")):c(d['$skip_check_present_not?'](g))?d.$process(c(e=m)?e:d.$s("nil")):l(d,i(d,'on_if',f,!1,!0),'on_if',[j],n)}),e(f,'$skip_check_present?',function(b){var d=a;return c(d=b['$=='](k('RUBY_ENGINE_CHECK')))?d:b['$=='](k('RUBY_PLATFORM_CHECK'))}),e(f,'$skip_check_present_not?',function(b){var d=a;return c(d=b['$=='](k('RUBY_ENGINE_CHECK_NOT')))?d:b['$=='](k('RUBY_PLATFORM_CHECK_NOT'))}),d(g[0],'RUBY_ENGINE_CHECK',f.$s("send",f.$s("const",a,"RUBY_ENGINE"),"==",f.$s("str","opal"))),d(g[0],'RUBY_ENGINE_CHECK_NOT',f.$s("send",f.$s("const",a,"RUBY_ENGINE"),"!=",f.$s("str","opal"))),d(g[0],'RUBY_PLATFORM_CHECK',f.$s("send",f.$s("const",a,"RUBY_PLATFORM"),"==",f.$s("str","opal"))),d(g[0],'RUBY_PLATFORM_CHECK_NOT',f.$s("send",f.$s("const",a,"RUBY_PLATFORM"),"!=",f.$s("str","opal")))}(g[0],o('Base'),g)}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/targeted_patches"]=function(b){var i=b.module,r=b.klass,q=b.to_a,c=b.truthy,l=b.rb_ge,d=b.eqeq,n=b.to_ary,h=b.range,f=b.send2,e=b.find_super,k=b.def,m=b.rb_gt,g=b.send,o=b.not,p=b.top,j=[],a=b.nil;return b.add_stubs('require,>=,length,children,==,type,last,first,updated,[],<<,>,all?,include?,=~,to_s,!,cover?,join,map,s'),p.$require("opal/rewriters/base"),function(p,s){var t=i(p,'Opal'),j=[t].concat(s);return function(p,s){var t=i(p,'Rewriters'),j=[t].concat(s),u=b.$r(j);return function(i,j){var b=r(i,j,'TargetedPatches');return k(b,'$on_def',function m(j){var b,s,u=m.$$p||a,o=this,p=a,r=a,i=a,g=a,k=a,t=a;return m.$$p=null,b=[].concat(q(j)),p=b[0]==null?a:b[0],r=b[1]==null?a:b[1],i=b[2]==null?a:b[2],b,c(i)&&d(i.$type(),"begin")&&c(l(i.$children().$length(),2))?(g=i.$children(),s=g.$last(2),b=n(s),k=b[0]==null?a:b[0],t=b[1]==null?a:b[1],s,d(k.$type(),"lvasgn")&&d(t.$type(),"lvar")&&d(k.$children().$first(),t.$children().$first())?d(g.$length(),2)?j.$updated(a,[p,r,k.$children()['$[]'](1)]):(g=g['$[]'](h(0,-3,!1))['$<<'](k.$children()['$[]'](1)),j.$updated(a,[p,r,i.$updated(a,g)])):f(o,e(o,'on_def',m,!1,!0),'on_def',[j],u)):f(o,e(o,'on_def',m,!1,!0),'on_def',[j],u)}),k(b,'$on_array',function i(j){var l=i.$$p||a,b=this,k=a,n=a,p=a;return i.$$p=null,k=j.$children(),c(m(k.$length(),32))?(n=g(k,'all?',[],function(b){return!(b==null&&(b=a),!c(["str","sym","int","nil"]['$include?'](b.$type())))&&(!(c(["str","sym"]['$include?'](b.$type()))&&c(b.$children().$first().$to_s()['$=~'](/^[0-9-]|^$|,/)))&&(!(d(b.$type(),"int")&&o(h(-1e6,1e6,!1)['$cover?'](b.$children().$first())))))}),c(n))?(p=g(k,'map',[],function(b){return b==null&&(b=a),b.$children().$first().$to_s()}).$join(","),j.$updated("jscall",[b.$s("js_tmp","Opal"),"large_array_unpack",b.$s("sym",p)])):f(b,e(b,'on_array',i,!1,!0),'on_array',[j],l):f(b,e(b,'on_array',i,!1,!0),'on_array',[j],l)})}(j[0],u('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/rewriters/for_rewriter"]=function(b){var g=b.module,h=b.klass,o=b.assign_ivar_val,d=b.defs,j=b.truthy,f=b.rb_plus,e=b.to_a,c=b.def,k=b.send,l=b.send2,m=b.find_super,n=b.top,i=[],a=b.nil;return b.add_stubs('require,+,generate_outer_assignments,next_tmp,class,s,prepend_to_body,assign_loop_variable,transform_for_to_each_loop,updated,private,find,map,type,<<,process,attr_reader,new,to_a,result'),n.$require("opal/rewriters/base"),function(n,p){var q=g(n,'Opal'),i=[q].concat(p);return function(n,p){var q=g(n,'Rewriters'),i=[q].concat(p),r=b.$r(i);return function(p,q,r){var g=h(p,q,'ForRewriter'),i=[g].concat(r),n=b.$r(i);return d(g,'$reset_tmp_counter!',o("counter",0)),d(g,'$next_tmp',function(){var b=this,c=a;return b.counter==null&&(b.counter=a),b.counter=j(c=b.counter)?c:0,b.counter=f(b.counter,1),"$for_tmp"+b.counter}),c(g,'$on_for',function(f){var b,c=this,g=a,i=a,d=a,j=a,h=a,k=a;return b=[].concat(e(f)),g=b[0]==null?a:b[0],i=b[1]==null?a:b[1],d=b[2]==null?a:b[2],b,j=c.$generate_outer_assignments(g,d),h=c.$class().$next_tmp(),k=c.$s("js_tmp",h),d=c.$prepend_to_body(d,c.$assign_loop_variable(g,k)),f=c.$transform_for_to_each_loop(f,i,h,d),f.$updated("begin",[].concat(e(j)).concat([f]))}),g.$private(),c(g,'$generate_outer_assignments',function(d,e){var g=this,b=a,c=a;return b=n('LocalVariableAssigns').$find(d),c=n('LocalVariableAssigns').$find(e),k(f(b,c),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("lvdeclare",b)},{$$s:g})}),c(g,'$assign_loop_variable',function(a,b){switch(a.$type().valueOf()){case"mlhs":return a.$updated("masgn",[a,b]);default:return a['$<<'](b)}}),c(g,'$transform_for_to_each_loop',function(b,c,d,e){var a=this;return b.$updated("send",[c,"each",b.$updated("iter",[a.$s("args",a.$s("arg",d)),a.$process(e)])])}),function(g,i,j){var f=h(g,i,'LocalVariableAssigns'),k=[f].concat(j),n=b.$r(k);return f.$attr_reader("result"),d(f,'$find',function(c){var d=this,b=a;return b=d.$new(),b.$process(c),b.$result().$to_a()}),c(f,'$initialize',function(){var a=this;return a.result=n('Set').$new()}),c(f,'$on_lvasgn',function c(f){var b,h=c.$$p||a,d=this,g=a,i=a;return c.$$p=null,b=[].concat(e(f)),g=b[0]==null?a:b[0],i=b[1]==null?a:b[1],b,d.$result()['$<<'](g),l(d,m(d,'on_lvasgn',c,!1,!0),'on_lvasgn',[f],h)})}(i[0],n('Base'),i)}(i[0],r('Base'),i)}(i[0],i)}(i[0],i)},Opal.modules["opal/rewriters/js_reserved_words"]=function(b){var l=b.module,n=b.klass,e=b.const_set,f=b.regexp,c=b.truthy,k=b.defs,d=b.def,p=b.range,g=b.to_a,h=b.send2,i=b.find_super,o=b.alias,j=b.top,m=[],a=b.nil;return b.add_stubs('require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name,on_restarg'),j.$require("opal/rewriters/base"),j.$require("opal/regexp_anchors"),function(m,q){var r=l(m,'Opal'),j=[r].concat(q);return function(m,q){var r=l(m,'Rewriters'),j=[r].concat(q),s=b.$r(j);return function(q,r,s){var l=n(q,r,'JsReservedWords'),m=[l].concat(s),j=b.$r(m);return e(m[0],'ES51_RESERVED_WORD',f([j('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)",j('REGEXP_END')]).$freeze()),e(m[0],'ES3_RESERVED_WORD_EXCLUSIVE',f([j('REGEXP_START'),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",j('REGEXP_END')]).$freeze()),e(m[0],'PROTO_SPECIAL_PROPS',f([j('REGEXP_START'),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",j('REGEXP_END')]).$freeze()),e(m[0],'PROTO_SPECIAL_METHODS',f([j('REGEXP_START'),"(?:hasOwnProperty|valueOf)",j('REGEXP_END')]).$freeze()),e(m[0],'IMMUTABLE_PROPS',f([j('REGEXP_START'),"(?:NaN|Infinity|undefined)",j('REGEXP_END')]).$freeze()),e(m[0],'BASIC_IDENTIFIER_RULES',f([j('REGEXP_START'),"[$_a-z][$_a-z\\d]*",j('REGEXP_END')],'i').$freeze()),e(m[0],'RESERVED_FUNCTION_NAMES',f([j('REGEXP_START'),"(?:Array)",j('REGEXP_END')]).$freeze()),k(l,'$valid_name?',function(b){var d=a,e=a,f=a;return c(d=j('BASIC_IDENTIFIER_RULES')['$=~'](b))?(c(e=c(f=j('ES51_RESERVED_WORD')['$=~'](b))?f:j('ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](b))?e:j('IMMUTABLE_PROPS')['$=~'](b))['$!']():d}),k(l,'$valid_ivar_name?',function(b){var d=a;return(c(d=j('PROTO_SPECIAL_PROPS')['$=~'](b))?d:j('PROTO_SPECIAL_METHODS')['$=~'](b))['$!']()}),d(l,'$fix_var_name',function(a){var b=this;return c(b.$class()['$valid_name?'](a))?a:(""+a+"$").$to_sym()}),d(l,'$fix_ivar_name',function(a){var b=this;return c(b.$class()['$valid_ivar_name?'](a.$to_s()['$[]'](p(1,-1,!1))))?a:(""+a+"$").$to_sym()}),d(l,'$on_lvar',function d(c){var b,k=d.$$p||a,e=this,f=a,j=a;return d.$$p=null,b=[].concat(g(c)),f=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=c.$updated(a,[e.$fix_var_name(f)]),h(e,i(e,'on_lvar',d,!1,!0),'on_lvar',[c],null)}),d(l,'$on_lvasgn',function f(d){var b,l=f.$$p||a,e=this,j=a,k=a;return f.$$p=null,b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,d=c(k)?d.$updated(a,[e.$fix_var_name(j),k]):d.$updated(a,[e.$fix_var_name(j)]),h(e,i(e,'on_lvasgn',f,!1,!0),'on_lvasgn',[d],null)}),d(l,'$on_ivar',function d(c){var b,k=d.$$p||a,e=this,f=a,j=a;return d.$$p=null,b=[].concat(g(c)),f=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=c.$updated(a,[e.$fix_ivar_name(f)]),h(e,i(e,'on_ivar',d,!1,!0),'on_ivar',[c],null)}),d(l,'$on_ivasgn',function f(d){var b,l=f.$$p||a,e=this,j=a,k=a;return f.$$p=null,b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,d=c(k)?d.$updated(a,[e.$fix_ivar_name(j),k]):d.$updated(a,[e.$fix_ivar_name(j)]),h(e,i(e,'on_ivasgn',f,!1,!0),'on_ivasgn',[d],null)}),d(l,'$on_restarg',function(d){var b,f=this,e=a,h=a;return b=[].concat(g(d)),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,c(e)&&(d=d.$updated(a,[f.$fix_var_name(e)],new Map([["meta",new Map([["arg_name",e]])]]))),d}),o(l,"on_kwrestarg","on_restarg"),d(l,'$on_argument',function e(d){var b,n=e.$$p||a,f=this,j=a,k=a,l=a,m=a;return e.$$p=null,d=h(f,i(f,'on_argument',e,!1,!0),'on_argument',[d],null),b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,l=f.$fix_var_name(j),m=c(k)?[l,k]:[l],d.$updated(a,m,new Map([["meta",new Map([["arg_name",j]])]]))})}(j[0],s('Base'),j)}(j[0],j)}(m[0],m)},Opal.modules["opal/rewriters/block_to_iter"]=function(a){var c=a.module,i=a.klass,e=a.to_a,f=a.rb_plus,g=a.def,h=a.top,d=[],b=a.nil;return a.add_stubs('require,s,process,updated,+,children'),h.$require("opal/rewriters/base"),function(h,j){var k=c(h,'Opal'),d=[k].concat(j);return function(h,j){var k=c(h,'Rewriters'),d=[k].concat(j),l=a.$r(d);return function(a,c){var d=i(a,c,'BlockToIter');return g(d,'$on_block',function(j){var a,h=this,c=b,i=b,d=b,g=b;return a=[].concat(e(j)),c=a[0]==null?b:a[0],i=a[1]==null?b:a[1],d=a[2]==null?b:a[2],a,g=h.$s("iter",i,d),h.$process(c.$updated(b,f(c.$children(),[g])))})}(d[0],l('Base'))}(d[0],d)}(d[0],d)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(b){var i=b.module,o=b.klass,c=b.to_a,n=b.slice,h=b.eqeq,k=b.truthy,j=b.neqeq,f=b.send2,e=b.find_super,d=b.def,l=b.send,m=b.top,g=[],a=b.nil;return b.add_stubs('require,==,type,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s'),m.$require("opal/rewriters/base"),function(m,p){var q=i(m,'Opal'),g=[q].concat(p);return function(m,p){var q=i(m,'Rewriters'),g=[q].concat(p),r=b.$r(g);return function(g,i){var b=o(g,i,'DotJsSyntax');return d(b,'$on_send',function l(g){var b,s=l.$$p||a,d=this,o=a,q=a,i=a,p=a,r=a,u=a,m=a,t=a;if(l.$$p=null,b=[].concat(c(g)),o=b[0]==null?a:b[0],q=b[1]==null?a:b[1],i=n(b,2),b,k(o)&&h(o.$type(),"send")){if(b=[].concat(c(o)),p=b[0]==null?a:b[0],r=b[1]==null?a:b[1],u=b[2]==null?a:b[2],b,h(r,"JS")){switch(q.valueOf()){case"[]":j(i.$size(),1)&&d.$error(".JS[:property] syntax supports only one argument"),m=i.$first(),g=d.$to_js_attr_call(p,m);break;case"[]=":j(i.$size(),2)&&d.$error(".JS[:property]= syntax supports only two arguments"),b=[].concat(c(i)),m=b[0]==null?a:b[0],t=b[1]==null?a:b[1],b,g=d.$to_js_attr_assign_call(p,m,t);break;default:g=d.$to_native_js_call(p,q,i)}return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],null)}return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],s)}else return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],s)}),d(b,'$to_native_js_call',function(a,b,d){var e=this;return l(e,'s',["jscall",a,b].concat(c(d)))}),d(b,'$to_js_attr_call',function(a,b){var c=this;return c.$s("jsattr",a,b)}),d(b,'$to_js_attr_assign_call',function(a,b,c){var d=this;return d.$s("jsattrasgn",a,b,c)})}(g[0],r('Base'))}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/pattern_matching"]=function(c){var l=c.module,k=c.klass,u=c.send2,t=c.find_super,b=c.def,d=c.to_a,j=c.rb_plus,i=c.slice,g=c.truthy,e=c.send,v=c.not,q=c.neqeq,p=c.eqeq,o=c.return_ivar,f=c.alias,h=c.eqeqeq,r=c.Opal,s=c.top,m=[],a=c.nil,n=c.$$$;return c.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,[],==='),s.$require("opal/rewriters/base"),function(s,w){var x=l(s,'Opal'),m=[x].concat(w);return function(s,w){var x=l(s,'Rewriters'),m=[x].concat(w),y=c.$r(m);return function(w,x,y){var l=k(w,x,'PatternMatching'),m=[l].concat(y),s=c.$r(m),z=l.$$prototype;return z.depth=a,b(l,'$initialize',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c.depth=0,u(c,t(c,'initialize',b,!1,!0),'initialize',[],d)}),b(l,'$on_match_pattern',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$s("begin",c.$s("lvasgn","$pmvar",e),c.$s("if",c.$convert_full_pattern(e,f),a,c.$raise_no_matching_pattern_error("$pmvar")))}),b(l,'$on_match_pattern_p',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$s("if",c.$convert_full_pattern(e,f),c.$s("true"),c.$s("false"))}),b(l,'$on_case_match',function(n){var b,f,c=this,k=a,l=a,m=a,h=a;return c.depth=j(c.depth,1),k="$cmvar"+c.depth,b=[].concat(d(n)),l=b[0]==null?a:b[0],f=b.length-1,f=f<1?1:f,m=i(b,1,f),h=b[f]==null?a:b[f],b,g(h)?c.$process(h):h=c.$raise_no_matching_pattern_error(k),c.$s("begin",c.$s("lvasgn",k,l),e(c,'single_case_match',[k].concat(d(m)).concat([h])))}),l.$private(),b(l,'$raise_no_matching_pattern_error',function(c){var b=this;return b.$s("send",a,"raise",b.$s("const",b.$s("cbase"),"NoMatchingPatternError"),b.$s("lvar",c))}),b(l,'$single_case_match',function(o,s,r){var k,l,h,b,f=this,n=a,c=a,j=a,p=a,m=a;if(k=i(arguments,1),l=k.splice(0,k.length-1),h=k.shift(),h==null&&(h=a),n=l.$shift(),b=[].concat(d(n)),c=b[0]==null?a:b[0],j=b[1]==null?a:b[1],p=b[2]==null?a:b[2],b,c=f.$convert_full_pattern(o,c),g(j))switch(b=[].concat(d(j)),m=b[0]==null?a:b[0],b,j.$type().valueOf()){case"if_guard":c=f.$s("and",c,m);break;case"unless_guard":c=f.$s("and",c,f.$s("send",m,"!"));break;default:a}return f.$s("if",c,f.$process(p),v(l['$empty?']())?e(f,'single_case_match',[o].concat(d(l)).concat([h])):q(h,f.$s("empty_else"))?h:a)},-3),b(l,'$convert_full_pattern',function(c,g){var b=this,f=a;return p(c.$class(),s('Symbol'))&&(c=b.$s("lvar",c)),f=s('PatternConverter').$new(g),f['$run!'](),b.$s("masgn",e(b,'s',["mlhs"].concat(d(f.$variables()))),b.$s("send",b.$s("const",b.$s("cbase"),"PatternMatching"),"call",c,f.$pattern()))}),function(s,p,q){var l=k(s,p,'PatternConverter'),r=[l].concat(q),n=c.$r(r),m=l.$$prototype;return m.pat=m.variables=a,b(l,'$initialize',function(b){var a=this;return a.pat=b,a.variables=[]}),b(l,'$run!',function(){var a=this;return a.outpat=a.$process(a.pat)}),b(l,'$pattern',o("outpat")),b(l,'$variables',function(){var b=this;return e(b.variables,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("lvasgn",b)},{$$s:b})}),b(l,'$on_match_var',function(f){var b,c=this,e=a;return b=[].concat(d(f)),e=b[0]==null?a:b[0],b,c.variables['$<<'](e),c.$s("sym","var")}),b(l,'$on_match_as',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$process(f),c.$array(c.$s("sym","save"),c.$process(e))}),b(l,'$on_literal',function(b){var a=this;return a.$array(a.$s("sym","lit"),b)}),f(l,"on_int","on_literal"),f(l,"on_float","on_literal"),f(l,"on_complex","on_literal"),f(l,"on_rational","on_literal"),f(l,"on_array","on_literal"),f(l,"on_str","on_literal"),f(l,"on_dstr","on_literal"),f(l,"on_xstr","on_literal"),f(l,"on_sym","on_literal"),f(l,"on_irange","on_literal"),f(l,"on_erange","on_literal"),f(l,"on_const","on_literal"),f(l,"on_regexp","on_literal"),f(l,"on_lambda","on_literal"),f(l,"on_begin","on_literal"),b(l,'$on_pin',function(a){var b=this;return b.$on_literal(a.$children().$first())}),b(l,'$on_match_rest',function(b){var a=this;return g(b.$children()['$empty?']())?a.$array(a.$s("sym","rest")):a.$array(a.$s("sym","rest"),a.$process(b.$children().$first()))}),b(l,'$on_match_alt',function(b){var a=this;return e(a,'array',[a.$s("sym","any")].concat(d(e(b.$children(),'map',[],a.$method("process").$to_proc()))))}),b(l,'$on_const_pattern',function(b){var a=this;return e(a,'array',[a.$s("sym","all")].concat(d(e(b.$children(),'map',[],a.$method("process").$to_proc()))))}),b(l,'$on_array_pattern',function(k,h){var b=this,c=a,i=a,f=a;return h==null&&(h=!1),c=[].concat(d(k)),g(h)&&c['$<<'](b.$s("match_rest")),i=!0,f=0,c=e(c,'each',[],function(b){switch(b==null&&(b=a),b.$type().valueOf()){case"match_rest":return i=!1;default:return f=j(f,1)}}),b.$array(b.$s("sym","array"),b.$to_ast(i),b.$to_ast(f),b.$to_ast(e(c,'map',[],b.$method("process").$to_proc())))},-2),b(l,'$on_array_pattern_with_tail',function(a){var b=this;return b.$on_array_pattern(a,!0)}),b(l,'$on_hash_pattern',function(h){var b=this,c=a,f=a;return c=[].concat(d(h)),f=g(c['$empty?']())?b.$to_ast(!1):b.$to_ast(!0),c=e(c,'map',[],function d(b){var c=d.$$s==null?this:d.$$s;switch(b==null&&(b=a),b.$type().valueOf()){case"pair":return c.$array(b.$children()['$[]'](0),c.$process(b.$children()['$[]'](1)));case"match_var":return c.$array(c.$s("sym",b.$children()['$[]'](0)),c.$process(b));case"match_nil_pattern":return f=c.$to_ast(!1),a;case"match_rest":return g(b.$children().$first())?f=c.$process(b.$children().$first()):f=c.$to_ast(!0),a;default:return a}},{$$s:b}).$compact(),b.$array(b.$s("sym","hash"),f,e(b,'array',d(c)))}),b(l,'$on_find_pattern',function(f){var b=this,c=a;return c=[].concat(d(f)),c=e(c,'map',[],b.$method("process").$to_proc()),b.$array(b.$s("sym","find"),e(b,'array',d(c)))}),l.$private(),b(l,'$array',function(e){var a,b,c=this;return a=i(arguments),b=a,c.$to_ast(b)},-1),b(l,'$to_ast',function(f){var b=this,c=a;return h(n('Array'),c=f)?e(b,'s',["array"].concat(d(f))):h(n('Integer'),c)?b.$s("int",f):h(!0,c)?b.$s("true"):h(!1,c)?b.$s("false"):h(a,c)?b.$s("nil"):a})}(m[0],n(n(r,'Rewriters'),'Base'),m)}(m[0],y('Base'),m)}(m[0],m)}(m[0],m)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(b){var k=b.module,j=b.klass,g=b.class_variable_set,f=b.defs,e=b.truthy,h=b.class_variable_get,q=b.rb_plus,d=b.const_set,l=b.lambda,p=b.eqeq,c=b.to_a,m=b.slice,n=b.send,i=b.def,r=b.send2,s=b.find_super,t=b.top,o=[],a=b.nil;return b.add_stubs('require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process'),t.$require("opal/rewriters/base"),function(t,u){var v=k(t,'Opal'),o=[v].concat(u);return function(t,u){var v=k(t,'Rewriters'),o=[v].concat(u),w=b.$r(o);return function(u,v,w){var t=j(u,v,'LogicalOperatorAssignment'),k=[t].concat(w),o=b.$r(k);return f(t,'$reset_tmp_counter!',function(){return g(k[0],'@@counter',0)}),f(t,'$new_temp',function(){var b,c=a;return g(k[0],'@@counter',e((b=k[0].$$cvars['@@counter'],b!=null)?'class variable':a)?e(c=h(k[0],'@@counter',!1))?c:0:0),g(k[0],'@@counter',q(h(k[0],'@@counter',!1),1)),"$logical_op_recvr_tmp_"+h(k[0],'@@counter',!1)}),d(k[0],'GET_SET',l(function f(b,d){var g=f.$$s==null?this:f.$$s;return b==null&&(b=a),d==null&&(d=a),l(function l(f,h,i){var j=l.$$s==null?this:l.$$s,k=a,g=a,m=a;return f==null&&(f=a),h==null&&(h=a),i==null&&(i=a),k=f.$updated(b),g=j.$s(i,k,h),e(["const","cvar"]['$include?'](b))&&p(i,"or")&&(m=j.$s("defined?",k),g=j.$s("if",m,j.$s("begin",g),h)),f.$updated(d,[].concat(c(f)).concat([g]))},{$$s:g})},{$$s:t})),d(k[0],'LocalVariableHandler',o('GET_SET')['$[]']("lvar","lvasgn")),d(k[0],'InstanceVariableHandler',o('GET_SET')['$[]']("ivar","ivasgn")),d(k[0],'ConstantHandler',o('GET_SET')['$[]']("const","casgn")),d(k[0],'GlobalVariableHandler',o('GET_SET')['$[]']("gvar","gvasgn")),d(k[0],'ClassVariableHandler',o('GET_SET')['$[]']("cvar","cvasgn")),function(b,d){var g=j(b,d,'SendHandler');return f(g,'$call',function(g,s,r){var d,f=this,b=a,k=a,j=a,i=a,h=a,n=a,o=a,q=a,l=a;return d=[].concat(c(g)),b=d[0]==null?a:d[0],k=d[1]==null?a:d[1],j=m(d,2),d,e(b)&&p(b.$type(),"send")&&(i=f.$new_temp(),h=f.$s("lvasgn",i,b),b=f.$s("js_tmp",i)),n=""+k+"=",o=g.$updated("send",[b,k].concat(c(j))),q=g.$updated("send",[b,n].concat(c(j)).concat([s])),l=f.$s(r,o,q),e(h)?f.$s("begin",h,l):l})}(k[0],t),function(b,d){var e=j(b,d,'ConditionalSendHandler');return f(e,'$call',function(l,p,g){var d,b=this,e=a,j=a,k=a,f=a,n=a,o=a,i=a,h=a;return g=""+g+"_asgn",d=[].concat(c(l)),e=d[0]==null?a:d[0],j=d[1]==null?a:d[1],k=m(d,2),d,f=b.$new_temp(),n=b.$s("lvasgn",f,e),e=b.$s("js_tmp",f),o=b.$s("send",e,"nil?"),i=l.$updated("send",[e,j].concat(c(k))),h=b.$s(g,i,p),b.$s("begin",n,b.$s("if",o,b.$s("nil"),h))})}(k[0],t),d(k[0],'HANDLERS',new Map([["lvasgn",o('LocalVariableHandler')],["ivasgn",o('InstanceVariableHandler')],["casgn",o('ConstantHandler')],["gvasgn",o('GlobalVariableHandler')],["cvasgn",o('ClassVariableHandler')],["send",o('SendHandler')],["csend",o('ConditionalSendHandler')]]).$freeze()),i(t,'$on_or_asgn',function(h){var b,f=this,d=a,g=a,e=a;return b=[].concat(c(h)),d=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,e=n(o('HANDLERS'),'fetch',[d.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+d.$type())},{$$s:f}).$call(d,g,"or"),f.$process(e)}),i(t,'$on_and_asgn',function(h){var b,f=this,d=a,g=a,e=a;return b=[].concat(c(h)),d=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,e=n(o('HANDLERS'),'fetch',[d.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+d.$type())},{$$s:f}).$call(d,g,"and"),f.$process(e)}),d(k[0],'ASSIGNMENT_STRING_NODE',t.$s("str","assignment")),i(t,'$on_defined?',function d(f){var b,j=d.$$p||a,g=this,h=a,i=a;return d.$$p=null,b=[].concat(c(f)),h=b[0]==null?a:b[0],i=b[1]==null?a:b[1],b,e(["or_asgn","and_asgn"]['$include?'](h.$type()))?o('ASSIGNMENT_STRING_NODE'):r(g,s(g,'on_defined?',d,!1,!0),'on_defined?',[f],null)})}(o[0],w('Base'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(b){var k=b.module,i=b.klass,g=b.class_variable_set,e=b.defs,f=b.truthy,h=b.class_variable_get,p=b.rb_plus,c=b.const_set,j=b.lambda,d=b.to_a,m=b.slice,l=b.eqeq,t=b.send,n=b.def,q=b.send2,r=b.find_super,s=b.top,o=[],a=b.nil;return b.add_stubs('require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process'),s.$require("opal/rewriters/base"),function(s,u){var v=k(s,'Opal'),o=[v].concat(u);return function(s,u){var v=k(s,'Rewriters'),o=[v].concat(u),w=b.$r(o);return function(u,v,w){var s=i(u,v,'BinaryOperatorAssignment'),k=[s].concat(w),o=b.$r(k);return e(s,'$reset_tmp_counter!',function(){return g(k[0],'@@counter',0)}),e(s,'$new_temp',function(){var b,c=a;return g(k[0],'@@counter',f((b=k[0].$$cvars['@@counter'],b!=null)?'class variable':a)?f(c=h(k[0],'@@counter',!1))?c:0:0),g(k[0],'@@counter',p(h(k[0],'@@counter',!1),1)),"$binary_op_recvr_tmp_"+h(k[0],'@@counter',!1)}),c(k[0],'GET_SET',j(function(b,c){return b==null&&(b=a),c==null&&(c=a),j(function(f,e,g,h){var j=a,i=a;return f==null&&(f=a),e==null&&(e=a),g==null&&(g=a),h==null&&(h=a),j=e.$updated(b),i=f.$updated("send",[j,g,h]),e.$updated(c,[].concat(d(e)).concat([i]))})})),c(k[0],'LocalVariableHandler',o('GET_SET')['$[]']("lvar","lvasgn")),c(k[0],'InstanceVariableHandler',o('GET_SET')['$[]']("ivar","ivasgn")),c(k[0],'ConstantHandler',o('GET_SET')['$[]']("const","casgn")),c(k[0],'GlobalVariableHandler',o('GET_SET')['$[]']("gvar","gvasgn")),c(k[0],'ClassVariableHandler',o('GET_SET')['$[]']("cvar","cvasgn")),function(b,c){var g=i(b,c,'SendHandler');return e(g,'$call',function(o,g,t,s){var c,j=this,b=a,e=a,i=a,h=a,k=a,p=a,q=a,r=a,n=a;return c=[].concat(d(g)),b=c[0]==null?a:c[0],e=c[1]==null?a:c[1],i=m(c,2),c,f(b)&&l(b.$type(),"send")&&(h=j.$new_temp(),k=j.$s("lvasgn",h,b),b=j.$s("js_tmp",h)),p=""+e+"=",q=g.$updated("send",[b,e].concat(d(i))),r=o.$updated("send",[q,t,s]),n=g.$updated("send",[b,p].concat(d(i)).concat([r])),f(k)?o.$updated("begin",[k,n]):n})}(k[0],s),function(b,c){var f=i(b,c,'ConditionalSendHandler');return e(f,'$call',function(q,j,p,o){var b,c=this,e=a,k=a,l=a,f=a,h=a,i=a,n=a,g=a;return b=[].concat(d(j)),e=b[0]==null?a:b[0],k=b[1]==null?a:b[1],l=m(b,2),b,f=c.$new_temp(),h=c.$s("lvasgn",f,e),e=c.$s("js_tmp",f),i=c.$s("send",e,"nil?"),n=j.$updated("send",[e,k].concat(d(l))),g=q.$updated("op_asgn",[n,p,o]),c.$s("begin",h,c.$s("if",i,c.$s("nil"),g))})}(k[0],s),c(k[0],'HANDLERS',new Map([["lvasgn",o('LocalVariableHandler')],["ivasgn",o('InstanceVariableHandler')],["casgn",o('ConstantHandler')],["gvasgn",o('GlobalVariableHandler')],["cvasgn",o('ClassVariableHandler')],["send",o('SendHandler')],["csend",o('ConditionalSendHandler')]]).$freeze()),n(s,'$on_op_asgn',function(f){var b,g=this,c=a,h=a,e=a,i=a;return b=[].concat(d(f)),c=b[0]==null?a:b[0],h=b[1]==null?a:b[1],e=b[2]==null?a:b[2],b,i=t(o('HANDLERS'),'fetch',[c.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+c.$type())},{$$s:g}).$call(f,c,h,e),g.$process(i)}),c(k[0],'ASSIGNMENT_STRING_NODE',s.$s("str","assignment")),n(s,'$on_defined?',function c(e){var b,i=c.$$p||a,f=this,g=a,h=a;return c.$$p=null,b=[].concat(d(e)),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,l(g.$type(),"op_asgn")?o('ASSIGNMENT_STRING_NODE'):q(f,r(f,'on_defined?',c,!1,!0),'on_defined?',[e],null)})}(o[0],w('Base'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(b){var e=b.module,j=b.klass,c=b.def,h=b.send2,g=b.find_super,d=b.to_a,f=b.truthy,i=b.eqeq,n=b.Opal,k=b.top,l=[],a=b.nil,m=b.$$$;return b.add_stubs('require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn'),k.$require("opal/rewriters/base"),k.$require("set"),function(l,o){var p=e(l,'Opal'),k=[p].concat(o);return function(l,o){var p=e(l,'Rewriters'),k=[p].concat(o);return function(l,o){var p=e(l,'Hashes'),k=[p].concat(o);return function(m,n,o){var e=j(m,n,'KeyDuplicatesRewriter'),k=[e].concat(o),l=b.$r(k),p=e.$$prototype;return p.keys=a,c(e,'$initialize',function(){var a=this;return a.keys=l('UniqKeysSet').$new()}),c(e,'$on_hash',function d(f){var c,i=d.$$p||a,b=this,e=a;return d.$$p=null,function(){try{return c=[b.keys,l('UniqKeysSet').$new()],e=c[0],b.keys=c[1],c,h(b,g(b,'on_hash',d,!1,!0),'on_hash',[f],null)}finally{b.keys=e}}()}),c(e,'$on_pair',function c(j){var b,l=c.$$p||a,e=this,i=a,k=a;return c.$$p=null,b=[].concat(d(j)),i=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,f(["str","sym"]['$include?'](i.$type()))&&e.keys['$<<'](i),h(e,g(e,'on_pair',c,!1,!0),'on_pair',[j],null)}),c(e,'$on_kwsplat',function(e){var b,f=this,c=a,g=a;return b=[].concat(d(e)),c=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,i(c.$type(),"hash")&&(c=f.$process_regular_node(c)),e.$updated(a,[c])}),function(h,k,l){var e=j(h,k,'UniqKeysSet'),m=[e].concat(l),g=b.$r(m),n=e.$$prototype;return n.set=a,c(e,'$initialize',function(){var a=this;return a.set=g('Set').$new()}),c(e,'$<<',function(e){var b,h=this,c=a,j=a;return f(h.set['$include?'](e))?(b=[].concat(d(e)),c=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=i(e.$type(),"str")?c.$inspect():":"+c,g('Kernel').$warn("warning: key "+c+" is duplicated and overwritten")):h.set['$<<'](e)})}(k[0],null,k)}(k[0],m(m(n,'Rewriters'),'Base'),k)}(k[0],k)}(k[0],k)}(l[0],l)},Opal.modules["opal/rewriters/dump_args"]=function(b){var g=b.module,j=b.klass,f=b.send2,c=b.find_super,d=b.to_a,e=b.def,i=b.top,h=[],a=b.nil;return b.add_stubs('require,updated'),i.$require("opal/rewriters/base"),function(i,k){var l=g(i,'Opal'),h=[l].concat(k);return function(i,k){var l=g(i,'Rewriters'),h=[l].concat(k),m=b.$r(h);return function(g,h){var b=j(g,h,'DumpArgs');return e(b,'$on_def',function g(e){var b,l=g.$$p||a,h=this,j=a,i=a,k=a;return g.$$p=null,e=f(h,c(h,'on_def',g,!1,!0),'on_def',[e],null),b=[].concat(d(e)),j=b[0]==null?a:b[0],i=b[1]==null?a:b[1],k=b[2]==null?a:b[2],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))}),e(b,'$on_defs',function g(e){var b,m=g.$$p||a,h=this,j=a,k=a,i=a,l=a;return g.$$p=null,e=f(h,c(h,'on_defs',g,!1,!0),'on_defs',[e],null),b=[].concat(d(e)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],i=b[2]==null?a:b[2],l=b[3]==null?a:b[3],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))}),e(b,'$on_iter',function g(e){var b,k=g.$$p||a,h=this,i=a,j=a;return g.$$p=null,e=f(h,c(h,'on_iter',g,!1,!0),'on_iter',[e],null),b=[].concat(d(e)),i=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))})}(h[0],m('Base'))}(h[0],h)}(h[0],h)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(b){var g=b.module,h=b.klass,c=b.send,i=b.send2,m=b.find_super,d=b.def,f=b.truthy,j=b.to_ary,k=b.rb_plus,l=b.rb_gt,e=[],a=b.nil;return b.add_stubs('new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>'),function(n,o){var p=g(n,'Opal'),e=[p].concat(o);return function(n,o){var p=g(n,'Rewriters'),e=[p].concat(o),q=b.$r(e);return function(g,n,o){var e=h(g,n,'DeduplicateArgName'),p=[e].concat(o),q=b.$r(p),r=e.$$prototype;return r.arg_name_count=a,d(e,'$on_args',function d(e){var g=d.$$p||a,b=this,f=a;return d.$$p=null,b.arg_name_count=q('Hash').$new(0),f=c(e.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$rename_arg(b)},{$$s:b}),i(b,m(b,'on_args',d,!1,!0),'on_args',[e.$updated(a,f)],null)}),d(e,'$rename_arg',function(b){var d,g,h=this,e=a,i=a,k=a;switch(b.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return e=b.$children()['$[]'](0),f(e)?b.$updated(a,[h.$unique_name(e)]):b;break;case"optarg":case"kwoptarg":return g=b.$children(),d=j(g),e=d[0]==null?a:d[0],i=d[1]==null?a:d[1],g,b.$updated(a,[h.$unique_name(e),i]);case"mlhs":return k=c(b.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$rename_arg(b)},{$$s:h}),b.$updated(a,k);default:return b}}),d(e,'$unique_name',function(b){var d,g=this,e=a;return e=(d=[b,k(g.arg_name_count['$[]'](b),1)],c(g.arg_name_count,'[]=',d),d[d.length-1]),f(l(e,1))?""+b+"_$"+e:b})}(e[0],q('Base'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/rewriters/mlhs_args"]=function(b){var i=b.module,h=b.klass,f=b.send2,g=b.find_super,e=b.to_a,d=b.truthy,c=b.def,o=b.assign_ivar_val,m=b.rb_plus,j=b.send,k=b.eqeq,n=b.top,l=[],a=b.nil;return b.add_stubs('require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?'),n.$require("opal/rewriters/base"),function(n,p){var q=i(n,'Opal'),l=[q].concat(p);return function(n,p){var q=i(n,'Rewriters'),l=[q].concat(p),r=b.$r(l);return function(p,q,r){var l=h(p,q,'MlhsArgs'),n=[l].concat(r),i=b.$r(n);return c(l,'$on_def',function m(k){var b,p=m.$$p||a,j=this,o=a,h=a,c=a,l=a,n=a;return m.$$p=null,k=f(j,g(j,'on_def',m,!1,!0),'on_def',[k],null),b=[].concat(e(k)),o=b[0]==null?a:b[0],h=b[1]==null?a:b[1],c=b[2]==null?a:b[2],b,l=i('Arguments').$new(h),h=h.$updated(a,l.$rewritten()),d(l.$initialization())&&(c=d(n=c)?n:j.$s("nil"),c=j.$prepend_to_body(c,l.$initialization())),k.$updated(a,[o,h,c])}),c(l,'$on_defs',function m(l){var b,q=m.$$p||a,k=this,n=a,o=a,h=a,c=a,j=a,p=a;return m.$$p=null,l=f(k,g(k,'on_defs',m,!1,!0),'on_defs',[l],null),b=[].concat(e(l)),n=b[0]==null?a:b[0],o=b[1]==null?a:b[1],h=b[2]==null?a:b[2],c=b[3]==null?a:b[3],b,j=i('Arguments').$new(h),h=h.$updated(a,j.$rewritten()),d(j.$initialization())&&(c=d(p=c)?p:k.$s("nil"),c=k.$prepend_to_body(c,j.$initialization())),l.$updated(a,[n,o,h,c])}),c(l,'$on_iter',function m(j){var c,o=m.$$p||a,k=this,h=a,b=a,l=a,n=a;return m.$$p=null,j=f(k,g(k,'on_iter',m,!1,!0),'on_iter',[j],null),c=[].concat(e(j)),h=c[0]==null?a:c[0],b=c[1]==null?a:c[1],c,l=i('Arguments').$new(h),h=h.$updated(a,l.$rewritten()),d(l.$initialization())&&(b=d(n=b)?n:k.$s("nil"),b=k.$prepend_to_body(b,l.$initialization())),j.$updated(a,[h,b])}),function(q,i,l){var f=h(q,i,'Arguments'),n=[f].concat(l),p=b.$r(n),g=f.$$prototype;return g.counter=g.args=g.initialization=a,f.$attr_reader("rewritten","initialization"),c(f,'$initialize',function(b){var a=this;return a.args=b,a.rewritten=[],a.initialization=[],a.rewriter=p('MlhsRewriter').$new(),a['$split!']()}),c(f,'$reset_tmp_counter!',o("counter",0)),c(f,'$new_mlhs_tmp',function(){var b=this,c=a;return b.counter=d(c=b.counter)?c:0,b.counter=m(b.counter,1),"$mlhs_tmp"+b.counter}),c(f,'$split!',function(){var b=this;return j(b.args.$children(),'each',[],function e(c){var b=e.$$s==null?this:e.$$s,d=a,f=a,g=a;return b.rewriter==null&&(b.rewriter=a),b.initialization==null&&(b.initialization=a),b.rewritten==null&&(b.rewritten=a),c==null&&(c=a),k(c.$type(),"mlhs")?(d=b.$new_mlhs_tmp(),f=b.$s("lvar",d),g=b.rewriter.$process(c),b.initialization['$<<'](b.$s("masgn",g,f)),b.rewritten['$<<'](b.$s("arg",d).$updated(a,a,new Map([["meta",new Map([["arg_name",d]])]])))):b.rewritten['$<<'](c)},{$$s:b}),k(b.initialization.$length(),1)?b.initialization=b.initialization['$[]'](0):d(b.initialization['$empty?']())?b.initialization=a:b.initialization=j(b,'s',["begin"].concat(e(b.initialization)))})}(n[0],i('Base'),n),function(e,f){var b=h(e,f,'MlhsRewriter');return c(b,'$on_arg',function(a){return a.$updated("lvasgn")}),c(b,'$on_restarg',function(b){var c=this,e=a;return e=b.$children()['$[]'](0),d(e)?c.$s("splat",b.$updated("lvasgn")):c.$s("splat")})}(n[0],i('Base'))}(l[0],r('Base'),l)}(l[0],l)}(l[0],l)},Opal.modules["opal/rewriters/arguments"]=function(c){var f=c.module,g=c.klass,h=c.send,b=c.truthy,d=c.def,e=[],a=c.nil;return c.add_stubs('attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?'),function(e,i){var j=f(e,'Opal'),c=[j].concat(i);return function(c,e){var i=f(c,'Rewriters'),j=[i].concat(e);return function(f,i){var c=g(f,i,'Arguments'),e=c.$$prototype;return e.restarg=e.postargs=e.kwargs=e.kwoptargs=e.kwrestarg=e.optargs=a,c.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),d(c,'$initialize',function(d){var c=this;return c.args=[],c.optargs=[],c.restarg=a,c.postargs=[],c.kwargs=[],c.kwoptargs=[],c.kwrestarg=a,c.kwnilarg=!1,c.shadowargs=[],c.blockarg=a,h(d,'each',[],function e(d){var c=e.$$s==null?this:e.$$s;switch(c.optargs==null&&(c.optargs=a),c.restarg==null&&(c.restarg=a),c.postargs==null&&(c.postargs=a),c.args==null&&(c.args=a),c.kwargs==null&&(c.kwargs=a),c.kwoptargs==null&&(c.kwoptargs=a),c.shadowargs==null&&(c.shadowargs=a),d==null&&(d=a),d.$type().valueOf()){case"arg":case"mlhs":return(b(c.restarg)||b(c.optargs['$any?']())?c.postargs:c.args)['$<<'](d);case"optarg":return c.optargs['$<<'](d);case"restarg":return c.restarg=d;case"kwarg":return c.kwargs['$<<'](d);case"kwoptarg":return c.kwoptargs['$<<'](d);case"kwnilarg":return c.kwnilarg=!0;case"kwrestarg":return c.kwrestarg=d;case"shadowarg":return c.shadowargs['$<<'](d);case"blockarg":return c.blockarg=d;default:return c.$raise("Unsupported arg type "+d.$type())}},{$$s:c})}),d(c,'$has_post_args?',function(){var c=this,e=a,d=a;return b(e=b(d=c.restarg['$nil?']()['$!']())?d:c.postargs['$any?']())?e:b(d=c['$has_any_kwargs?']())?c['$can_inline_kwargs?']()['$!']():d}),d(c,'$has_any_kwargs?',function(){var c=this,d=a,e=a;return b(d=b(e=c.kwargs['$any?']())?e:c.kwoptargs['$any?']())?d:c.kwrestarg['$nil?']()['$!']()}),d(c,'$can_inline_kwargs?',function(){var c=this,d=a,e=a;return b(d=b(e=c.optargs['$empty?']())?c.restarg['$nil?']():e)?c.postargs['$empty?']():d})}(j[0],null)}(c[0],c)}(e[0],e)},Opal.modules["opal/rewriters/inline_args"]=function(b){var j=b.module,k=b.klass,h=b.send2,g=b.find_super,f=b.to_a,d=b.truthy,c=b.def,q=b.const_set,r=b.ensure_kwargs,p=b.get_kwarg,e=b.send,o=b.eqeq,n=b.Opal,i=b.top,l=[],a=b.nil,m=b.$$$;return b.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,[]'),i.$require("opal/rewriters/base"),i.$require("opal/rewriters/arguments"),function(l,s){var t=j(l,'Opal'),i=[t].concat(s);return function(l,s){var t=j(l,'Rewriters'),i=[t].concat(s),u=b.$r(i);return function(s,t,u){var i=k(s,t,'InlineArgs'),j=[i].concat(u),l=b.$r(j);return c(i,'$on_def',function j(i){var b,q=j.$$p||a,e=this,n=a,m=a,c=a,o=a,k=a,p=a;return j.$$p=null,i=h(e,g(e,'on_def',j,!1,!0),'on_def',[i],null),b=[].concat(f(i)),n=b[0]==null?a:b[0],m=b[1]==null?a:b[1],c=b[2]==null?a:b[2],b,c=d(o=c)?o:e.$s("nil"),k=l('Initializer').$new(m,new Map([["type","def"]])),p=m.$updated(a,k.$inline()),c=e.$prepend_to_body(c,k.$initialization()),i.$updated(a,[n,p,c])}),c(i,'$on_defs',function j(e){var b,r=j.$$p||a,i=this,o=a,p=a,k=a,c=a,n=a,m=a,q=a;return j.$$p=null,e=h(i,g(i,'on_defs',j,!1,!0),'on_defs',[e],null),b=[].concat(f(e)),o=b[0]==null?a:b[0],p=b[1]==null?a:b[1],k=b[2]==null?a:b[2],c=b[3]==null?a:b[3],b,c=d(n=c)?n:i.$s("nil"),m=l('Initializer').$new(k,new Map([["type","defs"]])),q=k.$updated(a,m.$inline()),c=i.$prepend_to_body(c,m.$initialization()),e.$updated(a,[o,p,q,c])}),c(i,'$on_iter',function k(e){var c,p=k.$$p||a,i=this,j=a,b=a,o=a,m=a,n=a;return k.$$p=null,e=h(i,g(i,'on_iter',k,!1,!0),'on_iter',[e],null),c=[].concat(f(e)),j=c[0]==null?a:c[0],b=c[1]==null?a:c[1],c,b=d(o=b)?o:i.$s("nil"),m=l('Initializer').$new(j,new Map([["type","iter"]])),n=j.$updated(a,m.$inline()),b=i.$prepend_to_body(b,m.$initialization()),e.$updated(a,[n,b])}),function(n,l,m){var g=k(n,l,'Initializer'),i=[g].concat(m),j=b.$r(i),h=g.$$prototype;return h.initialization=h.args=h.inline=a,g.$attr_reader("inline","initialization"),q(i[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()),c(g,'$initialize',function(h,c){var g,b=this;return c=r(c),g=p(c,"type"),b.args=j('Arguments').$new(h.$children()),b.inline=[],b.initialization=[],b.type=g,e(j('STEPS'),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$send(b)},{$$s:b}),d(b.initialization['$any?']())?b.initialization=e(b,'s',["begin"].concat(f(b.initialization))):b.initialization=a}),c(g,'$extract_blockarg',function(){var b=this,c=a;return d(c=b.args.$blockarg())?b.initialization['$<<'](c.$updated("extract_blockarg")):a}),c(g,'$initialize_shadowargs',function(){var b=this;return e(b.args.$shadowargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("initialize_shadowarg"))},{$$s:b})}),c(g,'$extract_args',function(){var b=this;return e(b.args.$args(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.type==null&&(b.type=a),b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),c==null&&(c=a),o(b.type,"iter")&&b.initialization['$<<'](c.$updated("initialize_iter_arg")),b.inline['$<<'](c)},{$$s:b})}),c(g,'$prepare_post_args',function(){var b=this;return d(b.args['$has_post_args?']())?b.initialization['$<<'](b.$s("prepare_post_args",b.args.$args().$length())):a}),c(g,'$prepare_kwargs',function(){var b=this;return d(b.args['$has_any_kwargs?']())?(d(b.args['$can_inline_kwargs?']())?b.inline['$<<'](b.$s("arg","$kwargs")):(b.initialization['$<<'](b.$s("extract_kwargs")),b.inline['$<<'](b.$s("fake_arg"))),b.initialization['$<<'](b.$s("ensure_kwargs_are_kwargs"))):a}),c(g,'$extract_kwargs',function(){var b=this;return e(b.args.$kwargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("extract_kwarg"))},{$$s:b})}),c(g,'$extract_kwoptargs',function(){var b=this;return e(b.args.$kwoptargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("extract_kwoptarg"))},{$$s:b})}),c(g,'$extract_kwrestarg',function(){var b=this,c=a;return d(c=b.args.$kwrestarg())?b.initialization['$<<'](c.$updated("extract_kwrestarg")):a}),c(g,'$extract_post_args',function(){var b=this;return e(b.args.$postargs(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),c==null&&(c=a),b.initialization['$<<'](c.$updated("extract_post_arg")),b.inline['$<<'](b.$s("fake_arg"))},{$$s:b})}),c(g,'$extract_optargs',function(){var b=this,c=a;return c=b.args['$has_post_args?'](),e(b.args.$optargs(),'each',[],function h(e){var g,b=h.$$s==null?this:h.$$s,i=a,j=a;return b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),e==null&&(e=a),d(c)?(g=[].concat(f(e)),i=g[0]==null?a:g[0],j=g[1]==null?a:g[1],g,b.initialization['$<<'](e.$updated("extract_post_optarg",[i,j,b.$args_to_keep()])),b.inline['$<<'](b.$s("fake_arg"))):(b.inline['$<<'](e.$updated("arg")),b.initialization['$<<'](e.$updated("extract_optarg")))},{$$s:b})}),c(g,'$extract_restarg',function(){var b=this,c=a,e=a;return d(c=b.args.$restarg())?(e=c.$children()['$[]'](0),b.initialization['$<<'](c.$updated("extract_restarg",[e,b.$args_to_keep()])),b.inline['$<<'](b.$s("fake_arg"))):a}),c(g,'$args_to_keep',function(){var a=this;return a.args.$postargs().$length()})}(j[0],m(m(n,'Rewriters'),'Base'),j)}(i[0],u('Base'),i)}(i[0],i)}(l[0],l)},Opal.modules["opal/rewriters/numblocks"]=function(a){var c=a.module,i=a.klass,j=a.to_ary,e=a.send,g=a.to_a,f=a.def,h=a.top,d=[],b=a.nil;return a.add_stubs('require,children,s,gen_args,map'),h.$require("opal/rewriters/base"),function(h,k){var l=c(h,'Opal'),d=[l].concat(k);return function(h,k){var l=c(h,'Rewriters'),d=[l].concat(k),m=a.$r(d);return function(d,h){var c=i(d,h,'Numblocks');return f(c,'$on_numblock',function(k){var a,c,d=this,i=b,f=b,h=b;return c=k.$children(),a=j(c),i=a[0]==null?b:a[0],f=a[1]==null?b:a[1],h=a[2]==null?b:a[2],c,d.$s("block",i,e(d,'s',["args"].concat(g(d.$gen_args(f)))),h)}),f(c,'$gen_args',function(c){var d=this;return e(a.Range.$new(1,c,!1),'map',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$s("arg","_"+a)},{$$s:d})})}(d[0],m('Base'))}(d[0],d)}(d[0],d)},Opal.modules["opal/rewriters/returnable_logic"]=function(b){var j=b.module,q=b.klass,c=b.truthy,p=b.rb_plus,d=b.def,n=b.rb_minus,m=b.assign_ivar_val,e=b.to_a,l=b.send2,k=b.find_super,f=b.slice,i=b.send,h=b.eqeq,o=b.top,g=[],a=b.nil;return b.add_stubs('require,+,-,children,check_control_flow!,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,type,error,build_rule_from_parts,empty?'),o.$require("opal/rewriters/base"),function(o,r){var s=j(o,'Opal'),g=[s].concat(r);return function(o,r){var s=j(o,'Rewriters'),g=[s].concat(r),t=b.$r(g);return function(g,j){var b=q(g,j,'ReturnableLogic'),o=b.$$prototype;return o.counter=a,d(b,'$next_tmp',function(){var b=this,d=a;return b.counter=c(d=b.counter)?d:0,b.counter=p(b.counter,1),"$ret_or_"+b.counter}),d(b,'$free_tmp',function(){var a=this;return a.counter=n(a.counter,1)}),d(b,'$reset_tmp_counter!',m("counter",a)),d(b,'$on_if',function f(h){var b,i=f.$$p||a,g=this,d=a;return f.$$p=null,b=[].concat(e(h.$children())),d=b[0]==null?a:b[0],b,g['$check_control_flow!'](d),c(d)&&d.$meta()['$[]=']("if_test",!0),l(g,k(g,'on_if',f,!1,!0),'on_if',[h],i)}),d(b,'$on_case',function(k){var b,d,h=this,i=a,j=a,g=a,l=a,m=a,n=a;return b=[].concat(e(k.$children())),i=b[0]==null?a:b[0],d=b.length-1,d=d<1?1:d,j=f(b,1,d),g=b[d]==null?a:b[d],b,g=c(l=g)?l:h.$s("nil"),c(i)&&(m=h.$next_tmp()),n=h.$build_if_from_when(k,i,m,j,g),c(i)&&h.$free_tmp(),n}),d(b,'$on_or',function(g){var b,d=this,f=a,h=a,j=a,k=a;return b=[].concat(e(g.$children())),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,d['$check_control_flow!'](f),c(g.$meta()['$[]']("if_test"))?(f.$meta()['$[]=']("if_test",(b=["if_test",!0],i(h.$meta(),'[]=',b),b[b.length-1])),j=d.$process(g.$updated("if",[f,d.$s("true"),h]))):(k=d.$next_tmp(),j=d.$process(g.$updated("if",[d.$s("lvasgn",k,f),d.$s("js_tmp",k),h])),d.$free_tmp()),j}),d(b,'$on_and',function(g){var b,d=this,f=a,h=a,j=a,k=a;return b=[].concat(e(g.$children())),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,d['$check_control_flow!'](f),c(g.$meta()['$[]']("if_test"))?(f.$meta()['$[]=']("if_test",(b=["if_test",!0],i(h.$meta(),'[]=',b),b[b.length-1])),j=d.$process(g.$updated("if",[f,h,d.$s("false")]))):(k=d.$next_tmp(),j=d.$process(g.$updated("if",[d.$s("lvasgn",k,f),h,d.$s("js_tmp",k)])),d.$free_tmp()),j}),d(b,'$on_begin',function d(b){var f=d.$$p||a,e=this;return d.$$p=null,c(b.$meta()['$[]']("if_test"))&&h(b.$children().$count(),1)&&b.$children().$first().$meta()['$[]=']("if_test",!0),b.$meta().$delete("if_test"),l(e,k(e,'on_begin',d,!1,!0),'on_begin',[b],f)}),b.$private(),d(b,'$check_control_flow!',function(b){var c=this;switch(b.$type().valueOf()){case"break":case"next":case"redo":case"retry":case"return":return c.$error("void value expression");default:return a}}),d(b,'$build_if_from_when',function(q,p,l,o,k){var b,d,g=this,h=a,i=a,m=a,n=a,j=a;return b=[].concat(e(o)),h=b[0]==null?a:b[0],i=f(b,1),b,b=[].concat(e(h.$children())),d=b.length-1,d=d<0?0:d,m=f(b,0,d),n=b[d]==null?a:b[d],b,j=g.$build_rule_from_parts(q,p,l,m),h.$updated("if",[j,g.$process(n),c(i['$empty?']())?g.$process(k):g.$build_if_from_when(a,a,l,i,k)])}),d(b,'$build_rule_from_parts',function(m,j,d,q){var g,b=this,i=a,n=a,o=a,p=a,l=a,k=a;return j=c(m)&&c(d)?m.$updated("lvasgn",[d,b.$process(j)]):b.$s("js_tmp",d),g=[].concat(e(q)),i=g[0]==null?a:g[0],n=f(g,1),g,o=h(i.$type(),"splat")?(p=i.$children().$first(),l=b.$next_tmp(),k=b.$s("send",b.$process(p),"any?",b.$s("iter",b.$s("args",b.$s("arg",l)),b.$build_rule_from_parts(a,a,d,[b.$s("lvar",l)]))),c(m)&&c(d)?b.$s("begin",j,k):k):c(d)?b.$s("send",b.$process(i),"===",j):b.$process(i),c(n['$empty?']())?o:b.$s("if",o,b.$s("true"),b.$build_rule_from_parts(a,a,d,n))})}(g[0],t('Base'))}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/forward_args"]=function(a){var h=a.module,o=a.klass,c=a.def,f=a.not,e=a.send2,d=a.find_super,g=a.eqeq,i=a.truthy,j=a.range,k=a.to_a,n=a.neqeq,m=a.top,l=[],b=a.nil;return a.add_stubs('require,process,s,!,first,children,updated,==,type,last,[],!=,class'),m.$require("opal/rewriters/base"),function(m,p){var q=h(m,'Opal'),l=[q].concat(p);return function(m,p){var q=h(m,'Rewriters'),l=[q].concat(p),r=a.$r(l);return function(l,m,p){var h=o(l,m,'ForwardArgs'),q=[h].concat(p),r=a.$r(q);return c(h,'$on_forward_args',function(c){var a=this;return a.$process(a.$s("args",a.$s("forward_arg","$")))}),c(h,'$on_forwarded_restarg',function(c){var a=this;return a.$process(a.$s("splat",a.$s("lvar","$fwd_rest")))}),c(h,'$on_forwarded_kwrestarg',function(c){var a=this;return a.$process(a.$s("kwsplat",a.$s("lvar","$fwd_kwrest")))}),c(h,'$on_block_pass',function c(g){var h=c.$$p||b,a=this;return c.$$p=null,f(g.$children().$first())?a.$process(g.$updated(b,[a.$s("lvar","$fwd_block")])):e(a,d(a,'on_block_pass',c,!1,!0),'on_block_pass',[g],h)}),c(h,'$on_args',function f(c){var l=f.$$p||b,a=this,h=b;return f.$$p=null,i(c.$children().$last())&&g(c.$children().$last().$type(),"forward_arg")?(h=c.$children()['$[]'](j(0,-2,!1)),e(a,d(a,'on_args',f,!1,!0),'on_args',[c.$updated(b,[].concat(k(h)).concat([a.$s("restarg","$fwd_rest"),a.$s("blockarg","$fwd_block")]))],null)):e(a,d(a,'on_args',f,!1,!0),'on_args',[c],l)}),c(h,'$on_restarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_rest"]):e(g,d(g,'on_restarg',a,!1,!0),'on_restarg',[c],h)}),c(h,'$on_kwrestarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_kwrest"]):e(g,d(g,'on_kwrestarg',a,!1,!0),'on_kwrestarg',[c],h)}),c(h,'$on_blockarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_block"]):e(g,d(g,'on_blockarg',a,!1,!0),'on_blockarg',[c],h)}),c(h,'$on_send',function f(c){var l=f.$$p||b,a=this,h=b;return f.$$p=null,i(c.$children().$last())&&n(c.$children().$last().$class(),r('Symbol'))&&g(c.$children().$last().$type(),"forwarded_args")?(h=c.$children()['$[]'](j(0,-2,!1)),e(a,d(a,'on_send',f,!1,!0),'on_send',[c.$updated(b,[].concat(k(h)).concat([a.$s("splat",a.$s("lvar","$fwd_rest")),a.$s("block_pass",a.$s("lvar","$fwd_block"))]))],null)):e(a,d(a,'on_send',f,!1,!0),'on_send',[c],l)})}(l[0],r('Base'),l)}(l[0],l)}(l[0],l)},Opal.modules["opal/rewriters/thrower_finder"]=function(d){var k=d.module,n=d.klass,b=d.def,e=d.send2,g=d.find_super,c=d.send,f=d.find_block_super,h=d.truthy,l=d.range,m=d.slice,j=[],a=d.nil,i=d.$$$;return d.add_stubs('tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta'),function(o,p){var q=k(o,'Opal'),j=[q].concat(p);return function(o,p){var q=k(o,'Rewriters'),j=[q].concat(p),r=d.$r(j);return function(k,o){var i=n(k,o,'ThrowerFinder'),j=i.$$prototype;return j.break_stack=j.redo_stack=j.retry_stack=j.rescue_else_stack=a,b(i,'$initialize',function(){var a=this;return a.break_stack=[],a.redo_stack=[],a.retry_stack=[],a.rescue_else_stack=[]}),b(i,'$on_break',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("break",b.break_stack),e(b,g(b,'on_break',c,!1,!0),'on_break',[d],f)}),b(i,'$on_redo',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("redo",b.redo_stack),e(b,g(b,'on_redo',c,!1,!0),'on_redo',[d],f)}),b(i,'$on_retry',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("retry",b.retry_stack),e(b,g(b,'on_retry',c,!1,!0),'on_retry',[d],f)}),b(i,'$on_iter',function b(g){var h=b.$$p||a,d=this;return b.$$p=null,c(d,'pushing',[[d.break_stack,g]],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_iter',a.$$def||b,!1,!0),'on_iter',[g],h)},{$$s:d})}),b(i,'$on_loop',function d(e){var f=d.$$p||a,b=this;return d.$$p=null,c(b,'pushing',[[b.redo_stack,e],[b.break_stack,a]],f.$to_proc())}),b(i,'$on_for',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_for',a.$$def||b,!1,!0),'on_for',[d],h)},{$$s:g})}),b(i,'$on_while',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_while',a.$$def||b,!1,!0),'on_while',[d],h)},{$$s:g})}),b(i,'$on_while_post',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_while_post',a.$$def||b,!1,!0),'on_while_post',[d],h)},{$$s:g})}),b(i,'$on_until',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_until',a.$$def||b,!1,!0),'on_until',[d],h)},{$$s:g})}),b(i,'$on_until_post',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_until_post',a.$$def||b,!1,!0),'on_until_post',[d],h)},{$$s:g})}),b(i,'$on_defined',function d(g){var h=d.$$p||a,b=this;return d.$$p=null,c(b,'pushing',[[b.redo_stack,a],[b.break_stack,a],[b.retry_stack,a]],function a(){var b=a.$$s==null?this:a.$$s;return e(b,f(b,'on_defined',a.$$def||d,!1,!0),'on_defined',[g],h)},{$$s:b})}),b(i,'$on_ensure',function b(g){var h=b.$$p||a,d=this;return b.$$p=null,c(d,'pushing',[[d.rescue_else_stack,g]],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_ensure',a.$$def||b,!1,!0),'on_ensure',[g],h)},{$$s:d})}),b(i,'$on_rescue',function d(g){var i=d.$$p||a,b=this;return d.$$p=null,h(c(g.$children()['$[]'](l(1,-1,!1)),'detect',[],function(b){var c=a;return b==null&&(b=a),h(c=b)?b.$type()['$!=']("resbody"):c}))&&b.$tracking("rescue_else",b.rescue_else_stack),c(b,'pushing',[[b.rescue_else_stack,a],[b.retry_stack,g]],function a(){var b=a.$$s==null?this:a.$$s;return e(b,f(b,'on_rescue',a.$$def||d,!1,!0),'on_rescue',[g],i)},{$$s:b})}),i.$private(),b(i,'$pushing',function e(i){var f,b,h=e.$$p||a,g=a;return e.$$p=null,f=m(arguments),b=f,c(b,'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$push(c)}),g=d.yieldX(h,[]),c(c(b,'map',[],"first".$to_proc()),'each',[],"pop".$to_proc()),g},-1),b(i,'$tracking',function(e,d){var b;return h(d.$last())?(b=["has_"+e,!0],c(d.$last().$meta(),'[]=',b),b[b.length-1]):a})}(j[0],i(i(r('Opal'),'Rewriters'),'Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/rewriter"]=function(c){var k=c.module,h=c.klass,f=c.truthy,e=c.def,l=c.ensure_kwargs,m=c.hash_get,n=c.eqeq,i=c.assign_ivar,j=c.send,b=c.top,g=[],d=c.nil,a=c.$$$;return c.add_stubs('require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process'),b.$require("opal/rewriters/opal_engine_check"),b.$require("opal/rewriters/targeted_patches"),b.$require("opal/rewriters/for_rewriter"),b.$require("opal/rewriters/js_reserved_words"),b.$require("opal/rewriters/block_to_iter"),b.$require("opal/rewriters/dot_js_syntax"),b.$require("opal/rewriters/pattern_matching"),b.$require("opal/rewriters/logical_operator_assignment"),b.$require("opal/rewriters/binary_operator_assignment"),b.$require("opal/rewriters/hashes/key_duplicates_rewriter"),b.$require("opal/rewriters/dump_args"),b.$require("opal/rewriters/deduplicate_arg_name"),b.$require("opal/rewriters/mlhs_args"),b.$require("opal/rewriters/inline_args"),b.$require("opal/rewriters/numblocks"),b.$require("opal/rewriters/returnable_logic"),b.$require("opal/rewriters/forward_args"),b.$require("opal/rewriters/thrower_finder"),function(g,o){var p=k(g,'Opal'),b=[p].concat(o);return function(o,p,q){var b=h(o,p,'Rewriter'),k=[b].concat(q),g=c.$r(k),r=b.$$prototype;return r.sexp=d,b.disabled=!1,function(a,b){return e(a,'$list',function(){var a=this,b=d;return a.list==null&&(a.list=d),a.list=f(b=a.list)?b:[]}),e(a,'$use',function(a){var b=this;return b.$list()['$<<'](a)}),e(a,'$delete',function(a){var b=this;return b.$list().$delete(a)}),e(a,'$disable',function g(e){var b,j=g.$$p||d,a=this,h=d,i=d;return a.disabled==null&&(a.disabled=d),g.$$p=null,e=l(e),b=m(e,"except"),b==null&&(b=d),function(){try{return h=a.disabled,a.disabled=f(i=b)?i:!0,c.yieldX(j,[])}finally{a.disabled=h}}()},-1),e(a,'$disabled?',function(){var a=this;return a.disabled==null&&(a.disabled=d),a.disabled['$=='](!0)}),e(a,'$rewritter_disabled?',function(b){var a=this;return!(a.disabled==null&&(a.disabled=d),n(a.disabled,!1))&&a.disabled['$!='](b)})}(c.get_singleton_class(b),k),b.$use(a(g('Rewriters'),'OpalEngineCheck')),b.$use(a(g('Rewriters'),'ForRewriter')),b.$use(a(g('Rewriters'),'Numblocks')),b.$use(a(g('Rewriters'),'ForwardArgs')),b.$use(a(g('Rewriters'),'BlockToIter')),b.$use(a(g('Rewriters'),'TargetedPatches')),b.$use(a(g('Rewriters'),'DotJsSyntax')),b.$use(a(g('Rewriters'),'PatternMatching')),b.$use(a(g('Rewriters'),'JsReservedWords')),b.$use(a(g('Rewriters'),'LogicalOperatorAssignment')),b.$use(a(g('Rewriters'),'BinaryOperatorAssignment')),b.$use(a(a(g('Rewriters'),'Hashes'),'KeyDuplicatesRewriter')),b.$use(a(g('Rewriters'),'ReturnableLogic')),b.$use(a(g('Rewriters'),'DeduplicateArgName')),b.$use(a(g('Rewriters'),'DumpArgs')),b.$use(a(g('Rewriters'),'MlhsArgs')),b.$use(a(g('Rewriters'),'InlineArgs')),b.$use(a(g('Rewriters'),'ThrowerFinder')),e(b,'$initialize',i("sexp")),e(b,'$process',function(){var a=this;return f(a.$class()['$disabled?']())?a.sexp:(j(a.$class().$list(),'each',[],function c(b){var a=c.$$s==null?this:c.$$s,e=d;return a.sexp==null&&(a.sexp=d),b==null&&(b=d),f(a.$class()['$rewritter_disabled?'](b))?d:(e=b.$new(),a.sexp=e.$process(a.sexp))},{$$s:a}),a.sexp)})}(b[0],null,b)}(g[0],g)},Opal.modules["opal/parser/source_buffer"]=function(a){var c=a.module,i=a.klass,j=a.truthy,f=a.send2,g=a.find_super,h=a.defs,e=[],d=a.nil,b=a.$$$;return function(k,l){var m=c(k,'Opal'),e=[m].concat(l);return function(k,l){var m=c(k,'Parser'),e=[m].concat(l);return function(e,k,l){var c=i(e,k,'SourceBuffer'),m=[c].concat(l),n=a.$r(m);return h(c,'$recognize_encoding',function a(h){var i=a.$$p||d,c=this,e=d;return a.$$p=null,j(e=f(c,g(c,'recognize_encoding',a,!1,!0),'recognize_encoding',[h],i))?e:b(n('Encoding'),'UTF_8')})}(e[0],b(b(b('Parser'),'Source'),'Buffer'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/parser/default_config"]=function(a){var e=a.module,g=a.send2,f=a.find_super,d=a.def,l=a.lambda,m=a.send,n=a.defs,j=a.slice,k=a.truthy,i=a.Opal,h=[],b=a.nil,c=a.$$$;return a.add_stubs('attr_accessor,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,diagnostics_consumer,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class'),function(o,p){var q=e(o,'Opal'),h=[q].concat(p);return function(p,q){var o=e(p,'Parser'),h=[o].concat(q);return function(q,r){var h=e(q,'DefaultConfig'),p=[h].concat(r),o=a.$r(p);return function(c){var a=e(c,'ClassMethods');return a.$attr_accessor("diagnostics_consumer"),d(a,'$default_parser',function c(){var e=c.$$p||b,d=this,a=b;return c.$$p=null,a=g(d,f(d,'default_parser',c,!1,!0),'default_parser',[],e),a.$diagnostics()['$all_errors_are_fatal='](!0),a.$diagnostics()['$ignore_warnings='](!1),a.$diagnostics()['$consumer='](d.$diagnostics_consumer()),a})}(p[0]),n(h,'$included',function(c){var a;return c.$extend(o('ClassMethods')),(a=[l(function(a){return a==null&&(a=b),b})],m(c,'diagnostics_consumer=',a),a[a.length-1])}),d(h,'$initialize',function a(i){var d,h,k=a.$$p||b,e=this;return a.$$p=null,d=j(arguments),h=d,g(e,f(e,'initialize',a,!1,!0),'initialize',[c(c(o('Opal'),'AST'),'Builder').$new()],null)},-1),d(h,'$parse',function a(l){var m=a.$$p||b,d=this,e=b,h=b,j=b;return a.$$p=null,e=k(h=g(d,f(d,'parse',a,!1,!0),'parse',[l],m))?h:c(c(i,'AST'),'Node').$new("nil"),j=c(c(i,'AST'),'Node').$new("top",[e]),d.$rewrite(j)}),d(h,'$rewrite',function(a){return c(o('Opal'),'Rewriter').$new(a).$process()})}(h[0],h),function(a,b){return a.$attr_accessor("default_parser_class"),d(a,'$default_parser',function(){var a=this;return a.$default_parser_class().$default_parser()})}(a.get_singleton_class(o),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/parser/with_ruby_lexer"]=function(a){var e=a.klass,f=a.send,c=[],d=a.$r(c),g=a.nil,b=a.$$$;return a.add_stubs('include,default_parser_class='),function(k,h,i){var d=e(k,h,'WithRubyLexer'),j=[d].concat(i),g=a.$r(j),c;return d.$include(b(b(g('Opal'),'Parser'),'DefaultConfig')),(c=[d],f(b(g('Opal'),'Parser'),'default_parser_class=',c),c[c.length-1])}(b(d('Opal'),'Parser'),b(d('Parser'),'Ruby32'),c)},Opal.modules["opal/parser/patch"]=function(b){var h=b.klass,c=b.truthy,f=b.send,e=b.def,i=b.rb_plus,j=b.eqeq,s=b.not,r=b.rb_le,k=b.eqeqeq,m=b.rb_minus,q=b.rb_gt,t=b.rb_times,n=b.rb_divide,o=b.thrower,p=b.module,l=[],g=b.$r(l),a=b.nil,d=b.$$$;return b.add_stubs('source,unpack,source_buffer=,source_pts=,+,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(g,i){var d=h(g,i,'Lexer'),b=d.$$prototype;return b.source_buffer=b.strings=b.source_pts=a,e(d,'$source_buffer=',function(g){var d,b=this,e=a;return b.source_buffer=g,c(b.source_buffer)?(e=b.source_buffer.$source(),b.source_pts=e.$unpack("U*")):b.source_pts=a,c(b.strings)?(b.strings['$source_buffer='](b.source_buffer),(d=[b.source_pts],f(b.strings,'source_pts=',d),d[d.length-1])):a})}(g('Parser'),null),function(g,j){var d=h(g,j,'Literal'),f=d.$$prototype;return f.buffer_s=f.buffer=a,b.udef(d,'$extend_string'),e(d,'$extend_string',function(e,f,g){var b=this,d=a;return b.buffer_s=c(d=b.buffer_s)?d:f,b.buffer_e=g,b.buffer=i(b.buffer,e)})}(d(g('Parser'),'Lexer'),null),function(g,i){var b=h(g,i,'Buffer'),d=b.$$prototype;return d.lines=d.source=a,e(b,'$source_lines',function(){var b=this,e=a,d=a;return b.lines=c(e=b.lines)?e:(d=b.source.$lines().$to_a(),c(b.source['$end_with?']("\n"))?d['$<<'](""):a,f(d,'map',[],function(b){return b==null&&(b=a),b.$chomp("\n")}))})}(d(g('Parser'),'Source'),null),function(g,i){var b=h(g,i,'Default');return e(b,'$check_lvar_name',function(b,d){var e=this;return c(b['$=~'](new RegExp('^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$','u')))?a:e.$diagnostic("error","lvar_name",new Map([["name",b]]),d)}),e(b,'$dedent_string',function(b,g){var e=a,h=a;if(!c(g['$nil?']()))switch(e=d(d(d('Parser'),'Lexer'),'Dedenter').$new(g),b.$type().valueOf()){case"str":b=b.$updated(a,[e.$dedent(b.$children().$first())]);break;case"dstr":case"xstr":h=f(b.$children(),'map',[],function(b){if(b==null&&(b=a),j(b.$type(),"str")){if(b=b.$updated(a,[e.$dedent(b.$children().$first())]),c(b.$children().$first()['$empty?']()))return a}else e.$interrupt();return b}),b=b.$updated(a,h.$compact());break;default:a}return b})}(d(g('Parser'),'Builders'),null),function(p,u,v){var l=h(p,u,'Dedenter'),w=[l].concat(v),g=b.$r(w);return e(l,'$dedent',function(h){var p=this,l=a,e=a;return l=h.$encoding(),e=h.$force_encoding(d(g('Encoding'),'BINARY')).$split("\\\n"),j(e.$length(),1)?e=[h.$force_encoding(l)]:f(e,'map!',[],function(b){return b==null&&(b=a),b.$force_encoding(l)}),f(e,'each_with_index',[],function w(p,u){var v,h=w.$$s==null?this:w.$$s,l=a,d=a;return h.at_line_begin==null&&(h.at_line_begin=a),h.dedent_level==null&&(h.dedent_level=a),p==null&&(p=a),u==null&&(u=a),j(u,0)&&s(h.at_line_begin)?a:(l=h.dedent_level,d=0,function(){try{var b=o('break');return f(p,'each_char',[],function e(f){var h=e.$$s==null?this:e.$$s,j=a;if(h.dedent_level==null&&(h.dedent_level=a),f==null&&(f=a),c(r(l,0))&&b.$throw(a,e.$$is_lambda),k(" ",j=f))return d=i(d,1),l=m(l,1);if(k(" ",j))return c(q(t(g('TAB_WIDTH'),i(n(d,g('TAB_WIDTH')),1)),h.dedent_level))&&b.$throw(a,e.$$is_lambda),d=i(d,1),l=m(l,g('TAB_WIDTH'));b.$throw(a,e.$$is_lambda)},{$$s:h})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),(v=[u,p['$[]'](b.Range.$new(d,-1,!1))],f(e,'[]=',v),v[v.length-1]))},{$$s:p}),h=e.$join(),p.at_line_begin=h['$end_with?']("\n"),h})}(d(g('Parser'),'Lexer'),null,l),function(g){var d=p(g,'Mixin');return b.udef(d,'$process'),e(d,'$process',function(e){var g,b=this,d=a,h=a,j=a,i=a;return b._on_handler_cache==null&&(b._on_handler_cache=a),c(e['$nil?']())?a:(b._on_handler_cache=c(d=b._on_handler_cache)?d:new Map,h=e.$type(),j=c(d=b._on_handler_cache['$[]'](h))?d:(g=[h,(i="on_"+h,c(b['$respond_to?'](i))?a:i="handler_missing",i)],f(b._on_handler_cache,'[]=',g),g[g.length-1]),c(d=b.$send(j,e)))?d:e})}(d(g('AST'),'Processor')),function(c,d){var a=h(c,d,'Default');return b.udef(a,'$string_value'),e(a,'$string_value',function(a){var b=this;return b.$value(a)})}(d(g('Parser'),'Builders'),null)},Opal.modules["opal/parser"]=function(b){var a=b.top,c=b.nil;return b.add_stubs('require'),a.$require("opal/ast/builder"),a.$require("opal/rewriter"),a.$require("opal/parser/source_buffer"),a.$require("opal/parser/default_config"),a.$require("opal/parser/with_ruby_lexer"),a.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(b){var l=b.module,k=b.klass,c=b.def,d=b.truthy,e=b.eqeq,i=b.rb_plus,j=b.rb_gt,f=b.to_a,h=b.not,g=[],a=b.nil,m=b.$$$;return b.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(n,o){var p=l(n,'Opal'),g=[p].concat(o);return function(r,n,o){var g=k(r,n,'Fragment'),p=[g].concat(o),q=b.$r(p),l=g.$$prototype;return l.code=l.scope=l.sexp=a,g.$attr_reader("code"),c(g,'$initialize',function(d,e,b){var c=this;return b==null&&(b=a),c.code=d.$to_s(),c.sexp=b,c.scope=e},-3),c(g,'$inspect',function(){var a=this;return"f("+a.code.$inspect()+")"}),c(g,'$source_map_name_for',function(c){var b,g=this,k=a,l=a,p=a,n=a,o=a;switch(c.$type().valueOf()){case"top":switch(c.$meta()['$[]']("kind").valueOf()){case"require":return"";case"eval":return"(eval)";case"main":return"
";default:return a}break;case"begin":case"newline":case"js_return":return d(g.scope)?g.$source_map_name_for(g.scope.$sexp()):a;break;case"iter":for(k=g.scope,l=1;d(k);)if(e(k.$class(),m(q('Nodes'),'IterNode')))l=i(l,1),k=k.$parent();else break;return d(j(l,1))&&(p=" ("+l+" levels)"),"block"+p+" in "+g.$source_map_name_for(k.$sexp());case"self":return"self";case"module":return b=[].concat(f(c)),n=b[0]==null?a:b[0],b,"";case"class":return b=[].concat(f(c)),n=b[0]==null?a:b[0],b,"";case"const":return b=[].concat(f(c)),k=b[0]==null?a:b[0],o=b[1]==null?a:b[1],b,h(k)||e(k.$type(),"cbase")?o.$to_s():""+g.$source_map_name_for(k)+"::"+o;break;case"int":return c.$children().$first();case"def":return c.$children().$first();case"defs":return c.$children()['$[]'](1);case"send":return c.$children()['$[]'](1);case"lvar":case"lvasgn":case"lvdeclare":case"ivar":case"ivasgn":case"gvar":case"cvar":case"cvasgn":case"gvars":case"gvasgn":case"arg":return c.$children().$first();case"str":case"xstr":return g.$source_map_name_for(g.scope.$sexp());default:return a}}),c(g,'$source_map_name',function(){var b=this;return d(b.sexp)?b.$source_map_name_for(b.sexp):a}),c(g,'$location',function(){var b=this,c=a,f=a;return h(b.sexp)?a:e(b.sexp.$type(),"send")?(c=b.sexp.$loc(),d(c['$respond_to?']("dot"))?d(f=c.$dot())?f:c.$selector():d(c['$respond_to?']("operator"))?c.$operator():b.sexp):e(b.sexp.$type(),"iter")?d(c['$respond_to?']("begin"))?b.sexp.$loc().$begin():b.sexp:b.sexp}),c(g,'$line',function(){var b,c=this;return b=c.$location(),b===a||b==null?a:b.$line()}),c(g,'$column',function(){var b,c=this;return b=c.$location(),b===a||b==null?a:b.$column()}),c(g,'$skip_source_map?',function(){var a=this;return a.sexp['$=='](!1)})}(g[0],null,g)}(g[0],g)},Opal.modules["opal/nodes/closure"]=function(b){var g=b.module,l=b.klass,j=b.const_set,e=b.send,i=b.defs,d=b.def,c=b.truthy,f=b.eqeq,s=b.slice,r=b.extract_kwargs,p=b.ensure_kwargs,m=b.hash_get,n=b.neqeq,o=b.thrower,h=b.not,q=b.to_a,k=[],a=b.nil;return b.add_stubs('const_set,[]=,join,map,reject,==,&,to_proc,add_type,<<,include?,!=,type_inspect,type,class,attr_accessor,new,select_closure,closure_stack,compile_catcher,pop,last,node,push_closure,pop_closure,find,reverse,register_catcher,register_thrower,push,expr_or_nil,identify!,scope,helper,key?,throwers,[],unique_temp,compiler,parent,top_scope,add_scope_temp,|,!,generate_thrower_without_catcher,eval?,error,generate_thrower,is?,catchers,empty?,grep_v,indent,each,line,closure_is?,unshift,await_encountered,wrap'),function(t,u){var v=g(t,'Opal'),k=[v].concat(u);return function(t,u){var v=g(t,'Nodes'),k=[v].concat(u);return function(y,v,w){var k=l(y,v,'Closure'),t=[k].concat(w),x=b.$r(t),u=k.$$prototype;return u.catchers=u.throwers=u.type=u.node=a,j(t[0],'NONE',0),k.types=new Map,i(k,'$add_type',function(d,f){var b,c=this;return c.types==null&&(c.types=a),c.$const_set(d,f),(b=[d,f],e(c.types,'[]=',b),b[b.length-1])}),i(k,'$type_inspect',function(c){var b=this;return b.types==null&&(b.types=a),e(e(b.types,'reject',[],function(d,b){return d==null&&(d=a),b==null&&(b=a),c['$&'](b)['$=='](0)}),'map',[],"first".$to_proc()).$join("|")}),k.$add_type("JS_FUNCTION",1['$<<'](0)),k.$add_type("JS_LOOP",1['$<<'](1)),k.$add_type("JS_LOOP_INSIDE",1['$<<'](2)),k.$add_type("DEF",1['$<<'](3)),k.$add_type("LAMBDA",1['$<<'](4)),k.$add_type("ITER",1['$<<'](5)),k.$add_type("MODULE",1['$<<'](6)),k.$add_type("LOOP",1['$<<'](7)),k.$add_type("LOOP_INSIDE",1['$<<'](8)),k.$add_type("SEND",1['$<<'](9)),k.$add_type("TOP",1['$<<'](10)),k.$add_type("RESCUE_RETRIER",1['$<<'](11)),j(t[0],'ANY',4294967295),d(k,'$initialize',function(c,d,e){var a,b=this;return a=[c,d,e],b.node=a[0],b.type=a[1],b.parent=a[2],a,b.catchers=[],b.throwers=new Map}),d(k,'$register_catcher',function(a){var b=this;return a==null&&(a="return"),c(b.catchers['$include?'](a))||b.catchers['$<<'](a),"$t_"+a},-1),d(k,'$register_thrower',function(b,c){var a,d=this;return a=[b,c],e(d.throwers,'[]=',a),a[a.length-1]}),d(k,'$is?',function(a){var b=this;return b.type['$&'](a)['$!='](0)}),d(k,'$inspect',function(){var a=this;return"#"}),k.$attr_accessor("node","type","parent","catchers","throwers"),function(k,l){var j=g(k,'NodeSupport'),t=[j].concat(l),i=b.$r(t);return d(j,'$push_closure',function(c){var b=this,d=a;return b.compiler==null&&(b.compiler=a),c==null&&(c=i('JS_FUNCTION')),d=i('Closure').$new(b,c,b.$select_closure()),b.compiler.$closure_stack()['$<<'](d),b.closure=d},-1),j.$attr_accessor("closure"),d(j,'$pop_closure',function(){var c,b=this,d=a;return b.compiler==null&&(b.compiler=a),b.$compile_catcher(),b.compiler.$closure_stack().$pop(),d=b.compiler.$closure_stack().$last(),f((c=d,c===a||c==null?a:c.$node()),b)?b.closure=d:a}),d(j,'$in_closure',function d(c){var h=d.$$p||a,e=this,f=a,g=a;return d.$$p=null,c==null&&(c=i('JS_FUNCTION')),f=e.$push_closure(c),g=b.yield1(h,f),e.$pop_closure(),g},-1),d(j,'$select_closure',function(k,h){var c,d,f,b,g=this;return g.compiler==null&&(g.compiler=a),c=s(arguments),d=r(c),d=p(d),c.length>0&&(f=c.shift()),f==null&&(f=i('ANY')),b=m(d,"break_after"),b==null&&(b=i('NONE')),function(){try{var c=o('break');return e(g.compiler.$closure_stack().$reverse(),'find',[],function e(d){return d==null&&(d=a),n(d.$type()['$&'](b),0)&&c.$throw(a,e.$$is_lambda),d.$type()['$&'](f)['$!='](0)})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}()},-1),d(j,'$generate_thrower',function(d,e,f){var c=this,b=a;return b=e.$register_catcher(d),e.$register_thrower(d,b),c.$push(b,".$throw(",c.$expr_or_nil(f),", ",c.$scope()['$identify!'](),".$$is_lambda)"),b}),d(j,'$generate_thrower_without_catcher',function(e,f,j){var g,d=this,b=a,h=a,i=a;return d.$helper("thrower"),c(f.$throwers()['$key?'](e))?b=f.$throwers()['$[]'](e):(b=d.$compiler().$unique_temp("t_"),h=c(i=(g=f.$node().$scope(),g===a||g==null?a:g.$parent()))?i:d.$top_scope(),h.$add_scope_temp(""+b+" = $thrower('"+e+"')"),f.$register_thrower(e,b)),d.$push(b,".$throw(",d.$expr_or_nil(j),", ",d.$scope()['$identify!'](),".$$is_lambda)"),b}),d(j,'$thrower',function(l,e){var b=this,d=a,j=a,g=a,k=a;switch(e==null&&(e=a),l.valueOf()){case"return":return d=b.$select_closure(i('DEF'),new Map([["break_after",i('MODULE')['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')),h(d)?(g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?b.$generate_thrower_without_catcher("return",g,e):c(b.$compiler()['$eval?']())?b.$push("Opal.t_eval_return.$throw(",b.$expr_or_nil(e),", false)"):b.$error("Invalid return"):f(d,j)?b.$push("return ",b.$expr_or_nil(e)):(k=b.$generate_thrower("return",d,e),g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?g.$register_thrower("return",k):a;break;case"eval_return":return d=b.$select_closure(i('DEF')['$|'](i('LAMBDA')),new Map([["break_after",i('MODULE')['$|'](i('TOP'))]])),c(d)?d.$register_catcher("eval_return"):a;break;case"next":case"redo":return d=b.$select_closure(i('ITER')['$|'](i('LOOP_INSIDE')),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')['$|'](i('JS_LOOP_INSIDE'))),h(d)?b.$error("Invalid next"):f(d,j)?c(d['$is?'](i('LOOP_INSIDE')))?b.$push("continue"):c(d['$is?'](i('ITER')['$|'](i('LAMBDA'))))?b.$push("return ",b.$expr_or_nil(e)):a:b.$generate_thrower("next",d,e);break;case"break":return d=b.$select_closure(i('SEND')['$|'](i('LAMBDA'))['$|'](i('LOOP')),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')['$|'](i('JS_LOOP'))),h(d)?(g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?b.$generate_thrower_without_catcher("break",g,e):b.$error("Invalid break"):f(d,j)?c(d['$is?'](i('JS_FUNCTION')['$|'](i('LAMBDA'))))?b.$push("return ",b.$expr_or_nil(e)):c(d['$is?'](i('LOOP')))?b.$push("break"):a:b.$generate_thrower("break",d,e);break;case"retry":return d=b.$select_closure(i('RESCUE_RETRIER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_LOOP_INSIDE')),h(d)?b.$error("Invalid retry"):f(d,j)?b.$push("continue"):b.$generate_thrower("retry",d,e);break;default:return a}},-2),d(j,'$closure_is?',function(c){var b=this;return b.closure==null&&(b.closure=a),b.closure['$is?'](c)}),d(j,'$compile_catcher',function(){var b=this,f=a,d=a;return b.closure==null&&(b.closure=a),f=b.closure.$catchers(),c(f['$empty?']())?a:(b.$helper("thrower"),d=f.$grep_v("eval_return"),b.$push("} catch($e) {"),e(b,'indent',[],function b(){var c=b.$$s==null?this:b.$$s;return e(f,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;switch(b==null&&(b=a),b.valueOf()){case"eval_return":return d.$line("if ($e === Opal.t_eval_return) return $e.$v;");default:return d.$line("if ($e === $t_"+b+") return $e.$v;")}},{$$s:c}),c.$line("throw $e;")},{$$s:b}),b.$line("}"),c(d['$empty?']())||e(b,'push',[" finally {"].concat(q(e(d,'map',[],function(b){return b==null&&(b=a),"$t_"+b+".is_orphan = true;"}))).concat(["}"])),c(b['$closure_is?'](i('SEND')))&&b.$unshift("return "),c(d['$empty?']())||b.$unshift("var ",e(d,'map',[],function(b){return b==null&&(b=a),"$t_"+b+" = $thrower('"+b+"')"}).$join(", "),"; "),b.$unshift("try { "),c(b['$closure_is?'](i('JS_FUNCTION'))))?a:c(b.$scope().$await_encountered())?b.$wrap("(await (async function(){","})())"):b.$wrap("(function(){","})()")})}(t[0],t),function(b){var e=g(b,'CompilerSupport');return d(e,'$closure_stack',function(){var b=this,d=a;return b.closure_stack==null&&(b.closure_stack=a),b.closure_stack=c(d=b.closure_stack)?d:[]})}(t[0])}(k[0],null,k)}(k[0],k)}(k[0],k)},Opal.modules["opal/nodes/helpers"]=function(b){var f=b.module,d=b.truthy,c=b.def,m=b.rb_plus,i=b.send,k=b.slice,g=b.to_a,e=b.eqeq,l=b.top,j=[],a=b.nil,h=b.$$$;return b.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,record_method_call,first,children,s,[]=,meta'),l.$require("opal/regexp_anchors"),function(l,n){var o=f(l,'Opal'),j=[o].concat(n);return function(l,n){var o=f(l,'Nodes'),j=[o].concat(n);return function(n,o){var j=f(n,'Helpers'),p=[j].concat(o),l=b.$r(p);return c(j,'$property',function(a){var b=this;return d(b['$valid_name?'](a))?"."+a:"["+a.$inspect()+"]"}),c(j,'$valid_name?',function(a){return h(h(l('Opal'),'Rewriters'),'JsReservedWords')['$valid_name?'](a)}),c(j,'$mid_to_jsid',function(a){return d(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/['$=~'](a.$to_s()))?"['$"+a+"']":m(".$",a)}),c(j,'$indent',function b(){var c=b.$$p||a,d=this;return b.$$p=null,i(d.$compiler(),'indent',[],c.$to_proc())}),c(j,'$current_indent',function(){var a=this;return a.$compiler().$parser_indent()}),c(j,'$line',function(e){var b,c,a=this;return b=k(arguments),c=b,a.$push(a.$fragment("\n"+a.$current_indent(),new Map([["loc",!1]]))),i(a,'push',g(c))},-1),c(j,'$empty_line',function(){var a=this;return a.$push(a.$fragment("\n",new Map([["loc",!1]])))}),c(j,'$js_truthy',function(c){var b=this,e=a;return d(e=b.$js_truthy_optimize(c))?e:(b.$helper("truthy"),[b.$fragment("$truthy("),b.$expr(c),b.$fragment(")")])}),c(j,'$js_truthy_optimize',function(f){var c,b=this,j=a,i=a,m=a,o=a,n=a,q=a,r=a,t=a,s=a,p=a;switch(f.$type().valueOf()){case"send":if(c=[].concat(g(f)),j=c[0]==null?a:c[0],i=c[1]==null?a:c[1],m=k(c,2),c,o=d(n=j)?b.$compiler().$handlers()['$[]'](j.$type()):n,q=d(n=d(r=h(l('Compiler'),'COMPARE')['$include?'](i.$to_s()))?o:r)?o['$truthy_optimize?']():n,d(q)||e(i,"block_given?"))return b.$expr(f);if(e(m.$count(),1))switch(i.valueOf()){case"==":return b.$helper("eqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$eqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];case"===":return b.$helper("eqeqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$eqeqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];case"!=":return b.$helper("neqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$neqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];default:return a}else if(e(m.$count(),0))switch(i.valueOf()){case"!":return b.$helper("not"),b.$compiler().$record_method_call(i),[b.$fragment("$not("),b.$expr(j),b.$fragment(")")];default:return a}else return a;break;case"begin":return e(f.$children().$count(),1)?b.$js_truthy_optimize(f.$children().$first()):a;break;case"if":return c=[].concat(g(f)),t=c[0]==null?a:c[0],s=c[1]==null?a:c[1],p=c[2]==null?a:c[2],c,e(s,b.$s("true"))?(f.$meta()['$[]=']("do_js_truthy_on_false_body",!0),b.$expr(f)):e(p,b.$s("false"))?(f.$meta()['$[]=']("do_js_truthy_on_true_body",!0),b.$expr(f)):a;break;default:return a}})}(j[0],j)}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/base"]=function(c){var k=c.module,p=c.klass,d=c.truthy,g=c.defs,f=c.slice,e=c.send,o=c.return_val,a=c.def,r=c.ensure_kwargs,q=c.hash_get,l=c.Opal,m=c.neqeq,n=c.rb_plus,i=c.top,j=[],b=c.nil,h=c.$$$;return c.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,expression,respond_to?,name,source_buffer,start_with?,end_with?,line'),i.$require("opal/nodes/helpers"),i.$require("opal/nodes/closure"),function(j,s){var t=k(j,'Opal'),i=[t].concat(s);return function(j,s){var t=k(j,'Nodes'),i=[t].concat(s);return function(v,s,t){var i=p(v,s,'Base'),u=[i].concat(t),j=c.$r(u),k=i.$$prototype;return k.compiler=k.sexp=k.fragments=k.level=b,i.$include(j('Helpers')),i.$include(h(j('Closure'),'NodeSupport')),g(i,'$handlers',function(){var a=this,c=b;return a.handlers==null&&(a.handlers=b),a.handlers=d(c=a.handlers)?c:new Map}),g(i,'$handle',function(h){var a,c,d=this;return a=f(arguments),c=a,e(c,'each',[],function d(c){var a,f=d.$$s==null?this:d.$$s;return c==null&&(c=b),(a=[c,f],e(j('Base').$handlers(),'[]=',a),a[a.length-1])},{$$s:d})},-1),g(i,'$children',function(h){var a,c,d=this;return a=f(arguments),c=a,e(c,'each_with_index',[],function d(a,c){var f=d.$$s==null?this:d.$$s;return a==null&&(a=b),c==null&&(c=b),e(f,'define_method',[a],function d(){var a=d.$$s==null?this:d.$$s;return a.sexp==null&&(a.sexp=b),a.sexp.$children()['$[]'](c)},{$$s:f})},{$$s:d})},-1),g(i,'$truthy_optimize?',o(!1)),i.$attr_reader("compiler","type","sexp"),a(i,'$initialize',function(g,h,i){var c,a=this,f=b;return a.sexp=g,a.type=g.$type(),a.level=h,a.compiler=i,d(f=a.compiler.$top_scope())?f:(c=[a],e(a.compiler,'top_scope=',c),c[c.length-1])}),a(i,'$children',function(){var a=this;return a.sexp.$children()}),a(i,'$compile_to_fragments',function(){var c,a=this;return d((c=a.fragments,c!=null&&c!==b)?'instance-variable':b)?a.fragments:(a.fragments=[],a.$compile(),a.fragments)}),a(i,'$compile',function(){var a=this;return a.$raise("Not Implemented")}),a(i,'$push',function(i){var a,c,g=this;return a=f(arguments),c=a,e(c,'each',[],function e(a){var c=e.$$s==null?this:e.$$s;return c.fragments==null&&(c.fragments=b),a==null&&(a=b),d(a['$is_a?'](j('String')))&&(a=c.$fragment(a)),c.fragments['$<<'](a)},{$$s:g})},-1),a(i,'$unshift',function(i){var a,c,g=this;return a=f(arguments),c=a,e(c,'reverse_each',[],function e(a){var c=e.$$s==null?this:e.$$s;return c.fragments==null&&(c.fragments=b),a==null&&(a=b),d(a['$is_a?'](j('String')))&&(a=c.$fragment(a)),c.fragments.$unshift(a)},{$$s:g})},-1),a(i,'$wrap',function(b,c){var a=this;return a.$unshift(b),a.$push(c)}),a(i,'$fragment',function(g,c){var a,e=this,f=b;return c=r(c),a=q(c,"loc"),a==null&&(a=!0),h(j('Opal'),'Fragment').$new(g,e.$scope(),d(f=a)?e.sexp:f)},-2),a(i,'$error',function(a){var b=this;return b.compiler.$error(a)}),a(i,'$scope',function(){var a=this;return a.compiler.$scope()}),a(i,'$top_scope',function(){var a=this;return a.compiler.$top_scope()}),a(i,'$s',function(c,g){var a,b,d=this;return a=f(arguments,1),b=a,h(h(l,'AST'),'Node').$new(c,b,new Map([["location",d.sexp.$loc()]]))},-2),a(i,'$expr?',function(){var a=this;return a.level['$==']("expr")}),a(i,'$recv?',function(){var a=this;return a.level['$==']("recv")}),a(i,'$stmt?',function(){var a=this;return a.level['$==']("stmt")}),a(i,'$process',function(b,a){var c=this;return a==null&&(a="expr"),c.compiler.$process(b,a)},-2),a(i,'$expr',function(a){var b=this;return b.compiler.$process(a,"expr")}),a(i,'$recv',function(a){var b=this;return b.compiler.$process(a,"recv")}),a(i,'$stmt',function(a){var b=this;return b.compiler.$process(a,"stmt")}),a(i,'$expr_or_nil',function(a){var b=this;return d(a)?b.$expr(a):"nil"}),a(i,'$expr_or_empty',function(a){var b=this;return d(a)&&m(a.$type(),"nil")?b.$expr(a):""}),a(i,'$add_local',function(a){var b=this;return b.$scope().$add_scope_local(a.$to_sym())}),a(i,'$add_ivar',function(a){var b=this;return b.$scope().$add_scope_ivar(a)}),a(i,'$add_gvar',function(a){var b=this;return b.$scope().$add_scope_gvar(a)}),a(i,'$add_temp',function(a){var b=this;return b.$scope().$add_scope_temp(a)}),a(i,'$helper',function(a){var b=this;return b.compiler.$helper(a)}),a(i,'$with_temp',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.compiler,'with_temp',[],c.$to_proc())}),a(i,'$in_while?',function(){var a=this;return a.compiler['$in_while?']()}),a(i,'$while_loop',function(){var a=this;return a.compiler.$instance_variable_get("@while_loop")}),a(i,'$has_rescue_else?',function(){var a=this;return a.$scope()['$has_rescue_else?']()}),a(i,'$in_ensure',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.$scope(),'in_ensure',[],c.$to_proc())}),a(i,'$in_ensure?',function(){var a=this;return a.$scope()['$in_ensure?']()}),a(i,'$in_resbody',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.$scope(),'in_resbody',[],c.$to_proc())}),a(i,'$in_resbody?',function(){var a=this;return a.$scope()['$in_resbody?']()}),a(i,'$in_rescue',function a(c){var d=a.$$p||b,f=this;return a.$$p=null,e(f.$scope(),'in_rescue',[c],d.$to_proc())}),a(i,'$class_variable_owner_nesting_level',function(){var f=this,a=b,c=b,e=b;for(a=f.$scope(),c=0;d(d(e=a)?a['$class_scope?']()['$!']():e);)d(a['$sclass?']())&&(c=n(c,1)),a=a.$parent();return c}),a(i,'$class_variable_owner',function(){var a=this;return d(a.$scope())?""+a.$scope().$nesting()+"["+a.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),a(i,'$comments',function(){var a=this;return a.$compiler().$comments()['$[]'](a.sexp.$loc())}),a(i,'$source_location',function(){var e=this,c=b,a=b,f=b;return c=e.sexp.$loc().$expression(),d(c['$respond_to?']("source_buffer"))?(a=c.$source_buffer().$name(),d(a['$start_with?']("corelib/"))&&(a=""),d(a['$end_with?'](".js"))&&(a="")):a="(eval)",f=e.sexp.$loc().$line(),"['"+a+"', "+f+"]"})}(i[0],null,i)}(i[0],i)}(j[0],j)},Opal.modules["opal/nodes/literal"]=function(b){var n=b.module,e=b.klass,c=b.def,r=b.return_val,l=b.defs,d=b.truthy,i=b.const_set,k=b.regexp,f=b.send,g=b.rb_plus,y=b.lambda,x=b.rb_le,z=b.rb_minus,o=b.slice,v=b.send2,t=b.find_super,j=b.to_a,h=b.eqeq,q=b.eqeqeq,u=b.Opal,p=b.rb_gt,w=b.top,m=[],a=b.nil,s=b.$$$;return b.add_stubs('require,handle,push,to_s,type,self,scope,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?,===,static_as_dynamic,new,flags=,map,to_proc,value=,empty?,s,single_line?,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'),w.$require("opal/nodes/base"),function(w,A){var B=n(w,'Opal'),m=[B].concat(A);return function(A,B){var C=n(A,'Nodes'),m=[C].concat(B),w=b.$r(m);return function(b,d){var a=e(b,d,'ValueNode');return a.$handle("true","false","nil"),c(a,'$compile',function(){var a=this;return a.$push(a.$type().$to_s())}),l(a,'$truthy_optimize?',r(!0))}(m[0],w('Base')),function(b,d){var a=e(b,d,'SelfNode');return a.$handle("self"),c(a,'$compile',function(){var a=this;return a.$push(a.$scope().$self())})}(m[0],w('Base')),function(f,g){var b=e(f,g,'NumericNode');return b.$handle("int","float"),b.$children("value"),c(b,'$compile',function(){var b=this;return b.$push(b.$value().$to_s()),d(b['$recv?']())?b.$wrap("(",")"):a}),l(b,'$truthy_optimize?',r(!0))}(m[0],w('Base')),function(m,n,o){var j=e(m,n,'StringNode'),l=[j].concat(o),h=b.$r(l);return j.$handle("str"),j.$children("value"),i(l[0],'ESCAPE_CHARS',new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),i(l[0],'ESCAPE_REGEX',k(["(\\\\+)([",h('ESCAPE_CHARS').$keys().$join(""),"])"]).$freeze()),c(j,'$translate_escape_chars',function(b){return f(b,'gsub',[h('ESCAPE_REGEX')],function(b){return b==null&&(b=a),d(h('Regexp').$last_match(1).$length()['$even?']())?b:g(h('Regexp').$last_match(1).$chop(),h('ESCAPE_CHARS')['$[]'](h('Regexp').$last_match(2)))})}),c(j,'$compile',function(){var b=this,c=a,e=a;return c=b.$value(),e=f(c.$inspect(),'gsub',[/\\u\{([0-9a-f]+)\}/],function b(){var d=b.$$s==null?this:b.$$s,c=a;return c=h('Regexp').$last_match(1).$to_i(16),d.$to_utf16(c)},{$$s:b}),b.$push(b.$translate_escape_chars(e)),a,d(b.$value()['$valid_encoding?']())?a:(b.$helper("binary"),b.$wrap("$binary(",")"))}),c(j,'$to_utf16',function(b){var e=a,c=a,f=a,h=a;return e=1023,c=y(function(b){return b==null&&(b=a),g("\\u",b.$to_s(16).$upcase())}),d(x(b,65535))?c.$call(b):(b=z(b,65536),f=g(55296,b['$>>'](10)),h=g(56320,b['$&'](e)),g(c.$call(f),c.$call(h)))})}(m[0],w('Base'),m),function(b,d){var a=e(b,d,'SymbolNode');return a.$handle("sym"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(a.$value().$to_s().$inspect())})}(m[0],w('Base')),function(n,r,w){var g=e(n,r,'RegexpNode'),l=[g].concat(w),m=b.$r(l),x=g.$$prototype;return x.sexp=a,g.$handle("regexp"),g.$attr_accessor("value","flags"),i(l[0],'SUPPORTED_FLAGS',/[gimuy]/.$freeze()),c(g,'$initialize',function b(g){var d,e,f=b.$$p||a,c=this;return b.$$p=null,d=o(arguments),e=d,v(c,t(c,'initialize',b,!1,!0),'initialize',j(e),f),c.$extract_flags_and_value()},-1),c(g,'$compile',function(){var b=this;return f(b.$flags(),'select!',[],function c(b){var e=c.$$s==null?this:c.$$s;return!!(b==null&&(b=a),d(m('SUPPORTED_FLAGS')['$=~'](b)))||(e.$compiler().$warning("Skipping the '"+b+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)},{$$s:b}),h(b.$value().$type(),"str")?b.$compile_static_regexp():b.$compile_dynamic_regexp()}),c(g,'$compile_dynamic_regexp',function(){var b=this;return b.$helper("regexp"),b.$push("$regexp(["),f(b.$value().$children(),'each_with_index',[],function f(b,c){var e=f.$$s==null?this:f.$$s;return b==null&&(b=a),c==null&&(c=a),d(c['$zero?']())||e.$push(", "),e.$push(e.$expr(b))},{$$s:b}),b.$push("]"),d(b.$flags()['$any?']())&&b.$push(", '"+b.$flags().$join()+"'"),b.$push(")")}),c(g,'$compile_static_regexp',function(){var b=this,c=a,d=a;return c=b.$value().$children()['$[]'](0),q("",d=c)?b.$push("/(?:)/"):q(k(["\\(\\?[(<>#]|[*+?]\\+"]),d)?b.$static_as_dynamic(c):b.$push(""+m('Regexp').$new(c).$inspect()+b.$flags().$join())}),c(g,'$static_as_dynamic',function(b){var a=this;return a.$helper("regexp"),a.$push('$regexp(["'),a.$push(b.$gsub("\\","\\\\\\\\")),a.$push('"]'),d(a.$flags()['$any?']())&&a.$push(", '"+a.$flags().$join()+"'"),a.$push(")")}),c(g,'$extract_flags_and_value',function(){var c,e,b=this,g=a,k=a,i=a;return c=[].concat(j(b.$children())),e=c.length-1,e=e<0?0:e,g=o(c,0,e),k=c[e]==null?a:c[e],c,b['$flags='](f(k.$children(),'map',[],"to_s".$to_proc())),b['$value='](d(g['$empty?']())?b.$s("str",""):d(b['$single_line?'](g))?g['$[]'](0):f(b,'s',["dstr"].concat(j(g)))),d(b.$flags()['$include?']("x"))&&(i=f(b.$value().$children(),'map',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(b['$is_a?'](s(s(u,'AST'),'Node')))&&h(b.$type(),"str")?(e=b.$children()['$[]'](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),f.$s("str",e)):b},{$$s:b}),b['$value='](b.$value().$updated(a,i)),b.$flags().$delete("x")),h(b.$value().$type(),"str")?(c=[b.$s("str",b.$value().$children()['$[]'](0).$gsub("\\A","^").$gsub("\\z","$"))],f(b,'value=',c),c[c.length-1]):a}),c(g,'$raw_value',function(){var a,b=this;return a=[b.sexp.$loc().$expression().$source()],f(b,'value=',a),a[a.length-1]}),g.$private(),c(g,'$single_line?',function(c){var b=a,e=a;return!d(p(c.$length(),1))&&(b=c['$[]'](0),d(e=b.$type()['$!=']("str"))?e:b.$children()['$[]'](0)['$include?']("\n")['$!']())})}(m[0],w('Base'),m),function(d,f){var b=e(d,f,'MatchCurrentLineNode');return b.$handle("match_current_line"),b.$children("regexp"),c(b,'$compile',function(){var b=this,c=a,d=a;return c=b.$s("gvar","$_"),d=b.$s("send",c,"=~",b.$regexp()),b.$push(b.$expr(d))})}(m[0],w('Base')),function(g,i){var b=e(g,i,'DynamicStringNode');return b.$handle("dstr"),c(b,'$compile',function(){var b=this,c=a;return d(p(b.$children().$length(),1))&&h(b.$children().$first().$type(),"str")?c=!0:b.$push('""'),f(b.$children(),'each',[],function f(e){var b=f.$$s==null?this:f.$$s;return e==null&&(e=a),d(c)?c=!1:b.$push(" + "),h(e.$type(),"str")?b.$push(b.$expr(e)):b.$push("(",b.$expr(e),")"),d(b['$recv?']())?b.$wrap("(",")"):a},{$$s:b})})}(m[0],w('Base')),function(a,b){var c=e(a,b,'DynamicSymbolNode');return c.$handle("dsym")}(m[0],w('DynamicStringNode')),function(j,k,l){var f=e(j,k,'RangeNode'),h=[f].concat(l),g=b.$r(h);return f.$children("start","finish"),i(h[0],'SIMPLE_CHILDREN_TYPES',["int","float","str","sym"].$freeze()),c(f,'$compile',function(){var a=this;return d(a['$compile_inline?']())?(a.$helper("range"),a.$compile_inline()):a.$compile_range_initialize()}),c(f,'$compile_inline?',function(){var b=this,f=a,c=a,e=a;return d(f=d(c=b.$start()['$!']())?c:d(e=b.$start().$type())?g('SIMPLE_CHILDREN_TYPES')['$include?'](b.$start().$type()):e)?d(c=b.$finish()['$!']())?c:d(e=b.$finish().$type())?g('SIMPLE_CHILDREN_TYPES')['$include?'](b.$finish().$type()):e:f}),c(f,'$compile_inline',function(){var a=this;return a.$raise(g('NotImplementedError'))}),c(f,'$compile_range_initialize',function(){var a=this;return a.$raise(g('NotImplementedError'))})}(m[0],w('Base'),m),function(b,d){var a=e(b,d,'InclusiveRangeNode');return a.$handle("irange"),c(a,'$compile_inline',function(){var a=this;return a.$push("$range(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", false)")}),c(a,'$compile_range_initialize',function(){var a=this;return a.$push("Opal.Range.$new(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", false)")})}(m[0],w('RangeNode')),function(b,d){var a=e(b,d,'ExclusiveRangeNode');return a.$handle("erange"),c(a,'$compile_inline',function(){var a=this;return a.$push("$range(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", true)")}),c(a,'$compile_range_initialize',function(){var a=this;return a.$push("Opal.Range.$new(",a.$expr_or_nil(a.$start()),",",a.$expr_or_nil(a.$finish()),", true)")})}(m[0],w('RangeNode')),function(b,d){var a=e(b,d,'RationalNode');return a.$handle("rational"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(""+a.$top_scope().$absolute_const()+"('Rational').$new("+a.$value().$numerator()+", "+a.$value().$denominator()+")")})}(m[0],w('Base')),function(b,d){var a=e(b,d,'ComplexNode');return a.$handle("complex"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(""+a.$top_scope().$absolute_const()+"('Complex').$new("+a.$value().$real()+", "+a.$value().$imag()+")")})}(m[0],w('Base'))}(m[0],m)}(m[0],m)},Opal.modules["opal/nodes/variables"]=function(d){var h=d.module,e=d.klass,c=d.truthy,a=d.def,f=d.send,g=d.range,j=d.send2,k=d.find_super,l=d.top,i=[],b=d.nil;return d.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'),l.$require("opal/nodes/base"),function(l,m){var n=h(l,'Opal'),i=[n].concat(m);return function(m,n){var o=h(m,'Nodes'),i=[o].concat(n),l=d.$r(i);return function(g,h){var d=e(g,h,'LocalVariableNode');return d.$handle("lvar"),d.$children("var_name"),a(d,'$using_irb?',function(){var a=this,d=b;return c(d=a.$compiler()['$irb?']())?a.$scope()['$top?']():d}),a(d,'$compile',function(){var a=this;return c(a['$using_irb?']())?f(a,'with_temp',[],function d(a){var c=d.$$s==null?this:d.$$s;return a==null&&(a=b),c.$push(c.$property(c.$var_name().$to_s())),c.$wrap("(("+a+" = Opal.irb_vars",") == null ? nil : "+a+")")},{$$s:a}):a.$push(a.$var_name().$to_s())})}(i[0],l('Base')),function(f,g){var d=e(f,g,'LocalAssignNode');return d.$handle("lvasgn"),d.$children("var_name","value"),a(d,'$using_irb?',function(){var a=this,d=b;return c(d=a.$compiler()['$irb?']())?a.$scope()['$top?']():d}),a(d,'$compile',function(){var a=this;return c(a['$using_irb?']())?a.$push("Opal.irb_vars"+a.$property(a.$var_name().$to_s())+" = "):(a.$add_local(a.$var_name().$to_s()),a.$push(""+a.$var_name()+" = ")),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'LocalDeclareNode');return c.$handle("lvdeclare"),c.$children("var_name"),a(c,'$compile',function(){var a=this;return a.$add_local(a.$var_name().$to_s()),b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'InstanceVariableNode');return c.$handle("ivar"),c.$children("name"),a(c,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(c,'$compile',function(){var a=this,c=b;return c=a.$property(a.$var_name()),a.$add_ivar(c),a.$push(""+a.$scope().$self()+c)})}(i[0],l('Base')),function(f,h){var d=e(f,h,'InstanceAssignNode');return d.$handle("ivasgn"),d.$children("name","value"),a(d,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(d,'$compile',function(){var a=this,d=b;return d=a.$property(a.$var_name()),a.$push(""+a.$scope().$self()+d+" = "),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'GlobalVariableNode');return c.$handle("gvar"),c.$children("name"),a(c,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(c,'$compile',function(){var a=this,c=b;return a.$helper("gvars"),c=a.$property(a.$var_name()),a.$add_gvar(c),a.$push("$gvars"+c)})}(i[0],l('Base')),function(g,h,i){var c=e(g,h,'BackRefNode'),l=[c].concat(i),m=d.$r(l);return c.$handle("back_ref"),a(c,'$compile',function c(){var d=c.$$p||b,a=this;switch(c.$$p=null,a.$helper("gvars"),a.$var_name().valueOf()){case"&":return a.$handle_global_match();case"'":return a.$handle_post_match();case"`":return a.$handle_pre_match();case"+":return j(a,k(a,'compile',c,!1,!0),'compile',[],d);default:return a.$raise(m('NotImplementedError'))}}),a(c,'$handle_global_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+"['$[]'](0))")},{$$s:a})}),a(c,'$handle_pre_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+".$pre_match())")},{$$s:a})}),a(c,'$handle_post_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+".$post_match())")},{$$s:a})})}(i[0],l('GlobalVariableNode'),i),function(f,h){var d=e(f,h,'GlobalAssignNode');return d.$handle("gvasgn"),d.$children("name","value"),a(d,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(d,'$compile',function(){var a=this,d=b;return a.$helper("gvars"),d=a.$property(a.$var_name()),a.$push("$gvars"+d+" = "),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,g){var c=e(d,g,'NthrefNode');return c.$handle("nth_ref"),c.$children("index"),a(c,'$compile',function(){var a=this;return a.$helper("gvars"),f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+"['$[]']("+d.$index()+"))")},{$$s:a})})}(i[0],l('Base')),function(f,g){var d=e(f,g,'ClassVariableNode');return d.$handle("cvar"),d.$children("name"),a(d,'$compile',function(){var a=this,d=b;return a.$helper("class_variable_get"),d=!1,c(a['$stmt?']())&&(d=!0),a.$push("$class_variable_get("+a.$class_variable_owner()+", '"+a.$name()+"', "+d.$inspect()+")")})}(i[0],l('Base')),function(c,d){var b=e(c,d,'ClassVarAssignNode');return b.$handle("cvasgn"),b.$children("name","value"),a(b,'$compile',function(){var a=this;return a.$helper("class_variable_set"),a.$push("$class_variable_set("+a.$class_variable_owner()+", '"+a.$name()+"', ",a.$expr(a.$value()),")")})}(i[0],l('Base'))}(i[0],i)}(i[0],i)},Opal.modules["opal/nodes/constants"]=function(a){var f=a.module,d=a.klass,b=a.truthy,h=a.eqeq,c=a.def,i=a.const_set,j=a.top,g=[],e=a.nil;return a.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'),j.$require("opal/nodes/base"),function(j,k){var l=f(j,'Opal'),g=[l].concat(k);return function(k,l){var m=f(k,'Nodes'),g=[m].concat(l),j=a.$r(g);return function(j,k,l){var f=d(j,k,'ConstNode'),g=[f].concat(l),m=a.$r(g);return f.$handle("const"),f.$children("const_scope","name"),c(f,'$compile',function(){var a=this;return b(a['$magical_data_const?']())?a.$push("$__END__"):b(a['$optimized_access?']())?(a.$helper(""+a.$name()),a.$push("$"+a.$name())):h(a.$const_scope(),a.$s("cbase"))?a.$push(""+a.$top_scope().$absolute_const()+"('"+a.$name()+"')"):b(a.$const_scope())?a.$push(""+a.$top_scope().$absolute_const()+"(",a.$recv(a.$const_scope()),", '"+a.$name()+"')"):b(a.$compiler()['$eval?']())?a.$push(""+a.$scope().$relative_access()+"('"+a.$name()+"')"):a.$push(""+a.$scope().$relative_access()+"('"+a.$name()+"')")}),c(f,'$magical_data_const?',function(){var a=this,c=e,d=e;return b(c=b(d=a.$const_scope()['$nil?']())?a.$name()['$==']("DATA"):d)?a.$compiler().$eof_content():c}),i(g[0],'OPTIMIZED_ACCESS_CONSTS',["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),c(f,'$optimized_access?',function(){var a=this,c=e;return b(c=a.$const_scope()['$=='](a.$s("cbase")))?m('OPTIMIZED_ACCESS_CONSTS')['$include?'](a.$name()):c})}(g[0],j('Base'),g),function(b,e){var a=d(b,e,'CbaseNode');return a.$handle("cbase"),c(a,'$compile',function(){var a=this;return a.$push("'::'")})}(g[0],j('Base')),function(e,f){var a=d(e,f,'ConstAssignNode');return a.$handle("casgn"),a.$children("base","name","value"),c(a,'$compile',function(){var a=this;return a.$helper("const_set"),b(a.$base())?a.$push("$const_set(",a.$expr(a.$base()),", '"+a.$name()+"', ",a.$expr(a.$value()),")"):a.$push("$const_set("+a.$scope().$nesting()+"[0], '"+a.$name()+"', ",a.$expr(a.$value()),")")})}(g[0],j('Base'))}(g[0],g)}(g[0],g)},Opal.modules.pathname=function(c){var w=c.klass,o=c.const_set,r=c.regexp,h=c.eqeqeq,b=c.truthy,i=c.eqeq,d=c.def,v=c.defs,g=c.to_ary,n=c.slice,e=c.send,q=c.to_a,s=c.return_ivar,l=c.neqeq,f=c.rb_plus,p=c.not,x=c.thrower,k=c.alias,t=c.module,u=c.top,j=[],a=c.nil,m=c.$$$;return c.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?,hash,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'),u.$require("corelib/comparable"),function(y,z,A){var t=w(y,z,'Pathname'),u=[t].concat(A),j=c.$r(u),B=t.$$prototype;return B.path=a,t.$include(j('Comparable')),o(u[0],'SEPARATOR_PAT',r([j('Regexp').$quote(m(j('File'),'SEPARATOR'))])),d(t,'$initialize',function(c){var d=this;return h(j('Pathname'),c)?d.path=c.$path().$to_s():b(c['$respond_to?']("to_path"))?d.path=c.$to_path():b(c['$is_a?'](j('String')))?d.path=c:b(c['$nil?']())?d.$raise(j('TypeError'),"no implicit conversion of nil into String"):d.$raise(j('TypeError'),"no implicit conversion of "+c.$class()+" into String"),i(d.path,"\u0000")?d.$raise(j('ArgumentError')):a}),v(t,'$pwd',function(){var a=this;return a.$new(j('Dir').$pwd())}),t.$attr_reader("path"),d(t,'$==',function(a){var b=this;return a.$path()['$=='](b.path)}),d(t,'$absolute?',function(){var a=this;return a['$relative?']()['$!']()}),d(t,'$relative?',function(){var d,e,f=this,c=a,h=a;for(c=f.path;b(h=f.$chop_basename(c));)e=h,d=g(e),c=d[0]==null?a:d[0],e;return c['$==']("")}),d(t,'$chop_basename',function(d){var c=a;return c=j('File').$basename(d),b(j('Regexp').$new("^"+m(j('Pathname'),'SEPARATOR_PAT').$source()+"?$")['$=~'](c))?a:[d['$[]'](0,d.$rindex(c)),c]}),d(t,'$root?',function(){var a=this;return a.path['$==']("/")}),d(t,'$parent',function(){var d=this,c=a;return c=d.path.$sub(/\/([^\/]+\/?$)/,""),i(c,"")&&(c=b(d['$absolute?']())?"/":"."),j('Pathname').$new(c)}),d(t,'$sub',function(f){var a,b,c=this;return a=n(arguments),b=a,j('Pathname').$new(e(c.path,'sub',q(b)))},-1),d(t,'$cleanpath',function(){var a=this;return c.normalize(a.path)}),d(t,'$to_path',s("path")),d(t,'$hash',function(){var a=this;return a.path.$hash()}),d(t,'$expand_path',function(){var a=this;return j('Pathname').$new(j('File').$expand_path(a.path))}),d(t,'$+',function(a){var b=this;return h(j('Pathname'),a)||(a=j('Pathname').$new(a)),j('Pathname').$new(b.$plus(b.path,a.$to_s()))}),d(t,'$plus',function(y,v){var h,n,u=this,o=a,m=a,d=a,x=a,w=a,e=a,q=a,k=a,s=a,t=a;for(o=v,m=[],d=[];b(x=u.$chop_basename(o));)n=x,h=g(n),o=h[0]==null?a:h[0],w=h[1]==null?a:h[1],n,m.$unshift(o.$length()),d.$unshift(w);if(l(o,""))return v;for(e=y;b(!0);){while(b(b(q=d['$empty?']()['$!']())?d.$first()['$==']("."):q))m.$shift(),d.$shift();if(!b(k=u.$chop_basename(e)))break;if(n=k,h=g(n),e=h[0]==null?a:h[0],s=h[1]==null?a:h[1],n,i(s,"."))continue;if(i(s,"..")||b(d['$empty?']())||l(d.$first(),"..")){e=f(e,s);break}m.$shift(),d.$shift()}if(k=u.$chop_basename(e),p(k)&&b(r([j('SEPARATOR_PAT')])['$=~'](j('File').$basename(e))))while(b(b(q=d['$empty?']()['$!']())?d.$first()['$=='](".."):q))m.$shift(),d.$shift();return p(d['$empty?']())?(t=v['$[]'](c.Range.$new(m.$first(),-1,!1)),b(k))?j('File').$join(e,t):f(e,t):b(k)?e:j('File').$dirname(e)}),d(t,'$join',function(l){var d,i,g,k,c;try{return d=x('return'),k=this,c=a,i=n(arguments),g=i,b(g['$empty?']())?k:(c=g.$pop(),h(j('Pathname'),c)||(c=j('Pathname').$new(c)),b(c['$absolute?']()))?c:(e(g,'reverse_each',[],function g(e){if(e==null&&(e=a),h(j('Pathname'),e)||(e=j('Pathname').$new(e)),c=f(e,c),b(c['$absolute?']()))d.$throw(c,g.$$is_lambda);else return a},{$$ret:d}),f(k,c))}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(t,'$split',function(){var a=this;return[a.$dirname(),a.$basename()]}),d(t,'$dirname',function(){var a=this;return j('Pathname').$new(j('File').$dirname(a.path))}),d(t,'$basename',function(){var a=this;return j('Pathname').$new(j('File').$basename(a.path))}),d(t,'$directory?',function(){var a=this;return j('File')['$directory?'](a.path)}),d(t,'$extname',function(){var a=this;return j('File').$extname(a.path)}),d(t,'$<=>',function(a){var b=this;return b.$path()['$<=>'](a.$path())}),o(u[0],'SAME_PATHS',b(m(j('File'),'FNM_SYSCASE')['$nonzero?']())?e(t,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$casecmp(c)['$=='](0)}):e(t,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$=='](c)})),d(t,'$relative_path_from',function(o){var c,i,n=this,t=a,m=a,h=a,r=a,k=a,p=a,d=a,u=a,v=a,s=a;for(t=n.$cleanpath().$to_s(),o=o.$cleanpath().$to_s(),m=t,h=[];b(r=n.$chop_basename(m));)i=r,c=g(i),m=c[0]==null?a:c[0],k=c[1]==null?a:c[1],i,l(k,".")&&h.$unshift(k);for(p=o,d=[];b(r=n.$chop_basename(p));)i=r,c=g(i),p=c[0]==null?a:c[0],k=c[1]==null?a:c[1],i,l(k,".")&&d.$unshift(k);for(b(j('SAME_PATHS')['$[]'](m,p))||n.$raise(j('ArgumentError'),"different prefix: "+m.$inspect()+" and "+o.$inspect());b(b(u=b(v=h['$empty?']()['$!']())?d['$empty?']()['$!']():v)?j('SAME_PATHS')['$[]'](h.$first(),d.$first()):u);)h.$shift(),d.$shift();return b(d['$include?'](".."))&&n.$raise(j('ArgumentError'),"base_directory has ..: "+o.$inspect()),d.$fill(".."),s=f(d,h),b(s['$empty?']())?j('Pathname').$new("."):j('Pathname').$new(e(j('File'),'join',q(s)))}),d(t,'$entries',function(){var b=this;return e(j('Dir').$entries(b.path),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$class().$new(b)},{$$s:b})}),k(t,"===","=="),k(t,"eql?","=="),k(t,"to_s","to_path"),k(t,"to_str","to_path")}(j[0],null,j),function(b,e){var a=t(b,'Kernel'),f=[a].concat(e),g=c.$r(f);return d(a,'$Pathname',function(a){return g('Pathname').$new(a)})}(j[0],j)},Opal.modules["opal/nodes/call"]=function(e){var n=e.module,m=e.klass,l=e.const_set,c=e.send,w=e.defs,i=e.slice,v=e.send2,u=e.find_super,g=e.to_a,b=e.truthy,d=e.def,f=e.eqeq,t=e.rb_plus,o=e.not,p=e.neqeq,q=e.to_ary,r=e.Opal,s=e.range,j=e.top,k=[],a=e.nil,h=e.$$$;return e.add_stubs('require,handle,attr_reader,freeze,[]=,define_method,to_proc,include?,type,s,handle_special,record_method_call,compiler,meth,with_wrapper,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,[],meta,splat?,call_is_writer_that_needs_handling?,!,empty?,collect_refinements_temps,scope,==,auto_await?,push,await_encountered=,iter_has_break?,push_closure,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,pop_closure,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,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,to_sym,call,inline_operators?,fragment,resolve,new,<<,requires,file,dirname,cleanpath,join,Pathname,self,inspect,process,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,thrower,new_temp,scope_locals,source_location,size,last,csend?,handle_conditional_send,handle_writer,expr?,recv?,=~,wrap,dynamic_require_severity,handle_part,is_a?,expand_path,split,error,line,each_with_object,pop'),j.$require("set"),j.$require("pathname"),j.$require("opal/nodes/base"),function(k,x){var y=n(k,'Opal'),j=[y].concat(x);return function(k,x){var y=n(k,'Nodes'),j=[y].concat(x),z=e.$r(j);return function(A,y,z){var j=m(A,y,'CallNode'),n=[j].concat(z),k=e.$r(n),x=j.$$prototype;return x.sexp=x.conditional_recvr=x.with_writer_temp=x.compiler=a,j.$handle("send","csend"),j.$attr_reader("recvr","meth","arglist","iter"),l(n[0],'SPECIALS',new Map),l(n[0],'OPERATORS',new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),w(j,'$add_special',function d(e,b){var f=d.$$p||a,g=this;return d.$$p=null,b==null&&(b=new Map),k('SPECIALS')['$[]='](e,b),c(g,'define_method',["handle_"+e],f.$to_proc())},-2),d(j,'$initialize',function k(p){var m,l,d,f,o=k.$$p||a,e=this,h=a,n=a,j=a;return k.$$p=null,m=i(arguments),l=m,v(e,u(e,'initialize',k,!1,!0),'initialize',g(l),o),d=[].concat(g(e.sexp)),e.recvr=d[0]==null?a:d[0],e.meth=d[1]==null?a:d[1],h=i(d,2),d,d=[].concat(g(h)),f=d.length-1,f=f<0?0:f,n=i(d,0,f),j=d[f]==null?a:d[f],d,b(j)&&b(["iter","block_pass"]['$include?'](j.$type()))?(e.iter=j,h=n):e.iter=a,e.arglist=c(e,'s',["arglist"].concat(g(h)))},-1),d(j,'$compile',function(){var a=this;return c(a,'handle_special',[],function d(){var a=d.$$s==null?this:d.$$s;return a.$compiler().$record_method_call(a.$meth()),c(a,'with_wrapper',[],function c(){var a=c.$$s==null?this:c.$$s;return b(a['$using_eval?']())?a.$compile_eval_var():b(a['$using_irb?']())?a.$compile_irb_var():a.$default_compile()},{$$s:a})},{$$s:a})}),j.$private(),d(j,'$iter_has_break?',function(){var a=this;return!!b(a.$iter())&&a.$iter().$meta()['$[]']("has_break")}),d(j,'$invoke_using_send?',function(){var c=this,d=a,e=a;return b(d=b(e=c.$iter())?e:c['$splat?']())?d:c['$call_is_writer_that_needs_handling?']()}),d(j,'$invoke_using_refinement?',function(){var a=this;return a.$scope().$scope().$collect_refinements_temps()['$empty?']()['$!']()}),d(j,'$csend?',function(){var a=this;return a.sexp.$type()['$==']("csend")}),d(j,'$default_compile',function(){var c=this;return b(c['$auto_await?']())&&(c.$push("(await "),c.$scope()['$await_encountered='](!0)),b(c['$iter_has_break?']())&&c.$push_closure(h(k('Closure'),'SEND')),b(c['$invoke_using_refinement?']())?c.$compile_using_refined_send():b(c['$invoke_using_send?']())?c.$compile_using_send():c.$compile_simple_call_chain(),b(c['$iter_has_break?']())&&c.$pop_closure(),b(c['$auto_await?']())?c.$push(")"):a}),d(j,'$compile_using_send',function(){var a=this;return a.$helper("send"),a.$push("$send("),a.$compile_receiver(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),d(j,'$compile_using_refined_send',function(){var a=this;return a.$helper("refined_send"),a.$push("$refined_send("),a.$compile_refinements(),a.$compile_receiver(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),d(j,'$compile_receiver',function(){var c=this,d=a;return c.$push(b(d=c.conditional_recvr)?d:c.$recv(c.$receiver_sexp()))}),d(j,'$compile_method_name',function(){var a=this;return a.$push(", '"+a.$meth()+"'")}),d(j,'$compile_arguments',function(c){var a=this;return c==null&&(c=!1),b(c)||a.$push(", "),b(a.with_writer_temp)?a.$push(a.with_writer_temp):b(a['$splat?']())?a.$push(a.$expr(a.$arglist())):b(a.$arglist().$children()['$empty?']())?a.$push("[]"):a.$push("[",a.$expr(a.$arglist()),"]")},-1),d(j,'$compile_block_pass',function(){var c=this;return b(c.$iter())?c.$push(", ",c.$expr(c.$iter())):a}),d(j,'$compile_refinements',function(){var b=this,d=a;return d=c(b.$scope().$collect_refinements_temps(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("js_tmp",b)},{$$s:b}),b.$push(b.$expr(c(b,'s',["array"].concat(g(d)))),", ")}),d(j,'$compile_simple_call_chain',function(){var a=this;return a.$compile_receiver(),a.$push(a.$method_jsid(),"(",a.$expr(a.$arglist()),")")}),d(j,'$splat?',function(){var b=this;return c(b.$arglist().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("splat")})}),d(j,'$receiver_sexp',function(){var c=this,d=a;return b(d=c.$recvr())?d:c.$s("self")}),d(j,'$method_jsid',function(){var a=this;return a.$mid_to_jsid(a.$meth().$to_s())}),d(j,'$compile_irb_var',function(){var b=this;return c(b,'with_temp',[],function e(c){var b=e.$$s==null?this:e.$$s,d=a,f=a,g=a;return c==null&&(c=a),d=b.$meth(),f=b.$s("send",b.$s("self"),b.$meth().$intern(),b.$s("arglist")),g="(typeof "+d+" !== 'undefined') ? "+d+" : ",b.$push("(("+c+" = Opal.irb_vars."+d+") == null ? ",g,b.$expr(f)," : "+c+")")},{$$s:b})}),d(j,'$compile_eval_var',function(){var a=this;return a.$push(a.$meth().$to_s())}),d(j,'$using_irb?',function(){var c=this,d=a,e=a;return b(d=b(e=c.compiler['$irb?']())?c.$scope()['$top?']():e)?c['$variable_like?']():d}),d(j,'$using_eval?',function(){var c=this,d=a,e=a;return b(d=b(e=c.compiler['$eval?']())?c.$scope()['$top?']():e)?c.compiler.$scope_variables()['$include?'](c.$meth()):d}),d(j,'$variable_like?',function(){var c=this,d=a,e=a;return b(d=b(e=c.$arglist()['$=='](c.$s("arglist")))?c.$recvr()['$nil?']():e)?c.$iter()['$nil?']():d}),d(j,'$sexp_with_arglist',function(){var b=this;return b.sexp.$updated(a,[b.$recvr(),b.$meth(),b.$arglist()])}),d(j,'$auto_await?',function(){var d=this,c=a,e=a,f=a;return c=d.$compiler().$async_await(),b(e=b(f=c)?c['$!='](!0):f)?c['$match?'](d.$meth().$to_s()):e}),d(j,'$handle_special',function g(){var h=g.$$p||a,d=this,c=a;return g.$$p=null,b(k('SPECIALS')['$include?'](d.$meth()))?(c=d.$method("handle_"+d.$meth()),f(c.$arity(),1))?c['$[]'](h):c['$[]']():e.yieldX(h,[])}),c(k('OPERATORS'),'each',[],function f(d,e){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),e==null&&(e=a),c(g,'add_special',[d.$to_sym()],function h(f){var g,c=h.$$s==null?this:h.$$s,i=a,j=a;return f==null&&(f=a),b(c['$invoke_using_refinement?']())?f.$call():b(c.$compiler()['$inline_operators?']())?(c.$compiler().$record_method_call(d),c.$helper("rb_"+e),g=[c.$expr(c.$recvr()),c.$expr(c.$arglist())],i=g[0],j=g[1],g,c.$push(c.$fragment("$rb_"+e+"(")),c.$push(i),c.$push(c.$fragment(", ")),c.$push(j),c.$push(c.$fragment(")"))):f.$call()},{$$s:g})},{$$s:j}),c(j,'add_special',["require"],function f(c){var d=f.$$s==null?this:f.$$s,e=a;return c==null&&(c=a),e=k('DependencyResolver').$new(d.$compiler(),d.$arglist().$children()['$[]'](0)).$resolve(),b(e['$nil?']())||d.$compiler().$requires()['$<<'](e),c.$call()},{$$s:j}),c(j,'add_special',["require_relative"],function e(){var b=e.$$s==null?this:e.$$s,c=a,d=a,g=a;return c=b.$arglist().$children()['$[]'](0),d=b.$compiler().$file(),f(c.$type(),"str")&&(g=k('File').$dirname(d),b.$compiler().$requires()['$<<'](b.$Pathname(g).$join(c.$children()['$[]'](0)).$cleanpath().$to_s())),b.$push(b.$fragment(""+b.$scope().$self()+".$require("+d.$inspect()+"+ '/../' + ")),b.$push(b.$process(b.$arglist())),b.$push(b.$fragment(")"))},{$$s:j}),c(j,'add_special',["autoload"],function h(g){var c=h.$$s==null?this:h.$$s,d=a,e=a;return g==null&&(g=a),d=c.$arglist().$children(),f(d.$length(),2)&&f(d['$[]'](0).$type(),"sym")&&(e=k('DependencyResolver').$new(c.$compiler(),d['$[]'](1),"ignore").$resolve(),b(e['$nil?']())?c.$compiler().$warning("File for autoload of constant '"+d['$[]'](0).$children()['$[]'](0)+"' could not be bundled!"):(c.$compiler().$requires()['$<<'](e),c.$compiler().$autoloads()['$<<'](e))),g.$call()},{$$s:j}),c(j,'add_special',["require_tree"],function m(h){var d,b=m.$$s==null?this:m.$$s,c=a,l=a,e=a,n=a,j=a;return h==null&&(h=a),d=[].concat(g(b.$arglist().$children())),c=d[0]==null?a:d[0],l=i(d,1),d,f(c.$type(),"str")&&(e=c.$children()['$[]'](0),b.$compiler().$required_trees()['$<<'](e),n=k('File').$dirname(b.$compiler().$file()),j=b.$Pathname(n).$join(e).$cleanpath().$to_s(),j.$force_encoding(e.$encoding()),c=c.$updated(a,[j])),b.arglist=b.$arglist().$updated(a,t([c],l)),h.$call()},{$$s:j}),c(j,'add_special',["block_given?"],function c(){var b=c.$$s==null?this:c.$$s;return b.sexp==null&&(b.sexp=a),b.$push(b.$compiler().$handle_block_given_call(b.sexp))},{$$s:j}),c(j,'add_special',["__callee__"],function c(){var a=c.$$s==null?this:c.$$s;return b(a.$scope()['$def?']())?a.$push(a.$fragment(a.$scope().$mid().$to_s().$inspect())):a.$push(a.$fragment("nil"))},{$$s:j}),c(j,'add_special',["__method__"],function c(){var a=c.$$s==null?this:c.$$s;return b(a.$scope()['$def?']())?a.$push(a.$fragment(a.$scope().$mid().$to_s().$inspect())):a.$push(a.$fragment("nil"))},{$$s:j}),c(j,'add_special',["__dir__"],function a(){var b=a.$$s==null?this:a.$$s;return b.$push(k('File').$dirname(h(k('Opal'),'Compiler').$module_name(b.$compiler().$file())).$inspect())},{$$s:j}),c(j,'add_special',["using"],function e(d){var c=e.$$s==null?this:e.$$s;return d==null&&(d=a),b(c.$scope()['$accepts_using?']())&&f(c.$arglist().$children().$count(),1)?c.$using_refinement(c.$arglist().$children().$first()):d.$call()},{$$s:j}),d(j,'$using_refinement',function(h){var d,c=this,f=a,e=a;return d=[].concat(g(c.$scope().$refinements_temp())),f=d[0]==null?a:d[0],e=d[1]==null?a:d[1],d,b(f)?c.$push("("+e+" = "+f+".slice(), "+e+".push(",c.$expr(h),"), "+c.$scope().$self()+")"):c.$push("("+e+" = [",c.$expr(h),"], "+c.$scope().$self()+")")}),c(j,'add_special',["debugger"],function a(){var b=a.$$s==null?this:a.$$s;return b.$push(b.$fragment("debugger"))},{$$s:j}),c(j,'add_special',["__OPAL_COMPILER_CONFIG__"],function b(){var a=b.$$s==null?this:b.$$s;return a.$push(a.$fragment("(new Map([['arity_check', "+a.$compiler()['$arity_check?']()+"]]))"))},{$$s:j}),c(j,'add_special',["lambda"],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c(e.$scope(),'defines_lambda',[],function(){return b.$call()})},{$$s:j}),c(j,'add_special',["nesting"],function f(d){var c=f.$$s==null?this:f.$$s,e=a;return d==null&&(d=a),e=c['$push_nesting?'](),b(e)&&c.$push("(Opal.Module.$$nesting = "+c.$scope().$nesting()+", "),d.$call(),b(e)?c.$push(")"):a},{$$s:j}),c(j,'add_special',["constants"],function f(d){var c=f.$$s==null?this:f.$$s,e=a;return d==null&&(d=a),e=c['$push_nesting?'](),b(e)&&c.$push("(Opal.Module.$$nesting = "+c.$scope().$nesting()+", "),d.$call(),b(e)?c.$push(")"):a},{$$s:j}),c(j,'add_special',["eval"],function f(e){var b=f.$$s==null?this:f.$$s,d=a,g=a;return e==null&&(e=a),b.$thrower("eval_return"),p(b.$arglist().$children().$length(),1)||o([b.$s("self"),a]['$include?'](b.$recvr()))?e.$call():(b.$scope().$nesting(),d=b.$scope().$new_temp(),g=c(b.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),b.$push("("+d+" = ",b.$expr(b.$arglist())),b.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+d),b.$push(", {scope_variables: ",g),b.$push(", arity_check: "+b.$compiler()['$arity_check?']()+", file: '(eval)', eval: true})) : "),b.$push(""+b.$scope().$self()+".$eval("+d+"))"))},{$$s:j}),c(j,'add_special',["local_variables"],function f(e){var d=f.$$s==null?this:f.$$s,g=a;return e==null&&(e=a),!b([d.$s("self"),a]['$include?'](d.$recvr()))?e.$call():(g=c(d.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),d.$push(g))},{$$s:j}),c(j,'add_special',["binding"],function f(e){var d=f.$$s==null?this:f.$$s;return e==null&&(e=a),!b(d.$recvr()['$nil?']())?e.$call():(d.$scope().$nesting(),d.$push("Opal.Binding.$new("),d.$push(" function($code) {"),d.$push(" return eval($code);"),d.$push(" },"),d.$push(" ",c(d.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),","),d.$push(" ",d.$scope().$self(),","),d.$push(" ",d.$source_location()),d.$push(")"))},{$$s:j}),c(j,'add_special',["__await__"],function g(f){var e,d=g.$$s==null?this:g.$$s;return f==null&&(f=a),b(d.$compiler().$async_await())?(d.$push(d.$fragment("(await (")),d.$push(d.$process(d.$recvr())),d.$push(d.$fragment("))")),(e=[!0],c(d.$scope(),'await_encountered=',e),e[e.length-1])):f.$call()},{$$s:j}),d(j,'$push_nesting?',function(){var d=this,c=a,e=a,f=a,g=a;return c=d.$children().$first(),b(e=d.$children().$size()['$=='](2))?b(f=c['$nil?']())?f:b(g=c.$type()['$==']("const"))?c.$children().$last()['$==']("Module"):g:e}),d(j,'$with_wrapper',function g(){var f=g.$$p||a,d=this;return g.$$p=null,b(d['$csend?']())&&o(d.conditional_recvr)?c(d,'handle_conditional_send',[],function a(){var b=a.$$s==null?this:a.$$s;return c(b,'with_wrapper',[],f.$to_proc())},{$$s:d}):b(d['$call_is_writer_that_needs_handling?']())?c(d,'handle_writer',[],f.$to_proc()):e.yieldX(f,[])}),d(j,'$call_is_writer_that_needs_handling?',function(){var c=this,e=a,d=a;return b(e=b(d=c['$expr?']())?d:c['$recv?']())?b(d=c.$meth().$to_s()['$=~'](/^\w+=$/))?d:c.$meth()['$==']("[]="):e}),d(j,'$handle_conditional_send',function d(){var f=d.$$p||a,b=this,c=a;return d.$$p=null,c=b.$scope().$new_temp(),b.$push(""+c+" = ",b.$expr(b.$receiver_sexp())),b.$push(", ("+c+" === nil || "+c+" == null) ? nil : "),b.conditional_recvr=c,e.yieldX(f,[]),b.$wrap("(",")")}),d(j,'$handle_writer',function b(){var f=b.$$p||a,d=this;return b.$$p=null,c(d,'with_temp',[],function d(c){var b=d.$$s==null?this:d.$$s;return c==null&&(c=a),b.$push("("+c+" = "),b.$compile_arguments(!0),b.$push(", "),b.with_writer_temp=c,e.yieldX(f,[]),b.with_writer_temp=!1,b.$push(", "),b.$push(""+c+"["+c+".length - 1])")},{$$s:d})}),function(t,n,o){var j=m(t,n,'DependencyResolver'),p=[j].concat(o),l=e.$r(p),k=j.$$prototype;return k.compiler=k.sexp=k.missing_dynamic_require=a,d(j,'$initialize',function(f,g,d){var c=this,e=a;return d==null&&(d=a),c.compiler=f,c.sexp=g,c.missing_dynamic_require=b(e=d)?e:c.compiler.$dynamic_require_severity()},-3),d(j,'$resolve',function(){var a=this;return a.$handle_part(a.sexp)}),d(j,'$handle_part',function(e,o){var j,p,d=this,n=a,k=a,t=a,m=a;if(o==null&&(o=d.missing_dynamic_require),b(e))switch(e.$type().valueOf()){case"str":return e.$children()['$[]'](0);case"dstr":return c(e.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$handle_part(b)},{$$s:d}).$join();case"begin":if(f(e.$children().$length(),1))return d.$handle_part(e.$children()['$[]'](0));break;case"send":if(p=e.$children(),j=q(p),n=j[0]==null?a:j[0],k=j[1]==null?a:j[1],t=i(j,2),p,m=c(t,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$handle_part(b,"ignore")},{$$s:d}),b(m['$include?'](a)))return a;if(b(n['$is_a?'](h(h(r,'AST'),'Node')))&&f(n.$type(),"const")&&f(n.$children().$last(),"File")){{if(f(k,"expand_path"))return c(d,'expand_path',g(m));if(f(k,"join"))return d.$expand_path(m.$join("/"));if(f(k,"dirname"))return d.$expand_path(m['$[]'](0).$split("/")['$[]'](s(0,-1,!0)).$join("/"))}}else if(f(k,"__dir__"))return l('File').$dirname(h(l('Opal'),'Compiler').$module_name(d.compiler.$file()));break;default:a}switch(o.valueOf()){case"error":return d.compiler.$error("Cannot handle dynamic require",d.sexp.$line());case"warning":return d.compiler.$warning("Cannot handle dynamic require",d.sexp.$line());default:return a}},-2),d(j,'$expand_path',function(d,b){return b==null&&(b=""),c((""+b+"/"+d).$split("/"),'each_with_object',[[]],function(b,c){return b==null&&(b=a),c==null&&(c=a),f(b,"")?a:f(b,"..")?c.$pop():c['$<<'](b)}).$join("/")},-2)}(n[0],null,n)}(j[0],z('Base'),j)}(j[0],j)}(k[0],k)},Opal.modules["opal/nodes/call_special"]=function(a){var k=a.module,d=a.klass,b=a.def,l=a.slice,m=a.send2,n=a.find_super,g=a.to_a,f=a.truthy,j=a.eqeq,e=a.send,h=a.top,i=[],c=a.nil;return a.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,extract_names,empty?,generate_names_definition,generate_names_assignments,stmt?,handle_statement,handle_non_statement,process,private,map,flatten,scan,to_proc'),h.$require("opal/nodes/base"),h.$require("opal/nodes/call"),function(i,o){var p=k(i,'Opal'),h=[p].concat(o);return function(o,p){var q=k(o,'Nodes'),h=[q].concat(p),i=a.$r(h);return function(c,e){var a=d(c,e,'JsAttrNode');return a.$handle("jsattr"),a.$children("recvr","property"),b(a,'$compile',function(){var a=this;return a.$push(a.$recv(a.$recvr()),"[",a.$expr(a.$property()),"]")})}(h[0],i('Base')),function(c,e){var a=d(c,e,'JsAttrAsgnNode');return a.$handle("jsattrasgn"),a.$children("recvr","property","value"),b(a,'$compile',function(){var a=this;return a.$push(a.$recv(a.$recvr()),"[",a.$expr(a.$property()),"] = ",a.$expr(a.$value()))})}(h[0],i('Base')),function(h,i){var a=d(h,i,'JsCallNode'),e=a.$$prototype;return e.iter=e.arglist=c,a.$handle("jscall"),b(a,'$initialize',function b(i){var d,e,h=b.$$p||c,a=this;return b.$$p=null,d=l(arguments),e=d,m(a,n(a,'initialize',b,!1,!0),'initialize',g(e),h),f(a.iter)&&(a.arglist=a.arglist['$<<'](a.iter)),a.iter=c},-1),b(a,'$compile',function(){var a=this;return a.$default_compile()}),b(a,'$method_jsid',function(){var a=this;return"."+a.$meth()}),b(a,'$compile_using_send',function(){var a=this;return a.$push(a.$recv(a.$receiver_sexp()),a.$method_jsid(),".apply(null"),a.$compile_arguments(),f(a.$iter())&&a.$push(".concat(",a.$expr(a.$iter()),")"),a.$push(")")})}(h[0],i('CallNode')),function(h,i){var a=d(h,i,'Match3Node'),k=a.$$prototype;return k.level=c,a.$handle("match_with_lvasgn"),a.$children("lhs","rhs"),b(a,'$compile',function(){var a=this,b=c,d=c,e=c,g=c;return b=a.$s("send",a.$lhs(),"=~",a.$rhs()),j(a.$lhs().$type(),"regexp")&&j(a.$lhs().$children().$first().$type(),"str")&&(d=a.$extract_names(a.$lhs()),f(d['$empty?']())||(e=a.$generate_names_definition(),g=a.$generate_names_assignments(d),b=f(a['$stmt?']())?a.$handle_statement(b,e,g):a.$handle_non_statement(b,e,g))),a.$push(a.$process(b,a.level))}),a.$private(),b(a,'$extract_names',function(b){var a=c;return a=b.$children().$first().$children().$first(),e(a.$scan(/\(\?<([^>]*)>/).$flatten(),'map',[],"to_sym".$to_proc())}),b(a,'$generate_names_definition',function(){var a=this;return a.$s("lvasgn","$m3names",a.$s("if",a.$s("gvar","$~"),a.$s("send",a.$s("gvar","$~"),"named_captures"),a.$s("hash")))}),b(a,'$generate_names_assignments',function(a){var b=this;return e(a,'map',[],function d(a){var b=d.$$s==null?this:d.$$s;return a==null&&(a=c),b.$s("lvasgn",a,b.$s("send",b.$s("lvar","$m3names"),"[]",b.$s("sym",a)))},{$$s:b})}),b(a,'$handle_statement',function(a,b,c){var d=this;return e(d,'s',["begin",a,b].concat(g(c)))}),b(a,'$handle_non_statement',function(b,c,d){var a=this;return e(a,'s',["begin",a.$s("lvasgn","$m3tmp",b),c].concat(g(d)).concat([a.$s("lvar","$m3tmp")]))})}(h[0],i('Base'))}(h[0],h)}(i[0],i)},Opal.modules["opal/nodes/scope"]=function(d){var j=d.module,n=d.klass,s=d.slice,o=d.send2,r=d.find_super,i=d.to_a,b=d.def,e=d.send,c=d.truthy,m=d.assign_ivar_val,g=d.return_ivar,l=d.not,h=d.rb_plus,f=d.eqeq,p=d.thrower,q=d.top,k=[],a=d.nil;return d.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?,unshift,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'),q.$require("opal/nodes/base"),function(q,t){var u=j(q,'Opal'),k=[u].concat(t);return function(q,t){var u=j(q,'Nodes'),k=[u].concat(t),v=d.$r(k);return function(w,t,u){var j=n(w,t,'ScopeNode'),v=[j].concat(u),q=d.$r(v),k=j.$$prototype;return k.type=k.is_lambda=k.defs=k.parent=k.temps=k.locals=k.proto_ivars=k.compiler=k.ivars=k.gvars=k.args=k.queue=k.while_stack=k.identity=k.rescues=k.next_retry_id=k.refinements_temp=k.block_prepared=a,j.$attr_accessor("parent"),j.$attr_accessor("name"),j.$attr_accessor("block_name"),j.$attr_reader("scope_name"),j.$attr_reader("locals"),j.$attr_reader("ivars"),j.$attr_reader("gvars"),j.$attr_accessor("mid"),j.$attr_accessor("defs"),j.$attr_reader("methods"),j.$attr_accessor("catch_return","has_break","has_retry"),j.$attr_accessor("rescue_else_sexp"),b(j,'$initialize',function c(g){var d,e,f=c.$$p||a,b=this;return c.$$p=null,d=s(arguments),e=d,o(b,r(b,'initialize',c,!1,!0),'initialize',i(e),f),b.locals=[],b.temps=[],b.args=[],b.ivars=[],b.gvars=[],b.parent=a,b.queue=[],b.unique="a",b.while_stack=[],b.identity=a,b.defs=a,b.methods=[],b.uses_block=!1,b.in_ensure=!1,b.proto_ivars=[]},-1),b(j,'$in_scope',function b(){var f=b.$$p||a,c=this;return b.$$p=null,e(c,'indent',[],function g(){var c,b=g.$$s==null?this:g.$$s;return b.parent==null&&(b.parent=a),b.parent=b.$compiler().$scope(),b.$compiler()['$scope='](b),d.yield1(f,b),(c=[b.parent],e(b.$compiler(),'scope=',c),c[c.length-1])},{$$s:c})}),b(j,'$class_scope?',function(){var b=this,d=a;return c(d=b.type['$==']("class"))?d:b.type['$==']("module")}),b(j,'$class?',function(){var a=this;return a.type['$==']("class")}),b(j,'$module?',function(){var a=this;return a.type['$==']("module")}),b(j,'$sclass?',function(){var a=this;return a.type['$==']("sclass")}),b(j,'$top?',function(){var a=this;return a.type['$==']("top")}),b(j,'$iter?',function(){var a=this;return a.type['$==']("iter")}),b(j,'$def?',function(){var b=this,d=a;return c(d=b.type['$==']("def"))?d:b.type['$==']("defs")}),b(j,'$lambda?',function(){var b=this,d=a;return c(d=b['$iter?']())?b.is_lambda:d}),b(j,'$is_lambda!',m("is_lambda",!0)),b(j,'$defines_lambda',function b(){var e=b.$$p||a,c=this;return b.$$p=null,c.lambda_definition=!0,d.yieldX(e,[]),c.lambda_definition=!1}),b(j,'$lambda_definition?',g("lambda_definition")),b(j,'$def_in_class?',function(){var b=this,d=a,e=a,f=a;return c(d=c(e=c(f=b.defs['$!']())?b.type['$==']("def"):f)?b.parent:e)?b.parent['$class?']():d}),b(j,'$to_vars',function(){var b=this,g=a,j=a,k=a,f=a,d=a,m=a;return g=b.temps.$dup(),e(g,'push',i(e(b.locals,'map',[],function(b){return b==null&&(b=a),""+b+" = nil"}))),j=e(b.$ivars(),'map',[],function(b){return b==null&&(b=a),"if (self"+b+" == null) self"+b+" = nil;\n"}),k=e(b.$gvars(),'map',[],function(b){return b==null&&(b=a),"if ($gvars"+b+" == null) $gvars"+b+" = nil;\n"}),c(b['$class?']())&&l(b.proto_ivars['$empty?']())&&g['$<<']("$proto = self.$$prototype"),f=b.compiler.$parser_indent(),d=c(g['$empty?']())?"":"var "+g.$join(", ")+";\n",c(b.$ivars()['$empty?']())||(d=h(d,""+f+j.$join(f))),c(b.$gvars()['$empty?']())||(d=h(d,""+f+k.$join(f))),c(b['$class?']())&&l(b.proto_ivars['$empty?']())&&(m=e(b.proto_ivars,'map',[],function(b){return b==null&&(b=a),"$proto"+b}).$join(" = "),d=""+d+"\n"+f+m+" = nil;"),b.$fragment(d)}),b(j,'$add_scope_ivar',function(d){var b=this;return c(b['$def_in_class?']())?b.parent.$add_proto_ivar(d):c(b.ivars['$include?'](d))?a:b.ivars['$<<'](d)}),b(j,'$add_scope_gvar',function(b){var d=this;return c(d.gvars['$include?'](b))?a:d.gvars['$<<'](b)}),b(j,'$add_proto_ivar',function(b){var d=this;return c(d.proto_ivars['$include?'](b))?a:d.proto_ivars['$<<'](b)}),b(j,'$add_arg',function(a){var b=this;return c(b.args['$include?'](a))||b.args['$<<'](a),a}),b(j,'$add_scope_local',function(b){var d=this;return c(d['$has_local?'](b))?a:d.locals['$<<'](b)}),b(j,'$has_local?',function(b){var a=this;return!!(c(a.locals['$include?'](b))||c(a.args['$include?'](b))||c(a.temps['$include?'](b)))||(!!(c(a.parent)&&f(a.type,"iter"))&&a.parent['$has_local?'](b))}),b(j,'$scope_locals',function(){var b=this,d=a;return d=b.locals['$|'](b.args)['$|'](c(b.parent)&&f(b.type,"iter")?b.parent.$scope_locals():[]),e(d,'reject',[],function(b){return b==null&&(b=a),b.$to_s()['$start_with?']("$")})}),b(j,'$add_scope_temp',function(b){var d=this;return c(d['$has_temp?'](b))?a:d.temps.$push(b)}),b(j,'$prepend_scope_temp',function(b){var d=this;return c(d['$has_temp?'](b))?a:d.temps.$unshift(b)}),b(j,'$has_temp?',function(a){var b=this;return b.temps['$include?'](a)}),b(j,'$new_temp',function(){var b=this,d=a;return c(b.queue['$empty?']())?(d=b.$next_temp(),b.temps['$<<'](d),d):b.queue.$pop()}),b(j,'$next_temp',function(){var d=this,b=a;return b=a,function(){try{var f=p('break');return e(d,'loop',[],function e(){var d=e.$$s==null?this:e.$$s;if(d.unique==null&&(d.unique=a),b="$"+d.unique,d.unique=d.unique.$succ(),c(d['$has_local?'](b)))return a;f.$throw(a,e.$$is_lambda)},{$$s:d})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}(),b}),b(j,'$queue_temp',function(a){var b=this;return b.queue['$<<'](a)}),b(j,'$push_while',function(){var c=this,b=a;return b=new Map,c.while_stack.$push(b),b}),b(j,'$pop_while',function(){var a=this;return a.while_stack.$pop()}),b(j,'$in_while?',function(){var a=this;return a.while_stack['$empty?']()['$!']()}),b(j,'$uses_block!',function(){var a=this;return f(a.type,"iter")&&c(a.parent)?a.parent['$uses_block!']():(a.uses_block=!0,a['$identify!']())}),b(j,'$identify!',function(d){var b=this,e=a,f=a,g=a;return d==null&&(d=a),c(b.identity)?b.identity:(c(b['$valid_name?'](b.$mid()))?b.identity="$$"+b.$mid():(d=c(e=d)?e:[c(f=b.$parent())?c(g=b.$parent().$name())?g:b.$parent().$scope_name():f,b.$mid()].$compact().$join("_"),b.identity=b.compiler.$unique_temp(d)),b.identity)},-1),j.$attr_reader("identity"),b(j,'$find_parent_def',function(){var d=this,b=a;for(b=d;c(b=b.$parent());)if(c(b['$def?']())||c(b['$lambda?']()))return b;return a}),b(j,'$super_chain',function(){var d,i=this,g=a,b=a,h=a,e=a;for(d=[[],i,"null","null"],g=d[0],b=d[1],h=d[2],e=d[3],d;c(b);)if(f(b.$type(),"iter"))g['$<<'](b['$identify!']()),c(b.$parent())&&(b=b.$parent());else if(c(["def","defs"]['$include?'](b.$type()))){h=b['$identify!'](),e="'"+b.$mid()+"'";break}else break;return[g,h,e]}),b(j,'$uses_block?',g("uses_block")),b(j,'$has_rescue_else?',function(){var a=this;return a.$rescue_else_sexp()['$nil?']()['$!']()}),b(j,'$in_rescue',function e(h){var i=e.$$p||a,b=this,f=a,g=a;return e.$$p=null,b.rescues=c(f=b.rescues)?f:[],b.rescues.$push(h),g=d.yieldX(i,[]),b.rescues.$pop(),g}),b(j,'$current_rescue',function(){var a=this;return a.rescues.$last()}),b(j,'$in_resbody',function b(){var c=b.$$p||a,e=this,f=a;return b.$$p=null,!(c!==a)?a:(e.in_resbody=!0,f=d.yieldX(c,[]),e.in_resbody=!1,f)}),b(j,'$in_resbody?',g("in_resbody")),b(j,'$in_ensure',function b(){var c=b.$$p||a,e=this,f=a;return b.$$p=null,!(c!==a)?a:(e.in_ensure=!0,f=d.yieldX(c,[]),e.in_ensure=!1,f)}),b(j,'$in_ensure?',g("in_ensure")),b(j,'$gen_retry_id',function(){var b=this,d=a;return b.next_retry_id=c(d=b.next_retry_id)?d:"retry_0",b.next_retry_id=b.next_retry_id.$succ()}),b(j,'$accepts_using?',function(){var a=this;return[q('TopNode'),q('ModuleNode'),q('ClassNode'),q('IterNode')]['$include?'](a.$class())}),b(j,'$collect_refinements_temps',function(a){var b=this;return a==null&&(a=[]),c(b.refinements_temp)&&a['$<<'](b.refinements_temp),c(b.$parent())?b.$parent().$collect_refinements_temps(a):a},-1),b(j,'$new_refinements_temp',function(){var c=this,b=a;return b=c.$compiler().$unique_temp("$refn"),c.$add_scope_local(b),b}),b(j,'$refinements_temp',function(){var b,c=this,e=a,d=a;return b=[c.refinements_temp,c.$new_refinements_temp()],e=b[0],d=b[1],b,c.refinements_temp=d,[e,d]}),b(j,'$self',function(){var a=this;return a.define_self=!0,"self"}),b(j,'$nesting',function(){var a=this;return a.define_nesting=!0,"$nesting"}),b(j,'$relative_access',function(){var a=this;return a.define_relative_access=a.define_nesting=!0,"$$"}),b(j,'$prepare_block',function(d){var b=this,e=a;return d==null&&(d=a),e=b.$scope().$identity(),c(d)&&b['$block_name='](d),b.$add_temp(""+b.$block_name()+" = "+e+".$$p || nil"),c(b.block_prepared)?a:(b.$line(""+e+".$$p = null;"),b.block_prepared=!0)},-1),j.$attr_accessor("await_encountered")}(k[0],v('Base'),k)}(k[0],k)}(k[0],k)},Opal.modules["opal/nodes/module"]=function(b){var g=b.module,j=b.klass,e=b.to_ary,c=b.truthy,f=b.send,k=b.rb_plus,d=b.def,l=b.top,h=[],a=b.nil,i=b.$$$;return b.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars'),l.$require("opal/nodes/scope"),function(l,m){var n=g(l,'Opal'),h=[n].concat(m);return function(l,m){var n=g(l,'Nodes'),h=[n].concat(m),o=b.$r(h);return function(p,m,n){var g=j(p,m,'ModuleNode'),o=[g].concat(n),l=b.$r(o),h=g.$$prototype;return h.define_nesting=h.define_relative_access=a,g.$handle("module"),g.$children("cid","body"),d(g,'$compile',function(){var d,m,b=this,g=a,h=a,j=a,n=a,o=a;return m=b.$name_and_base(),d=e(m),g=d[0]==null?a:d[0],h=d[1]==null?a:d[1],m,b.$helper("module"),c(b.$body()['$nil?']())?c(b['$stmt?']())?b.$unshift("$module(",h,", '"+g+"')"):b.$unshift("($module(",h,", '"+g+"'), nil)"):(b.$line(" var self = $module($base, '"+g+"');"),f(b,'in_scope',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$scope()['$name='](g),f(a,'in_closure',[i(l('Closure'),'MODULE')['$|'](i(l('Closure'),'JS_FUNCTION'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$compile_body()},{$$s:a})},{$$s:b}),c(b.$await_encountered())?(j="(await ",n=")",o="async ",b.$parent()['$await_encountered='](!0)):(d=["","",""],j=d[0],n=d[1],o=d[2],d),b.$unshift(""+j+"("+o+"function($base"+(c(b.define_nesting)?", $parent_nesting":a)+") {"),b.$line("})(",h,""+(c(b.define_nesting)?k(", ",b.$scope().$nesting()):a)+")"+n))}),g.$private(),d(g,'$name_and_base',function(){var b,d,f=this,g=a,h=a;return d=f.$cid().$children(),b=e(d),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],d,c(g['$nil?']())?[h,""+f.$scope().$nesting()+"[0]"]:[h,f.$expr(g)]}),d(g,'$compile_body',function(){var b=this,d=a;return d=b.$stmt(b.$compiler().$returns(b.$body())),b.$empty_line(),c(b.define_nesting)&&b.$add_temp("$nesting = [self].concat($parent_nesting)"),c(b.define_relative_access)&&b.$add_temp("$$ = Opal.$r($nesting)"),b.$line(b.$scope().$to_vars()),b.$line(d)})}(h[0],o('ScopeNode'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/class"]=function(a){var d=a.module,i=a.klass,l=a.to_ary,c=a.truthy,f=a.send,j=a.rb_plus,g=a.def,k=a.top,e=[],b=a.nil,h=a.$$$;return a.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr'),k.$require("opal/nodes/module"),function(k,m){var n=d(k,'Opal'),e=[n].concat(m);return function(k,m){var n=d(k,'Nodes'),e=[n].concat(m),o=a.$r(e);return function(k,m,n){var d=i(k,m,'ClassNode'),o=[d].concat(n),e=a.$r(o),p=d.$$prototype;return p.define_nesting=b,d.$handle("class"),d.$children("cid","sup","body"),g(d,'$compile',function(){var d,m,a=this,g=b,i=b,k=b,n=b,o=b;return m=a.$name_and_base(),d=l(m),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1],m,a.$helper("klass"),c(a.$body()['$nil?']())?c(a['$stmt?']())?a.$unshift("$klass(",i,", ",a.$super_code(),", '"+g+"')"):a.$unshift("($klass(",i,", ",a.$super_code(),", '"+g+"'), nil)"):(a.$line(" var self = $klass($base, $super, '"+g+"');"),f(a,'in_scope',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$scope()['$name='](g),f(a,'in_closure',[h(e('Closure'),'MODULE')['$|'](h(e('Closure'),'JS_FUNCTION'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$compile_body()},{$$s:a})},{$$s:a}),c(a.$await_encountered())?(k="(await ",n=")",o="async ",a.$parent()['$await_encountered='](!0)):(d=["","",""],k=d[0],n=d[1],o=d[2],d),a.$unshift(""+k+"("+o+"function($base, $super"+(c(a.define_nesting)?", $parent_nesting":b)+") {"),a.$line("})(",i,", ",a.$super_code(),""+(c(a.define_nesting)?j(", ",a.$scope().$nesting()):b)+")"+n))}),g(d,'$super_code',function(){var a=this;return c(a.$sup())?a.$expr(a.$sup()):"null"})}(e[0],o('ModuleNode'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/singleton_class"]=function(a){var c=a.module,i=a.klass,f=a.send,d=a.truthy,g=a.def,h=a.top,e=[],b=a.nil;return a.add_stubs('require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting'),h.$require("opal/nodes/scope"),function(h,j){var k=c(h,'Opal'),e=[k].concat(j);return function(h,j){var k=c(h,'Nodes'),e=[k].concat(j),l=a.$r(e);return function(c,e){var a=i(c,e,'SingletonClassNode');return a.$handle("sclass"),a.$children("object","body"),g(a,'$compile',function(){var a=this;return a.$push("(function(self, $parent_nesting) {"),f(a,'in_scope',[],function c(){var a=c.$$s==null?this:c.$$s,e=b;return a.define_nesting==null&&(a.define_nesting=b),a.define_relative_access==null&&(a.define_relative_access=b),e=a.$stmt(a.$compiler().$returns(a.$body())),d(a.define_nesting)&&a.$add_temp("$nesting = [self].concat($parent_nesting)"),d(a.define_relative_access)&&a.$add_temp("$$ = Opal.$r($nesting)"),a.$line(a.$scope().$to_vars()),a.$line(e)},{$$s:a}),a.$line("})(Opal.get_singleton_class(",a.$recv(a.$object()),"), "+a.$scope().$nesting()+")")})}(e[0],l('ScopeNode'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/args/arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,add_arg,scope,name,push,to_s'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ArgNode');return a.$handle("arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope().$add_arg(a.$name()),a.$push(a.$name().$to_s())})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/arity_check"]=function(c){var i=c.module,k=c.klass,q=c.slice,r=c.send2,n=c.find_super,e=c.to_a,d=c.def,b=c.truthy,f=c.rb_minus,l=c.not,p=c.rb_lt,h=c.rb_plus,o=c.rb_gt,g=c.send,m=c.top,j=[],a=c.nil,s=c.$$$;return c.add_stubs('require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity=,scope,arity,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'),m.$require("opal/nodes/base"),m.$require("opal/rewriters/arguments"),function(m,t){var u=i(m,'Opal'),j=[u].concat(t);return function(t,u){var v=i(t,'Nodes'),j=[v].concat(u),m=c.$r(j);return function(w,m,t){var i=k(w,m,'ArityCheckNode'),u=[i].concat(t),v=c.$r(u),j=i.$$prototype;return j.kwargs=j.kwoptargs=j.kwrestarg=j.all_args=j.args=j.optargs=j.restarg=j.postargs=j.arity_checks=a,i.$handle("arity_check"),i.$children("args_node"),d(i,'$initialize',function d(i){var f,g,h=d.$$p||a,b=this,c=a;return d.$$p=null,f=q(arguments),g=f,r(b,n(b,'initialize',d,!1,!0),'initialize',e(g),h),c=s(v('Rewriters'),'Arguments').$new(b.$args_node().$children()),b.args=c.$args(),b.optargs=c.$optargs(),b.restarg=c.$restarg(),b.postargs=c.$postargs(),b.kwargs=c.$kwargs(),b.kwoptargs=c.$kwoptargs(),b.kwrestarg=c.$kwrestarg(),b.kwnilarg=c.$kwnilarg()},-1),d(i,'$compile',function(){var c=this,d=a;return c.$scope()['$arity='](c.$arity()),!b(c.$compiler()['$arity_check?']())?a:b(c.$arity_checks()['$empty?']())?a:(c.$helper("ac"),d=c.$scope().$mid().$to_s().$inspect(),c.$line("var $arity = arguments.length;"),c.$push(" if ("+c.$arity_checks().$join(" || ")+") { $ac($arity, "+c.$arity()+", this, "+d+"); }"))}),d(i,'$kwargs',function(){var a=this;return[].concat(e(a.kwargs)).concat(e(a.kwoptargs)).concat([a.kwrestarg]).$compact()}),d(i,'$all_args',function(){var c=this,d=a;return c.all_args=b(d=c.all_args)?d:[].concat(e(c.args)).concat(e(c.optargs)).concat([c.restarg]).concat(e(c.postargs)).concat(e(c.$kwargs())).$compact()}),d(i,'$arity_checks',function(){var e,c=this,d=a,g=a,i=a;return b((e=c.arity_checks,e!=null&&e!==a)?'instance-variable':a)?c.arity_checks:(d=c.$all_args().$size(),d=f(d,c.optargs.$size()),b(c.restarg)&&(d=f(d,1)),d=f(d,c.$kwargs().$size()),(l(c.optargs['$empty?']())||l(c.$kwargs()['$empty?']())||b(c.restarg))&&(d=f(d['$-@'](),1)),c.arity_checks=[],b(p(d,0))?(g=h(d,1)['$-@'](),i=c.$all_args().$size(),b(o(g,0))&&c.arity_checks['$<<']("$arity < "+g),b(c.restarg)||c.arity_checks['$<<']("$arity > "+i)):c.arity_checks['$<<']("$arity !== "+d),c.arity_checks)}),d(i,'$arity',function(){var a=this;return b(a.restarg)||b(a.optargs['$any?']())||b(a['$has_only_optional_kwargs?']())?a.$negative_arity():a.$positive_arity()}),d(i,'$negative_arity',function(){var d=this,e=a,c=a;return e=g(d.$all_args(),'select',[],function(b){return b==null&&(b=a),["arg","mlhs"]['$include?'](b.$type())}),c=e.$size(),b(d['$has_required_kwargs?']())&&(c=h(c,1)),f(c['$-@'](),1)}),d(i,'$positive_arity',function(){var d=this,c=a;return c=d.$all_args().$size(),c=f(c,d.$kwargs().$size()),b(d.$kwargs()['$any?']())&&(c=h(c,1)),c}),d(i,'$has_only_optional_kwargs?',function(){var c=this,d=a;return b(d=c.$kwargs()['$any?']())?g(c.$kwargs(),'all?',[],function(b){return b==null&&(b=a),["kwoptarg","kwrestarg"]['$include?'](b.$type())}):d}),d(i,'$has_required_kwargs?',function(){var b=this;return g(b.$kwargs(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("kwarg")})})}(j[0],m('Base'),j),function(e,f){var c=k(e,f,'IterArityCheckNode');return c.$handle("iter_arity_check"),d(c,'$compile',function(){var d=this,c=a,f=a,g=a,h=a,e=a;if(d.$scope()['$arity='](d.$arity()),!b(d.$compiler()['$arity_check?']()))return a;if(b(d.$arity_checks()['$empty?']()))return a;for(c=d.$scope();!b(b(f=b(g=c['$def?']())?g:c['$class_scope?']())?f:c['$top?']());)c=c.$parent();return h=b(c['$top?']())?"'
'":b(c['$def?']())?"'"+c.$mid()+"'":b(c['$class?']())?"''":b(c['$module?']())?"''":a,e=d.$scope().$identity(),d.$line("if ("+e+".$$is_lambda || "+e+".$$define_meth) {"),d.$line(" var $arity = arguments.length;"),d.$line(" if ("+d.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+d.$arity()+", "+h+"); }"),d.$line("}")})}(j[0],m('ArityCheckNode'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,helper,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'EnsureKwargsAreKwargs');return a.$handle("ensure_kwargs_are_kwargs"),e(a,'$compile',function(){var a=this;return a.$helper("ensure_kwargs"),a.$push("$kwargs = $ensure_kwargs($kwargs)")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,uses_block!,scope,add_arg,name,prepare_block'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractBlockarg');return a.$handle("extract_blockarg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope()['$uses_block!'](),a.$scope().$add_arg(a.$name()),a.$scope().$prepare_block(a.$name())})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(a){var b=a.module,e=a.klass,f=a.def,g=a.top,c=[],d=a.nil;return a.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s'),g.$require("opal/nodes/base"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h);return function(g,h){var i=b(g,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=e(b,c,'ExtractKwarg'),g=a.$$prototype;return g.sexp=d,a.$handle("extract_kwarg"),a.$children("lvar_name"),f(a,'$compile',function(){var a=this,b=d;return b=a.sexp.$meta()['$[]']("arg_name"),a.$scope().$used_kwargs()['$<<'](b),a.$add_temp(a.$lvar_name()),a.$helper("get_kwarg"),a.$push(""+a.$lvar_name()+" = $get_kwarg($kwargs, "+b.$to_s().$inspect()+")")})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,add_temp,helper,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractKwargs');return a.$handle("extract_kwargs"),e(a,'$compile',function(){var a=this;return a.$add_temp("$kwargs"),a.$helper("extract_kwargs"),a.$push("$kwargs = $extract_kwargs($post_args)")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(a){var b=a.module,e=a.klass,f=a.eqeq,g=a.def,h=a.top,d=[],c=a.nil;return a.add_stubs('require,handle,children,helper,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,push,expr'),h.$require("opal/nodes/base"),function(h,i){var j=b(h,'Opal'),d=[j].concat(i);return function(h,i){var j=b(h,'Nodes'),d=[j].concat(i);return function(h,i){var j=b(h,'Args'),d=[j].concat(i),k=a.$r(d);return function(b,d){var a=e(b,d,'ExtractKwoptarg'),h=a.$$prototype;return h.sexp=c,a.$handle("extract_kwoptarg"),a.$children("lvar_name","default_value"),g(a,'$compile',function(){var a=this,b=c;return a.$helper("hash_get"),b=a.sexp.$meta()['$[]']("arg_name"),a.$scope().$used_kwargs()['$<<'](b),a.$add_temp(a.$lvar_name()),a.$line(""+a.$lvar_name()+" = $hash_get($kwargs, "+b.$to_s().$inspect()+");"),f(a.$default_value().$children()['$[]'](1),"undefined")?c:a.$push("if ("+a.$lvar_name()+" == null) "+a.$lvar_name()+" = ",a.$expr(a.$default_value()))})}(d[0],k('Base'))}(d[0],d)}(d[0],d)}(d[0],d)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(a){var c=a.module,i=a.klass,f=a.truthy,d=a.def,g=a.send,h=a.top,e=[],b=a.nil;return a.add_stubs('require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join'),h.$require("opal/nodes/base"),function(h,j){var k=c(h,'Opal'),e=[k].concat(j);return function(h,j){var k=c(h,'Nodes'),e=[k].concat(j);return function(h,j){var k=c(h,'Args'),e=[k].concat(j),l=a.$r(e);return function(c,e){var a=i(c,e,'ExtractKwrestarg');return a.$handle("extract_kwrestarg"),a.$children("name"),d(a,'$compile',function(){var a=this,c=b,d=b;return c=f(d=a.$name())?d:"$kw_rest_arg",a.$add_temp(c),a.$helper("kwrestargs"),a.$push(""+c+" = $kwrestargs($kwargs, "+a.$used_kwargs()+")")}),d(a,'$used_kwargs',function(){var c=this,a=b;return a=g(c.$scope().$used_kwargs(),'map',[],function(a){return a==null&&(a=b),"'"+a+"': true"}),"{"+a.$join(",")+"}"})}(e[0],l('Base'))}(e[0],e)}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/args/extract_optarg"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,==,[],default_value,push,name,expr'),g.$require("opal/nodes/base"),function(g,i){var j=b(g,'Opal'),c=[j].concat(i);return function(g,i){var j=b(g,'Nodes'),c=[j].concat(i);return function(g,i){var j=b(g,'Args'),c=[j].concat(i),k=a.$r(c);return function(b,c){var a=d(b,c,'ExtractOptargNode');return a.$handle("extract_optarg"),a.$children("name","default_value"),f(a,'$compile',function(){var a=this;return e(a.$default_value().$children()['$[]'](1),"undefined")?h:a.$push("if ("+a.$name()+" == null) "+a.$name()+" = ",a.$expr(a.$default_value()))})}(c[0],k('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,add_temp,name,line,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractPostArg');return a.$handle("extract_post_arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$add_temp(a.$name()),a.$line(""+a.$name()+" = $post_args.shift();"),a.$push("if ("+a.$name()+" == null) "+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr'),g.$require("opal/nodes/base"),function(g,i){var j=b(g,'Opal'),c=[j].concat(i);return function(g,i){var j=b(g,'Nodes'),c=[j].concat(i);return function(g,i){var j=b(g,'Args'),c=[j].concat(i),k=a.$r(c);return function(b,c){var a=d(b,c,'ExtractPostOptarg');return a.$handle("extract_post_optarg"),a.$children("name","default_value","args_to_keep"),f(a,'$compile',function(){var a=this;return a.$add_temp(a.$name()),a.$line("if ($post_args.length > "+a.$args_to_keep()+") "+a.$name()+" = $post_args.shift();"),e(a.$default_value().$children()['$[]'](1),"undefined")?h:a.$push("if ("+a.$name()+" == null) "+a.$name()+" = ",a.$expr(a.$default_value()))})}(c[0],k('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_restarg"]=function(a){var b=a.module,i=a.klass,e=a.truthy,f=a.eqeq,g=a.def,h=a.top,d=[],c=a.nil;return a.add_stubs('require,handle,children,name,add_temp,==,args_to_keep,push'),h.$require("opal/nodes/base"),function(h,j){var k=b(h,'Opal'),d=[k].concat(j);return function(h,j){var k=b(h,'Nodes'),d=[k].concat(j);return function(h,j){var k=b(h,'Args'),d=[k].concat(j),l=a.$r(d);return function(b,d){var a=i(b,d,'ExtractRestarg');return a.$handle("extract_restarg"),a.$children("name","args_to_keep"),g(a,'$compile',function(){var a=this,b=c,d=c;return b=e(d=a.$name())?d:"$rest_arg",a.$add_temp(b),f(a.$args_to_keep(),0)?a.$push(""+b+" = $post_args"):a.$push(""+b+" = $post_args.splice(0, $post_args.length - "+a.$args_to_keep()+")")})}(d[0],l('Base'))}(d[0],d)}(d[0],d)}(d[0],d)},Opal.modules["opal/nodes/args/fake_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,next_temp,scope,add_arg,push'),f.$require("opal/nodes/base"),function(f,h){var i=b(f,'Opal'),c=[i].concat(h);return function(f,h){var i=b(f,'Nodes'),c=[i].concat(h);return function(f,h){var i=b(f,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'FakeArgNode');return a.$handle("fake_arg"),e(a,'$compile',function(){var a=this,b=g;return b=a.$scope().$next_temp(),a.$scope().$add_arg(b),a.$push(b)})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,push,name'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'InitializeIterarg');return a.$handle("initialize_iter_arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$push("if ("+a.$name()+" == null) "+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,<<,locals,scope,name,add_arg,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'InitializeShadowarg');return a.$handle("initialize_shadowarg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope().$locals()['$<<'](a.$name()),a.$scope().$add_arg(a.$name()),a.$push(""+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/parameters"]=function(c){var d=c.module,j=c.klass,a=c.def,i=c.send,e=c.return_val,g=c.truthy,h=c.eqeq,f=[],b=c.nil;return c.add_stubs('children,map,public_send,type,join,compact,[],meta,=='),function(f,k){var l=d(f,'Opal'),c=[l].concat(k);return function(f,k){var l=d(f,'Nodes'),c=[l].concat(k);return function(c,f){var k=d(c,'Args'),l=[k].concat(f);return function(d,f){var c=j(d,f,'Parameters'),k=c.$$prototype;return k.args=b,a(c,'$initialize',function(a){var b=this;return b.args=a.$children()}),a(c,'$to_code',function(){var a=this,c=b;return c=i(a.args,'map',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$public_send("on_"+a.$type(),a)},{$$s:a}),"["+c.$compact().$join(", ")+"]"}),a(c,'$on_arg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['req', '"+a+"']"}),a(c,'$on_mlhs',e("['req']")),a(c,'$on_optarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['opt', '"+a+"']"}),a(c,'$on_restarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),g(a)?(h(a,"fwd_rest_arg")&&(a="*"),"['rest', '"+a+"']"):"['rest']"}),a(c,'$on_kwarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['keyreq', '"+a+"']"}),a(c,'$on_kwoptarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['key', '"+a+"']"}),a(c,'$on_kwrestarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),g(a)?"['keyrest', '"+a+"']":"['keyrest']"}),a(c,'$on_blockarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),h(a,"fwd_block_arg")&&(a="&"),"['block', '"+a+"']"}),a(c,'$on_kwnilarg',e("['nokey']")),a(c,'$on_shadowarg',e(b))}(l[0],null)}(c[0],c)}(c[0],c)}(f[0],f)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,add_temp,helper,==,offset,push'),g.$require("opal/nodes/base"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h);return function(g,h){var i=b(g,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'PreparePostArgs');return a.$handle("prepare_post_args"),a.$children("offset"),f(a,'$compile',function(){var a=this;return a.$add_temp("$post_args"),a.$helper("slice"),e(a.$offset(),0)?a.$push("$post_args = $slice(arguments)"):a.$push("$post_args = $slice(arguments, "+a.$offset()+")")})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args"]=function(b){var c=b.module,i=b.klass,f=b.send,g=b.neqeq,h=b.def,a=b.top,e=[],d=b.nil;return b.add_stubs('require,handle,each_with_index,children,!=,push,process'),a.$require("opal/nodes/base"),a.$require("opal/nodes/args/arg"),a.$require("opal/nodes/args/arity_check"),a.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),a.$require("opal/nodes/args/extract_block_arg"),a.$require("opal/nodes/args/extract_kwarg"),a.$require("opal/nodes/args/extract_kwargs"),a.$require("opal/nodes/args/extract_kwoptarg"),a.$require("opal/nodes/args/extract_kwrestarg"),a.$require("opal/nodes/args/extract_optarg"),a.$require("opal/nodes/args/extract_post_arg"),a.$require("opal/nodes/args/extract_post_optarg"),a.$require("opal/nodes/args/extract_restarg"),a.$require("opal/nodes/args/fake_arg"),a.$require("opal/nodes/args/initialize_iterarg"),a.$require("opal/nodes/args/initialize_shadowarg"),a.$require("opal/nodes/args/parameters"),a.$require("opal/nodes/args/prepare_post_args"),function(e,j){var k=c(e,'Opal'),a=[k].concat(j);return function(e,j){var k=c(e,'Nodes'),a=[k].concat(j),l=b.$r(a);return function(b,c){var a=i(b,c,'ArgsNode');return a.$handle("args"),h(a,'$compile',function(){var a=this;return f(a.$children(),'each_with_index',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),g(b,0)&&c.$push(", "),c.$push(c.$process(a))},{$$s:a})})}(a[0],l('Base'))}(a[0],a)}(e[0],e)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(b){var i=b.module,p=b.klass,o=b.const_set,d=b.send,f=b.def,n=b.ensure_kwargs,m=b.kwrestargs,c=b.truthy,j=b.defs,k=b.eqeq,l=b.thrower,e=b.lambda,g=b.range,h=[],a=b.nil;return b.add_stubs('new,instance_exec,to_proc,when,helper,name,transform,[],[]=,<<,select,include?,for,arity_check?,compiler,compile_body,is_a?,each,shortcuts_for,match?,==,mid,warn,compile,define_shortcut,type,stmts,push,simple_value?,expr,to_sym,to_s,first,children,updated,length,inline_args,last'),function(q,r){var s=i(q,'Opal'),h=[s].concat(r);return function(q,r){var s=i(q,'Nodes'),h=[s].concat(r),t=b.$r(h);return function(r,s,t){var h=p(r,s,'NodeWithArgs'),q=[h].concat(t),i=b.$r(q);return o(q[0],'Shortcut',d(i('Struct'),'new',["name","for","when","transform"],function a(){var b=a.$$s==null?this:a.$$s;return f(b,'$match?',function(a){var b=this;return d(a,'instance_exec',[],b.$when().$to_proc())}),f(b,'$compile',function(a){var b=this;return a.$helper(b.$name()),d(a,'instance_exec',[],b.$transform().$to_proc())})},{$$s:h})),h.shortcuts=[],h.shortcuts_for=new Map,j(h,'$define_shortcut',function f(h,d){var j=f.$$p||a,b,e=this,g=a;return e.shortcuts==null&&(e.shortcuts=a),f.$$p=null,d=n(d),b=m(d,{}),c(g=b['$[]']("for"))?g:b['$[]=']("for","def"),e.shortcuts['$<<'](i('Shortcut').$new(h,b['$[]']("for"),b['$[]']("when"),j))},-2),j(h,'$shortcuts_for',function(f){var e,b=this,g=a;return b.shortcuts_for==null&&(b.shortcuts_for=a),b.shortcuts==null&&(b.shortcuts=a),c(g=b.shortcuts_for['$[]'](f))?g:(e=[f,d(b.shortcuts,'select',[],function(b){return b==null&&(b=a),[f,"*"]['$include?'](b.$for())})],d(b.shortcuts_for,'[]=',e),e[e.length-1])}),f(h,'$compile_body_or_shortcut',function(){var e,b,f;try{return e=l('return'),b=this,f=a,c(b.$compiler()['$arity_check?']())?b.$compile_body():(f=c(b['$is_a?'](i('DefNode')))?"def":"iter",d(i('NodeWithArgs').$shortcuts_for(f),'each',[],function g(b){var d=g.$$s==null?this:g.$$s,h=a;if(b==null&&(b=a),c(b['$match?'](d)))c(i('ENV')['$[]']("OPAL_DEBUG_SHORTCUTS"))&&(h=k(f,"def")?"def "+d.$mid():"iter",d.$warn("* shortcut "+b.$name()+" used for "+h)),e.$throw(b.$compile(d),g.$$is_lambda);else return a},{$$s:b,$$ret:e}),b.$compile_body())}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}),d(h,'define_shortcut',["return_self",new Map([["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b.$stmts().$type()['$==']("self")},{$$s:h})]])],function a(){var b=a.$$s==null?this:a.$$s;return b.$push("$return_self")},{$$s:h}),f(h,'$simple_value?',function(a){var b=this;return a==null&&(a=b.$stmts()),["true","false","nil","int","float","str","sym"]['$include?'](a.$type())},-1),d(h,'define_shortcut',["return_val",new Map([["for","*"],["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b['$simple_value?']()},{$$s:h})]])],function b(){var a=b.$$s==null?this:b.$$s;return a.$push("$return_val(",a.$expr(a.$stmts()),")")},{$$s:h}),d(h,'define_shortcut',["return_ivar",new Map([["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b.$stmts().$type()['$==']("ivar")},{$$s:h})]])],function c(){var b=c.$$s==null?this:c.$$s,d=a;return d=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),b.$push("$return_ivar(",b.$expr(b.$stmts().$updated("sym",[d])),")")},{$$s:h}),d(h,'define_shortcut',["assign_ivar",new Map([["when",e(function d(){var b=d.$$s==null?this:d.$$s,e=a,f=a,g=a,h=a;return c(e=c(f=c(g=c(h=b.$stmts().$type()['$==']("ivasgn"))?b.$inline_args().$children().$length()['$=='](1):h)?b.$inline_args().$children().$last().$type()['$==']("arg"):g)?b.$stmts().$children().$last().$type()['$==']("lvar"):f)?b.$stmts().$children().$last().$children().$last()['$=='](b.$inline_args().$children().$last().$children().$last()):e},{$$s:h})]])],function d(){var b=d.$$s==null?this:d.$$s,c=a;return c=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),c=b.$expr(b.$stmts().$updated("sym",[c])),b.$push("$assign_ivar(",c,")")},{$$s:h}),d(h,'define_shortcut',["assign_ivar_val",new Map([["when",e(function d(){var b=d.$$s==null?this:d.$$s,e=a;return c(e=b.$stmts().$type()['$==']("ivasgn"))?b['$simple_value?'](b.$stmts().$children().$last()):e},{$$s:h})]])],function d(){var b=d.$$s==null?this:d.$$s,c=a;return c=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),c=b.$expr(b.$stmts().$updated("sym",[c])),b.$push("$assign_ivar_val(",c,", ",b.$expr(b.$stmts().$children().$last()),")")},{$$s:h})}(h[0],t('ScopeNode'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/node_with_args"]=function(a){var e=a.module,l=a.klass,k=a.slice,j=a.send2,h=a.find_super,g=a.to_a,b=a.def,i=a.truthy,d=a.top,f=[],c=a.nil,m=a.$$$;return a.add_stubs('require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new'),d.$require("opal/nodes/scope"),d.$require("opal/nodes/args/parameters"),d.$require("opal/nodes/node_with_args/shortcuts"),function(f,n){var o=e(f,'Opal'),d=[o].concat(n);return function(f,n){var o=e(f,'Nodes'),d=[o].concat(n),p=a.$r(d);return function(e,f,n){var d=l(e,f,'NodeWithArgs'),o=[d].concat(n),p=a.$r(o),q=d.$$prototype;return q.sexp=c,d.$attr_reader("used_kwargs"),d.$attr_accessor("arity"),d.$attr_reader("original_args"),b(d,'$initialize',function b(i){var d,e,f=b.$$p||c,a=this;return b.$$p=null,d=k(arguments),e=d,j(a,h(a,'initialize',b,!1,!0),'initialize',g(e),f),a.original_args=a.sexp.$meta()['$[]']("original_args"),a.used_kwargs=[],a.arity=0},-1),b(d,'$arity_check_node',function(){var a=this;return a.$s("arity_check",a.$original_args())}),b(d,'$compile_arity_check',function(){var a=this;return a.$push(a.$process(a.$arity_check_node()))}),b(d,'$compile_block_arg',function(){var a=this;return i(a.$scope()['$uses_block?']())?a.$scope().$prepare_block():c}),b(d,'$parameters_code',function(){var a=this;return m(p('Args'),'Parameters').$new(a.$original_args()).$to_code()})}(d[0],p('ScopeNode'),d)}(d[0],d)}(f[0],f)},Opal.modules["opal/nodes/iter"]=function(c){var i=c.module,k=c.klass,b=c.truthy,j=c.rb_lt,g=c.eqeq,m=c.not,e=c.send,d=c.def,l=c.top,h=[],a=c.nil,f=c.$$$;return c.add_stubs('require,handle,children,lambda_definition?,scope,is_lambda!,compile_body_or_shortcut,<,arity,[]=,self,key?,throwers,[],arity_check?,compiler,parameters_code,enable_source_location?,source_location,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,keys,push,!,empty?,join,map,nesting,relative_access,in_scope,identify!,process,inline_args,compile_arity_check,in_closure,|,stmt,returned_body,add_temp,to_vars,line,unshift,await_encountered,block_arg,prepare_block,each,args,first,<<,updated,stmts,returns,s,any?,original_args,type,expression,loc,source,match'),l.$require("opal/nodes/node_with_args"),function(l,n){var o=i(l,'Opal'),h=[o].concat(n);return function(l,n){var o=i(l,'Nodes'),h=[o].concat(n),p=c.$r(h);return function(q,n,o){var h=k(q,n,'IterNode'),p=[h].concat(o),l=c.$r(p),i=h.$$prototype;return i.define_self=i.closure=i.define_nesting=i.define_relative_access=i.sexp=a,h.$handle("iter"),h.$children("inline_args","stmts"),d(h,'$compile',function(){var f,h,i,k,c=this,d=a;return b(c.$scope()['$lambda_definition?']())&&c['$is_lambda!'](),c.$compile_body_or_shortcut(),d=new Map,b(j(c.$arity(),0))&&d['$[]=']("$$arity",c.$arity()),b(c.define_self)&&d['$[]=']("$$s",c.$scope().$self()),b((f=(h=c.closure,h===a||h==null?a:h.$throwers()),f===a||f==null?a:f['$key?']("break")))&&d['$[]=']("$$brk",c.closure.$throwers()['$[]']("break")),b((i=(k=c.closure,k===a||k==null?a:k.$throwers()),i===a||i==null?a:i['$key?']("return")))&&d['$[]=']("$$ret",c.closure.$throwers()['$[]']("return")),b(c.$compiler()['$arity_check?']())&&d['$[]=']("$$parameters",c.$parameters_code()),b(c.$compiler()['$enable_source_location?']())&&d['$[]=']("$$source_location",c.$source_location()),b(c['$has_top_level_mlhs_arg?']())&&d['$[]=']("$$has_top_level_mlhs_arg","true"),b(c['$has_trailing_comma_in_args?']())&&d['$[]=']("$$has_trailing_comma_in_args","true"),g(d.$keys(),["$$arity"])?c.$push(", "+c.$arity()):m(d['$empty?']())&&c.$push(", {",e(d,'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+": "+c}).$join(", "),"}"),b(c.define_nesting)&&c.$scope().$nesting(),b(c.define_relative_access)?c.$scope().$relative_access():a}),d(h,'$compile_body',function(){var c=this,g=a,h=a,d=a,i=a;return g=a,h=d=i=a,e(c,'in_scope',[],function j(){var c=j.$$s==null?this:j.$$s;return c.is_lambda==null&&(c.is_lambda=a),d=c.$scope()['$identify!'](),g=c.$process(c.$inline_args()),c.$compile_arity_check(),e(c,'in_closure',[f(l('Closure'),'JS_FUNCTION')['$|'](f(l('Closure'),'ITER'))['$|'](b(c.is_lambda)?f(l('Closure'),'LAMBDA'):0)],function e(){var c=e.$$s==null?this:e.$$s;return c.define_self==null&&(c.define_self=a),i=c.$stmt(c.$returned_body()),b(c.define_self)&&c.$add_temp("self = "+d+".$$s == null ? this : "+d+".$$s"),h=c.$scope().$to_vars(),c.$line(i)},{$$s:c})},{$$s:c}),c.$unshift(h),b(c.$await_encountered())?c.$unshift("async function "+d+"(",g,"){"):c.$unshift("function "+d+"(",g,"){"),c.$push("}")}),d(h,'$compile_block_arg',function(){var c=this;return b(c.$block_arg())?c.$scope().$prepare_block():a}),d(h,'$extract_underscore_args',function(){var c=this,d=a,f=a;return d=[],f=!1,e(c.$args().$children(),'each',[],function(c){var e=a;return c==null&&(c=a),e=c.$children().$first(),g(e,"_")?b(f)?a:(f=!0,d['$<<'](c)):d['$<<'](c)}),c.sexp=c.sexp.$updated(a,[c.$args().$updated(a,d),c.$stmts()])}),d(h,'$returned_body',function(){var c=this,d=a;return c.$compiler().$returns(b(d=c.$stmts())?d:c.$s("nil"))}),d(h,'$has_top_level_mlhs_arg?',function(){var b=this;return e(b.$original_args().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("mlhs")})}),d(h,'$has_trailing_comma_in_args?',function(){var c=this,d=a;return b(c.$original_args().$loc())&&b(c.$original_args().$loc().$expression())?(d=c.$original_args().$loc().$expression().$source(),d.$match(/,\s*\|/)):a}),d(h,'$arity_check_node',function(){var a=this;return a.$s("iter_arity_check",a.$original_args())})}(h[0],p('NodeWithArgs'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/def"]=function(a){var g=a.module,k=a.klass,c=a.truthy,n=a.rb_lt,f=a.eqeq,m=a.not,e=a.send,d=a.def,i=a.rb_plus,l=a.top,j=[],b=a.nil,h=a.$$$;return a.add_stubs('require,handle,children,compile_body_or_shortcut,<,arity,[]=,arity_check?,compiler,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,==,keys,push,!,empty?,join,map,wrap_with_definition,nesting,scope,relative_access,in_scope,mid=,mid,type,defs=,identify!,identity,block_name=,process,inline_args,in_closure,|,stmt,returns,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,await_encountered,helper,wrap,self,expr?,+,comments,inspect,text'),l.$require("opal/nodes/node_with_args"),function(l,o){var p=g(l,'Opal'),j=[p].concat(o);return function(l,o){var p=g(l,'Nodes'),j=[p].concat(o),q=a.$r(j);return function(r,o,p){var g=k(r,o,'DefNode'),q=[g].concat(p),l=a.$r(q),j=g.$$prototype;return j.define_nesting=j.define_relative_access=b,g.$handle("def"),g.$children("mid","inline_args","stmts"),d(g,'$compile',function(){var a=this,d=b;return a.$compile_body_or_shortcut(),d=new Map,c(n(a.$arity(),0))&&d['$[]=']("$$arity",a.$arity()),c(a.$compiler()['$arity_check?']())&&d['$[]=']("$$parameters",a.$parameters_code()),c(a.$compiler()['$parse_comments?']())&&d['$[]=']("$$comments",a.$comments_code()),c(a.$compiler()['$enable_source_location?']())&&d['$[]=']("$$source_location",a.$source_location()),f(d.$keys(),["$$arity"])?a.$push(", "+a.$arity()):m(d['$empty?']())&&a.$push(", {",e(d,'map',[],function(a,c){return a==null&&(a=b),c==null&&(c=b),""+a+": "+c}).$join(", "),"}"),a.$wrap_with_definition(),c(a.define_nesting)&&a.$scope().$nesting(),c(a.define_relative_access)?a.$scope().$relative_access():b}),d(g,'$compile_body',function(){var a=this,d=b,g=b;return d=b,g=b,e(a,'in_scope',[],function i(){var a=i.$$s==null?this:i.$$s;return a.sexp==null&&(a.sexp=b),a.$scope()['$mid='](a.$mid()),f(a.sexp.$type(),"defs")&&a.$scope()['$defs='](!0),a.$scope()['$identify!'](),g=a.$scope().$identity(),a.$scope()['$block_name=']("$yield"),d=a.$process(a.$inline_args()),e(a,'in_closure',[h(l('Closure'),'DEF')['$|'](h(l('Closure'),'JS_FUNCTION'))],function d(){var a=d.$$s==null?this:d.$$s,e=b;return a.define_self==null&&(a.define_self=b),e=a.$stmt(a.$compiler().$returns(a.$stmts())),a.$compile_block_arg(),c(a.define_self)&&a.$add_temp("self = this"),a.$compile_arity_check(),a.$unshift("\n"+a.$current_indent(),a.$scope().$to_vars()),a.$line(e)},{$$s:a})},{$$s:a}),a.$unshift(") {"),a.$unshift(d),a.$unshift("function "+g+"("),c(a.$await_encountered())&&a.$unshift("async "),a.$line("}")}),d(g,'$wrap_with_definition',function(){var a=this;return a.$helper("def"),a.$wrap("$def("+a.$scope().$self()+", '$"+a.$mid()+"', ",")"),c(a['$expr?']())?b:a.$unshift("\n"+a.$current_indent())}),d(g,'$comments_code',function(){var a=this;return i(i("[",e(a.$comments(),'map',[],function(a){return a==null&&(a=b),a.$text().$inspect()}).$join(", ")),"]")})}(j[0],q('NodeWithArgs'),j)}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/defs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,helper,unshift,expr,recvr,mid,push'),f.$require("opal/nodes/def"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'DefsNode');return a.$handle("defs"),a.$children("recvr","mid","inline_args","stmts"),e(a,'$wrap_with_definition',function(){var a=this;return a.$helper("defs"),a.$unshift("$defs(",a.$expr(a.$recvr()),", '$"+a.$mid()+"', "),a.$push(")")})}(c[0],i('DefNode'))}(c[0],c)}(c[0],c)},Opal.modules["opal/ast/matcher"]=function(a){var i=a.module,p=a.klass,f=a.send,c=a.def,o=a.slice,d=a.truthy,n=a.const_set,j=a.rb_plus,l=a.neqeq,k=a.eqeq,e=a.eqeqeq,m=a.range,h=a.top,g=[],b=a.nil;return a.add_stubs('require,instance_exec,to_proc,new,match,inspect,attr_accessor,nil?,+,type,children,!=,length,all?,times,[],==,is_a?,first,===,include?,<<,captures'),h.$require("ast"),h.$require("parser/ast/node"),function(h,q){var r=i(h,'Opal'),g=[r].concat(q);return function(h,q){var r=i(h,'AST'),g=[r].concat(q);return function(t,r,s){var g=p(t,r,'Matcher'),q=[g].concat(s),h=a.$r(q),i=g.$$prototype;return i.root=i.captures=b,c(g,'$initialize',function a(){var d=a.$$p||b,c=this;return a.$$p=null,c.root=f(c,'instance_exec',[],d.$to_proc())}),c(g,'$s',function(c,e){var a,b;return a=o(arguments,1),b=a,h('Node').$new(c,b)},-2),c(g,'$cap',function(a){return h('Node').$new("capture",[a])}),c(g,'$match',function(e){var a=this,c=b;if(a.captures=[],d(c=a.root.$match(e,a)))c;else return!1;return a.captures}),c(g,'$inspect',function(){var a=this;return"#"}),g.$attr_accessor("captures"),n(q[0],'Node',f(h('Struct'),'new',["type","children"],function a(){var g=a.$$s==null?this:a.$$s;return c(g,'$match',function(c,i){var m=this,a=b,g=b;return!d(c['$nil?']())&&(!(a=j([c.$type()],c.$children()),g=j([m.$type()],m.$children()),l(a.$length(),g.$length()))&&f(a.$length().$times(),'all?',[],function(j){var f=b,c=b,m=b,n=b,l=b;return j==null&&(j=b),f=a['$[]'](j),c=g['$[]'](j),d(c['$is_a?'](h('Node')))&&k(c.$type(),"capture")&&(m=!0,c=c.$children().$first()),n=e(h('Node'),l=c)?c.$match(f,i):e(h('Array'),l)?c['$include?'](f):e("*",l)||c['$=='](f),d(m)&&i.$captures()['$<<'](f),n}))}),c(g,'$inspect',function(){var a=this;return k(a.$type(),"capture")?"{"+a.$children().$first().$inspect()+"}":"s("+a.$type().$inspect()+", "+a.$children().$inspect()['$[]'](m(1,-2,!1))+")"})},{$$s:g}))}(g[0],null,g)}(g[0],g)}(g[0],g)},Opal.modules["opal/nodes/if"]=function(d){var p=d.module,i=d.klass,b=d.truthy,f=d.eqeq,c=d.def,h=d.not,e=d.send,l=d.eqeqeq,j=d.const_set,k=d.to_a,q=d.neqeq,m=d.return_val,n=d.top,o=[],a=d.nil,g=d.$$$;return d.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,could_become_switch?,compile_with_switch,compile_with_if,expects_expression?,push_closure,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,pop_closure,returning_if?,await_encountered,scope,wrap,[],meta,returnify,returns,compiler,expr?,recv?,simple?,expr,sexp,===,single_line?,strip_empty_children,all?,new,cap,match,handle_additional_switch_rules,valid_switch_body?,could_become_switch_branch?,<<,!=,[]=,merge!,compile_switch_case,include?,last,each,returning?,compile_switch_default,helper,new_temp,top_scope,excl,start_condition,end_condition'),n.$require("opal/nodes/base"),n.$require("opal/ast/matcher"),function(o,r){var s=p(o,'Opal'),n=[s].concat(r);return function(r,s){var t=p(r,'Nodes'),n=[t].concat(s),o=d.$r(n);return function(t,r,s){var m=i(t,r,'IfNode'),o=[m].concat(s),n=d.$r(o),p=m.$$prototype;return p.sexp=p.switch_variable=p.switch_first_test=p.switch_additional_rules=a,m.$handle("if"),m.$children("test","true_body","false_body"),c(m,'$compile',function(){var a=this;return b(a['$should_compile_as_simple_expression?']())?f(a.$true_body(),a.$s("true"))?a.$compile_with_binary_or():f(a.$false_body(),a.$s("false"))?a.$compile_with_binary_and():a.$compile_with_ternary():b(a['$could_become_switch?']())?a.$compile_with_switch():a.$compile_with_if()}),c(m,'$compile_with_if',function(){var i,c=this,g=a,d=a,j=a;return b(c['$expects_expression?']())&&c.$push_closure(),g=c.$truthy(),d=c.$falsy(),b(d)&&h(g)?(c.$push("if (!",c.$js_truthy(c.$test()),") {"),i=[g,d],d=i[0],g=i[1],i):c.$push("if (",c.$js_truthy(c.$test()),") {"),b(g)&&e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$line(b.$stmt(g))},{$$s:c}),b(d)?f(d.$type(),"if")?c.$line("} else ",c.$stmt(d)):(c.$line("} else {"),e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$line(b.$stmt(d))},{$$s:c}),c.$line("}")):(c.$line("}"),b(c['$expects_expression?']())&&c.$line("return nil;")),b(c['$expects_expression?']())&&c.$pop_closure(),b(c['$expects_expression?']())?(b(c['$returning_if?']())&&(j="return "),b(c.$scope().$await_encountered()))?c.$wrap(""+j+"(await (async function() {","})())"):c.$wrap(""+j+"(function() {","})()"):a}),c(m,'$returning_if?',function(){var a=this;return a.sexp.$meta()['$[]']("returning")}),c(m,'$truthy',function(){var a=this;return a.$returnify(a.$true_body())}),c(m,'$falsy',function(){var a=this;return a.$returnify(a.$false_body())}),c(m,'$returnify',function(a){var c=this;return b(c['$expects_expression?']())&&b(a)?c.$compiler().$returns(a):a}),c(m,'$expects_expression?',function(){var c=this,d=a;return b(d=c['$expr?']())?d:c['$recv?']()}),c(m,'$should_compile_as_simple_expression?',function(){var c=this,d=a,e=a;return b(d=b(e=c['$expects_expression?']())?c['$simple?'](c.$true_body()):e)?c['$simple?'](c.$false_body()):d}),c(m,'$compile_with_ternary',function(){var c=this,g=a,e=a,d=a;return g=c.$true_body(),e=c.$false_body(),c.$push("("),c.$push(c.$js_truthy(c.$test())," ? "),c.$push("(",c.$expr(b(d=g)?d:c.$s("nil")),") : "),h(e)||f(e.$type(),"if")?c.$push(c.$expr(b(d=e)?d:c.$s("nil"))):c.$push("(",c.$expr(b(d=e)?d:c.$s("nil")),")"),c.$push(")")}),c(m,'$compile_with_binary_and',function(){var c=this,e=a,d=a;return b(c.$sexp().$meta()['$[]']("do_js_truthy_on_true_body"))?e=c.$js_truthy(b(d=c.$true_body())?d:c.$s("nil")):e=c.$expr(b(d=c.$true_body())?d:c.$s("nil")),c.$push("("),c.$push(c.$js_truthy(c.$test())," && "),c.$push("(",e,")"),c.$push(")")}),c(m,'$compile_with_binary_or',function(){var c=this,e=a,d=a;return b(c.$sexp().$meta()['$[]']("do_js_truthy_on_false_body"))?e=c.$js_truthy(b(d=c.$false_body())?d:c.$s("nil")):e=c.$expr(b(d=c.$false_body())?d:c.$s("nil")),c.$push("("),c.$push(c.$js_truthy(c.$test())," || "),c.$push("(",e,")"),c.$push(")")}),c(m,'$simple?',function(b){var c=this,d=a;if(l(g(n('AST'),'Node'),d=b))switch(b.$type().valueOf()){case"return":case"js_return":case"break":case"next":case"redo":case"retry":return!1;case"xstr":return n('XStringNode')['$single_line?'](n('XStringNode').$strip_empty_children(b.$children()));default:return e(b.$children(),'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$simple?'](b)},{$$s:c})}else return!0}),j(o[0],'SWITCH_TEST_MATCH',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("lvasgn",a.$cap("*"),a.$cap("*")))},{$$s:m})),j(o[0],'SWITCH_TEST_MATCH_CONTINUED',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("if",a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("lvasgn",a.$cap("*"),a.$cap("*"))),a.$s("true"),a.$cap("*"))},{$$s:m})),j(o[0],'SWITCH_BRANCH_TEST_MATCH',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("js_tmp",a.$cap("*")))},{$$s:m})),j(o[0],'SWITCH_BRANCH_TEST_MATCH_CONTINUED',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("if",a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("js_tmp",a.$cap("*"))),a.$s("true"),a.$cap("*"))},{$$s:m})),c(m,'$could_become_switch?',function(){var d,c=this,f=a,g=a,e=a;return!b(c['$expects_expression?']())&&(!!b(c.$sexp().$meta()['$[]']("switch_child"))||(!(f=b(g=n('SWITCH_TEST_MATCH').$match(c.$test()))?g:n('SWITCH_TEST_MATCH_CONTINUED').$match(c.$test()),!b(f))&&(!(d=[].concat(k(f)),c.switch_test=d[0]==null?a:d[0],c.switch_variable=d[1]==null?a:d[1],c.switch_first_test=d[2]==null?a:d[2],e=d[3]==null?a:d[3],d,e=c.$handle_additional_switch_rules(e),!b(e))&&(!(c.switch_additional_rules=e,!b(c['$valid_switch_body?'](c.$true_body())))&&c['$could_become_switch_branch?'](c.$false_body())))))}),c(m,'$handle_additional_switch_rules',function(d){var c,l=this,e=a,g=a,h=a,i=a,j=a;for(e=[];b(d);){if(g=b(h=n('SWITCH_BRANCH_TEST_MATCH').$match(d))?h:n('SWITCH_BRANCH_TEST_MATCH_CONTINUED').$match(d),!b(g))return!1;if(c=[].concat(k(g)),i=c[0]==null?a:c[0],j=c[1]==null?a:c[1],d=c[2]==null?a:c[2],c,!f(j,l.switch_variable))return!1;e['$<<'](i)}return e}),c(m,'$could_become_switch_branch?',function(d){var c,e=this,i=a,m=a,l=a,j=a,o=a,p=a,r=a,s=a,g=a;if(h(d))return!0;if(q(d.$type(),"if"))return!!b(e['$valid_switch_body?'](d))&&(d.$meta()['$[]=']("switch_default",!0),!0);if(c=[].concat(k(d)),i=c[0]==null?a:c[0],m=c[1]==null?a:c[1],l=c[2]==null?a:c[2],c,j=b(o=n('SWITCH_BRANCH_TEST_MATCH').$match(i))?o:n('SWITCH_BRANCH_TEST_MATCH_CONTINUED').$match(i),!b(j))if(b(e['$valid_switch_body?'](d,!0)))return d.$meta()['$[]=']("switch_default",!0),!0;return!(c=[].concat(k(j)),p=c[0]==null?a:c[0],r=c[1]==null?a:c[1],s=c[2]==null?a:c[2],c,g=e.$handle_additional_switch_rules(s),!b(g))&&(!!f(r,e.switch_variable)&&(!!b(e['$valid_switch_body?'](m))&&(!!b(e['$could_become_switch_branch?'](l))&&(d.$meta()['$merge!'](new Map([["switch_child",!0],["switch_test",p],["switch_variable",e.switch_variable],["switch_additional_rules",g]])),!0))))}),c(m,'$valid_switch_body?',function(c,b){var d=this,f=a;if(b==null&&(b=!1),l(g(n('AST'),'Node'),f=c))switch(c.$type().valueOf()){case"break":case"redo":case"retry":return!1;case"iter":case"while":return!0;default:return e(c.$children(),'all?',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=a),e['$valid_switch_body?'](c,b)},{$$s:d})}else return!l(d.switch_variable,f)||b['$!']()},-2),c(m,'$compile_with_switch',function(){var c=this;return b(c.$sexp().$meta()['$[]']("switch_child"))?(c.switch_variable=c.$sexp().$meta()['$[]']("switch_variable"),c.switch_additional_rules=c.$sexp().$meta()['$[]']("switch_additional_rules"),c.$compile_switch_case(c.$sexp().$meta()['$[]']("switch_test"))):(c.$line("switch (",c.$expr(c.switch_first_test),".valueOf()) {"),e(c,'indent',[],function c(){var b=c.$$s==null?this:c.$$s;return b.switch_test==null&&(b.switch_test=a),b.$compile_switch_case(b.switch_test)},{$$s:c}),c.$line("}"))}),c(m,'$returning?',function(c){var d=a,e=a;return b(d=["return","js_return","next"]['$include?'](c.$type()))?d:b(e=c.$type()['$==']("begin"))?["return","js_return","next"]['$include?'](c.$children().$last().$type()):e}),c(m,'$compile_switch_case',function(d){var c=this;return c.$line("case ",c.$expr(d),":"),b(c.switch_additional_rules)&&e(c.switch_additional_rules,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$line("case ",d.$expr(b),":")},{$$s:c}),e(c,'indent',[],function c(){var b=c.$$s==null?this:c.$$s;return b.$line(b.$stmt(b.$true_body())),h(b.$true_body())||h(b['$returning?'](b.$true_body()))?b.$line("break;"):a},{$$s:c}),b(c.$false_body())?b(c.$false_body().$meta()['$[]']("switch_default"))?c.$compile_switch_default():b(c.$false_body().$meta()['$[]']("switch_child"))?c.$push(c.$stmt(c.$false_body())):a:c.$push(c.$stmt(c.$s("nil")))}),c(m,'$compile_switch_default',function(){var a=this;return a.$line("default:"),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$false_body()))},{$$s:a})})}(n[0],o('Base'),n),function(d,e){var b=i(d,e,'BaseFlipFlop');return b.$children("start_condition","end_condition"),c(b,'$compile',function(){var b=this,c=a,d=a;return b.$helper("truthy"),c=b.$top_scope().$new_temp(),d=""+c+".$$ff",b.$push("("+c+" = "+c+" || function(_start_func, _end_func){"),b.$push(" var flip_flop = "+d+" || false;"),b.$push(" if (!flip_flop) "+d+" = flip_flop = $truthy(_start_func());"),b.$push(" "+b.$excl()+"if (flip_flop && $truthy(_end_func())) "+d+" = false;"),b.$push(" return flip_flop;"),b.$push("})("),b.$push(" function() { ",b.$stmt(b.$compiler().$returns(b.$start_condition()))," },"),b.$push(" function() { ",b.$stmt(b.$compiler().$returns(b.$end_condition()))," }"),b.$push(")")})}(n[0],o('Base')),function(b,d){var a=i(b,d,'IFlipFlop');return a.$handle("iflipflop"),c(a,'$excl',m(""))}(n[0],o('BaseFlipFlop')),function(b,d){var a=i(b,d,'EFlipFlop');return a.$handle("eflipflop"),c(a,'$excl',m("else "))}(n[0],o('BaseFlipFlop'))}(n[0],n)}(o[0],o)},Opal.modules["opal/nodes/logic"]=function(b){var e=b.module,c=b.klass,a=b.def,f=b.send,g=b.to_a,d=b.truthy,i=b.rb_gt,j=b.top,h=[],k=b.nil;return b.add_stubs('require,handle,thrower,value,size,children,s,first,in_while?,compile_while,iter?,scope,compile_iter,push,[],while_loop,helper,identity,==,empty_splat?,recv,nil?,>,return_val,expr,to_s'),j.$require("opal/nodes/base"),function(j,k){var l=e(j,'Opal'),h=[l].concat(k);return function(k,l){var m=e(k,'Nodes'),h=[m].concat(l),j=b.$r(h);return function(d,e){var b=c(d,e,'NextNode');return b.$handle("next"),a(b,'$compile',function(){var a=this;return a.$thrower("next",a.$value())}),a(b,'$value',function(){var a=this;switch(a.$children().$size().valueOf()){case 0:return a.$s("nil");case 1:return a.$children().$first();default:return f(a,'s',["array"].concat(g(a.$children())))}})}(h[0],j('Base')),function(d,e){var b=c(d,e,'BreakNode');return b.$handle("break"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$thrower("break",a.$value())})}(h[0],j('Base')),function(e,f){var b=c(e,f,'RedoNode');return b.$handle("redo"),a(b,'$compile',function(){var a=this;return d(a['$in_while?']())?a.$compile_while():d(a.$scope()['$iter?']())?a.$compile_iter():a.$push("REDO()")}),a(b,'$compile_while',function(){var a=this;return a.$push(""+a.$while_loop()['$[]']("redo_var")+" = true;"),a.$thrower("redo")}),a(b,'$compile_iter',function(){var a=this;return a.$helper("slice"),a.$push("return "+a.$scope().$identity()+".apply(null, $slice(arguments))")})}(h[0],j('Base')),function(e,f){var b=c(e,f,'SplatNode');return b.$handle("splat"),b.$children("value"),a(b,'$empty_splat?',function(){var a=this;return a.$value()['$=='](a.$s("array"))}),a(b,'$compile',function(){var a=this;return d(a['$empty_splat?']())?a.$push("[]"):(a.$helper("to_a"),a.$push("$to_a(",a.$recv(a.$value()),")"))})}(h[0],j('Base')),function(d,e){var b=c(d,e,'RetryNode');return b.$handle("retry"),a(b,'$compile',function(){var a=this;return a.$thrower("retry")})}(h[0],j('Base')),function(e,h){var b=c(e,h,'ReturnNode');return b.$handle("return"),b.$children("value"),a(b,'$return_val',function(){var a=this;return d(a.$value()['$nil?']())?a.$s("nil"):d(i(a.$children().$size(),1))?f(a,'s',["array"].concat(g(a.$children()))):a.$value()}),a(b,'$compile',function(){var a=this;return a.$thrower("return",a.$return_val())})}(h[0],j('Base')),function(d,e){var b=c(d,e,'JSReturnNode');return b.$handle("js_return"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push("return "),a.$push(a.$expr(a.$value()))})}(h[0],j('Base')),function(d,e){var b=c(d,e,'JSTempNode');return b.$handle("js_tmp"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push(a.$value().$to_s())})}(h[0],j('Base')),function(d,e){var b=c(d,e,'BlockPassNode');return b.$handle("block_pass"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push(a.$expr(a.$s("send",a.$value(),"to_proc",a.$s("arglist"))))})}(h[0],j('Base'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/definitions"]=function(b){var j=b.module,f=b.klass,c=b.send,d=b.def,i=b.range,g=b.eqeq,e=b.truthy,p=b.rb_gt,k=b.to_a,o=b.slice,l=b.rb_plus,m=b.const_set,n=b.top,h=[],a=b.nil;return b.add_stubs('require,handle,children,each,line,self,scope,expr,type,new_name,helper,inspect,[],to_s,first,old_name,push,==,record_method_call,compiler,last,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,returned_children,in_closure,await_encountered,parent,+,returns,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc'),n.$require("opal/nodes/base"),function(n,q){var r=j(n,'Opal'),h=[r].concat(q);return function(q,r){var s=j(q,'Nodes'),h=[s].concat(r),n=b.$r(h);return function(e,g){var b=f(e,g,'UndefNode');return b.$handle("undef"),b.$children("value"),d(b,'$compile',function(){var b=this;return c(b.$children(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$line("Opal.udef("+c.$scope().$self()+", '$' + ",c.$expr(b),");")},{$$s:b})})}(h[0],n('Base')),function(c,e){var b=f(c,e,'AliasNode');return b.$handle("alias"),b.$children("new_name","old_name"),d(b,'$compile',function(){var b=this,c=a,d=a;switch(b.$new_name().$type().valueOf()){case"gvar":return b.$helper("alias_gvar"),c=b.$new_name().$children().$first().$to_s()['$[]'](i(1,-1,!1)).$inspect(),d=b.$old_name().$children().$first().$to_s()['$[]'](i(1,-1,!1)).$inspect(),b.$push("$alias_gvar(",c,", ",d,")");case"dsym":case"sym":return b.$helper("alias"),g(b.$old_name().$type(),"sym")&&b.$compiler().$record_method_call(b.$old_name().$children().$last()),b.$push("$alias("+b.$scope().$self()+", ",b.$expr(b.$new_name()),", ",b.$expr(b.$old_name()),")");default:return b.$error("Opal doesn't know yet how to alias with "+b.$new_name().$type())}})}(h[0],n('Base')),function(s,n,q){var h=f(s,n,'BeginNode'),j=[h].concat(q),r=b.$r(j),i=h.$$prototype;return i.level=i.returned_children=a,h.$handle("begin"),d(h,'$compile',function(){var d,b=this;return e(b.$children()['$empty?']())?b.$push("nil"):e(b['$stmt?']())?b.$compile_children(b.$children(),b.level):e(b['$simple_children?']())?(b.$compile_inline_children(b.$children(),b.level),e(p(b.$children().$size(),1)))?b.$wrap("(",")"):a:g(b.$children().$size(),1)?b.$compile_inline_children(b.$returned_children(),b.level):(c(b,'in_closure',[],function c(){var b=c.$$s==null?this:c.$$s;return b.level==null&&(b.level=a),b.$compile_children(b.$returned_children(),b.level)},{$$s:b}),e((d=b.$scope().$parent(),d===a||d==null?a:d.$await_encountered())))?b.$wrap("(await (async function() {","})())"):b.$wrap("(function() {","})()")}),d(h,'$returned_children',function(){var c,b,d=this,g=a,h=a,f=a;return d.returned_children=e(g=d.returned_children)?g:(c=[].concat(k(d.$children())),b=c.length-1,b=b<0?0:b,h=o(c,0,b),f=c[b]==null?a:c[b],c,e(f)?l(h,[d.$compiler().$returns(f)]):[d.$s("nil")])}),d(h,'$compile_children',function(b,d){var e=this;return c(b,'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return b==null&&(b=a),c.$line(c.$process(b,d),c.$fragment(";",new Map([["loc",!1]])))},{$$s:e})}),m(j[0],'COMPLEX_CHILDREN',["while","while_post","until","until_post","js_return"].$freeze()),d(h,'$simple_children?',function(){var b=this;return c(b.$children(),'none?',[],function(b){return b==null&&(b=a),r('COMPLEX_CHILDREN')['$include?'](b.$type())})}),d(h,'$compile_inline_children',function(e,f){var b=this,d=a;return d=c(e,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$process(b,f)},{$$s:b}),c(c(d,'reject',[],"empty?".$to_proc()),'each_with_index',[],function e(b,c){var d=e.$$s==null?this:e.$$s;return b==null&&(b=a),c==null&&(c=a),g(c,0)||d.$push(d.$fragment(", ",new Map([["loc",!1]]))),d.$push(b)},{$$s:b})})}(h[0],n('ScopeNode'),h),function(a,b){var c=f(a,b,'KwBeginNode');return c.$handle("kwbegin")}(h[0],n('BeginNode'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/yield"]=function(a){var f=a.module,e=a.klass,b=a.truthy,g=a.send,i=a.to_a,c=a.def,j=a.top,h=[],d=a.nil;return a.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'),j.$require("opal/nodes/base"),function(j,k){var l=f(j,'Opal'),h=[l].concat(k);return function(k,l){var m=f(k,'Nodes'),h=[m].concat(l),j=a.$r(h);return function(f,h){var a=e(f,h,'BaseYieldNode');return c(a,'$compile_call',function(){var a=this,c=d,f=d,e=d;return c=a.$find_yielding_scope(),c['$uses_block!'](),b(f=c.$block_name())?f:c['$block_name=']("$yield"),e=c.$block_name(),b(a['$yields_single_arg?'](a.$children()))?(a.$push(a.$expr(a.$children().$first())),a.$wrap("Opal.yield1("+e+", ",")")):(a.$push(a.$expr(g(a,'s',["arglist"].concat(i(a.$children()))))),b(a['$uses_splat?'](a.$children())))?a.$wrap("Opal.yieldX("+e+", ",")"):a.$wrap("Opal.yieldX("+e+", [","])")}),c(a,'$find_yielding_scope',function(){var c=this,a=d;for(a=c.$scope();b(a);){if(b(a.$block_name())||b(a['$def?']()))break;a=a.$parent()}return a}),c(a,'$yields_single_arg?',function(a){var e=this,c=d;return b(c=e['$uses_splat?'](a)['$!']())?a.$size()['$=='](1):c}),c(a,'$uses_splat?',function(a){return g(a,'any?',[],function(a){return a==null&&(a=d),a.$type()['$==']("splat")})})}(h[0],j('Base')),function(b,d){var a=e(b,d,'YieldNode');return a.$handle("yield"),c(a,'$compile',function(){var a=this;return a.$compile_call()})}(h[0],j('BaseYieldNode')),function(b,d){var a=e(b,d,'ReturnableYieldNode');return a.$handle("returnable_yield"),c(a,'$compile',function(){var a=this;return a.$compile_call(),a.$wrap("return ",";")})}(h[0],j('BaseYieldNode'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/rescue"]=function(c){var k=c.module,g=c.klass,a=c.truthy,e=c.send,d=c.def,i=c.range,l=c.neqeq,h=c.eqeq,m=c.to_a,n=c.top,j=[],b=c.nil,f=c.$$$;return c.add_stubs('require,handle,children,wrap_in_closure?,push_closure,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,pop_closure,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,[],meta,rescue_else_sexp=,detect,!=,type,handle_rescue_else_manually?,|,has_retry?,in_rescue,body_code,each_with_index,==,body,nil?,!,in_ensure?,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp'),n.$require("opal/nodes/base"),function(n,o){var p=k(n,'Opal'),j=[p].concat(o);return function(o,p){var q=k(o,'Nodes'),j=[q].concat(p),n=c.$r(j);return function(f,h){var c=g(f,h,'EnsureNode'),i=c.$$prototype;return i.sexp=b,c.$handle("ensure"),c.$children("begn","ensr"),d(c,'$compile',function(){var c=this;return a(c['$wrap_in_closure?']())&&c.$push_closure(),c.$push("try {"),e(c,'in_ensure',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$body_sexp()))},{$$s:c}),c.$line("} finally {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return c.level==null&&(c.level=b),a(c['$has_rescue_else?']())?(c.$unshift("var $no_errors = true; "),c.$line("var $rescue_else_result;"),c.$line("if ($no_errors) { "),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line("$rescue_else_result = (function() {"),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_else_code()))},{$$s:a}),a.$line("})();")},{$$s:c}),c.$line("}"),c.$line(c.$compiler().$process(c.$ensr_sexp(),c.level)),c.$line("if ($no_errors) { return $rescue_else_result; }")):c.$line(c.$compiler().$process(c.$ensr_sexp(),c.level))},{$$s:c}),c.$line("}"),a(c['$wrap_in_closure?']())&&c.$pop_closure(),a(c['$wrap_in_closure?']())?a(c.$scope().$await_encountered())?c.$wrap("(await (async function() { ","; })())"):c.$wrap("(function() { ","; })()"):b}),d(c,'$body_sexp',function(){var b=this;return a(b['$wrap_in_closure?']())?b.$compiler().$returns(b.$begn()):b.$begn()}),d(c,'$ensr_sexp',function(){var c=this,d=b;return a(d=c.$ensr())?d:c.$s("nil")}),d(c,'$wrap_in_closure?',function(){var c=this,d=b,e=b;return a(d=a(e=c['$recv?']())?e:c['$expr?']())?d:c['$has_rescue_else?']()}),d(c,'$rescue_else_code',function(){var d=this,c=b;return c=d.$scope().$rescue_else_sexp(),a(d['$stmt?']())||(c=d.$compiler().$returns(c)),c}),d(c,'$has_rescue_else?',function(){var a=this;return a.sexp.$meta()['$[]']("has_rescue_else")})}(j[0],n('Base')),function(m,n,o){var j=g(m,n,'RescueNode'),p=[j].concat(o),k=c.$r(p),q=j.$$prototype;return q.sexp=b,j.$handle("rescue"),j.$children("body"),d(j,'$compile',function(){var c=this,g=b,d=b;return c.$scope()['$rescue_else_sexp='](e(c.$children()['$[]'](i(1,-1,!1)),'detect',[],function(c){var d=b;return c==null&&(c=b),a(d=c)?c.$type()['$!=']("resbody"):d})),g=!1,a(c['$handle_rescue_else_manually?']())&&c.$line("var $no_errors = true;"),d=f(k('Closure'),'NONE'),(a(c['$expr?']())||a(c['$recv?']()))&&(d=d['$|'](f(k('Closure'),'JS_FUNCTION'))),a(c['$has_retry?']())&&(d=d['$|'](f(k('Closure'),'JS_LOOP')['$|'](f(k('Closure'),'JS_LOOP_INSIDE'))['$|'](f(k('Closure'),'RESCUE_RETRIER')))),l(d,f(k('Closure'),'NONE'))&&c.$push_closure(d),e(c,'in_rescue',[c],function d(){var c=d.$$s==null?this:d.$$s;return c.$push("try {"),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$body_code()))},{$$s:c}),c.$line("} catch ($err) {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return a(c['$has_rescue_else?']())&&c.$line("$no_errors = false;"),e(c.$children()['$[]'](i(1,-1,!1)),'each_with_index',[],function f(d,e){var c=f.$$s==null?this:f.$$s;return c.level==null&&(c.level=b),d==null&&(d=b),e==null&&(e=b),!(a(d)&&h(d.$type(),"resbody"))?b:(g=!0,h(e,0)||c.$push(" else "),c.$line(c.$process(d,c.level)))},{$$s:c}),c.$push(" else { throw $err; }")},{$$s:c}),c.$line("}"),a(c['$handle_rescue_else_manually?']())?(c.$push("finally {"),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line("if ($no_errors) { "),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_else_code()))},{$$s:a}),a.$line("}")},{$$s:c}),c.$push("}")):b},{$$s:c}),l(d,f(k('Closure'),'NONE'))&&c.$pop_closure(),a(c['$has_retry?']())&&c.$wrap("do { "," break; } while(1)"),a(c['$expr?']())||a(c['$recv?']())?a(c.$scope().$await_encountered())?c.$wrap("(await (async function() { ","})())"):c.$wrap("(function() { ","})()"):b}),d(j,'$body_code',function(){var c=this,d=b;return d=a(c.$body()['$nil?']())||h(c.$body().$type(),"resbody")?c.$s("nil"):c.$body(),a(c['$stmt?']())||(d=c.$compiler().$returns(d)),d}),d(j,'$rescue_else_code',function(){var d=this,c=b;return c=d.$scope().$rescue_else_sexp(),a(d['$stmt?']())||(c=d.$compiler().$returns(c)),c}),d(j,'$handle_rescue_else_manually?',function(){var c=this,d=b;return a(d=c['$in_ensure?']()['$!']())?c['$has_rescue_else?']():d}),d(j,'$has_retry?',function(){var a=this;return a.sexp.$meta()['$[]']("has_retry")})}(j[0],n('Base'),j),function(f,h){var c=g(f,h,'ResBodyNode');return c.$handle("resbody"),c.$children("klasses_sexp","lvar","body"),d(c,'$compile',function(){var c=this;return c.$push("if (Opal.rescue($err, ",c.$expr(c.$klasses()),")) {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return a(c.$lvar())&&c.$push(c.$expr(c.$lvar().$updated(b,[].concat(m(c.$lvar().$children())).concat([c.$s("js_tmp","$err")])))),c.$line("try {"),e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return e(b,'in_resbody',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_body()))},{$$s:b})},{$$s:c}),c.$line("} finally { Opal.pop_exception($err); }")},{$$s:c}),c.$line("}")}),d(c,'$klasses',function(){var c=this,d=b;return a(d=c.$klasses_sexp())?d:c.$s("array",c.$s("const",b,"StandardError"))}),d(c,'$rescue_body',function(){var c=this,d=b,e=b;return d=a(e=c.$body())?e:c.$s("nil"),a(c['$stmt?']())||(d=c.$compiler().$returns(d)),d})}(j[0],n('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/super"]=function(c){var p=c.module,h=c.klass,i=c.slice,l=c.send2,k=c.find_super,e=c.to_a,d=c.truthy,g=c.send,b=c.def,f=c.return_val,m=c.to_ary,s=c.eqeq,q=c.not,n=c.eqeqeq,r=c.top,o=[],a=c.nil,j=c.$$$;return c.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,!,<<,each,children,original_args,[],meta,empty?,==='),r.$require("opal/nodes/base"),function(r,t){var u=p(r,'Opal'),o=[u].concat(t);return function(t,u){var v=p(t,'Nodes'),o=[v].concat(u),r=c.$r(o);return function(n,o){var c=h(n,o,'BaseSuperNode'),j=c.$$prototype;return j.sexp=j.def_scope=a,b(c,'$initialize',function m(r){var o,n,f,c,q=m.$$p||a,b=this,h=a,p=a,j=a;return m.$$p=null,o=i(arguments),n=o,l(b,k(b,'initialize',m,!1,!0),'initialize',e(n),q),h=[].concat(e(b.sexp)),f=[].concat(e(h)),c=f.length-1,c=c<0?0:c,p=i(f,0,c),j=f[c]==null?a:f[c],f,d(j)&&d(["iter","block_pass"]['$include?'](j.$type()))?(b.iter=j,h=p):b.iter=b.$s("js_tmp","null"),b.arglist=g(b,'s',["arglist"].concat(e(h))),b.recvr=b.$s("self")},-1),b(c,'$compile_using_send',function(){var a=this;return a.$helper("send2"),a.$push("$send2("),a.$compile_receiver(),a.$compile_method_body(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),c.$private(),b(c,'$def_scope',function(){var b=this,c=a;return b.def_scope=d(c=b.def_scope)?c:d(b.$scope()['$def?']())?b.$scope():b.$scope().$find_parent_def()}),b(c,'$defined_check_param',f("false")),b(c,'$implicit_arguments_param',f("false")),b(c,'$method_id',function(){var a=this;return a.$def_scope().$mid().$to_s()}),b(c,'$def_scope_identity',function(){var a=this;return a.$def_scope()['$identify!'](a.$def_scope().$mid())}),b(c,'$allow_stubs',f("true")),b(c,'$super_method_invocation',function(){var a=this;return a.$helper("find_super"),"$find_super("+a.$scope().$self()+", '"+a.$method_id()+"', "+a.$def_scope_identity()+", "+a.$defined_check_param()+", "+a.$allow_stubs()+")"}),b(c,'$super_block_invocation',function(){var b,d,c=this,f=a,h=a,e=a,i=a;return c.$helper("find_block_super"),d=c.$scope().$super_chain(),b=m(d),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],e=b[2]==null?a:b[2],d,i=g(f,'map',[],function(b){return b==null&&(b=a),""+b+".$$def"}).$join(" || "),"$find_block_super("+c.$scope().$self()+", "+e+", ("+i+" || "+h+"), "+c.$defined_check_param()+", "+c.$implicit_arguments_param()+")"}),b(c,'$compile_method_body',function(){var a=this;return a.$push(", "),d(a.$scope()['$def?']())?a.$push(a.$super_method_invocation()):d(a.$scope()['$iter?']())?a.$push(a.$super_block_invocation()):a.$raise("super must be called from method body or block")}),b(c,'$compile_method_name',function(){var b,e,c=this,g=a,h=a,f=a;return d(c.$scope()['$def?']())?c.$push(", '"+c.$method_id()+"'"):d(c.$scope()['$iter?']())?(e=c.$scope().$super_chain(),b=m(e),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],f=b[2]==null?a:b[2],e,c.$push(", "+f)):a})}(o[0],r('CallNode')),function(c,d){var a=h(c,d,'DefinedSuperNode');return a.$handle("defined_super"),b(a,'$allow_stubs',f("false")),b(a,'$defined_check_param',f("true")),b(a,'$compile',function(){var a=this;return a.$compile_receiver(),a.$compile_method_body(),a.$wrap("((",') != null ? "super" : nil)')})}(o[0],r('BaseSuperNode')),function(f,g){var c=h(f,g,'SuperNode');return c.$handle("super"),b(c,'$initialize',function c(j){var f,g,h=c.$$p||a,b=this;return c.$$p=null,f=i(arguments),g=f,l(b,k(b,'initialize',c,!1,!0),'initialize',e(g),h),d(b.$scope()['$def?']())?b.$scope()['$uses_block!']():a},-1),b(c,'$compile',function(){var a=this;return a.$compile_using_send()})}(o[0],r('BaseSuperNode')),function(p,r,t){var m=h(p,r,'ZsuperNode'),u=[m].concat(t),o=c.$r(u);return m.$handle("zsuper"),b(m,'$implicit_arguments_param',f("true")),b(m,'$initialize',function c(m){var f,g,j=c.$$p||a,b=this,h=a;return c.$$p=null,f=i(arguments),g=f,l(b,k(b,'initialize',c,!1,!0),'initialize',e(g),j),s(b.$iter().$type(),"iter")?a:(b.$scope()['$uses_block!'](),b.iter=b.$s("js_tmp",d(h=b.$scope().$block_name())?h:"$yield"))},-1),b(m,'$compile',function(){var b=this,c=a,f=a;return d(b.$def_scope())&&(c=b.$implicit_arglist(),d(b.$block_name())&&q(b.$iter())&&(f=b.$s("block_pass",b.$s("lvar",b.$block_name())),c['$<<'](f)),b.arglist=g(b,'s',["arglist"].concat(e(c)))),b.$compile_using_send()}),b(m,'$implicit_arglist',function(){var f=this,b=a,c=a;return b=[],c=[],g(f.$def_scope().$original_args().$children(),'each',[],function i(h){var e=i.$$s==null?this:i.$$s,f=a,g=a,j=a;switch(h==null&&(h=a),f=h.$children()['$[]'](0),h.$type().valueOf()){case"arg":case"optarg":return g=e.$s("lvar",f),b['$<<'](g);case"restarg":return g=d(f)?e.$s("lvar",f):e.$s("js_tmp","$rest_arg"),b['$<<'](e.$s("splat",g));case"kwarg":case"kwoptarg":return j=h.$meta()['$[]']("arg_name"),c['$<<'](e.$s("pair",e.$s("sym",j),e.$s("lvar",f)));case"kwrestarg":return g=d(f)?e.$s("lvar",f):e.$s("js_tmp","$kw_rest_arg"),c['$<<'](e.$s("kwsplat",g));default:return a}},{$$s:f}),d(c['$empty?']())||b['$<<'](g(f,'s',["hash"].concat(e(c)))),b}),b(m,'$block_name',function(){var b=this,c=a;return n(j(j(o('Opal'),'Nodes'),'IterNode'),c=b.$def_scope())?b.$def_scope().$block_name():n(j(j(o('Opal'),'Nodes'),'DefNode'),c)?b.$def_scope().$block_name():b.$raise("Don't know what to do with super in the scope "+b.$def_scope())})}(o[0],r('SuperNode'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/version"]=function(a){var c=a.module,d=a.const_set,b=[],e=a.nil;return function(a,b){var e=c(a,'Opal'),f=[e].concat(b);return d(f[0],'VERSION',"1.8.2")}(b[0],b)},Opal.modules["opal/nodes/top"]=function(c){var h=c.module,k=c.klass,a=c.truthy,l=c.eqeq,f=c.send,d=c.def,j=c.not,e=c.top,i=[],b=c.nil,g=c.$$$;return c.add_stubs('require,handle,children,top_scope=,compiler,[],meta,sexp,dynamic_cache_result=,push,version_comment,eof_content,helper,==,body,s,eval?,esm?,requirable?,unshift,definition,in_scope,use_strict?,line,in_closure,|,stmt,stmts,is_a?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,enable_file_source_embed?,add_file_source_embed,inspect,module_name,file,!,no_export?,await_encountered,load?,returns,irb?,reverse_each,to_a,helpers,prepend_scope_temp,method_missing?,method_calls,join,map,to_proc,empty?,source,to_json'),e.$require("pathname"),e.$require("json"),e.$require("opal/version"),e.$require("opal/nodes/scope"),function(i,m){var n=h(i,'Opal'),e=[n].concat(m);return function(i,m){var n=h(i,'Nodes'),e=[n].concat(m),o=c.$r(e);return function(i,m,n){var e=k(i,m,'TopNode'),o=[e].concat(n),h=c.$r(o);return e.$handle("top"),e.$children("body"),d(e,'$compile',function(){var c=this;return c.$compiler()['$top_scope='](c),a(c.$sexp().$meta()['$[]']("dynamic_cache_result"))&&c.$compiler()['$dynamic_cache_result='](!0),c.$push(c.$version_comment()),a(c.$compiler().$eof_content())&&c.$helper("return_val"),l(c.$body(),c.$s("nil"))?a(c.$compiler()['$requirable?']())||a(c.$compiler()['$esm?']())||a(c.$compiler()['$eval?']())?(c.$unshift("Opal.return_val(Opal.nil); "),c.$definition()):c.$unshift("Opal.nil; "):(f(c,'in_scope',[],function e(){var c=e.$$s==null?this:e.$$s,d=b;return c.define_nesting==null&&(c.define_nesting=b),c.define_self==null&&(c.define_self=b),c.define_relative_access==null&&(c.define_relative_access=b),c.define_absolute_const==null&&(c.define_absolute_const=b),a(c.$compiler()['$use_strict?']())&&c.$line('"use strict";'),d=f(c,'in_closure',[g(h('Closure'),'JS_FUNCTION')['$|'](g(h('Closure'),'TOP'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$stmt(b.$stmts())},{$$s:c}),a(d['$is_a?'](h('Array')))||(d=[d]),a(c.$compiler()['$eval?']())?a(c.define_nesting)&&c.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(a(c.define_self)&&c.$add_temp("self = Opal.top"),a(c.define_nesting)&&c.$add_temp("$nesting = []")),a(c.define_relative_access)&&c.$add_temp("$$ = Opal.$r($nesting)"),c.$add_temp("nil = Opal.nil"),a(c.define_absolute_const)&&c.$add_temp("$$$ = Opal.$$$"),c.$add_used_helpers(),c.$line(c.$scope().$to_vars()),c.$compile_method_stubs(),c.$compile_irb_vars(),c.$compile_end_construct(),c.$line(d)},{$$s:c}),c.$opening(),c.$definition(),c.$closing()),a(c.$compiler()['$enable_file_source_embed?']())?c.$add_file_source_embed():b}),d(e,'$module_name',function(){var a=this;return g(h('Opal'),'Compiler').$module_name(a.$compiler().$file()).$inspect()}),d(e,'$definition',function(){var c=this;return a(c.$compiler()['$requirable?']())?c.$unshift("Opal.modules["+c.$module_name()+"] = "):a(c.$compiler()['$esm?']())&&j(c.$compiler()['$no_export?']())?c.$unshift("export default "):b}),d(e,'$opening',function(){var c=this,d=b;return a(c.$await_encountered())&&(d="async "),a(c.$compiler()['$requirable?']())?c.$unshift(""+d+"function(Opal) {"):a(c.$compiler()['$eval?']())?c.$unshift("("+d+"function(Opal, self) {"):c.$unshift("Opal.queue("+d+"function(Opal) {")}),d(e,'$closing',function(){var c=this;return a(c.$compiler()['$requirable?']())?(c.$line("};\n"),a(c.$compiler()['$load?']()))?c.$line("Opal.load_normalized("+c.$module_name()+");"):b:a(c.$compiler()['$eval?']())?c.$line("})(Opal, self);"):c.$line("});\n")}),d(e,'$stmts',function(){var a=this;return a.$compiler().$returns(a.$body())}),d(e,'$absolute_const',function(){var a=this;return a.define_absolute_const=!0,"$$$"}),d(e,'$compile_irb_vars',function(){var c=this;return a(c.$compiler()['$irb?']())?c.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):b}),d(e,'$add_used_helpers',function(){var a=this;return f(a.$compiler().$helpers().$to_a(),'reverse_each',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$prepend_scope_temp("$"+a+" = Opal."+a)},{$$s:a})}),d(e,'$compile_method_stubs',function(){var c=this,e=b,d=b;return a(c.$compiler()['$method_missing?']())?(e=c.$compiler().$method_calls(),d=f(e.$to_a(),'map',[],"to_s".$to_proc()).$join(","),a(d['$empty?']()))?b:c.$line("Opal.add_stubs('"+d+"');"):b}),d(e,'$compile_end_construct',function(){var c=this,d=b;return a(d=c.$compiler().$eof_content())?(c.$line("var $__END__ = Opal.Object.$new();"),c.$line("$__END__.$read = $return_val("+d.$inspect()+");")):b}),d(e,'$version_comment',function(){return"/* Generated by Opal "+g(h('Opal'),'VERSION')+" */"}),d(e,'$add_file_source_embed',function(){var a=this,c=b,d=b;return c=a.$compiler().$file(),d=a.$compiler().$source(),a.$unshift("Opal.file_sources["+c.$to_json()+"] = "+d.$to_json()+";\n")})}(e[0],o('ScopeNode'),e)}(e[0],e)}(i[0],i)},Opal.modules["opal/nodes/while"]=function(c){var i=c.module,f=c.klass,a=c.truthy,h=c.send,b=c.def,g=c.return_val,k=c.top,j=[],d=c.nil,e=c.$$$;return c.add_stubs('require,handle,children,js_truthy,test,uses_redo?,new_temp,scope,in_while,compiler,wrap_in_closure?,[]=,while_loop,in_closure,|,line,indent,stmt,body,compile_with_redo,compile_without_redo,queue_temp,await_encountered,wrap,private,compile_while,unshift,while_open,while_close,[],meta,expr?,recv?'),k.$require("opal/nodes/base"),function(k,l){var m=i(k,'Opal'),j=[m].concat(l);return function(l,m){var n=i(l,'Nodes'),j=[n].concat(m),k=c.$r(j);return function(o,l,m){var i=f(o,l,'WhileNode'),n=[i].concat(m),j=c.$r(n),k=i.$$prototype;return k.redo_var=k.sexp=d,i.$handle("while"),i.$children("test","body"),b(i,'$compile',function(){var b=this,c=d;return c=b.$js_truthy(b.$test()),a(b['$uses_redo?']())&&(b.redo_var=b.$scope().$new_temp()),h(b.$compiler(),'in_while',[],function f(){var b=f.$$s==null?this:f.$$s;return b.redo_var==null&&(b.redo_var=d),a(b['$wrap_in_closure?']())&&b.$while_loop()['$[]=']("closure",!0),b.$while_loop()['$[]=']("redo_var",b.redo_var),h(b,'in_closure',[e(j('Closure'),'LOOP')['$|'](e(j('Closure'),'JS_LOOP'))['$|'](a(b['$wrap_in_closure?']())?e(j('Closure'),'JS_FUNCTION'):0)],function d(){var b=d.$$s==null?this:d.$$s;return h(b,'in_closure',[e(j('Closure'),'LOOP_INSIDE')['$|'](e(j('Closure'),'JS_LOOP_INSIDE'))],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(h(a,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$stmt(b.$body())},{$$s:a}))},{$$s:b}),a(b['$uses_redo?']())?b.$compile_with_redo(c):b.$compile_without_redo(c)},{$$s:b})},{$$s:b}),a(b['$uses_redo?']())&&b.$scope().$queue_temp(b.redo_var),a(b['$wrap_in_closure?']())?a(b.$scope().$await_encountered())?b.$wrap("(await (async function() {","; return nil; })())"):b.$wrap("(function() {","; return nil; })()"):d}),i.$private(),b(i,'$compile_with_redo',function(b){var a=this;return a.$compile_while(b,""+a.redo_var+" = false;")}),b(i,'$compile_without_redo',function(a){var b=this;return b.$compile_while(a)}),b(i,'$compile_while',function(e,b){var c=this;return b==null&&(b=d),a(b)&&c.$unshift(b),c.$unshift(c.$while_open(),e,c.$while_close()),a(b)&&c.$unshift(b),c.$line("}")},-2),b(i,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c}),b(i,'$while_close',g(") {")),b(i,'$uses_redo?',function(){var a=this;return a.sexp.$meta()['$[]']("has_redo")}),b(i,'$wrap_in_closure?',function(){var b=this,c=d;return a(c=b['$expr?']())?c:b['$recv?']()})}(j[0],k('Base'),j),function(e,h){var c=f(e,h,'UntilNode'),i=c.$$prototype;return i.redo_var=d,c.$handle("until"),c.$private(),b(c,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c+"!("}),b(c,'$while_close',g(")) {"))}(j[0],k('WhileNode')),function(e,h){var c=f(e,h,'WhilePostNode');return c.$handle("while_post"),c.$private(),b(c,'$compile_while',function(e,c){var b=this;return c==null&&(c=d),a(c)&&b.$unshift(c),b.$unshift("do {"),b.$line("} ",b.$while_open(),e,b.$while_close())},-2),b(c,'$while_close',g(");"))}(j[0],k('WhileNode')),function(e,h){var c=f(e,h,'UntilPostNode'),i=c.$$prototype;return i.redo_var=d,c.$handle("until_post"),c.$private(),b(c,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c+"!("}),b(c,'$while_close',g("));"))}(j[0],k('WhilePostNode'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/hash"]=function(b){var h=b.module,i=b.klass,l=b.slice,o=b.send2,k=b.find_super,f=b.to_a,c=b.send,e=b.def,d=b.truthy,g=b.eqeq,m=b.to_ary,n=b.top,j=[],a=b.nil;return b.add_stubs('require,handle,attr_accessor,each,children,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,compile_hash,==,empty?,expr,s,each_with_index,push,inspect,to_s,simple_keys?,wrap,helper,value'),n.$require("opal/nodes/base"),function(n,p){var q=h(n,'Opal'),j=[q].concat(p);return function(p,q){var r=h(p,'Nodes'),j=[r].concat(q),n=b.$r(j);return function(h,j){var b=i(h,j,'HashNode');return b.$handle("hash"),b.$attr_accessor("has_kwsplat","keys","values"),e(b,'$initialize',function d(i){var e,g,h=d.$$p||a,b=this;return d.$$p=null,e=l(arguments),g=e,o(b,k(b,'initialize',d,!1,!0),'initialize',f(g),h),b.has_kwsplat=!1,b.keys=[],b.values=[],c(b.$children(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;switch(b.keys==null&&(b.keys=a),b.values==null&&(b.values=a),c==null&&(c=a),c.$type().valueOf()){case"kwsplat":return b.has_kwsplat=!0;case"pair":return b.keys['$<<'](c.$children()['$[]'](0)),b.values['$<<'](c.$children()['$[]'](1));default:return a}},{$$s:b})},-1),e(b,'$simple_keys?',function(){var b=this;return c(b.$keys(),'all?',[],function(b){return b==null&&(b=a),["sym","str","int"]['$include?'](b.$type())})}),e(b,'$compile',function(){var a=this;return d(a.$has_kwsplat())?a.$compile_merge():a.$compile_hash()}),e(b,'$compile_merge',function(){var i,e=this,h=a,b=a;return i=[[],[]],h=i[0],b=i[1],i,c(e.$children(),'each',[],function j(e){var i=j.$$s==null?this:j.$$s;return e==null&&(e=a),g(e.$type(),"kwsplat")?(d(b['$empty?']())||h['$<<'](i.$expr(c(i,'s',["hash"].concat(f(b))))),h['$<<'](i.$expr(e)),b=[]):b['$<<'](e)},{$$s:e}),d(b['$empty?']())||h['$<<'](e.$expr(c(e,'s',["hash"].concat(f(b))))),c(h,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),g(c,0)?e.$push(b):e.$push(".$merge(",b,")")},{$$s:e})}),e(b,'$compile_hash',function(){var b=this;return c(b.$children(),'each_with_index',[],function k(f,h){var c,i,b=k.$$s==null?this:k.$$s,e=a,j=a;return f==null&&(f=a),h==null&&(h=a),i=f.$children(),c=m(i),e=c[0]==null?a:c[0],j=c[1]==null?a:c[1],i,g(h,0)||b.$push(", "),d(["sym","str"]['$include?'](e.$type()))?b.$push("["+e.$children()['$[]'](0).$to_s().$inspect(),", ",b.$expr(j),"]"):b.$push("[",b.$expr(e),", ",b.$expr(j),"]")},{$$s:b}),d(b.$keys()['$empty?']())?b.$push("(new Map())"):d(b['$simple_keys?']())?b.$wrap("(new Map([","]))"):(b.$helper("hash_rehash"),b.$wrap("$hash_rehash(new Map([","]))"))})}(j[0],n('Base')),function(b,c){var a=i(b,c,'KwSplatNode');return a.$handle("kwsplat"),a.$children("value"),e(a,'$compile',function(){var a=this;return a.$push("Opal.to_hash(",a.$expr(a.$value()),")")})}(j[0],n('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/array"]=function(a){var d=a.module,i=a.klass,b=a.truthy,f=a.send,g=a.def,h=a.top,e=[],c=a.nil;return a.add_stubs('require,handle,empty?,children,push,each,==,type,expr,<<,fragment'),h.$require("opal/nodes/base"),function(h,j){var k=d(h,'Opal'),e=[k].concat(j);return function(h,j){var k=d(h,'Nodes'),e=[k].concat(j),l=a.$r(e);return function(d,e){var a=i(d,e,'ArrayNode');return a.$handle("array"),g(a,'$compile',function(){var g,e=this,a=c,d=c,h=c;return b(e.$children()['$empty?']())?e.$push("[]"):(g=[[],[]],a=g[0],d=g[1],g,f(e.$children(),'each',[],function h(g){var e=h.$$s==null?this:h.$$s,i=c,f=c;return g==null&&(g=c),i=g.$type()['$==']("splat"),f=e.$expr(g),b(i)?(b(d['$empty?']())?b(a['$empty?']())?a['$<<'](e.$fragment("[].concat("))['$<<'](f)['$<<'](e.$fragment(")")):a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")")):(b(a['$empty?']())?a['$<<'](e.$fragment("["))['$<<'](d)['$<<'](e.$fragment("]")):a['$<<'](e.$fragment(".concat(["))['$<<'](d)['$<<'](e.$fragment("])")),a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")"))),d=[]):(b(d['$empty?']())||d['$<<'](e.$fragment(", ")),d['$<<'](f))},{$$s:e}),b(d['$empty?']())||(h=[e.$fragment("["),d,e.$fragment("]")],b(a['$empty?']())?a=h:a.$push([e.$fragment(".concat("),h,e.$fragment(")")])),e.$push(a))})}(e[0],l('Base'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/defined"]=function(c){var j=c.module,k=c.klass,d=c.eqeq,b=c.def,e=c.truthy,f=c.to_a,l=c.slice,g=c.send,h=c.range,m=c.top,i=[],a=c.nil;return c.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'),m.$require("opal/nodes/base"),function(m,n){var o=j(m,'Opal'),i=[o].concat(n);return function(m,n){var o=j(m,'Nodes'),i=[o].concat(n),p=c.$r(i);return function(i,j){var c=k(i,j,'DefinedNode');return c.$handle("defined?"),c.$children("value"),b(c,'$compile',function(){var a=this;switch(a.$value().$type().valueOf()){case"self":case"nil":case"false":case"true":return a.$push(a.$value().$type().$to_s().$inspect());case"lvasgn":case"ivasgn":case"gvasgn":case"cvasgn":case"casgn":case"op_asgn":case"or_asgn":case"and_asgn":return a.$push("'assignment'");case"lvar":return a.$push("'local-variable'");case"begin":return d(a.$value().$children().$size(),1)&&d(a.$value().$children()['$[]'](0).$type(),"masgn")?a.$push("'assignment'"):a.$push("'expression'");break;case"send":return a.$compile_defined_send(a.$value()),a.$wrap("("," ? 'method' : nil)");case"ivar":return a.$compile_defined_ivar(a.$value()),a.$wrap("("," ? 'instance-variable' : nil)");case"zsuper":case"super":return a.$compile_defined_super();case"yield":return a.$compile_defined_yield(),a.$wrap("("," ? 'yield' : nil)");case"xstr":return a.$compile_defined_xstr(a.$value());case"const":return a.$compile_defined_const(a.$value()),a.$wrap("("," ? 'constant' : nil)");case"cvar":return a.$compile_defined_cvar(a.$value()),a.$wrap("("," ? 'class variable' : nil)");case"gvar":return a.$compile_defined_gvar(a.$value()),a.$wrap("("," ? 'global-variable' : nil)");case"back_ref":return a.$compile_defined_back_ref(),a.$wrap("("," ? 'global-variable' : nil)");case"nth_ref":return a.$compile_defined_nth_ref(),a.$wrap("("," ? 'global-variable' : nil)");case"array":return a.$compile_defined_array(a.$value()),a.$wrap("("," ? 'expression' : nil)");default:return a.$push("'expression'")}}),b(c,'$compile_defined',function(c){var b=this,d=a,f=a;return d=c.$type(),e(b['$respond_to?']("compile_defined_"+d))?b.$__send__("compile_defined_"+d,c):(f=b.$scope().$new_temp(),b.$push("("+f+" = ",b.$expr(c),")"),f)}),b(c,'$wrap_with_try_catch',function(d){var b=this,c=a;return c=b.$scope().$new_temp(),b.$push("("+c+" = (function() { try {"),b.$push(" return "+d+";"),b.$push("} catch ($err) {"),b.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),b.$push(" try {"),b.$push(" return false;"),b.$push(" } finally { Opal.pop_exception($err); }"),b.$push(" } else { throw $err; }"),b.$push("}})())"),c}),b(c,'$compile_send_recv_doesnt_raise',function(a){var b=this;return b.$wrap_with_try_catch(a)}),b(c,'$compile_defined_send',function(q){var c,b=this,i=a,n=a,o=a,p=a,k=a,h=a,m=a,j=a;return c=[].concat(f(q)),i=c[0]==null?a:c[0],n=c[1]==null?a:c[1],o=l(c,2),c,p=b.$mid_to_jsid(n.$to_s()),e(i)?(k=b.$compile_defined(i),b.$push(" && "),d(i.$type(),"send")&&(k=b.$compile_send_recv_doesnt_raise(k),b.$push(" && ")),h=b.$scope().$new_temp(),b.$push("("+h+" = ",k,", "+h+") && ")):h=b.$scope().$self(),m=b.$scope().$new_temp(),b.$push("("+m+" = "+h+") && "),j=b.$scope().$new_temp(),b.$push("((("+j+" = "+m+p+") && !"+j+".$$stub)"),b.$push(" || "+m+"['$respond_to_missing?']('"+n+"'))"),g(o,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;switch(b==null&&(b=a),b.$type().valueOf()){case"block_pass":return a;default:return d.$push(" && "),d.$compile_defined(b)}},{$$s:b}),b.$wrap("(",")"),""+j+"()"}),b(c,'$compile_defined_ivar',function(e){var c=this,d=a,b=a;return d=e.$children()['$[]'](0).$to_s()['$[]'](h(1,-1,!1)),b=c.$scope().$new_temp(),c.$push("("+b+" = "+c.$scope().$self()+"['"+d+"'], "+b+" != null && "+b+" !== nil)"),b}),b(c,'$compile_defined_super',function(){var a=this;return a.$push(a.$expr(a.$s("defined_super")))}),b(c,'$compile_defined_yield',function(){var b=this,c=a,d=a;return b.$scope()['$uses_block!'](),c=e(d=b.$scope().$block_name())?d:b.$scope().$find_parent_def().$block_name(),b.$push("("+c+" != null && "+c+" !== nil)"),c}),b(c,'$compile_defined_xstr',function(b){var a=this;return a.$push("(typeof(",a.$expr(b),') !== "undefined")')}),b(c,'$compile_defined_const',function(k){var c,b=this,h=a,i=a,g=a,j=a;return c=[].concat(f(k)),h=c[0]==null?a:c[0],i=c[1]==null?a:c[1],c,g=b.$scope().$new_temp(),e(h['$nil?']())?b.$push("("+g+" = "+b.$scope().$relative_access()+"('"+i+"', 'skip_raise'))"):d(h,b.$s("cbase"))?b.$push("("+g+" = "+b.$top_scope().$absolute_const()+"('::', '"+i+"', 'skip_raise'))"):(j=b.$compile_defined(h),b.$push(" && ("+g+" = "+b.$top_scope().$absolute_const()+"("+j+", '"+i+"', 'skip_raise'))")),g}),b(c,'$compile_defined_cvar',function(g){var b,d=this,e=a,h=a,c=a;return b=[].concat(f(g)),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,c=d.$scope().$new_temp(),d.$push("("+c+" = "+d.$class_variable_owner()+".$$cvars['"+e+"'], "+c+" != null)"),c}),b(c,'$compile_defined_gvar',function(f){var b=this,d=a,c=a;return b.$helper("gvars"),d=f.$children()['$[]'](0).$to_s()['$[]'](h(1,-1,!1)),c=b.$scope().$new_temp(),e(["~","!"]['$include?'](d))?b.$push("("+c+" = ",b.$expr(f)," || true)"):b.$push("("+c+" = $gvars["+d.$inspect()+"], "+c+" != null)"),c}),b(c,'$compile_defined_back_ref',function(){var c=this,b=a;return c.$helper("gvars"),b=c.$scope().$new_temp(),c.$push("("+b+" = $gvars['~'], "+b+" != null && "+b+" !== nil)"),b}),b(c,'$compile_defined_nth_ref',function(){var c=this,b=a;return c.$helper("gvars"),b=c.$scope().$new_temp(),c.$push("("+b+" = $gvars['~'], "+b+" != null && "+b+" != nil)"),b}),b(c,'$compile_defined_array',function(b){var c=this;return g(b.$children(),'each_with_index',[],function e(b,c){var f=e.$$s==null?this:e.$$s;return b==null&&(b=a),c==null&&(c=a),d(c,0)||f.$push(" && "),f.$compile_defined(b)},{$$s:c})})}(i[0],p('Base'))}(i[0],i)}(i[0],i)},Opal.modules["opal/nodes/masgn"]=function(b){var i=b.module,j=b.klass,k=b.const_set,d=b.send,e=b.eqeq,c=b.truthy,f=b.def,l=b.rb_ge,m=b.not,g=b.rb_plus,n=b.top,h=[],a=b.nil;return b.add_stubs('require,freeze,handle,children,with_temp,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,new_temp,scope,queue_temp,>=,!,updated,include?,+,last,raise'),n.$require("opal/nodes/base"),function(n,o){var p=i(n,'Opal'),h=[p].concat(o);return function(n,o){var p=i(n,'Nodes'),h=[p].concat(o),q=b.$r(h);return function(n,o,p){var h=j(n,o,'MassAssignNode'),i=[h].concat(p),q=b.$r(i);return k(i[0],'SIMPLE_ASSIGNMENT',["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),h.$handle("masgn"),h.$children("lhs","rhs"),f(h,'$compile',function(){var b=this;return d(b,'with_temp',[],function g(f){var b=g.$$s==null?this:g.$$s,h=a;return f==null&&(f=a),e(b.$rhs().$type(),"array")?(b.$push(""+f+" = ",b.$expr(b.$rhs())),h=c(d(b.$rhs().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("splat")}))?a:b.$rhs().$children().$size(),b.$compile_masgn(b.$lhs().$children(),f,h),b.$push(", "+f)):(b.$helper("to_ary"),d(b,'with_temp',[],function d(c){var b=d.$$s==null?this:d.$$s;return c==null&&(c=a),b.$push(""+c+" = ",b.$expr(b.$rhs())),b.$push(", "+f+" = $to_ary("+c+")"),b.$compile_masgn(b.$lhs().$children(),f),b.$push(", "+c)},{$$s:b}))},{$$s:b})}),f(h,'$compile_masgn',function(m,j,l){var b=this,h=a,i=a,k=a,g=a,f=a;return l==null&&(l=a),h=d(m,'take_while',[],function(b){return b==null&&(b=a),b.$type()['$!=']("splat")}),i=m.$drop(h.$size()),d(h,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$compile_assignment(b,j,c,l)},{$$s:b}),c(i['$empty?']())?a:(k=i.$shift(),c(i['$empty?']())?c(g=k.$children()['$[]'](0))?(b.$helper("slice"),g=g.$dup()['$<<'](b.$s("js_tmp","$slice("+j+", "+h.$size()+")")),b.$push(", "),b.$push(b.$expr(g))):a:(f=b.$scope().$new_temp(),b.$push(", "+f+" = "+j+".length - "+i.$size()),b.$push(", "+f+" = ("+f+" < "+h.$size()+") ? "+h.$size()+" : "+f),c(g=k.$children()['$[]'](0))&&(b.$helper("slice"),g=g.$dup()['$<<'](b.$s("js_tmp","$slice("+j+", "+h.$size()+", "+f+")")),b.$push(", "),b.$push(b.$expr(g))),d(i,'each_with_index',[],function d(b,c){var g=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e(c,0)?g.$compile_assignment(b,j,f):g.$compile_assignment(b,j,""+f+" + "+c)},{$$s:b}),b.$scope().$queue_temp(f)))},-3),f(h,'$compile_assignment',function(f,n,j,k){var b=this,h=a,d=a,i=a;if(k==null&&(k=a),h=m(k)||c(l(j,k))?b.$s("js_tmp","("+n+"["+j+"] == null ? nil : "+n+"["+j+"])"):b.$s("js_tmp",""+n+"["+j+"]"),d=f.$updated(),c(q('SIMPLE_ASSIGNMENT')['$include?'](f.$type())))d=d.$updated(a,g(d.$children(),[h]));else if(e(f.$type(),"send"))d=d.$updated(a,g(d.$children(),[h]));else if(e(f.$type(),"attrasgn"))d.$last()['$<<'](h);else if(e(f.$type(),"mlhs"))return b.$helper("to_ary"),i=b.$scope().$new_temp(),b.$push(", ("+i+" = $to_ary("+h.$children()['$[]'](0)+")"),b.$compile_masgn(f.$children(),i),b.$push(")"),b.$scope().$queue_temp(i),a;else b.$raise("Bad child node in masgn LHS: "+f+". LHS: "+b.$lhs());return b.$push(", "),b.$push(b.$expr(d))},-4)}(h[0],q('Base'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/arglist"]=function(a){var d=a.module,j=a.klass,f=a.send,b=a.truthy,g=a.to_a,h=a.def,i=a.top,e=[],c=a.nil;return a.add_stubs('require,handle,each,children,==,type,expr,empty?,<<,fragment,push'),i.$require("opal/nodes/base"),function(i,k){var l=d(i,'Opal'),e=[l].concat(k);return function(i,k){var l=d(i,'Nodes'),e=[l].concat(k),m=a.$r(e);return function(d,e){var a=j(d,e,'ArglistNode');return a.$handle("arglist"),h(a,'$compile',function(){var h,e=this,a=c,d=c,i=c;return h=[[],[]],a=h[0],d=h[1],h,f(e.$children(),'each',[],function h(g){var e=h.$$s==null?this:h.$$s,i=c,f=c;return g==null&&(g=c),i=g.$type()['$==']("splat"),f=e.$expr(g),b(i)?(b(d['$empty?']())?b(a['$empty?']())?a['$<<'](f):a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")")):(b(a['$empty?']())?a['$<<'](e.$fragment("["))['$<<'](d)['$<<'](e.$fragment("]")):a['$<<'](e.$fragment(".concat(["))['$<<'](d)['$<<'](e.$fragment("])")),a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")"))),d=[]):(b(d['$empty?']())||d['$<<'](e.$fragment(", ")),d['$<<'](f))},{$$s:e}),b(d['$empty?']())||(i=d,b(a['$empty?']())?a=i:a['$<<'](e.$fragment(".concat(["))['$<<'](i)['$<<'](e.$fragment("])"))),f(e,'push',g(a))})}(e[0],m('Base'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/x_string"]=function(c){var h=c.module,k=c.klass,b=c.truthy,d=c.def,f=c.send,n=c.to_a,i=c.defs,j=c.lambda,e=c.eqeq,l=c.not,m=c.range,g=[],a=c.nil;return c.add_stubs('handle,backtick_javascript_or_warn?,compiler,compile_javascript,compile_send,s,children,push,process,unpack_return,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,include?,self,scope,new,expr,raise,strip,=~,!,extract_last_value,expr?,warning,line'),function(o,p){var q=h(o,'Opal'),g=[q].concat(p);return function(o,p){var q=h(o,'Nodes'),g=[q].concat(p),r=c.$r(g);return function(s,p,q){var g=k(s,p,'XStringNode'),r=[g].concat(q),h=c.$r(r),o=g.$$prototype;return o.level=o.should_add_semicolon=o.returning=a,g.$handle("xstr"),d(g,'$compile',function(){var a=this;return b(a.$compiler()['$backtick_javascript_or_warn?']())?a.$compile_javascript():a.$compile_send()}),d(g,'$compile_send',function(){var b=this,c=a;return c=b.$s("send",a,"`",f(b,'s',["dstr"].concat(n(b.$children())))),b.$push(b.$process(c,b.level))}),d(g,'$compile_javascript',function(){var c=this,d=a,e=a;return c.should_add_semicolon=!1,d=c.$unpack_return(c.$children()),e=h('XStringNode').$strip_empty_children(d),b(h('XStringNode')['$single_line?'](e))?c.$compile_single_line(e):f(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$compile_child(b)},{$$s:c}),b(c['$recv?']())&&c.$wrap("(",")"),b(c.should_add_semicolon)?c.$push(";"):a}),i(g,'$single_line?',function(c){var d=a;return b(d=c.$size()['$=='](1))?d:f(c,'none?',[],function(c){var d=a;return c==null&&(c=a),b(d=c.$type()['$==']("str"))?c.$loc().$expression().$source()['$end_with?']("\n"):d})}),i(g,'$strip_empty_children',function(c){var e=a,d=a;for(c=c.$dup(),e=j(function(c){var d=a,e=a;return c==null&&(c=a),b(d=c['$nil?']())?d:b(e=c.$type()['$==']("str"))?c.$loc().$expression().$source().$rstrip()['$empty?']():e});b(b(d=c['$any?']())?e['$[]'](c.$first()):d);)c.$shift();while(b(b(d=c['$any?']())?e['$[]'](c.$last()):d))c.$pop();return c}),g.$private(),d(g,'$compile_child',function(d){var c=this,e=a;switch(d.$type().valueOf()){case"str":return e=d.$loc().$expression().$source(),b(e['$include?']("self"))&&c.$scope().$self(),c.$push(h('Fragment').$new(e,c.$scope(),d));case"begin":case"gvar":case"ivar":case"nil":return c.$push(c.$expr(d));default:return c.$raise("Unsupported xstr part: "+d.$type())}}),d(g,'$compile_single_line',function(j){var c=this,k=a,d=a,m=a,i=a,n=a,g=a,o=a;return k=!1,d=j.$shift(),m=j['$empty?'](),d=b(i=d)?i:c.$s("nil"),e(d.$type(),"str")&&(n=d.$loc().$expression().$source().$strip(),k=n['$=~'](/^return\b/)),b(c.returning)&&l(k)&&c.$push("return "),g=b(i=j.$pop())?i:d,e(g.$type(),"str")&&(o=c.$extract_last_value(g)),b(m)||(c.should_add_semicolon=!1,c.$compile_child(d),f(j,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$compile_child(b)},{$$s:c})),e(g.$type(),"str")?c.$push(h('Fragment').$new(o,c.$scope(),g)):c.$compile_child(g)}),d(g,'$extract_last_value',function(e){var c=this,d=a;return d=e.$loc().$expression().$source().$rstrip(),b(d['$include?']("self"))&&c.$scope().$self(),(b(c.returning)||b(c['$expr?']()))&&b(d['$end_with?'](";"))&&(c.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",e.$line()),d=d['$[]'](m(0,-2,!1))),b(c.returning)&&(c.should_add_semicolon=!0),d}),d(g,'$unpack_return',function(b){var d=this,c=a;return c=b.$first(),d.returning=!1,e(c.$type(),"js_return")&&(d.returning=!0,b=c.$children()),b})}(g[0],r('Base'),g)}(g[0],g)}(g[0],g)},Opal.modules["opal/nodes/lambda"]=function(a){var b=a.module,d=a.klass,e=a.send,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,helper,defines_lambda,scope,push,expr,iter'),g.$require("opal/nodes/call"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'LambdaNode');return a.$handle("lambda"),a.$children("iter"),f(a,'$compile',function(){var a=this;return a.$helper("lambda"),e(a.$scope(),'defines_lambda',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$push("$lambda(",a.$expr(a.$iter()),")")},{$$s:a})})}(c[0],j('Base'))}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes"]=function(b){var a=b.top,c=b.nil;return b.add_stubs('require'),a.$require("opal/nodes/closure"),a.$require("opal/nodes/base"),a.$require("opal/nodes/literal"),a.$require("opal/nodes/variables"),a.$require("opal/nodes/constants"),a.$require("opal/nodes/call"),a.$require("opal/nodes/call_special"),a.$require("opal/nodes/module"),a.$require("opal/nodes/class"),a.$require("opal/nodes/singleton_class"),a.$require("opal/nodes/args"),a.$require("opal/nodes/args/arity_check"),a.$require("opal/nodes/iter"),a.$require("opal/nodes/def"),a.$require("opal/nodes/defs"),a.$require("opal/nodes/if"),a.$require("opal/nodes/logic"),a.$require("opal/nodes/definitions"),a.$require("opal/nodes/yield"),a.$require("opal/nodes/rescue"),a.$require("opal/nodes/super"),a.$require("opal/nodes/top"),a.$require("opal/nodes/while"),a.$require("opal/nodes/hash"),a.$require("opal/nodes/array"),a.$require("opal/nodes/defined"),a.$require("opal/nodes/masgn"),a.$require("opal/nodes/arglist"),a.$require("opal/nodes/x_string"),a.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(b){var g=b.module,h=b.klass,l=b.const_set,d=b.def,c=b.truthy,i=b.send,j=b.range,k=b.eqeq,e=b.to_ary,f=[],a=b.nil;return b.add_stubs('empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos'),function(m,n){var o=g(m,'Opal'),f=[o].concat(n);return function(m,n,o){var f=h(m,n,'EofContent'),p=[f].concat(o),g=f.$$prototype;return g.tokens=g.source=a,l(p[0],'DATA_SEPARATOR',"__END__\n"),d(f,'$initialize',function(b,c){var a=this;return a.tokens=b,a.source=c}),d(f,'$eof',function(){var e=this,d=a,f=a;return c(e.tokens['$empty?']())?a:(d=e.source['$[]'](b.Range.$new(e.$last_token_position(),-1,!1)),!c(d))?a:(d=i(d.$lines(),'drop_while',[],function(b){var d=a;return b==null&&(b=a),c(d=/^.*\r?\n?$/['$match?'](b))?b['$start_with?']("__END__")['$!']():d}),c(/^__END__\r?\n?$/['$match?'](d['$[]'](0))))?(d=c(f=d['$[]'](j(1,-1,!1)))?f:[],d.$join()):k(d,["__END__"])?"":a}),f.$private(),d(f,'$last_token_position',function(){var b,c,h=this,f=a,g=a,d=a;return c=h.tokens.$last(),b=e(c),f=b[0]==null?a:b[0],g=b[1]==null?a:b[1],c,c=g,b=e(c),f=b[0]==null?a:b[0],d=b[1]==null?a:b[1],c,d.$end_pos()})}(f[0],null,f)}(f[0],f)},Opal.modules["opal/errors"]=function(a){var m=a.module,d=a.klass,l=a.send2,k=a.find_super,e=a.def,c=a.truthy,i=a.defs,f=a.rb_plus,j=a.alias,g=a.send,h=[],b=a.nil,n=a.$$$;return a.add_stubs('attr_reader,attr_accessor,new,respond_to?,location=,location,diagnostic=,diagnostic,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,lineno=,line,label=,source_line,expression'),function(q,r){var p=m(q,'Opal'),h=[p].concat(r),o=a.$r(h);return d(h[0],o('StandardError'),'Error'),function(c,f){var a=d(c,f,'GemNotFound');return a.$attr_reader("gem_name"),e(a,'$initialize',function a(d){var e=a.$$p||b,c=this;return a.$$p=null,c.gem_name=d,l(c,k(c,'initialize',a,!1,!0),'initialize',["can't find gem "+d],null)})}(h[0],o('Error')),function(a,b){var c=d(a,b,'CompilationError');return c.$attr_accessor("location")}(h[0],o('Error')),d(h[0],o('CompilationError'),'ParsingError'),d(h[0],o('ParsingError'),'RewritingError'),function(a,b){var c=d(a,b,'SyntaxError');return c.$attr_accessor("location")}(h[0],n('SyntaxError')),i(p,'$opal_location_from_error',function(a){var d=b;return d=o('OpalBacktraceLocation').$new(),c(a['$respond_to?']("location"))&&d['$location='](a.$location()),c(a['$respond_to?']("diagnostic"))&&d['$diagnostic='](a.$diagnostic()),d}),i(p,'$add_opal_location_to_error',function(d,a){var c=b;return c=a.$backtrace().$to_a(),c.$unshift(d.$to_s()),a.$set_backtrace(c),a}),function(h,i){var a=d(h,i,'OpalBacktraceLocation');return a.$attr_accessor("path","lineno","label"),e(a,'$initialize',function(c,d,e){var a,f=this;return c==null&&(c=b),d==null&&(d=b),e==null&&(e=b),a=[c,d,e],f.path=a[0],f.lineno=a[1],f.label=a[2],a},-1),e(a,'$to_s',function(){var d=this,a=b;return a=d.$path(),c(d.$lineno())&&(a=f(a,":"+d.$lineno())),a=f(a,":in "),c(d.$label())?a=f(a,"`"+d.$label()+"'"):a=f(a,"unknown"),a}),j(a,"line","lineno"),e(a,'$diagnostic=',function(d){var a,e=this;return c(d)?(a=[d.$location()],g(e,'location=',a),a[a.length-1]):b}),e(a,'$location=',function(d){var a,e=this;return c(d)?(e['$lineno='](d.$line()),c(d['$respond_to?']("source_line")))?(a=[d.$source_line()],g(e,'label=',a),a[a.length-1]):c(d['$respond_to?']("expression"))?(a=[d.$expression().$source_line()],g(e,'label=',a),a[a.length-1]):b:b})}(h[0],null)}(h[0],h)},Opal.modules["opal/magic_comments"]=function(a){var h=a.module,e=a.const_set,c=a.truthy,d=a.send,i=a.rb_ge,f=a.eqeqeq,j=a.defs,g=[],k=a.$r(g),b=a.nil;return a.add_stubs('freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==='),function(m,n){var k=h(m,'MagicComments'),g=[k].concat(n),l=a.$r(g);return e(g[0],'MAGIC_COMMENT_RE',/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),e(g[0],'EMACS_MAGIC_COMMENT_RE',/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),j(k,'$parse',function(h,e){var g=b,a=b;return g=new Map,c(h)&&(a=h.$loc().$line(),e=e.$take(a)),d(e,'each',[],function(e){var h=b;return e==null&&(e=b),c(a)&&c(i(e.$loc().$line(),a))?b:c((h=e.$text().$scan(l('MAGIC_COMMENT_RE')))['$any?']())||c((h=e.$text().$scan(l('EMACS_MAGIC_COMMENT_RE')))['$any?']())?d(h,'each',[],function(e,a){var c,h=b;return e==null&&(e=b),a==null&&(a=b),(c=[e.$to_sym(),f("true",h=a)||(f("false",h)?!1:a)],d(g,'[]=',c),c[c.length-1])}):b}),g})}(k('Opal'),g)},Opal.modules["opal/source_map/map"]=function(a){var i=a.module,f=a.truthy,b=a.def,k=a.send,l=a.slice,h=a.to_ary,e=a.top,g=[],j=a.$r(g),c=a.nil,d=a.$$$;return a.add_stubs('require,map,to_h,to_json,each,[],delete,to_s,encode64,generated_code'),e.$require("base64"),e.$require("json"),function(j,m){var e=i(j,'Map'),n=[e].concat(m),g=a.$r(n);return b(e,'$to_h',function(){var a=this,b=c;return a.to_h==null&&(a.to_h=c),f(b=a.to_h)?b:a.$map()}),b(e,'$to_json',function(){var e=this,b=c;try{return b=e.$to_h(),b.$to_json()}catch(e){if(a.rescue(e,[d(g('Encoding'),'UndefinedConversionError')]))try{return k(b['$[]']("sections"),'each',[],function(e){e==null&&(e=c);try{return e.$to_json()}catch(c){if(a.rescue(c,[d(g('Encoding'),'UndefinedConversionError')]))try{return b['$[]']("sections").$delete(e)}finally{a.pop_exception(c)}else throw c}}),b.$to_json()}finally{a.pop_exception(e)}else throw e}}),b(e,'$as_json',function(e){var a,b,c=this;return a=l(arguments),b=a,c.$to_h()},-1),b(e,'$to_s',function(){var a=this;return a.$to_h().$to_s()}),b(e,'$to_data_uri_comment',function(){var a=this;return"//# sourceMappingURL=data:application/json;base64,"+g('Base64').$encode64(a.$to_json()).$delete("\n")}),b(e,'$cache',function(){var a=this,b=c;return a.to_h==null&&(a.to_h=c),a.to_h=f(b=a.to_h)?b:a.$map(),a}),b(e,'$marshal_dump',function(){var a=this;return[a.$to_h(),a.$generated_code()]}),b(e,'$marshal_load',function(e){var a,b,d=this;return b=e,a=h(b),d.to_h=a[0]==null?c:a[0],d.generated_code=a[1]==null?c:a[1],b})}(d(j('Opal'),'SourceMap'),g)},Opal.modules["opal/source_map/file"]=function(c){var p=c.klass,d=c.send,e=c.def,b=c.truthy,j=c.ensure_kwargs,i=c.hash_get,n=c.eqeq,g=c.rb_minus,k=c.rb_lt,q=c.to_ary,l=c.rb_plus,m=c.not,h=[],o=c.$r(h),a=c.nil,f=c.$$$;return c.add_stubs('include,attr_reader,new,[]=,size,join,map,to_proc,file,==,encoding,source,encode,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,match?,split,with_index,!,zero?,last'),function(v,s,t){var h=p(v,s,'File'),u=[h].concat(t),r=c.$r(u),o=h.$$prototype;return o.generated_code=o.fragments=o.names=o.names_map=o.relative_mappings=o.absolute_mappings=a,h.$include(f(f(r('Opal'),'SourceMap'),'Map')),h.$attr_reader("fragments"),h.$attr_reader("file"),h.$attr_reader("source"),e(h,'$initialize',function(e,f,g,c){var b=this;return c==null&&(c=a),b.fragments=e,b.file=f,b.source=g,b.names_map=d(r('Hash'),'new',[],function(b,e){var c;return b==null&&(b=a),e==null&&(e=a),(c=[e,b.$size()],d(b,'[]=',c),c[c.length-1])}),b.generated_code=c,b.absolute_mappings=a},-4),e(h,'$generated_code',function(){var c=this,e=a;return c.generated_code=b(e=c.generated_code)?e:d(c.fragments,'map',[],"code".$to_proc()).$join()}),e(h,'$map',function(c){var b,a=this;return c=j(c),b=i(c,"source_root"),b==null&&(b=""),new Map([["version",3],["sourceRoot",b],["sources",[a.$file()]],["sourcesContent",[n(a.$source().$encoding(),f(r('Encoding'),'UTF_8'))?a.$source():a.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",a.$names()],["mappings",f(f(r('Opal'),'SourceMap'),'VLQ').$encode_mappings(a.$relative_mappings())]])},-1),e(h,'$names',function(){var c=this,e=a;return c.names=b(e=c.names)?e:(c.$absolute_mappings(),d(d(c.names_map.$to_a(),'sort_by',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b}),'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b}))}),e(h,'$segment_from_fragment',function(f,m){var h,j=this,l=a,e=a,c=a,i=a,n=a;return l=0,e=g(b(c=f.$line())?c:0,1),b(k(e,0))&&(e=0),i=b(c=f.$column())?c:0,b(f.$source_map_name())?(n=b(c=j.names_map['$[]'](f.$source_map_name().$to_s()))?c:(h=[f.$source_map_name().$to_s(),j.names_map.$size()],d(j.names_map,'[]=',h),h[h.length-1]),[m,l,e,i,n]):[m,l,e,i]}),e(h,'$relative_mappings',function(){var e=this,h=a,c=a,f=a;return e.relative_mappings=b(h=e.relative_mappings)?h:(c=[0,0,0,0,0],f=0,d(e.$absolute_mappings(),'map',[],function(e){return e==null&&(e=a),c['$[]='](0,0),d(e,'map',[],function(d){var h=a,e=a;return d==null&&(d=a),h=[],h['$[]='](0,g(d['$[]'](0),c['$[]'](0))),h['$[]='](1,g(d['$[]'](1),b(e=c['$[]'](1))?e:0)),h['$[]='](2,g(d['$[]'](2),b(e=c['$[]'](2))?e:0)),h['$[]='](3,g(d['$[]'](3),b(e=c['$[]'](3))?e:0)),b(d['$[]'](4))&&(h['$[]='](4,g(d['$[]'](4).$to_int(),(b(e=c['$[]'](4))?e:f).$to_int())),f=d['$[]'](4)),c=d,h})}))}),e(h,'$absolute_mappings',function(){var c=this,g=a,e=a;return c.absolute_mappings=b(g=c.absolute_mappings)?g:(e=[],d(c.$fragments_by_line(),'each',[],function i(g){var j=i.$$s==null?this:i.$$s,c=a,h=a;return g==null&&(g=a),c=0,h=[],d(g,'each',[],function k(g){var d,i,m=k.$$s==null?this:k.$$s,j=a,e=a;return g==null&&(g=a),i=g,d=q(i),j=d[0]==null?a:d[0],e=d[1]==null?a:d[1],i,b(e['$is_a?'](f(r('Opal'),'Fragment')))&&b(e['$skip_source_map?']())||h['$<<'](m.$segment_from_fragment(e,c)),c=l(c,j.$size())},{$$s:j,$$has_top_level_mlhs_arg:!0}),e['$<<'](h)},{$$s:c}),e)}),h.$private(),e(h,'$fragments_by_line',function(){var e=this,c=a;return c=[[]],d(e.$fragments(),'flat_map',[],function(e){var f=a,g=a,h=a;return e==null&&(e=a),f=e.$code(),g=b(/\r/['$match?'](f))?/\r?\n/:"\n",h=f.$split(g,-1),d(h.$each(),'with_index',[],function(d,f){var g=a;return d==null&&(d=a),f==null&&(f=a),g=[d,e],b(f['$zero?']())&&m(d.$size()['$zero?']())?c.$last()['$<<'](g):b(f['$zero?']())&&b(d.$size()['$zero?']())?a:b(d.$size()['$zero?']())?c['$<<']([]):c['$<<']([g])})}),c})}(f(o('Opal'),'SourceMap'),null,h)},Opal.modules["opal/source_map/index"]=function(a){var i=a.klass,j=a.ensure_kwargs,g=a.hash_get,f=a.def,l=a.send,h=a.truthy,c=a.rb_plus,e=[],k=a.$r(e),b=a.nil,d=a.$$$;return a.add_stubs('include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size'),function(k,m,n){var e=i(k,m,'Index'),o=[e].concat(n),p=a.$r(o),q=e.$$prototype;return q.source_maps=b,e.$include(d(d(p('Opal'),'SourceMap'),'Map')),e.$attr_reader("source_maps"),f(e,'$initialize',function(e,c){var a,d=this;return c=j(c),a=g(c,"join"),a==null&&(a=b),d.source_maps=e,d.join=a},-2),f(e,'$map',function(){var f=this,d=b,e=b;return d=0,e=0,new Map([["version",3],["sections",l(f.source_maps,'map',[],function j(g){var i=j.$$s==null?this:j.$$s,k=b,f=b,l=b,m=b;return i.join==null&&(i.join=b),g==null&&(g=b),k=new Map([["offset",new Map([["line",d],["column",e]])],["map",g.$to_h()]]),f=g.$generated_code(),h(i.join)&&(f=c(f,i.join)),l=f.$count("\n"),m=f['$[]'](a.Range.$new(c(f.$rindex("\n"),1),-1,!1)),d=c(d,l),e=c(e,m.$size()),k},{$$s:f})]])})}(d(k('Opal'),'SourceMap'),null,e)},Opal.modules["opal/source_map/vlq"]=function(b){var p=b.module,e=b.const_set,m=b.rb_minus,c=b.send,k=b.range,d=b.truthy,n=b.rb_lt,g=b.rb_plus,i=b.rb_gt,l=b.thrower,f=b.defs,j=b.eqeq,h=[],o=b.$r(h),a=b.nil,q=b.$$$;return b.add_stubs('<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode'),function(r,s){var q=p(r,'VLQ'),o=[q].concat(s),h=b.$r(o);return e(o[0],'VLQ_BASE_SHIFT',5),e(o[0],'VLQ_BASE',1['$<<'](h('VLQ_BASE_SHIFT'))),e(o[0],'VLQ_BASE_MASK',m(h('VLQ_BASE'),1)),e(o[0],'VLQ_CONTINUATION_BIT',h('VLQ_BASE')),e(o[0],'BASE64_DIGITS',"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),e(o[0],'BASE64_VALUES',c(k(0,64,!0),'inject',[new Map],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$[]='](h('BASE64_DIGITS')['$[]'](c),c),b})),f(q,'$encode',function(e){var f=this,b=a;return b=[],c(e,'each',[],function j(f){var k=j.$$s==null?this:j.$$s,e=a;return f==null&&(f=a),e=d(n(f,0))?g(f['$-@']()['$<<'](1),1):f['$<<'](1),function(){try{var f=l('break');return c(k,'loop',[],function g(){var c=a;if(c=e['$&'](h('VLQ_BASE_MASK')),e=e['$>>'](h('VLQ_BASE_SHIFT')),d(i(e,0))&&(c=c['$|'](h('VLQ_CONTINUATION_BIT'))),b['$<<'](h('BASE64_DIGITS')['$[]'](c)),d(i(e,0)))return a;f.$throw(a,g.$$is_lambda)})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}()},{$$s:f}),b.$join()}),f(q,'$decode',function(m){var n=this,l=a,k=a,b=a,e=a,f=a,i=a,c=a;for(l=[],k=m.$split("");d(k['$any?']());){for(b=0,e=0,f=!0;d(f);)i=k.$shift(),d(i)||n.$raise(h('ArgumentError')),c=h('BASE64_VALUES')['$[]'](i),j(c['$&'](h('VLQ_CONTINUATION_BIT')),0)&&(f=!1),c=c['$&'](h('VLQ_BASE_MASK')),b=g(b,c['$<<'](e)),e=g(e,h('VLQ_BASE_SHIFT'));l['$<<'](j(b['$&'](1),1)?b['$>>'](1)['$-@']():b['$>>'](1))}return l}),f(q,'$encode_mappings',function(b){var d=this;return c(b,'map',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c(b,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$encode(b)},{$$s:e}).$join(",")},{$$s:d}).$join(";")}),f(q,'$decode_mappings',function(d){var e=this,b=a;return b=[],c(d.$split(";"),'each_with_index',[],function f(e,d){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),d==null&&(d=a),b['$[]='](d,[]),c(e.$split(","),'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b['$[]'](d)['$<<'](f.$decode(c))},{$$s:g})},{$$s:e}),b})}(q(o('Opal'),'SourceMap'),h)},Opal.modules["opal/source_map"]=function(a){var b=a.module,c=[],d=a.nil;return a.add_stubs('autoload'),function(a,c){var d=b(a,'Opal'),e=[d].concat(c);return function(c){var a=b(c,'SourceMap');return a.$autoload("Map","opal/source_map/map"),a.$autoload("File","opal/source_map/file"),a.$autoload("Index","opal/source_map/index"),a.$autoload("VLQ","opal/source_map/vlq")}(e[0])}(c[0],c)},Opal.modules["opal/compiler"]=function(b){var w=b.module,l=b.defs,v=b.klass,q=b.const_set,f=b.send,d=b.truthy,o=b.not,c=b.def,i=b.eqeqeq,j=b.Opal,m=b.to_ary,x=b.alias,u=b.regexp,s=b.rb_minus,t=b.return_ivar,k=b.slice,r=b.rb_plus,g=b.to_a,p=b.eqeq,h=b.top,n=[],a=b.nil,e=b.$$$;return b.add_stubs('require,compile,new,include,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,compiler_option,===,backtick_javascript?,warning,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,async_await_before_typecasting,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,label=,lines,-,to_i,line,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,backtick_javascript_or_warn?,==,uses_block!,block_name,find_parent_def,cache,source_map'),h.$require("corelib/string/unpack"),h.$require("set"),h.$require("opal/parser"),h.$require("opal/fragment"),h.$require("opal/nodes"),h.$require("opal/eof_content"),h.$require("opal/errors"),h.$require("opal/magic_comments"),h.$require("opal/nodes/closure"),h.$require("opal/source_map"),function(y,z){var n=w(y,'Opal'),h=[n].concat(z),A=b.$r(h);return l(n,'$compile',function(b,a){return a==null&&(a=new Map),A('Compiler').$new(b,a).$compile()},-2),function(B,z,A){var h=v(B,z,'Compiler'),y=[h].concat(A),n=b.$r(y),w=h.$$prototype;return w.option_values=w.options=w.magic_comments=w.backtick_javascript_warned=w.fragments=w.buffer=w.source=w.source_map=w.result=w.helpers=w.method_calls=w.async_await=w.unique=w.indent=w.scope=w.case_stmt=w.handlers=w.requires=w.required_trees=w.autoloads=a,h.$include(e(e(n('Nodes'),'Closure'),'CompilerSupport')),q(y[0],'INDENT'," "),q(y[0],'COMPARE',["<",">","<=",">="].$freeze()),l(h,'$module_name',function(a){var b=this;return a=n('File').$join(n('File').$dirname(a),n('File').$basename(a).$split(".").$first()),b.$Pathname(a).$cleanpath().$to_s()}),l(h,'$compiler_option',function(c,b){var d=this,e=a;return b==null&&(b=new Map),e=b.$fetch("as",c),f(d,'define_method',[e],function a(){var d=a.$$s==null?this:a.$$s;return d.$option_value(c,b)},{$$s:d})},-2),c(h,'$option_value',function(b,i){var h,c=this,j=a,g=a,k=a,e=a;return d(c.option_values['$key?'](b))?c.option_values['$[]'](b):(j=i['$[]']("default"),g=i['$[]']("valid_values"),k=i['$[]']("magic_comment"),e=c.options.$fetch(b,j),d(k)&&d(c.magic_comments['$key?'](b))&&(e=c.magic_comments.$fetch(b)),d(g)&&o(g['$include?'](e))&&c.$raise(n('ArgumentError'),""+("invalid value "+e.$inspect()+" for option "+b.$inspect()+" ")+("(valid values: "+g.$inspect()+")")),(h=[b,e],f(c.option_values,'[]=',h),h[h.length-1]))}),h.$compiler_option("file",new Map([["default","(file)"]])),h.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),h.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),h.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),h.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),h.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),h.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),h.$compiler_option("load",new Map([["default",!1],["as","load?"]])),h.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),h.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),h.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),h.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),h.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),h.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),h.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),h.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),h.$compiler_option("backtick_javascript",new Map([["default",a],["as","backtick_javascript?"],["magic_comment",!0]])),c(h,'$backtick_javascript_or_warn?',function(){var b=this,c=a,e=a;return!!i(!0,c=b['$backtick_javascript?']())||(i(a,c)?(b.backtick_javascript_warned=d(e=b.backtick_javascript_warned)?e:(b.$warning("Backtick operator usage interpreted as intent to embed JavaScript; this code will break in Opal 2.0; add a magic comment: `# backtick_javascript: true`"),!0),!0):!i(!1,c)&&a)}),h.$compiler_option("scope_variables",new Map([["default",[]]])),h.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),h.$attr_reader("result"),h.$attr_reader("fragments"),h.$attr_accessor("scope"),h.$attr_accessor("top_scope"),h.$attr_reader("case_stmt"),h.$attr_reader("eof_content"),h.$attr_reader("comments"),h.$attr_reader("method_calls"),h.$attr_reader("magic_comments"),h.$attr_reader("source"),h.$attr_accessor("dynamic_cache_result"),c(h,'$initialize',function(d,c){var b=this;return c==null&&(c=new Map),b.source=d,b.indent="",b.unique=0,b.options=c,b.comments=n('Hash').$new([]),b.case_stmt=a,b.method_calls=n('Set').$new(),b.option_values=new Map,b.magic_comments=new Map,b.dynamic_cache_result=!1},-2),c(h,'$compile',function(){var b=this;return b.$parse(),b.fragments=f(b,'re_raise_with_location',[],function c(){var b=c.$$s==null?this:c.$$s;return b.sexp==null&&(b.sexp=a),b.$process(b.sexp).$flatten()},{$$s:b}),d(b.fragments.$last().$code()['$end_with?']("\n"))||b.fragments['$<<'](b.$fragment("\n",a,b.$s("newline"))),b.result=f(b.fragments,'map',[],"code".$to_proc()).$join("")}),c(h,'$parse',function(){var c,h,b=this,g=a,i=a,l=a,o=a,k=a;return b.buffer=e(e(j,'Parser'),'SourceBuffer').$new(b.$file(),1),b.buffer['$source='](b.source),b.parser=e(n('Opal'),'Parser').$default_parser(),h=f(b,'re_raise_with_location',[],function c(){var b=c.$$s==null?this:c.$$s;return b.parser==null&&(b.parser=a),b.buffer==null&&(b.buffer=a),b.parser.$tokenize(b.buffer)},{$$s:b}),c=m(h),g=c[0]==null?a:c[0],i=c[1]==null?a:c[1],l=c[2]==null?a:c[2],h,o=d(b['$requirable?']())?"require":d(b['$eval?']())?"eval":"main",b.sexp=f(g,'tap',[],function(c){var b;return c==null&&(c=a),(b=["kind",o],f(c.$meta(),'[]=',b),b[b.length-1])}),d(g.$children().$first().$location())&&(k=g.$children().$first()),b.comments=e(e(e('Parser'),'Source'),'Comment').$associate_locations(k,i),b.magic_comments=n('MagicComments').$parse(k,i),b.eof_content=n('EofContent').$new(l,b.source).$eof()}),c(h,'$source_map',function(){var b=this,c=a;return d(c=b.source_map)?c:e(e(j,'SourceMap'),'File').$new(b.fragments,b.$file(),b.source,b.result)}),c(h,'$helpers',function(){var b=this,c=a;return b.helpers=d(c=b.helpers)?c:n('Set').$new(f(b.$magic_comments()['$[]']("helpers").$to_s().$split(","),'map',[],function(b){return b==null&&(b=a),b.$strip().$to_sym()}))}),c(h,'$record_method_call',function(a){var b=this;return b.method_calls['$<<'](a)}),x(h,"async_await_before_typecasting","async_await"),c(h,'$async_await',function(){var g,b=this,e=a,c=a;return d((g=b.async_await,g!=null&&g!==a)?'instance-variable':a)?b.async_await:(e=b.$async_await_before_typecasting(),b.async_await=i(n('String'),c=e)?b.$async_await_set_to_regexp(f(e.$split(","),'map',[],function(b){return b==null&&(b=a),b.$strip().$to_sym()})):i(n('Array'),c)||i(n('Set'),c)?b.$async_await_set_to_regexp(f(e.$to_a(),'map',[],"to_sym".$to_proc())):i(n('Regexp'),c)||i(!0,c)||i(!1,c)?e:b.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),c(h,'$async_await_set_to_regexp',function(b){return b=f(b,'map',[],function(b){return b==null&&(b=a),n('Regexp').$escape(b.$to_s()).$gsub("\\*",".*?")}),b=b.$join("|"),u(["^(",b,")$"])}),c(h,'$error',function(f,b){var d=this,c=a;return b==null&&(b=a),c=e(j,'SyntaxError').$new(f),c['$location='](e(n('Opal'),'OpalBacktraceLocation').$new(d.$file(),b)),d.$raise(c)},-2),c(h,'$re_raise_with_location',function k(){var l=k.$$p||a,h=this,g=a,c=a,i=a,f=a;k.$$p=null;try{return b.yieldX(l,[])}catch(a){if(b.rescue(a,[n('StandardError'),e(j,'SyntaxError')])){g=a;try{return c=j.$opal_location_from_error(g),c['$path='](h.$file()),d(i=c.$label())?i:c['$label='](h.source.$lines()['$[]'](s(c.$line().$to_i(),1)).$strip()),f=e(j,'SyntaxError').$new(g.$message()),f.$set_backtrace(g.$backtrace()),j.$add_opal_location_to_error(c,f),h.$raise(f)}finally{b.pop_exception(a)}}else throw a}}),c(h,'$warning',function(d,b){var c=this;return b==null&&(b=a),c.$warn("warning: "+d+" -- "+c.$file()+":"+b)},-2),c(h,'$parser_indent',t("indent")),c(h,'$s',function(c,f){var a,b;return a=k(arguments,1),b=a,e(e(j,'AST'),'Node').$new(c,b)},-2),c(h,'$fragment',function(c,d,b){return b==null&&(b=a),n('Fragment').$new(c,d,b)},-3),c(h,'$unique_temp',function(b){var c=this,e=a;return b=b.$to_s(),d(b)&&o(b['$empty?']())&&(b=b.$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\$]/,"$")),e=c.unique=r(c.unique,1),""+(d(b['$start_with?']("$"))?a:"$")+b+"$"+e}),c(h,'$helper',function(a){var b=this;return b.$helpers()['$<<'](a)}),c(h,'$indent',function d(){var g=d.$$p||a,c=this,e=a,f=a;return d.$$p=null,e=c.indent,c.indent=r(c.indent,n('INDENT')),c.space="\n"+c.indent,f=b.yieldX(g,[]),c.indent=e,c.space="\n"+c.indent,f}),c(h,'$with_temp',function d(){var g=d.$$p||a,e=this,c=a,f=a;return d.$$p=null,c=e.scope.$new_temp(),f=b.yield1(g,c),e.scope.$queue_temp(c),f}),c(h,'$in_while',function d(){var e=d.$$p||a,c=this,f=a;return d.$$p=null,!(e!==a)?a:(c.while_loop=c.scope.$push_while(),f=b.yieldX(e,[]),c.scope.$pop_while(),f)}),c(h,'$in_case',function d(){var e=d.$$p||a,c=this,f=a;return d.$$p=null,!(e!==a)?a:(f=c.case_stmt,c.case_stmt=new Map,b.yieldX(e,[]),c.case_stmt=f)}),c(h,'$in_while?',function(){var a=this;return a.scope['$in_while?']()}),c(h,'$process',function(c,e){var b=this,f=a;return e==null&&(e="expr"),d(c['$nil?']())?b.$fragment("",b.$scope()):d(f=b.$handlers()['$[]'](c.$type()))?f.$new(c,e,b).$compile_to_fragments():b.$error("Unsupported sexp: "+c.$type())},-2),c(h,'$handlers',function(){var b=this,c=a;return b.handlers=d(c=b.handlers)?c:e(e(n('Opal'),'Nodes'),'Base').$handlers()}),c(h,'$requires',function(){var b=this,c=a;return b.requires=d(c=b.requires)?c:[]}),c(h,'$required_trees',function(){var b=this,c=a;return b.required_trees=d(c=b.required_trees)?c:[]}),c(h,'$autoloads',function(){var b=this,c=a;return b.autoloads=d(c=b.autoloads)?c:[]}),c(h,'$returns',function(c){var b,e,h=this,o=a,n=a,m=a,j=a,i=a,q=a,r=a,s=a,t=a,u=a,v=a,w=a,x=a,y=a,l=a;if(!d(c))return h.$returns(h.$s("nil"));switch(c.$type().valueOf()){case"undef":return h.$returns(c.$updated("begin",[c,h.$s("nil")]));case"break":case"next":case"redo":case"retry":return c;case"yield":return c.$updated("returnable_yield",a);case"when":return b=[].concat(g(c)),e=b.length-1,e=e<0?0:e,o=k(b,0,e),n=b[e]==null?a:b[e],b,c.$updated(a,[].concat(g(o)).concat([h.$returns(n)]));case"rescue":return b=[].concat(g(c)),m=b[0]==null?a:b[0],e=b.length-1,e=e<1?1:e,j=k(b,1,e),i=b[e]==null?a:b[e],b,j=f(j,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$returns(b)},{$$s:h}),d(i)&&(i=h.$returns(i)),c.$updated(a,[h.$returns(m)].concat(g(j)).concat([i]));case"resbody":return b=[].concat(g(c)),q=b[0]==null?a:b[0],r=b[1]==null?a:b[1],s=b[2]==null?a:b[2],b,c.$updated(a,[q,r,h.$returns(s)]);case"ensure":return b=[].concat(g(c)),t=b[0]==null?a:b[0],u=b[1]==null?a:b[1],b,c=c.$updated(a,[h.$returns(t),u]),c.$updated("js_return",[c]);case"begin":case"kwbegin":return b=[].concat(g(c)),e=b.length-1,e=e<0?0:e,v=k(b,0,e),w=b[e]==null?a:b[e],b,c.$updated(a,[].concat(g(v)).concat([h.$returns(w)]));case"while":case"until":case"while_post":case"until_post":return c;case"return":case"js_return":case"returnable_yield":return c;case"xstr":return d(h['$backtick_javascript_or_warn?']())?c.$updated(a,[f(h,'s',["js_return"].concat(g(c.$children())))]):c;break;case"if":return b=[].concat(g(c)),x=b[0]==null?a:b[0],y=b[1]==null?a:b[1],l=b[2]==null?a:b[2],b,f(c.$updated(a,[x,h.$returns(y),h.$returns(l)]),'tap',[],function(c){var b;return c==null&&(c=a),(b=["returning",!0],f(c.$meta(),'[]=',b),b[b.length-1])});default:return p(c.$type(),"send")&&p(c.$children()['$[]'](1),"debugger")?c.$updated("begin",[c,h.$s("js_return",h.$s("nil"))]):c.$updated("js_return",[c])}}),c(h,'$handle_block_given_call',function(e){var b=this,c=a;return b.scope['$uses_block!'](),d(b.scope.$block_name())?b.$fragment("("+b.scope.$block_name()+" !== nil)",b.$scope(),e):d(c=b.scope.$find_parent_def())&&d(c.$block_name())?b.$fragment("("+c.$block_name()+" !== nil)",c,e):b.$fragment("false",c,e)}),c(h,'$marshal_dump',function(){var b=this,c=a;return[b.options,b.option_values,b.source_map=d(c=b.source_map)?c:b.$source_map().$cache(),b.magic_comments,b.result,b.required_trees,b.requires,b.autoloads]}),c(h,'$marshal_load',function(e){var b,d,c=this;return d=e,b=m(d),c.options=b[0]==null?a:b[0],c.option_values=b[1]==null?a:b[1],c.source_map=b[2]==null?a:b[2],c.magic_comments=b[3]==null?a:b[3],c.result=b[4]==null?a:b[4],c.required_trees=b[5]==null?a:b[5],c.requires=b[6]==null?a:b[6],c.autoloads=b[7]==null?a:b[7],d})}(h[0],null,h)}(n[0],n)},Opal.modules["opal/erb"]=function(a){var e=a.module,m=a.defs,h=a.klass,i=a.const_set,b=a.def,g=a.truthy,j=a.rb_plus,f=a.send,k=a.regexp,l=a.top,d=[],c=a.nil;return a.add_stubs('require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub'),l.$require("opal/compiler"),function(l,n){var o=e(l,'Opal'),d=[o].concat(n);return function(n,o){var l=e(n,'ERB'),d=[l].concat(o),p=a.$r(d);return m(l,'$compile',function(b,a){return a==null&&(a="(erb)"),p('Compiler').$new(b,a).$compile()},-2),function(p,n,o){var d=h(p,n,'Compiler'),m=[d].concat(o),e=a.$r(m),l=d.$$prototype;return l.prepared_source=l.source=l.file_name=c,i(m[0],'BLOCK_EXPR',/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),b(d,'$initialize',function(d,b){var a,c=this;return b==null&&(b="(erb)"),a=[d,b,d],c.source=a[0],c.file_name=a[1],c.result=a[2],a},-2),b(d,'$prepared_source',function(){var b=this,d=c,a=c;return b.prepared_source=g(d=b.prepared_source)?d:(a=b.source,a=b.$fix_quotes(a),a=b.$find_contents(a),a=b.$find_code(a),a=b.$wrap_compiled(a),a=b.$require_erb(a),a)}),b(d,'$compile',function(){var a=this;return e('Opal').$compile(a.$prepared_source())}),b(d,'$fix_quotes',function(a){return a.$gsub('"','\\"')}),b(d,'$require_erb',function(a){return j('require "erb";',a)}),b(d,'$find_contents',function(a){return f(a,'gsub',[/<%=([\s\S]+?)%>/],function(){var a=c;return a=e('Regexp').$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"'),g(a['$=~'](e('BLOCK_EXPR')))?'")\noutput_buffer.append= '+a+'\noutput_buffer.append("':'")\noutput_buffer.append=('+a+')\noutput_buffer.append("'})}),b(d,'$find_code',function(a){return f(a,'gsub',[/<%([\s\S]+?)%>/],function(){var a=c;return a=e('Regexp').$last_match(1).$gsub(/\\"/,'"'),'")\n'+a+'\noutput_buffer.append("'})}),b(d,'$wrap_compiled',function(b){var d=this,a=c;return a=d.file_name.$sub(k(["\\.opalerb",e('REGEXP_END')]),""),"Template.new('"+a+"') do |output_buffer|\noutput_buffer.append(\""+b+'")\noutput_buffer.join\nend\n'})}(d[0],null,d)}(d[0],d)}(d[0],d)},Opal.modules["opal-parser"]=function(a){var l=a.call,n=a.raise,j=a.module,f=a.Opal,e=a.truthy,i=a.rb_plus,g=a.def,p=a.thrower,c=a.top,d=[],k=a.$r(d),b=a.nil,m=a.$$$,o;a.add_stubs('require,coerce_to!,merge,new,compile,[],+,to_data_uri_comment,source_map,js_eval'),c.$require("corelib/string/unpack"),c.$require("opal/compiler"),c.$require("opal/erb"),c.$require("opal/version"),function(h,k){var c=j(h,'Kernel'),l=[c].concat(k),d=a.$r(l);return g(c,'$eval',function(g,c,h,o){var p=this,l=b,n=b,j=b,k=b,a=b;return c==null&&(c=b),h==null&&(h=b),o==null&&(o=b),g=f['$coerce_to!'](g,d('String'),"to_str"),l=new Map([["file",e(n=h)?n:"(eval)"],["eval",!0]]),j=new Map([['arity_check',!1]]).$merge(l),k=m(d('Opal'),'Compiler').$new(g,j),a=k.$compile(),e(j['$[]']("no_source_map"))||(a=i(a,k.$source_map().$to_data_uri_comment())),e(c)?c.$js_eval(a):function(b){return eval(a)}(p)},-2),g(c,'$require_remote',function(e){var b,d,c;try{return d=this,c=new XMLHttpRequest,c.open("GET",e,!1),c.send(''),(b=c.responseText,typeof a.compile=='function'?eval(a.compile(b,{scope_variables:["url"],arity_check:!1,file:'(eval)',eval:!0})):d.$eval(b))}catch(b){if(b===a.t_eval_return)return b.$v;throw b}})}(d[0],d),o=Object.hasOwn||l.bind(Object.prototype.hasOwnProperty),a.compile=function(c,b){try{return c=f['$coerce_to!'](c,k('String'),"to_str"),b&&(b=a.hash(b)),a.Opal.$compile(c,b)}catch(b){if(b.$$class===a.Opal.SyntaxError){var d=a.SyntaxError.$new(b.message);throw d.$set_backtrace(b.$backtrace()),d}throw b}},a.eval=function(b,c){return eval(a.compile(b,c))};function h(){for(var c=0,e=d.length,b,d=document.getElementsByTagName('script');c=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell'),function(y,w,x){var i=s(y,w,'StringIO'),v=[i].concat(x),r=a.$r(v),u=i.$$prototype;return u.position=u.string=b,m(v[0],'VERSION',"0"),n(i,'$open',function e(a,c){var g=e.$$p||b,h=this,d=b,f=b;return e.$$p=null,a==null&&(a=""),c==null&&(c=b),d=h.$new(a,c),f=g.$call(d),d.$close(),f},-1),i.$attr_accessor("string"),d(i,'$initialize',function c(d,e){var f=c.$$p||b,a=this;return c.$$p=null,d==null&&(d=""),e==null&&(e="rw"),a.string=d,a.position=0,q(a,t(a,'initialize',c,!1,!0),'initialize',[b,e],null)},-1),d(i,'$eof?',function(){var a=this;return a.$check_readable(),a.position['$=='](a.string.$length())}),d(i,'$seek',function(d,g){var a=this,i=b;return g==null&&(g=f(r('IO'),'SEEK_SET')),a.read_buffer="",h(f(r('IO'),'SEEK_SET'),i=g)?(e(p(d,0))||a.$raise(f(r('Errno'),'EINVAL')),a.position=d):h(f(r('IO'),'SEEK_CUR'),i)?e(j(c(a.position,d),a.string.$length()))?a.position=a.string.$length():a.position=c(a.position,d):h(f(r('IO'),'SEEK_END'),i)?e(j(d,a.string.$length()))?a.position=0:a.position=k(a.position,d):b,0},-2),d(i,'$tell',l("position")),d(i,'$rewind',function(){var a=this;return a.$seek(0)}),d(i,'$write',function(e){var d=this,f=b,g=b;return d.$check_writable(),d.read_buffer="",e=d.$String(e),o(d.string.$length(),d.position)?(d.string=c(d.string,e),d.position=c(d.position,e.$length())):(f=d.string['$[]'](a.Range.$new(0,k(d.position,1),!1)),g=d.string['$[]'](a.Range.$new(c(d.position,e.$length()),-1,!1)),d.string=c(c(f,e),g),d.position=c(d.position,e.$length()))}),d(i,'$read',function(f,g){var d=this,i=b,h=b;return f==null&&(f=b),g==null&&(g=b),d.$check_readable(),e(d['$eof?']())?b:(i=e(f)?(h=d.string['$[]'](d.position,f),d.position=c(d.position,f),e(j(d.position,d.string.$length()))?d.position=d.string.$length():b,h):(h=d.string['$[]'](a.Range.$new(d.position,-1,!1)),d.position=d.string.$length(),h),e(g))?g.$write(i):i},-1),d(i,'$sysread',function(b){var a=this;return a.$check_readable(),a.$read(b)}),g(i,"eof","eof?"),g(i,"pos","tell"),g(i,"pos=","seek"),g(i,"readpartial","read")}(i[0],r('IO'),i)},Opal.modules.prettyprint=function(c){var g=c.klass,e=c.send,l=c.rb_times,k=c.defs,d=c.truthy,b=c.def,i=c.rb_lt,f=c.rb_plus,h=c.rb_minus,r=c.eqeqeq,q=c.assign_ivar_val,m=c.return_ivar,n=c.slice,o=c.thrower,p=c.return_val,j=[],a=c.nil;return c.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(x,v,w){var j=g(x,v,'PrettyPrint'),u=[j].concat(w),s=c.$r(u),t=j.$$prototype;return t.group_stack=t.maxwidth=t.output_width=t.buffer_width=t.group_queue=t.buffer=t.output=t.newline=t.genspace=t.indent=a,k(s('PrettyPrint'),'$format',function i(b,d,f,g){var j=i.$$p||a,k=this,h=a;return i.$$p=null,b==null&&(b="".$dup()),d==null&&(d=79),f==null&&(f="\n"),g==null&&(g=e(k,'lambda',[],function(b){return b==null&&(b=a),l(" ",b)})),h=e(s('PrettyPrint'),'new',[b,d,f],g.$to_proc()),c.yield1(j,h),h.$flush(),b},-1),k(s('PrettyPrint'),'$singleline_format',function d(b,e,f,g){var i=d.$$p||a,h=a;return d.$$p=null,b==null&&(b="".$dup()),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h=s('SingleLine').$new(b),c.yield1(i,h),b},-1),b(j,'$initialize',function i(c,f,g){var k=i.$$p||a,b=this,j=a,h=a;return i.$$p=null,c==null&&(c="".$dup()),f==null&&(f=79),g==null&&(g="\n"),b.output=c,b.maxwidth=f,b.newline=g,b.genspace=d(j=k)?j:e(b,'lambda',[],function(b){return b==null&&(b=a),l(" ",b)}),b.output_width=0,b.buffer_width=0,b.buffer=[],h=s('Group').$new(0),b.group_stack=[h],b.group_queue=s('GroupQueue').$new(h),b.indent=0},-1),j.$attr_reader("output"),j.$attr_reader("maxwidth"),j.$attr_reader("newline"),j.$attr_reader("genspace"),j.$attr_reader("indent"),j.$attr_reader("group_queue"),b(j,'$current_group',function(){var a=this;return a.group_stack.$last()}),b(j,'$break_outmost_groups',function(){for(var b=this,g=a,c=a,j=a,e=a;d(i(b.maxwidth,f(b.output_width,b.buffer_width)));){if(!d(g=b.group_queue.$deq()))return a;while(!d(g.$breakables()['$empty?']()))c=b.buffer.$shift(),b.output_width=c.$output(b.output,b.output_width),b.buffer_width=h(b.buffer_width,c.$width());while(d(d(j=b.buffer['$empty?']()['$!']())?s('Text')['$==='](b.buffer.$first()):j))e=b.buffer.$shift(),b.output_width=e.$output(b.output,b.output_width),b.buffer_width=h(b.buffer_width,e.$width())}}),b(j,'$text',function(g,c){var b=this,e=a;return c==null&&(c=g.$length()),d(b.buffer['$empty?']())?(b.output['$<<'](g),b.output_width=f(b.output_width,c)):(e=b.buffer.$last(),r(s('Text'),e)||(e=s('Text').$new(),b.buffer['$<<'](e)),e.$add(g,c),b.buffer_width=f(b.buffer_width,c),b.$break_outmost_groups())},-2),b(j,'$fill_breakable',function(a,b){var c=this;return a==null&&(a=" "),b==null&&(b=a.$length()),e(c,'group',[],function c(){var d=c.$$s==null?this:c.$$s;return d.$breakable(a,b)},{$$s:c})},-1),b(j,'$breakable',function(c,e){var b=this,g=a;return c==null&&(c=" "),e==null&&(e=c.$length()),g=b.group_stack.$last(),d(g['$break?']())?(b.$flush(),b.output['$<<'](b.newline),b.output['$<<'](b.genspace.$call(b.indent)),b.output_width=b.indent,b.buffer_width=0):(b.buffer['$<<'](s('Breakable').$new(c,e,b)),b.buffer_width=f(b.buffer_width,e),b.$break_outmost_groups())},-1),b(j,'$group',function j(i,d,f,g,h){var k=j.$$p||a,b=this;return j.$$p=null,i==null&&(i=0),d==null&&(d=""),f==null&&(f=""),g==null&&(g=d.$length()),h==null&&(h=f.$length()),b.$text(d,g),e(b,'group_sub',[],function a(){var b=a.$$s==null?this:a.$$s;return e(b,'nest',[i],function(){return c.yieldX(k,[])})},{$$s:b}),b.$text(f,h)},-1),b(j,'$group_sub',function g(){var h=g.$$p||a,b=this,e=a;return g.$$p=null,e=s('Group').$new(f(b.group_stack.$last().$depth(),1)),b.group_stack.$push(e),b.group_queue.$enq(e),function(){try{return c.yieldX(h,[])}finally{b.group_stack.$pop(),d(e.$breakables()['$empty?']())?b.group_queue.$delete(e):a}}()}),b(j,'$nest',function d(e){var g=d.$$p||a,b=this;return d.$$p=null,b.indent=f(b.indent,e),function(){try{return c.yieldX(g,[])}finally{b.indent=h(b.indent,e)}}()}),b(j,'$flush',function(){var b=this;return e(b.buffer,'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.output==null&&(b.output=a),b.output_width==null&&(b.output_width=a),c==null&&(c=a),b.output_width=c.$output(b.output,b.output_width)},{$$s:b}),b.buffer.$clear(),b.buffer_width=0}),function(h,i){var c=g(h,i,'Text'),d=c.$$prototype;return d.objs=d.width=a,b(c,'$initialize',function(){var a=this;return a.objs=[],a.width=0}),c.$attr_reader("width"),b(c,'$output',function(c,d){var b=this;return e(b.objs,'each',[],function(b){return b==null&&(b=a),c['$<<'](b)}),f(d,b.width)}),b(c,'$add',function(b,c){var a=this;return a.objs['$<<'](b),a.width=f(a.width,c)})}(u[0],null),function(h,i){var c=g(h,i,'Breakable'),e=c.$$prototype;return e.group=e.pp=e.indent=e.obj=e.width=a,b(c,'$initialize',function(c,d,b){var a=this;return a.obj=c,a.width=d,a.pp=b,a.indent=b.$indent(),a.group=b.$current_group(),a.group.$breakables().$push(a)}),c.$attr_reader("obj"),c.$attr_reader("width"),c.$attr_reader("indent"),b(c,'$output',function(b,c){var a=this;return a.group.$breakables().$shift(),d(a.group['$break?']())?(b['$<<'](a.pp.$newline()),b['$<<'](a.pp.$genspace().$call(a.indent)),a.indent):(d(a.group.$breakables()['$empty?']())&&a.pp.$group_queue().$delete(a.group),b['$<<'](a.obj),f(c,a.width))})}(u[0],null),function(e,f){var c=g(e,f,'Group');return b(c,'$initialize',function(b){var a=this;return a.depth=b,a.breakables=[],a.break=!1}),c.$attr_reader("depth"),c.$attr_reader("breakables"),b(c,'$break',q("break",!0)),b(c,'$break?',m("break")),b(c,'$first?',function(){var b,c=this;return!d((b=c.first,b!=null&&b!==a)?'instance-variable':a)&&(c.first=!1,!0)})}(u[0],null),function(f,j){var c=g(f,j,'GroupQueue'),k=c.$$prototype;return k.queue=a,b(c,'$initialize',function(g){var b,c,d=this;return b=n(arguments),c=b,d.queue=[],e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$enq(b)},{$$s:d})},-1),b(c,'$enq',function(e){var b=this,c=a;for(c=e.$depth();!d(i(c,b.queue.$length()));)b.queue['$<<']([]);return b.queue['$[]'](c)['$<<'](e)}),b(c,'$deq',function(){var b,c;try{return b=o('return'),c=this,e(c.queue,'each',[],function(c){return c==null&&(c=a),e(h(c.$length(),1),'downto',[0],function g(e){var f=a;if(e==null&&(e=a),d(c['$[]'](e).$breakables()['$empty?']()))return a;f=c['$slice!'](e,1).$first(),f.$break(),b.$throw(f,g.$$is_lambda)},{$$ret:b}),e(c,'each',[],function(b){return b==null&&(b=a),b.$break()}),c.$clear()}),a}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}),b(c,'$delete',function(a){var b=this;return b.queue['$[]'](a.$depth()).$delete(a)})}(u[0],null),function(f,h){var d=g(f,h,'SingleLine'),e=d.$$prototype;return e.output=e.first=a,b(d,'$initialize',function(e,b,c){var d=this;return b==null&&(b=a),c==null&&(c=a),d.output=e,d.first=[!0]},-2),b(d,'$text',function(c,b){var d=this;return b==null&&(b=a),d.output['$<<'](c)},-2),b(d,'$breakable',function(b,c){var d=this;return b==null&&(b=" "),c==null&&(c=a),d.output['$<<'](b)},-1),b(d,'$nest',function b(e){var d=b.$$p||a;return b.$$p=null,c.yieldX(d,[])}),b(d,'$group',function f(i,d,e,g,h){var j=f.$$p||a,b=this;return f.$$p=null,i==null&&(i=a),d==null&&(d=""),e==null&&(e=""),g==null&&(g=a),h==null&&(h=a),b.first.$push(!0),b.output['$<<'](d),c.yieldX(j,[]),b.output['$<<'](e),b.first.$pop()},-1),b(d,'$flush',p(a)),b(d,'$first?',function(){var b=this,c=a;return c=b.first['$[]'](-1),b.first['$[]='](-1,!1),c})}(u[0],null)}(j[0],null,j)},Opal.modules.pp=function(c){var h=c.klass,i=c.gvars,b=c.send,n=c.defs,m=c.slice,p=c.to_a,o=c.module,l=c.eqeq,d=c.def,e=c.truthy,v=c.rb_plus,s=c.eqeqeq,t=c.neqeq,u=c.not,q=c.rb_gt,r=c.rb_le,j=c.top,f=[],g=c.$r(f),a=c.nil,k=c.$$$;return c.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'),j.$require("thread"),j.$require("stringio"),j.$require("prettyprint"),function(q,r,w){var j=h(q,r,'PP'),f=[j].concat(w),g=c.$r(f);return n(g('PP'),'$pp',function(f,c,e){var d=a;return i.stdout==null&&(i.stdout=a),c==null&&(c=i.stdout),e==null&&(e=79),d=g('PP').$new(c,e),b(d,'guard_inspect_key',[],function(){return d.$pp(f)}),d.$flush(),c['$<<']("\n")},-2),n(g('PP'),'$singleline_pp',function(e,c){var d=a;return i.stdout==null&&(i.stdout=a),c==null&&(c=i.stdout),d=g('SingleLine').$new(c),b(d,'guard_inspect_key',[],function(){return d.$pp(e)}),d.$flush(),c},-2),n(g('PP'),'$mcall',function c(i,f,g,j){var h=c.$$p||a,e,d;return c.$$p=null,e=m(arguments,3),d=e,b(f.$instance_method(g),'bind_call',[i].concat(p(d)),h.$to_proc())},-4),j.sharing_detection=!1,function(a,b){return a.$attr_accessor("sharing_detection")}(c.get_singleton_class(j),f),function(h,i){var g=o(h,'PPMethods'),j=[g].concat(i),f=c.$r(j);return d(g,'$guard_inspect_key',function e(){var d,h=e.$$p||a,g=a;return e.$$p=null,l(f('Thread').$current()['$[]']("__recursive_key__"),a)&&f('Thread').$current()['$[]=']("__recursive_key__",(new Map).$compare_by_identity()),l(f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),a)&&f('Thread').$current()['$[]']("__recursive_key__")['$[]=']("inspect",(new Map).$compare_by_identity()),g=f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),function(){try{return f('Thread').$current()['$[]']("__recursive_key__")['$[]=']("inspect",(new Map).$compare_by_identity()),c.yieldX(h,[])}finally{d=["inspect",g],b(f('Thread').$current()['$[]']("__recursive_key__"),'[]=',d),d[d.length-1]}}()}),d(g,'$check_inspect_key',function(d){var b=a,c=a;return e(b=e(c=f('Thread').$current()['$[]']("__recursive_key__"))?f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"):c)?f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$include?'](d):b}),d(g,'$push_inspect_key',function(c){var a;return a=[c,!0],b(f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),'[]=',a),a[a.length-1]}),d(g,'$pop_inspect_key',function(a){return f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect").$delete(a)}),d(g,'$pp',function(c){var g,d=this;return c===null?(d.$text("null"),a):c===void 0?(d.$text("undefined"),a):c.$$class===void 0?(d.$text(Object.prototype.toString.apply(c)),a):(e((g=k('::','Delegator','skip_raise'))?'constant':a)&&e(c['$is_a?'](k('Delegator')))&&(c=c.$__getobj__()),e(d.$check_inspect_key(c)))?(b(d,'group',[],function a(){var b=a.$$s==null?this:a.$$s;return c.$pretty_print_cycle(b)},{$$s:d}),a):function(){try{return d.$push_inspect_key(c),b(d,'group',[],function a(){var b=a.$$s==null?this:a.$$s;return c.$pretty_print(b)},{$$s:d})}finally{e(f('PP').$sharing_detection())?a:d.$pop_inspect_key(c)}}()},-1),d(g,'$object_group',function c(d){var e=c.$$p||a,f=this;return c.$$p=null,b(f,'group',[1,v("#<",d.$class().$name()),">"],e.$to_proc())}),d(g,'$object_address_group',function d(e){var g=d.$$p||a,h=this,c=a;return d.$$p=null,c=f('Kernel').$instance_method("to_s").$bind_call(e),c=c.$chomp(">"),b(h,'group',[1,c,">"],g.$to_proc())}),d(g,'$comma_breakable',function(){var a=this;return a.$text(","),a.$breakable()}),d(g,'$seplist',function h(l,d,g){var k=h.$$p||a,i=this,j=a,f=a;return h.$$p=null,d==null&&(d=a),g==null&&(g="each"),d=e(j=d)?j:b(i,'lambda',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$comma_breakable()},{$$s:i}),f=!0,b(l,'__send__',[g],function(h){var a,b;return a=m(arguments),b=a,e(f)?f=!1:d.$call(),c.yieldX(k,p(b))},-1)},-2),d(g,'$pp_object',function(c){var d=this;return b(d,'object_address_group',[c],function e(){var d=e.$$s==null?this:e.$$s;return b(d,'seplist',[c.$pretty_print_instance_variables(),b(d,'lambda',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$text(",")},{$$s:d})],function g(d){var e=g.$$s==null?this:g.$$s;return d==null&&(d=a),e.$breakable(),s(f('Symbol'),d)&&(d=d.$to_s()),e.$text(d),e.$text("="),b(e,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return b.$breakable(""),b.$pp(c.$instance_eval(d))},{$$s:e})},{$$s:d})},{$$s:d})}),d(g,'$pp_hash',function(d){var c=this;return b(c,'group',[1,"{","}"],function c(){var e=c.$$s==null?this:c.$$s;return b(e,'seplist',[d,a,"each_pair"],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),b(f,'group',[],function e(){var a=e.$$s==null?this:e.$$s;return a.$pp(c),a.$text("=>"),b(a,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return b.$breakable(""),b.$pp(d)},{$$s:a})},{$$s:f})},{$$s:e})},{$$s:c})})}(f[0],f),j.$include(g('PPMethods')),function(b,d,e){var a=h(b,d,'SingleLine'),f=[a].concat(e),g=c.$r(f);return a.$include(g('PPMethods'))}(f[0],k(g('PrettyPrint'),'SingleLine'),f),function(h,i){var g=o(h,'ObjectMixin'),j=[g].concat(i),f=c.$r(j);return d(g,'$pretty_print',function(g){var b=this,h=a,d=a;h=f('Object').$instance_method("method");try{d=h.$bind_call(b,"inspect")}catch(b){if(c.rescue(b,[f('NameError')]))try{a}finally{c.pop_exception(b)}else throw b}return e(d)&&t(d.$owner(),f('Kernel'))?g.$text(b.$inspect()):u(d)&&e(b['$respond_to?']("inspect"))?g.$text(b.$inspect()):g.$pp_object(b)}),d(g,'$pretty_print_cycle',function(a){var c=this;return b(a,'object_address_group',[c],function(){return a.$breakable(),a.$text("...")})}),d(g,'$pretty_print_instance_variables',function(){var a=this;return a.$instance_variables().$sort()}),d(g,'$pretty_print_inspect',function(){var a=this;return l(f('Object').$instance_method("method").$bind_call(a,"pretty_print").$owner(),k(f('PP'),'ObjectMixin'))&&a.$raise("pretty_print is not overridden for "+a.$class()),f('PP').$singleline_pp(a,"".$dup())})}(f[0],f)}(f[0],g('PrettyPrint'),f),function(f,g){var c=h(f,g,'Array');return d(c,'$pretty_print',function(c){var d=this;return b(c,'group',[1,"[","]"],function d(){var e=d.$$s==null?this:d.$$s;return b(c,'seplist',[e],function(b){return b==null&&(b=a),c.$pp(b)})},{$$s:d})}),d(c,'$pretty_print_cycle',function(a){var b=this;return a.$text(e(b['$empty?']())?"[]":"[...]")})}(f[0],null),function(b,c){var a=h(b,c,'Hash');return d(a,'$pretty_print',function(a){var b=this;return a.$pp_hash(b)}),d(a,'$pretty_print_cycle',function(a){var b=this;return a.$text(e(b['$empty?']())?"{}":"{...}")})}(f[0],null),function(e,g){var h=[e].concat(g),f=c.$r(h);return d(e,'$pretty_print',function(d){var c=a;return c=new Map,b(f('ENV').$keys().$sort(),'each',[],function(d){var e;return d==null&&(d=a),(e=[d,f('ENV')['$[]'](d)],b(c,'[]=',e),e[e.length-1])}),d.$pp_hash(c)})}(c.get_singleton_class(g('ENV')),f),function(g,i,j){var f=h(g,i,'Struct'),k=[f].concat(j),e=c.$r(k);return d(f,'$pretty_print',function(c){var d=this;return b(c,'group',[1,d.$sprintf("#"],function f(){var d=f.$$s==null?this:f.$$s;return b(c,'seplist',[e('PP').$mcall(d,e('Struct'),"members"),b(d,'lambda',[],function(){return c.$text(",")})],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=a),c.$breakable(),c.$text(d.$to_s()),c.$text("="),b(c,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return c.$breakable(""),c.$pp(b['$[]'](d))},{$$s:f})},{$$s:d})},{$$s:d})}),d(f,'$pretty_print_cycle',function(b){var a=this;return b.$text(a.$sprintf("#",e('PP').$mcall(a,e('Kernel'),"class").$name()))})}(f[0],null,f),function(b,c){var f=h(b,c,'Range');return d(f,'$pretty_print',function(b){var c=this;return b.$pp(c.$begin()),b.$breakable(""),b.$text(e(c['$exclude_end?']())?"...":".."),b.$breakable(""),e(c.$end())?b.$pp(c.$end()):a})}(f[0],null),function(c,f){var g=h(c,f,'String');return d(g,'$pretty_print',function(c){var d=this,f=a;return f=d.$lines(),e(q(f.$size(),1))?b(c,'group',[0,"",""],function d(){var e=d.$$s==null?this:d.$$s;return b(c,'seplist',[f,b(e,'lambda',[],function(){return c.$text(" +"),c.$breakable()})],function(b){return b==null&&(b=a),c.$pp(b)})},{$$s:d}):c.$text(d.$inspect())})}(f[0],null),function(f,g){var i=h(f,g,'MatchData');return d(i,'$pretty_print',function(d){var g=this,f=a;return f=[],b(g.$regexp().$named_captures(),'each',[],function(c,d){return c==null&&(c=a),d==null&&(d=a),b(d,'each',[],function(e){var d;return e==null&&(e=a),(d=[e,c],b(f,'[]=',d),d[d.length-1])})}),b(d,'object_group',[g],function h(){var g=h.$$s==null?this:h.$$s;return d.$breakable(),b(d,'seplist',[c.Range.$new(0,g.$size(),!0),b(g,'lambda',[],function(){return d.$breakable()})],function c(b){var g=c.$$s==null?this:c.$$s;return b==null&&(b=a),l(b,0)?d.$pp(g['$[]'](b)):(e(f['$[]'](b))?d.$text(f['$[]'](b)):d.$pp(b),d.$text(":"),d.$pp(g['$[]'](b)))},{$$s:g})},{$$s:g})})}(f[0],null),function(b,d,e){var a=h(b,d,'Object'),f=[a].concat(e),g=c.$r(f);return a.$include(k(g('PP'),'ObjectMixin'))}(f[0],g('BasicObject'),f),b([g('Numeric'),g('Symbol'),g('FalseClass'),g('TrueClass'),g('NilClass'),g('Module')],'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(c,'class_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return d(b,'$pretty_print_cycle',function(a){var b=this;return a.$text(b.$inspect())})},{$$s:f})},{$$s:j}),b([g('Numeric'),g('FalseClass'),g('TrueClass'),g('Module')],'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(c,'class_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return d(b,'$pretty_print',function(a){var b=this;return a.$text(b.$inspect())})},{$$s:f})},{$$s:j}),function(h,i){var f=o(h,'Kernel'),j=[f].concat(i),g=c.$r(j);return d(f,'$pretty_inspect',function(){var a=this;return g('PP').$pp(a,g('StringIO').$new()).$string()}),d(f,'$pp',function(h){var d,c;return d=m(arguments),c=d,b(c,'each',[],function(b){return b==null&&(b=a),g('PP').$pp(b)}),e(r(c.$size(),1))?c.$first():c},-1),f.$module_function("pp")}(f[0],f)},Opal.modules.promise=function(d){var l=d.klass,h=d.defs,j=d.slice,b=d.def,g=d.eqeqeq,c=d.truthy,t=d.return_ivar,p=d.not,e=d.send,k=d.to_a,o=d.rb_plus,f=d.alias,m=d.send2,n=d.find_super,q=d.rb_le,r=d.rb_minus,s=d.const_set,i=[],u=d.$r(i),a=d.nil;return d.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,to_v2,fail!,then!,always!,itself,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find,collect,inject'),function(y,w,x){var i=l(y,w,'Promise'),v=[i].concat(x),s=d.$r(v),u=i.$$prototype;return u.value=u.action=u.realized=u.next=u.delayed=u.error=u.prev=a,h(i,'$value',function(a){var b=this;return b.$new().$resolve(a)}),h(i,'$error',function(a){var b=this;return b.$new().$reject(a)}),h(i,'$when',function(d){var a,b;return a=j(arguments),b=a,s('When').$new(b)},-1),i.$attr_reader("error","prev","next"),b(i,'$initialize',function(c){var b=this;return c==null&&(c=new Map),b.action=c,b.realized=!1,b.exception=!1,b.value=a,b.error=a,b.delayed=!1,b.prev=a,b.next=[]},-1),b(i,'$value',function(){var a=this;return g(s('Promise'),a.value)?a.value.$value():a.value}),b(i,'$act?',function(){var b=this,d=a;return c(d=b.action['$key?']("success"))?d:b.action['$key?']("always")}),b(i,'$action',function(){var a=this;return a.action.$keys()}),b(i,'$exception?',t("exception")),b(i,'$realized?',function(){var a=this;return a.realized['$!='](!1)}),b(i,'$resolved?',function(){var a=this;return a.realized['$==']("resolve")}),b(i,'$rejected?',function(){var a=this;return a.realized['$==']("reject")}),b(i,'$^',function(a){var b=this;return a['$<<'](b),b['$>>'](a),a}),b(i,'$<<',function(b){var a=this;return a.prev=b,a}),b(i,'$>>',function(b){var a=this;return a.next['$<<'](b),c(a['$exception?']())?b.$reject(a.delayed['$[]'](0)):c(a['$resolved?']())?b.$resolve(c(a.delayed)?a.delayed['$[]'](0):a.$value()):c(a['$rejected?']())&&(p(a.action['$key?']("failure"))||g(s('Promise'),c(a.delayed)?a.delayed['$[]'](0):a.error)?b.$reject(c(a.delayed)?a.delayed['$[]'](0):a.$error()):c(b.$action()['$include?']("always"))&&b.$reject(c(a.delayed)?a.delayed['$[]'](0):a.$error())),a}),b(i,'$resolve',function(e){var b=this,f=a,h=a,i=a;if(e==null&&(e=a),c(b['$realized?']())&&b.$raise(s('ArgumentError'),"the promise has already been realized"),g(s('Promise'),e))return e['$<<'](b.prev)['$^'](b);try{f=c(h=b.action['$[]']("success"))?h:b.action['$[]']("always"),c(f)&&(e=f.$call(e)),b['$resolve!'](e)}catch(a){if(d.rescue(a,[s('Exception')])){i=a;try{b['$exception!'](i)}finally{d.pop_exception(a)}}else throw a}return b},-1),b(i,'$resolve!',function(d){var b=this;return b.realized="resolve",b.value=d,c(b.next['$any?']())?e(b.next,'each',[],function(b){return b==null&&(b=a),b.$resolve(d)}):b.delayed=[d]}),b(i,'$reject',function(e){var b=this,f=a,h=a,i=a;if(e==null&&(e=a),c(b['$realized?']())&&b.$raise(s('ArgumentError'),"the promise has already been realized"),g(s('Promise'),e))return e['$<<'](b.prev)['$^'](b);try{f=c(h=b.action['$[]']("failure"))?h:b.action['$[]']("always"),c(f)&&(e=f.$call(e)),c(b.action['$key?']("always"))?b['$resolve!'](e):b['$reject!'](e)}catch(a){if(d.rescue(a,[s('Exception')])){i=a;try{b['$exception!'](i)}finally{d.pop_exception(a)}}else throw a}return b},-1),b(i,'$reject!',function(d){var b=this;return b.realized="reject",b.error=d,c(b.next['$any?']())?e(b.next,'each',[],function(b){return b==null&&(b=a),b.$reject(d)}):b.delayed=[d]}),b(i,'$exception!',function(b){var a=this;return a.exception=!0,a['$reject!'](b)}),b(i,'$then',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["success",c]])))}),b(i,'$then!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'then',[],d.$to_proc())}),b(i,'$fail',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["failure",c]])))}),b(i,'$fail!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'fail',[],d.$to_proc())}),b(i,'$always',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["always",c]])))}),b(i,'$always!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'always',[],d.$to_proc())}),b(i,'$trace',function c(b){var d=c.$$p||a,e=this;return c.$$p=null,b==null&&(b=a),e['$^'](s('Trace').$new(b,d))},-1),b(i,'$trace!',function b(h){var g=b.$$p||a,c,d,f=this;return b.$$p=null,c=j(arguments),d=c,f['$there_can_be_only_one!'](),e(f,'trace',k(d),g.$to_proc())},-1),b(i,'$there_can_be_only_one!',function(){var b=this;return c(b.next['$any?']())?b.$raise(s('ArgumentError'),"a promise has already been chained"):a}),b(i,'$inspect',function(){var b=this,d=a,e=a;return d="#<"+b.$class()+"("+b.$object_id()+")",c(b.next['$any?']())&&(d=o(d," >> "+b.next.$inspect())),d=o(d,c(b['$realized?']())?": "+(c(e=b.value)?e:b.error).$inspect()+">":">"),d}),b(i,'$to_v2',function(){var c=this,b=a;return b=s('PromiseV2').$new(),e(e(c,'then',[],function(c){return c==null&&(c=a),b.$resolve(c)}),'rescue',[],function(c){return c==null&&(c=a),b.$reject(c)}),b}),f(i,"await","to_v2"),f(i,"catch","fail"),f(i,"catch!","fail!"),f(i,"do","then"),f(i,"do!","then!"),f(i,"ensure","always"),f(i,"ensure!","always!"),f(i,"finally","always"),f(i,"finally!","always!"),f(i,"rescue","fail"),f(i,"rescue!","fail!"),f(i,"to_n","to_v2"),f(i,"to_v1","itself"),function(g,i,j){var f=l(g,i,'Trace'),o=[f].concat(j),p=d.$r(o);return h(f,'$it',function(b){var f=this,d=a,e=a;return d=[],(c(b['$act?']())||c(b.$prev()['$nil?']()))&&d.$push(b.$value()),e=b.$prev(),c(e)?d.$concat(f.$it(e)):d}),b(f,'$initialize',function f(d,g){var h=f.$$p||a,b=this;return f.$$p=null,b.depth=d,m(b,n(b,'initialize',f,!1,!0),'initialize',[new Map([["success",e(b,'proc',[],function f(){var h=f.$$s==null?this:f.$$s,b=a;return b=p('Trace').$it(h).$reverse(),b.$pop(),c(d)&&c(q(d,b.$length()))&&b.$shift(r(b.$length(),d)),e(g,'call',k(b))},{$$s:b})]])],null)})}(v[0],i,v),function(o,p,q){var h=l(o,p,'When'),r=[h].concat(q),i=d.$r(r),s=h.$$prototype;return s.wait=a,b(h,'$initialize',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,d==null&&(d=[]),m(b,n(b,'initialize',c,!1,!0),'initialize',[],null),b.wait=[],e(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$wait(b)},{$$s:b})},-1),b(h,'$each',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d)||f.$raise(i('ArgumentError'),"no block given"),e(f,'then',[],function(b){return b==null&&(b=a),e(b,'each',[],d.$to_proc())})}),b(h,'$collect',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d)||f.$raise(i('ArgumentError'),"no block given"),e(f,'then',[],function(b){return b==null&&(b=a),i('When').$new(e(b,'map',[],d.$to_proc()))})}),b(h,'$inject',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=j(arguments),d=c,e(g,'then',[],function(b){return b==null&&(b=a),e(b,'reduce',k(d),f.$to_proc())})},-1),b(h,'$wait',function(b){var d=this;return g(i('Promise'),b)||(b=i('Promise').$value(b)),c(b['$act?']())&&(b=b.$then()),d.wait['$<<'](b),e(b,'always',[],function d(){var b=d.$$s==null?this:d.$$s;return b.next==null&&(b.next=a),c(b.next['$any?']())?b.$try():a},{$$s:d}),d}),b(h,'$>>',function b(h){var d,f,g=b.$$p||a,c=this;return b.$$p=null,d=j(arguments),f=d,e(m(c,n(c,'>>',b,!1,!0),'>>',k(f),g),'tap',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$try()},{$$s:c})},-1),b(h,'$try',function(){var b=this,d=a;return c(e(b.wait,'all?',[],"realized?".$to_proc()))?(d=e(b.wait,'find',[],"rejected?".$to_proc()),c(d))?b.$reject(d.$error()):b.$resolve(e(b.wait,'map',[],"value".$to_proc())):a}),f(h,"map","collect"),f(h,"reduce","inject"),f(h,"and","wait")}(v[0],i,v)}(i[0],null,i),s(i[0],'PromiseV1',u('Promise'))},Opal.modules.securerandom=function(a){var e=a.module,c=a.defs,f=a.top,d=[],b=a.nil,g=a.$$$;return a.add_stubs('require,extend,warn,rand,gen_random,_verify_count,encode'),f.$require("corelib/random/formatter"),function(i,j){var d=e(i,'SecureRandom'),k=[d].concat(j),h=a.$r(k),f,l;return d.$extend(g(h('Random'),'Formatter')),a.global.crypto&&a.global.crypto.getRandomValues||a.global.msCrypto&&a.global.msCrypto.getRandomValues?(l=a.global.crypto||a.global.msCrypto,f=function(b){var a=new Uint8Array(b);return l.getRandomValues(a),a}):a.global.crypto&&a.global.crypto.randomBytes?f=function(b){return a.global.crypto.randomBytes(b)}:(d.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),f=function(c){for(var b=new Uint8Array(c),a=0;a>d.$rand(255)&255;return b}),c(d,'$bytes',function(a){var c=this;return a==null&&(a=b),c.$gen_random(a)},-1),c(d,'$gen_random',function(a){var c=b,e,d;a==null&&(a=b),a=h('Random').$_verify_count(a),c="",e=f(a);for(d=0;d=c.length)?a:c[b]==null?a:c[b]}),b(d,'$check',function(c){var b=this,d;return c=b.$anchor(c),d=c.exec(b.working),d==null?b.matched=a:b.matched=d[0]}),b(d,'$check_until',function(c){var a=this,d=a.prev_pos,e=a.pos,f=a.working,b=a.$scan_until(c);return a.prev_pos=d,a.pos=e,a.working=f,b}),b(d,'$peek',function(a){var b=this;return b.working.substring(0,a)}),b(d,'$eos?',function(){var a=this;return a.working.length===0}),b(d,'$exist?',function(c){var d=this,b=c.exec(d.working);return b==null?a:b.index==0?0:b.index+1}),b(d,'$skip',function(c){var b=this,d,f,e;return c=b.$anchor(c),d=c.exec(b.working),d==null?(b.match=[],b.matched=a):(f=d[0],e=f.length,b.matched=f,b.match=d,b.prev_pos=b.pos,b.pos+=e,b.working=b.working.substring(e),e)}),b(d,'$skip_until',function(d){var c=this,b=c.$scan_until(d);return b===a?a:(c.matched=b.substr(-1),b.length)}),b(d,'$get_byte',function(){var b=this,c=a;return b.pos,last,-,==,+,new,parse,=~,message,raise,handle_rmn_sd_sy,handle_sm_sd_sy,<,handle_sm_sd,handle_year_and_month,empty?,time_with_rollover,day,get_anchor,hour,min,sec,>=,dealias_and_disambiguate_times,handle_r,respond_to?,offset,handle_srp,handle_s_r_p,times,next,end,handle_orr,*,now=,merge,get_repeaters,pop,first,shift,!=,debug,puts,class,find_within,reverse,sort,compact,map,leap?,cover?,each_with_index,untag,tag,<<,!,ambiguous?,include,attr_accessor,attr_reader,delete,tokenize,options,tokens_to_span,guess,downcase,to_s,gsub,numerize,width,/,[]=,Array,private,pre_normalize,split,each,scan,select,tagged?,definitions,match,invoke,reject,<=,is_a?,utc_offset,to_time,rjust,to_i,abs,%,each_index,chop,===,tags_match?,count,key?,to_sym,send,pattern,const_get,upcase,tags,kind_of?,include?,word,-@,delete_if,find,join,scan_for_all,scan_for,could_be_subsecond?,could_be_second?,could_be_minute?,could_be_hour?,could_be_day?,could_be_month?,could_be_year?,make_year,scan_for_commas,scan_for_dots,scan_for_colon,scan_for_space,scan_for_slash,scan_for_dash,scan_for_quote,scan_for_at,scan_for_in,scan_for_on,scan_for_and,scan_for_t,scan_for_w,scan_for_plus,scan_for_minus,dup,andition,to_f,scan_until,pos,matched_size,reset,find_next_season,scan_for_season_names,scan_for_month_names,scan_for_day_names,scan_for_day_portions,scan_for_times,scan_for_units,capitalize,<=>,construct,build_offset_time,month_days,find_current_season,from_time,find_next_season_span,num_seconds_til_start,num_seconds_til_end,construct_season,offset_by,is_between?,start,equals?,num_seconds_til,loop,is_weekday?,wday,symbol_to_number,is_weekend?,succ,construct_date_from_reference_and_offset,length,insert,nil?,**,gmt_offset,catch,time,throw,debug=,time_class=,name,normalize_offset'),G.$require("time"),G.$require("date"),function(h,i){var n=q(h,'Chronic'),g=[n].concat(i);return j(g[0],null,'Anchor'),function(i,j){var h=q(i,'Handlers'),n=[h].concat(j),g=e.$r(n);return h.$module_function(),c(h,'$handle_m_d',function(b,j,k,i){var c,e=this,d=a,f=a,h=a;return b['$start='](e.$now()),d=b.$this(i['$[]']("context")),c=[d.$begin().$year(),d.$begin().$month()],f=c[0],b=c[1],c,h=g('Chronic').$time_class().$local(f,b,j),e.$day_or_time(h,k,i)}),c(h,'$handle_rmn_sd',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](0).$get_tag(g('RepeaterMonthName')),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_rmn_sd_on',function(b,i){var h=this,c=a,e=a,f=a;return d(r(b.$size(),3))?(c=b['$[]'](2).$get_tag(g('RepeaterMonthName')),e=b['$[]'](3).$get_tag(g('ScalarDay')).$type(),f=w(0,1,!1)):(c=b['$[]'](1).$get_tag(g('RepeaterMonthName')),e=b['$[]'](2).$get_tag(g('ScalarDay')).$type(),f=w(0,0,!1)),d(h['$month_overflow?'](h.$now().$year(),c.$index(),e))?a:h.$handle_m_d(c,e,b['$[]'](f),i)}),c(h,'$handle_rmn_od',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](0).$get_tag(g('RepeaterMonthName')),h=b['$[]'](1).$get_tag(g('OrdinalDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_od_rm',function(b,f){var h=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),d=b['$[]'](2).$get_tag(g('RepeaterMonth')),h.$handle_m_d(d,c,b['$[]'](e.Range.$new(3,b.$size(),!1)),f)}),c(h,'$handle_od_rmn',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](1).$get_tag(g('RepeaterMonthName')),h=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_sy_rmn_od',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('ScalarYear')).$type(),h=b['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),c=b['$[]'](2).$get_tag(g('OrdinalDay')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](f,h,c)))return a;try{return i=g('Chronic').$time_class().$local(f,h,c),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_rmn',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](1).$get_tag(g('RepeaterMonthName')),h=b['$[]'](0).$get_tag(g('ScalarDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_rmn_od_on',function(b,i){var h=this,c=a,e=a,f=a;return d(r(b.$size(),3))?(c=b['$[]'](2).$get_tag(g('RepeaterMonthName')),e=b['$[]'](3).$get_tag(g('OrdinalDay')).$type(),f=w(0,1,!1)):(c=b['$[]'](1).$get_tag(g('RepeaterMonthName')),e=b['$[]'](2).$get_tag(g('OrdinalDay')).$type(),f=w(0,0,!1)),d(h['$month_overflow?'](h.$now().$year(),c.$index(),e))?a:h.$handle_m_d(c,e,b['$[]'](f),i)}),c(h,'$handle_rmn_sy',function(i,l){var c=a,d=a,h=a,f=a,j=a;c=i['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),d=i['$[]'](1).$get_tag(g('ScalarYear')).$type(),k(c,12)?(h=b(d,1),f=1):(h=d,f=b(c,1));try{return j=g('Chronic').$time_class().$local(h,f),g('Span').$new(g('Chronic').$time_class().$local(d,c),j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_generic',function(k,h){var i=this,c=a,f=a;try{return c=g('Chronic').$time_class().$parse(h['$[]']("text")),g('Span').$new(c,b(c,1))}catch(b){if(e.rescue(b,[g('ArgumentError')])){f=b;try{return d(f.$message()['$=~'](/out of range/))?a:i.$raise(f)}finally{e.pop_exception(b)}}else throw b}}),c(h,'$handle_rmn_sd_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rmn_od_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),h=b['$[]'](1).$get_tag(g('OrdinalDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_od_rmn_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),h=b['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,h,f)))return a;try{return i=g('Chronic').$time_class().$local(c,h,f),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_rmn_sy',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0),c['$[]'](2)],e=c.$last(l(c.$size(),3)),g.$handle_rmn_sd_sy(b(d,e),f)}),c(h,'$handle_sm_sd_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('ScalarMonth')).$type(),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_sm_sy',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0),c['$[]'](2)],e=c.$last(l(c.$size(),3)),g.$handle_sm_sd_sy(b(d,e),f)}),c(h,'$handle_sy_sm_sd',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](2),c['$[]'](0)],e=c.$last(l(c.$size(),3)),g.$handle_sm_sd_sy(b(d,e),f)}),c(h,'$handle_sm_sd',function(f,o){var i=this,j=a,m=a,c=a,n=a,h=a;if(j=f['$[]'](0).$get_tag(g('ScalarMonth')).$type(),m=f['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=i.$now().$year(),n=f.$last(l(f.$size(),2)),d(i['$month_overflow?'](c,j,m)))return a;try{return h=g('Chronic').$time_class().$local(c,j,m),k(o['$[]']("context"),"future")&&d(y(h,i.$now()))&&(h=g('Chronic').$time_class().$local(b(c,1),j,m)),i.$day_or_time(h,n,o)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_sm',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0)],e=c.$last(l(c.$size(),2)),g.$handle_sm_sd(b(d,e),f)}),c(h,'$handle_year_and_month',function(c,d){var f=a,h=a,i=a;k(d,12)?(f=b(c,1),h=1):(f=c,h=b(d,1));try{return i=g('Chronic').$time_class().$local(f,h),g('Span').$new(g('Chronic').$time_class().$local(c,d),i)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sm_sy',function(b,h){var e=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('ScalarMonth')).$type(),d=b['$[]'](1).$get_tag(g('ScalarYear')).$type(),e.$handle_year_and_month(d,c)}),c(h,'$handle_sy_sm',function(b,h){var e=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('ScalarYear')).$type(),d=b['$[]'](1).$get_tag(g('ScalarMonth')).$type(),e.$handle_year_and_month(c,d)}),c(h,'$handle_rdn_rmn_od',function(j,p){var i=this,f=a,h=a,k=a,c=a,m=a,n=a,o=a;if(f=j['$[]'](1).$get_tag(g('RepeaterMonthName')),h=j['$[]'](2).$get_tag(g('OrdinalDay')).$type(),k=j.$last(l(j.$size(),3)),c=i.$now().$year(),d(i['$month_overflow?'](c,f.$index(),h)))return a;try{return d(k['$empty?']())?(m=g('Chronic').$time_class().$local(c,f.$index(),h),n=i.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(m,n)):(o=g('Chronic').$time_class().$local(c,f.$index(),h),i.$day_or_time(o,k,p))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_od_sy',function(i,n){var k=this,f=a,h=a,c=a,l=a,j=a;if(f=i['$[]'](1).$get_tag(g('RepeaterMonthName')),h=i['$[]'](2).$get_tag(g('OrdinalDay')).$type(),c=i['$[]'](3).$get_tag(g('ScalarYear')).$type(),d(k['$month_overflow?'](c,f.$index(),h)))return a;try{return l=g('Chronic').$time_class().$local(c,f.$index(),h),j=k.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(l,j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_od',function(m,n){var f=this,h=a,j=a,i=a,c=a,o=a,p=a,q=a;if(h=m['$[]'](1).$get_tag(g('OrdinalDay')).$type(),j=m.$last(l(m.$size(),2)),i=f.$now().$year(),c=f.$now().$month(),k(n['$[]']("context"),"future")&&(d(r(f.$now().$day(),h))?c=b(c,1):c),d(f['$month_overflow?'](i,c,h)))return a;try{return d(j['$empty?']())?(o=g('Chronic').$time_class().$local(i,c,h),p=f.$time_with_rollover(i,c,b(h,1)),g('Span').$new(o,p)):(q=g('Chronic').$time_class().$local(i,c,h),f.$day_or_time(q,j,n))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_sd',function(j,p){var i=this,f=a,h=a,k=a,c=a,m=a,n=a,o=a;if(f=j['$[]'](1).$get_tag(g('RepeaterMonthName')),h=j['$[]'](2).$get_tag(g('ScalarDay')).$type(),k=j.$last(l(j.$size(),3)),c=i.$now().$year(),d(i['$month_overflow?'](c,f.$index(),h)))return a;try{return d(k['$empty?']())?(m=g('Chronic').$time_class().$local(c,f.$index(),h),n=i.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(m,n)):(o=g('Chronic').$time_class().$local(c,f.$index(),h),i.$day_or_time(o,k,p))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_sd_sy',function(i,n){var k=this,f=a,h=a,c=a,l=a,j=a;if(f=i['$[]'](1).$get_tag(g('RepeaterMonthName')),h=i['$[]'](2).$get_tag(g('ScalarDay')).$type(),c=i['$[]'](3).$get_tag(g('ScalarYear')).$type(),d(k['$month_overflow?'](c,f.$index(),h)))return a;try{return l=g('Chronic').$time_class().$local(c,f.$index(),h),j=k.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(l,j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sm_rmn_sy',function(h,p){var i,o=this,c=a,f=a,j=a,e=a,n=a,l=a,m=a,k=a;return c=h['$[]'](0).$get_tag(g('ScalarDay')).$type(),f=h['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),j=h['$[]'](2).$get_tag(g('ScalarYear')).$type(),d(r(h.$size(),3))?(e=o.$get_anchor([h.$last()],p).$begin(),i=[e.$hour(),e.$min(),e.$sec()],n=i[0],l=i[1],m=i[2],i,e=g('Chronic').$time_class().$local(j,f,c,n,l,m),k=g('Chronic').$time_class().$local(j,f,b(c,1),n,l,m)):(e=g('Chronic').$time_class().$local(j,f,c),d(t(c,31))||(c=b(c,1)),k=g('Chronic').$time_class().$local(j,f,c)),g('Span').$new(e,k)}),c(h,'$handle_r',function(e,b){var c=this,d=a;return d=c.$dealias_and_disambiguate_times(e,b),c.$get_anchor(d,b)}),c(h,'$handle_r_g_r',function(b,d){var e=this,c=a;return c=[b['$[]'](1),b['$[]'](0),b['$[]'](2)],e.$handle_r(c,d)}),c(h,'$handle_srp',function(b,h,i){var f=a,c=a,e=a;return f=b['$[]'](0).$get_tag(g('Scalar')).$type(),c=b['$[]'](1).$get_tag(g('Repeater')),e=b['$[]'](2).$get_tag(g('Pointer')).$type(),d(c['$respond_to?']("offset"))?c.$offset(h,f,e):a}),c(h,'$handle_s_r_p',function(e,f){var c=this,d=a;return d=g('Span').$new(c.$now(),b(c.$now(),1)),c.$handle_srp(e,d,f)}),c(h,'$handle_p_s_r',function(b,d){var e=this,c=a;return c=[b['$[]'](1),b['$[]'](2),b['$[]'](0)],e.$handle_s_r_p(c,d)}),c(h,'$handle_s_r_p_a',function(b,c){var d=this,f=a;return f=d.$get_anchor(b['$[]'](e.Range.$new(3,l(b.$size(),1),!1)),c),d.$handle_srp(b,f,c)}),c(h,'$handle_s_r_a_s_r_p_a',function(c,d){var f=this,g=a,h=a;return g=f.$get_anchor(c['$[]'](e.Range.$new(4,l(c.$size(),1),!1)),d),h=f.$handle_srp(b(c['$[]'](w(0,1,!1)),c['$[]'](w(4,6,!1))),g,d),f.$handle_srp(b(c['$[]'](w(2,3,!1)),c['$[]'](w(4,6,!1))),h,d)}),c(h,'$handle_orr',function(e,f,i){var c=a,h=a,b=a;return c=e['$[]'](1).$get_tag(g('Repeater')),c['$start='](l(f.$begin(),1)),h=e['$[]'](0).$get_tag(g('Ordinal')).$type(),b=a,function(){try{var e=x('break');return m(h,'times',[],function g(){if(b=c.$next("future"),d(t(b.$begin(),f.$end())))b=a,e.$throw(a,g.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),b}),c(h,'$handle_o_r_s_r',function(b,c){var d=this,e=a;return e=d.$get_anchor([b['$[]'](3)],c),d.$handle_orr(b['$[]'](w(0,1,!1)),e,c)}),c(h,'$handle_o_r_g_r',function(b,c){var d=this,e=a;return e=d.$get_anchor(b['$[]'](w(2,3,!1)),c),d.$handle_orr(b['$[]'](w(0,1,!1)),e,c)}),c(h,'$day_or_time',function(h,i,j){var c=this,e=a;return e=g('Span').$new(h,b(h,f(f(24,60),60))),d(i['$empty?']())?e:(c['$now='](e.$begin()),c.$get_anchor(c.$dealias_and_disambiguate_times(i,j),j.$merge(new Map([["context","future"]]))))}),c(h,'$get_anchor',function(h,k){var e=this,i=a,j=a,f=a,b=a,c=a;switch(i=g('Grabber').$new("this"),j="future",f=e.$get_repeaters(h),m(f.$size(),'times',[],function(){return h.$pop()}),d(h.$first())&&d(h.$first().$get_tag(g('Grabber')))&&(i=h.$shift().$get_tag(g('Grabber'))),b=f.$shift(),b['$start='](e.$now()),i.$type().valueOf()){case"last":c=b.$next("past");break;case"this":D(k['$[]']("context"),"past")&&d(r(f.$size(),0))?c=b.$this("none"):c=b.$this(k['$[]']("context"));break;case"next":c=b.$next("future");break;default:e.$raise("Invalid grabber")}return d(g('Chronic').$debug())&&(e.$puts("Handler-class: "+b.$class()),e.$puts("--"+c)),e.$find_within(f,c,j)}),c(h,'$get_repeaters',function(b){return m(b,'map',[],function(b){return b==null&&(b=a),b.$get_tag(g('Repeater'))}).$compact().$sort().$reverse()}),c(h,'$month_overflow?',function(c,a,b){try{return d(p('Date')['$leap?'](c))?r(b,p(g('RepeaterMonth'),'MONTH_DAYS_LEAP')['$[]'](l(a,1))):r(b,p(g('RepeaterMonth'),'MONTH_DAYS')['$[]'](l(a,1)))}catch(a){if(e.rescue(a,[g('ArgumentError')]))try{return!1}finally{e.pop_exception(a)}else throw a}}),c(h,'$find_within',function(e,b,h){var i=this,f=a,c=a;return d(g('Chronic').$debug())&&i.$puts("--"+b),d(e['$empty?']())?b:(f=e.$shift(),f['$start='](k(h,"future")?b.$begin():b.$end()),c=f.$this("none"),d(b['$cover?'](c.$begin()))||d(b['$cover?'](c.$end())))?i.$find_within(e,c,h):a}),c(h,'$time_with_rollover',function(c,e,f){var i=this,h=a;return h=d(i['$month_overflow?'](c,e,f))?k(e,12)?[b(c,1),1,1]:[c,b(e,1),1]:[c,e,f],m(g('Chronic').$time_class(),'local',L(h))}),c(h,'$dealias_and_disambiguate_times',function(c,l){var k=this,h=a,i=a,e=a,j=a,f=a;if(h=a,function(){try{var b=x('break');return m(c,'each_with_index',[],function f(c,e){if(c==null&&(c=a),e==null&&(e=a),d(c.$get_tag(g('RepeaterDayPortion'))))h=e,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),i=a,function(){try{var b=x('break');return m(c,'each_with_index',[],function f(c,e){if(c==null&&(c=a),e==null&&(e=a),d(c.$get_tag(g('RepeaterTime'))))i=e,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),d(h)&&d(i))switch(e=c['$[]'](h),j=e.$get_tag(g('RepeaterDayPortion')),j.$type().valueOf()){case"morning":d(g('Chronic').$debug())&&k.$puts("--morning->am"),e.$untag(g('RepeaterDayPortion')),e.$tag(g('RepeaterDayPortion').$new("am"));break;case"afternoon":case"evening":case"night":d(g('Chronic').$debug())&&k.$puts("--"+j.$type()+"->pm"),e.$untag(g('RepeaterDayPortion')),e.$tag(g('RepeaterDayPortion').$new("pm"));break;default:a}return D(l['$[]']("ambiguous_time_range"),"none")&&(f=[],m(c,'each_with_index',[],function(e,h){var i=a,j=a;return e==null&&(e=a),h==null&&(h=a),f['$<<'](e),i=c['$[]'](b(h,1)),d(e.$get_tag(g('RepeaterTime')))&&d(e.$get_tag(g('RepeaterTime')).$type()['$ambiguous?']())&&(E(i)||E(i.$get_tag(g('RepeaterDayPortion'))))?(j=g('Token').$new("disambiguator"),j.$tag(g('RepeaterDayPortion').$new(l['$[]']("ambiguous_time_range"))),f['$<<'](j)):a}),c=f),c})}(g[0],g)}(i[0],i),function(h,i){var l=q(h,'Chronic'),g=[l].concat(i);return function(l,n,p){var h=j(l,n,'Parser'),i=[h].concat(p),g=e.$r(i);return h.$include(g('Handlers')),o(i[0],'DEFAULT_OPTIONS',new Map([["context","future"],["now",a],["hours24",a],["guess",!0],["ambiguous_time_range",6],["endian_precedence",["middle","little"]],["ambiguous_year_future_bias",50]])),h.$attr_accessor("now"),h.$attr_reader("options"),c(h,'$initialize',function(b){var c=this,e=a;return b==null&&(b=new Map),c.options=g('DEFAULT_OPTIONS').$merge(b),c.now=d(e=b.$delete("now"))?e:g('Chronic').$time_class().$now()},-1),c(h,'$parse',function(h){var b=this,c=a,e=a;return c=b.$tokenize(h,b.$options()),e=b.$tokens_to_span(c,b.$options().$merge(new Map([["text",h]]))),d(g('Chronic').$debug())&&b.$puts("+"+f("-",51)+"\n| "+c+"\n+"+f("-",51)),d(e)?b.$guess(e,b.$options()['$[]']("guess")):a}),c(h,'$pre_normalize',function(c){return c=c.$to_s().$downcase(),c=c.$gsub(/\b(\d{2})\.(\d{2})\.(\d{4})\b/,"\\3 / \\2 / \\1"),c=c.$gsub(/\b([ap])\.m\.?/,"\\1m"),c=c.$gsub(/(\s+|:\d{2}|:\d{2}\.\d{3})\-(\d{2}:?\d{2})\b/,"\\1tzminus\\2"),c=c.$gsub(/\./,":"),c=c.$gsub(/([ap]):m:?/,"\\1m"),c=c.$gsub(/['"]/,""),c=c.$gsub(/,/," "),c=c.$gsub(/^second /,"2nd "),c=c.$gsub(/\bsecond (of|day|month|hour|minute|second)\b/,"2nd \\1"),c=g('Numerizer').$numerize(c),c=m(c,'gsub',[/([\/\-\,\@])/],function(){var c;return b(b(" ",(c=A['~'])===a?a:c['$[]'](1))," ")}),c=c.$gsub(/(?:^|\s)0(\d+:\d+\s*pm?\b)/," \\1"),c=c.$gsub(/\btoday\b/,"this day"),c=c.$gsub(/\btomm?orr?ow\b/,"next day"),c=c.$gsub(/\byesterday\b/,"last day"),c=c.$gsub(/\bnoon\b/,"12:00pm"),c=c.$gsub(/\bmidnight\b/,"24:00"),c=c.$gsub(/\bnow\b/,"this second"),c=c.$gsub("quarter","15"),c=c.$gsub("half","30"),c=c.$gsub(/(\d{1,2}) (to|till|prior to|before)\b/,"\\1 minutes past"),c=c.$gsub(/(\d{1,2}) (after|past)\b/,"\\1 minutes future"),c=c.$gsub(/\b(?:ago|before(?: now)?)\b/,"past"),c=c.$gsub(/\bthis (?:last|past)\b/,"last"),c=c.$gsub(/\b(?:in|during) the (morning)\b/,"\\1"),c=c.$gsub(/\b(?:in the|during the|at) (afternoon|evening|night)\b/,"\\1"),c=c.$gsub(/\btonight\b/,"this night"),c=c.$gsub(/\b\d+:?\d*[ap]\b/,"\\0m"),c=c.$gsub(/\b(\d{2})(\d{2})(am|pm)\b/,"\\1:\\2\\3"),c=c.$gsub(/(\d)([ap]m|oclock)\b/,"\\1 \\2"),c=c.$gsub(/\b(hence|after|from)\b/,"future"),c=c.$gsub(/^\s?an? /i,"1 "),c=c.$gsub(/\b(\d{4}):(\d{2}):(\d{2})\b/,"\\1 / \\2 / \\3"),c.$gsub(/\b0(\d+):(\d{2}):(\d{2}) ([ap]m)\b/,"\\1:\\2:\\3 \\4")}),c(h,'$guess',function(a,c){return c==null&&(c="middle"),E(c)?a:d(r(a.$width(),1))&&(k(c,!0)||k(c,"middle"))?b(a.$begin(),v(a.$width(),2)):k(c,"end")?a.$end():a.$begin()},-2),c(h,'$definitions',function(b){var h,j=this,c=a,e=a,f=a;switch(b==null&&(b=new Map),d(c=b['$[]']("endian_precedence"))?c:b['$[]=']("endian_precedence",["middle","little"]),K(i[0],'@@definitions',d((h=i[0].$$cvars['@@definitions'],h!=null)?'class variable':a)?d(c=F(i[0],'@@definitions',!1))?c:new Map([["time",[g('Handler').$new(["repeater_time","repeater_day_portion?"],a)]],["date",[g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),g('Handler').$new(["ordinal_day"],"handle_generic"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),g('Handler').$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),g('Handler').$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),g('Handler').$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),g('Handler').$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),g('Handler').$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),g('Handler').$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),g('Handler').$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),g('Handler').$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[g('Handler').$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[g('Handler').$new(["scalar","repeater","pointer"],"handle_s_r_p"),g('Handler').$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),g('Handler').$new(["pointer","scalar","repeater"],"handle_p_s_r"),g('Handler').$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[g('Handler').$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),g('Handler').$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]]):new Map([["time",[g('Handler').$new(["repeater_time","repeater_day_portion?"],a)]],["date",[g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),g('Handler').$new(["ordinal_day"],"handle_generic"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),g('Handler').$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),g('Handler').$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),g('Handler').$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),g('Handler').$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),g('Handler').$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),g('Handler').$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),g('Handler').$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),g('Handler').$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[g('Handler').$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[g('Handler').$new(["scalar","repeater","pointer"],"handle_s_r_p"),g('Handler').$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),g('Handler').$new(["pointer","scalar","repeater"],"handle_p_s_r"),g('Handler').$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[g('Handler').$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),g('Handler').$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]])),e=[g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sm_sd_sy"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sm_sd"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month","separator_at?","time?"],"handle_sd_sm"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sd_sm_sy")],(f=j.$Array(b['$[]']("endian_precedence")).$first()).valueOf()){case"little":return F(i[0],'@@definitions',!1).$merge(new Map([["endian",e.$reverse()]]));case"middle":return F(i[0],'@@definitions',!1).$merge(new Map([["endian",e]]));default:return j.$raise(g('ArgumentError'),"Unknown endian option '"+f+"'")}},-1),h.$private(),c(h,'$tokenize',function(b,d){var e=this,c=a;return b=e.$pre_normalize(b),c=m(b.$split(" "),'map',[],function(b){return b==null&&(b=a),g('Token').$new(b)}),m([g('Repeater'),g('Grabber'),g('Pointer'),g('Scalar'),g('Ordinal'),g('Separator'),g('Sign'),g('TimeZone')],'each',[],function(b){return b==null&&(b=a),b.$scan(c,d)}),m(c,'select',[],function(b){return b==null&&(b=a),b['$tagged?']()})}),c(h,'$tokens_to_span',function(f,i){var c,h,e;try{return c=x('return'),h=this,e=a,e=h.$definitions(i),m(b(e['$[]']("endian"),e['$[]']("date")),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'select',[],function(b){return b==null&&(b=a),b.$get_tag(g('Separator'))['$!']()}),c.$throw(b.$invoke("date",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("anchor"),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'select',[],function(b){return b==null&&(b=a),b.$get_tag(g('Separator'))['$!']()}),c.$throw(b.$invoke("anchor",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("arrow"),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'reject',[],function(b){var c=a,e=a,f=a,h=a;return b==null&&(b=a),d(c=d(e=d(f=d(h=b.$get_tag(g('SeparatorAt')))?h:b.$get_tag(g('SeparatorSlash')))?f:b.$get_tag(g('SeparatorDash')))?e:b.$get_tag(g('SeparatorComma')))?c:b.$get_tag(g('SeparatorAnd'))}),c.$throw(b.$invoke("arrow",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("narrow"),'each',[],function g(b){var h=g.$$s==null?this:g.$$s;if(b==null&&(b=a),d(b.$match(f,e)))c.$throw(b.$invoke("narrow",f,h,i),g.$$is_lambda);else return a},{$$s:h,$$ret:c}),d(g('Chronic').$debug())&&h.$puts("-none"),a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})}(g[0],null,g)}(i[0],i),function(f,g){var h=q(f,'Chronic'),c=[h].concat(g);return function(h,i,k){var c=j(h,i,'Time'),f=[c].concat(k),g=e.$r(f);return o(f[0],'HOUR_SECONDS',3600),o(f[0],'MINUTE_SECONDS',60),o(f[0],'SECOND_SECONDS',1),o(f[0],'SUBSECOND_SECONDS',.001),n(c,'$could_be_hour?',function(b){var c=a;return d(c=t(b,0))?u(b,24):c}),n(c,'$could_be_minute?',function(b){var c=a;return d(c=t(b,0))?u(b,60):c}),n(c,'$could_be_second?',function(b){var c=a;return d(c=t(b,0))?u(b,60):c}),n(c,'$could_be_subsecond?',function(b){var c=a;return d(c=t(b,0))?u(b,999999):c}),n(c,'$normalize_offset',function(c){var e=a,f=a,h=a;return d(c['$is_a?'](g('String')))?c:(d(c)||(c=g('Chronic').$time_class().$now().$to_time().$utc_offset()),e="+",d(y(c,0))&&(e="-"),f=v(c.$abs(),3600).$to_i().$to_s().$rjust(2,"0"),h=c.$abs()['$%'](3600).$to_s().$rjust(2,"0"),b(b(e,f),h))})}(c[0],null,c)}(i[0],i),function(g,h){var i=q(g,'Chronic'),c=[i].concat(h);return function(i,k,m){var g=j(i,k,'Date'),c=[g].concat(m),h=e.$r(c);return o(c[0],'YEAR_MONTHS',12),o(c[0],'MONTH_DAYS',[a,31,28,31,30,31,30,31,31,30,31,30,31]),o(c[0],'MONTH_DAYS_LEAP',[a,31,29,31,30,31,30,31,31,30,31,30,31]),o(c[0],'YEAR_SECONDS',31536e3),o(c[0],'SEASON_SECONDS',7862400),o(c[0],'MONTH_SECONDS',2592e3),o(c[0],'FORTNIGHT_SECONDS',1209600),o(c[0],'WEEK_SECONDS',604800),o(c[0],'WEEKEND_SECONDS',172800),o(c[0],'DAY_SECONDS',86400),o(c[0],'MONTHS',new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),o(c[0],'DAYS',new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),n(g,'$could_be_day?',function(b){var c=a;return d(c=t(b,1))?u(b,31):c}),n(g,'$could_be_month?',function(b){var c=a;return d(c=t(b,1))?u(b,12):c}),n(g,'$could_be_year?',function(b){var c=a;return d(c=t(b,1))?u(b,9999):c}),n(g,'$make_year',function(e,j){var g=a,i=a,c=a;return d(r(e.$to_s().$size(),2))?e:(g=l(h('Chronic').$time_class().$now().$year(),j),i=f(v(g,100),100),c=b(i,e),d(y(c,g))&&(c=b(c,100)),c)}),n(g,'$month_overflow?',function(c,a,b){return d(p('Date')['$leap?'](c))?r(b,p(h('Date'),'MONTH_DAYS_LEAP')['$[]'](a)):r(b,p(h('Date'),'MONTH_DAYS')['$[]'](a))})}(c[0],null,c)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h);return function(o,i,l){var f=j(o,i,'Handler'),n=[f].concat(l),g=e.$r(n),h=f.$$prototype;return h.pattern=h.handler_method=a,f.$attr_reader("pattern"),f.$attr_reader("handler_method"),c(f,'$initialize',function(b,c){var a=this;return a.pattern=b,a.handler_method=c}),c(f,'$match',function(h,i){var c,j,f;try{return!(c=x('return'),j=this,f=a,f=0,m(j.pattern,'each',[],function n(j){var o=n.$$s==null?this:n.$$s,l=a;return j==null&&(j=a),l=!1,d(j['$is_a?'](g('Array')))||(j=[j]),function(){try{var n=x('break');return m(j,'each_index',[],function q(p){var s=q.$$s==null?this:q.$$s,o=a,r=a,t=a,u=a;if(p==null&&(p=a),o=j['$[]'](p).$to_s(),r=o['$[]'](-1,1)['$==']("?"),d(r)&&(o=o.$chop()),B(g('Symbol'),t=j['$[]'](p)))if(d(s['$tags_match?'](o,h,f)))f=b(f,1),n.$throw(a,q.$$is_lambda);else if(d(r))return l=!0,a;else if(d(y(b(p,1),j.$count())))return a;else if(d(l))return a;else c.$throw(!1,q.$$is_lambda);else return B(g('String'),t)?(d(r)&&k(f,h.$size())&&c.$throw(!0,q.$$is_lambda),d(i['$key?'](o.$to_sym()))?u=i['$[]'](o.$to_sym()):s.$raise("Invalid subset "+o+" specified"),m(u,'each',[],function g(b){if(b==null&&(b=a),d(b.$match(h['$[]'](e.Range.$new(f,h.$size(),!1)),i)))c.$throw(!0,g.$$is_lambda);else return a},{$$ret:c})):s.$raise("Invalid match type: "+j['$[]'](p).$class())},{$$s:o,$$ret:c})}catch(a){if(a===n)return a.$v;throw a}finally{n.is_orphan=!0}}()},{$$s:j}),D(f,h.$size()))}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}),c(f,'$invoke',function(b,c,e,f){var a=this;return d(g('Chronic').$debug())&&(a.$puts("-"+b),a.$puts("Handler: "+a.handler_method)),e.$send(a.handler_method,c,f)}),c(f,'$==',function(a){var b=this;return b.pattern['$=='](a.$pattern())}),f.$private(),c(f,'$tags_match?',function(f,b,c){var e=a;return e=g('Chronic').$const_get(m(f.$to_s(),'gsub',[/(?:^|_)(.)/],function(){var b;return((b=A['~'])===a?a:b['$[]'](1)).$upcase()})),d(b['$[]'](c))?m(b['$[]'](c).$tags(),'select',[],function(b){return b==null&&(b=a),b['$kind_of?'](e)})['$empty?']()['$!']():a})}(f[0],null,f)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h);return function(o,h,i){var f=j(o,h,'MiniDate'),l=[f].concat(i),m=e.$r(l),g=f.$$prototype;return g.day=g.month=a,f.$attr_accessor("month","day"),n(f,'$from_time',function(a){var b=this;return b.$new(a.$month(),a.$day())}),c(f,'$initialize',function(b,c){var a=this;return d(w(1,12,!1)['$include?'](b))||a.$raise(m('ArgumentError'),"1..12 are valid months"),a.month=b,a.day=c}),c(f,'$is_between?',function(e,f){var c=this,g=a;if(k(c.month,e.$month())&&k(c.month,f.$month())&&(d(y(c.day,e.$day()))||d(r(c.day,f.$day()))))return!1;if(k(c.month,e.$month())&&d(t(c.day,e.$day()))||k(c.month,f.$month())&&d(u(c.day,f.$day())))return!0;for(g=b(e.$month()['$%'](12),1);!k(g,f.$month());){if(k(c.month,g))return!0;g=b(g['$%'](12),1)}return!1}),c(f,'$equals?',function(b){var c=this,e=a;return d(e=c.month['$=='](b.$month()))?c.day['$=='](b.$day()):e})}(f[0],null,f)}(i[0],i),function(f,g){var h=q(f,'Chronic'),b=[h].concat(g);return function(f,g,h){var b=j(f,g,'Tag'),i=[b].concat(h);return b.$attr_accessor("type"),c(b,'$initialize',function(c,a){var b=this;return a==null&&(a=new Map),b.type=c,b.options=a},-2),c(b,'$start=',J("now")),function(b,g){var h=[b].concat(g),f=e.$r(h);return b.$private(),c(b,'$scan_for',function(h,i,b,e){var c,g;try{if(c=x('return'),g=a,b==null&&(b=new Map),e==null&&(e=new Map),B(f('Regexp'),g=b)){if(d(b['$=~'](h.$word())))return i.$new(h.$word(),e)}else B(f('Hash'),g)?m(b,'each',[],function g(b,f){if(b==null&&(b=a),f==null&&(f=a),d(b['$=~'](h.$word())))c.$throw(i.$new(f,e),g.$$is_lambda);else return a},{$$ret:c}):a;return a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}},-3)}(e.get_singleton_class(b),i)}(b[0],null,b)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(h,i,k){var f=j(h,i,'Span'),m=[f].concat(k),g=e.$r(m);return c(f,'$width',function(){var a=this;return l(a.$end(),a.$begin()).$to_i()}),c(f,'$+',function(a){var c=this;return g('Span').$new(b(c.$begin(),a),b(c.$end(),a))}),c(f,'$-',function(a){var c=this;return b(c,a['$-@']())}),c(f,'$to_s',function(){var a=this;return b(b(b(b("(",a.$begin().$to_s()),".."),a.$end().$to_s()),")")}),d(g('RUBY_VERSION')['$=~'](/^1.8/))?H(f,"cover?","include?"):a}(f[0],k('Range'),f)}(i[0],i),function(d,e){var f=q(d,'Chronic'),g=[f].concat(e);return function(f,g){var d=j(f,g,'Token'),e=d.$$prototype;return e.tags=e.word=a,d.$attr_accessor("word"),d.$attr_accessor("tags"),c(d,'$initialize',function(b){var a=this;return a.word=b,a.tags=[]}),c(d,'$tag',function(a){var b=this;return b.tags['$<<'](a)}),c(d,'$untag',function(b){var c=this;return m(c.tags,'delete_if',[],function(c){return c==null&&(c=a),c['$kind_of?'](b)})}),c(d,'$tagged?',function(){var a=this;return r(a.tags.$size(),0)}),c(d,'$get_tag',function(b){var c=this;return m(c.tags,'find',[],function(c){return c==null&&(c=a),c['$kind_of?'](b)})}),c(d,'$to_s',function(){var a=this;return a.word=b(b(b(a.word,"("),a.tags.$join(", ")),") ")}),c(d,'$inspect',function(){var a=this;return a.$to_s()})}(g[0],null)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(f,g){var e=j(f,g,'Grabber'),h=e.$$prototype;return h.type=a,n(e,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?(b.$tag(e),a):a},{$$s:c})}),n(e,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/last/,"last"],[/this/,"this"],[/next/,"next"]])))}),c(e,'$to_s',function(){var a=this;return b("grabber-",a.type.$to_s())})}(f[0],k('Tag'))}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(f,g){var e=j(f,g,'Pointer'),h=e.$$prototype;return h.type=a,n(e,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?b.$tag(e):a},{$$s:c})}),n(e,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/\bpast\b/,"past"],[/\b(?:future|in)\b/,"future"]])))}),c(e,'$to_s',function(){var a=this;return b("pointer-",a.type.$to_s())})}(f[0],k('Tag'))}(i[0],i),function(k,l){var r=q(k,'Chronic'),f=[r].concat(l),i=e.$r(f);return function(i,k,l){var g=j(i,k,'Scalar'),h=[g].concat(l),f=e.$r(h);return o(h[0],'DAY_PORTIONS',["am","pm","morning","afternoon","evening","night"]),n(g,'$scan',function(c,e){return m(c,'each_index',[],function(i){var h=a,j=a,g=a,k=a;return i==null&&(i=a),h=c['$[]'](i),j=c['$[]'](b(i,1)),d(h.$word()['$=~'](/^\d+$/))?(g=h.$word().$to_i(),h.$tag(f('Scalar').$new(g)),d(p(f('Chronic'),'Time')['$could_be_subsecond?'](g))&&h.$tag(f('ScalarSubsecond').$new(g)),d(p(f('Chronic'),'Time')['$could_be_second?'](g))&&h.$tag(f('ScalarSecond').$new(g)),d(p(f('Chronic'),'Time')['$could_be_minute?'](g))&&h.$tag(f('ScalarMinute').$new(g)),d(p(f('Chronic'),'Time')['$could_be_hour?'](g))&&h.$tag(f('ScalarHour').$new(g)),d(j)&&d(f('DAY_PORTIONS')['$include?'](j.$word())))?a:(d(p(f('Chronic'),'Date')['$could_be_day?'](g))&&h.$tag(f('ScalarDay').$new(g)),d(p(f('Chronic'),'Date')['$could_be_month?'](g))&&h.$tag(f('ScalarMonth').$new(g)),d(p(f('Chronic'),'Date')['$could_be_year?'](g)))?(k=p(f('Chronic'),'Date').$make_year(g,e['$[]']("ambiguous_year_future_bias")),h.$tag(f('ScalarYear').$new(k.$to_i()))):a:a})}),c(g,'$to_s',z("scalar"))}(f[0],i('Tag'),f),function(e,f){var d=j(e,f,'ScalarSubsecond'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-subsecond-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarSecond'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-second-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarMinute'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minute-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarHour'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-hour-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarDay'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarMonth'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarYear'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year-"),d.type.$to_s())})}(f[0],i('Scalar'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var f=j(g,h,'Ordinal'),k=[f].concat(i),b=e.$r(k);return n(f,'$scan',function(c,e){return m(c,'each_index',[],function(g){var h,f=a,i=a;return g==null&&(g=a),d(c['$[]'](g).$word()['$=~'](/^(\d+)(st|nd|rd|th|\.)$/))&&(f=((h=A['~'])===a?a:h['$[]'](1)).$to_i(),c['$[]'](g).$tag(b('Ordinal').$new(f)),d(p(b('Chronic'),'Date')['$could_be_day?'](f))&&c['$[]'](g).$tag(b('OrdinalDay').$new(f)),d(p(b('Chronic'),'Date')['$could_be_month?'](f))&&c['$[]'](g).$tag(b('OrdinalMonth').$new(f)),d(p(b('Chronic'),'Date')['$could_be_year?'](f)))?(i=p(b('Chronic'),'Date').$make_year(f,e['$[]']("ambiguous_year_future_bias")),c['$[]'](g).$tag(b('OrdinalYear').$new(i.$to_i()))):a})}),c(f,'$to_s',z("ordinal"))}(f[0],i('Tag'),f),function(e,f){var d=j(e,f,'OrdinalDay'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day-"),d.type.$to_s())})}(f[0],i('Ordinal')),function(e,f){var d=j(e,f,'OrdinalMonth'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month-"),d.type.$to_s())})}(f[0],i('Ordinal')),function(e,f){var d=j(e,f,'OrdinalYear'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year-"),d.type.$to_s())})}(f[0],i('Ordinal'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var b=j(g,h,'Separator'),k=[b].concat(i),f=e.$r(k);return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function f(b){var e=f.$$s==null?this:f.$$s,c=a;return b==null&&(b=a),d(c=e.$scan_for_commas(b))?(b.$tag(c),a):d(c=e.$scan_for_dots(b))?(b.$tag(c),a):d(c=e.$scan_for_colon(b))?(b.$tag(c),a):d(c=e.$scan_for_space(b))?(b.$tag(c),a):d(c=e.$scan_for_slash(b))?(b.$tag(c),a):d(c=e.$scan_for_dash(b))?(b.$tag(c),a):d(c=e.$scan_for_quote(b))?(b.$tag(c),a):d(c=e.$scan_for_at(b))?(b.$tag(c),a):d(c=e.$scan_for_in(b))?(b.$tag(c),a):d(c=e.$scan_for_on(b))?(b.$tag(c),a):d(c=e.$scan_for_and(b))?(b.$tag(c),a):d(c=e.$scan_for_t(b))?(b.$tag(c),a):d(c=e.$scan_for_w(b))?(b.$tag(c),a):a},{$$s:c})}),n(b,'$scan_for_commas',function(a){var b=this;return b.$scan_for(a,f('SeparatorComma'),s(new Map([[/^,$/,"comma"]])))}),n(b,'$scan_for_dots',function(a){var b=this;return b.$scan_for(a,f('SeparatorDot'),s(new Map([[/^\.$/,"dot"]])))}),n(b,'$scan_for_colon',function(a){var b=this;return b.$scan_for(a,f('SeparatorColon'),s(new Map([[/^:$/,"colon"]])))}),n(b,'$scan_for_space',function(a){var b=this;return b.$scan_for(a,f('SeparatorSpace'),s(new Map([[/^ $/,"space"]])))}),n(b,'$scan_for_slash',function(a){var b=this;return b.$scan_for(a,f('SeparatorSlash'),s(new Map([[/^\/$/,"slash"]])))}),n(b,'$scan_for_dash',function(a){var b=this;return b.$scan_for(a,f('SeparatorDash'),s(new Map([[/^-$/,"dash"]])))}),n(b,'$scan_for_quote',function(a){var b=this;return b.$scan_for(a,f('SeparatorQuote'),s(new Map([[/^'$/,"single_quote"],[/^"$/,"double_quote"]])))}),n(b,'$scan_for_at',function(a){var b=this;return b.$scan_for(a,f('SeparatorAt'),s(new Map([[/^(at|@)$/,"at"]])))}),n(b,'$scan_for_in',function(a){var b=this;return b.$scan_for(a,f('SeparatorIn'),s(new Map([[/^in$/,"in"]])))}),n(b,'$scan_for_on',function(a){var b=this;return b.$scan_for(a,f('SeparatorOn'),s(new Map([[/^on$/,"on"]])))}),n(b,'$scan_for_and',function(a){var b=this;return b.$scan_for(a,f('SeparatorAnd'),s(new Map([[/^and$/,"and"]])))}),n(b,'$scan_for_t',function(a){var b=this;return b.$scan_for(a,f('SeparatorT'),s(new Map([[/^t$/,"T"]])))}),n(b,'$scan_for_w',function(a){var b=this;return b.$scan_for(a,f('SeparatorW'),s(new Map([[/^w$/,"W"]])))}),c(b,'$to_s',z("separator"))}(f[0],i('Tag'),f),function(d,e){var f=j(d,e,'SeparatorComma');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-comma")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorDot');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dot")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorColon');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-colon")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorSpace');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-space")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorSlash');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-slash")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorDash');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dash")})}(f[0],i('Separator')),function(e,f){var d=j(e,f,'SeparatorQuote'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-quote-"),d.type.$to_s())})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorAt');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-at")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorIn');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-in")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorOn');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-on")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorAnd');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-and")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorT');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-T")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorW');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-W")})}(f[0],i('Separator'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var b=j(g,h,'Sign'),k=[b].concat(i),f=e.$r(k);return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function e(b){var f=e.$$s==null?this:e.$$s,c=a;return b==null&&(b=a),d(c=f.$scan_for_plus(b))?(b.$tag(c),a):d(c=f.$scan_for_minus(b))?(b.$tag(c),a):a},{$$s:c})}),n(b,'$scan_for_plus',function(a){var b=this;return b.$scan_for(a,f('SignPlus'),s(new Map([[/^\+$/,"plus"]])))}),n(b,'$scan_for_minus',function(a){var b=this;return b.$scan_for(a,f('SignMinus'),s(new Map([[/^-$/,"minus"]])))}),c(b,'$to_s',z("sign"))}(f[0],i('Tag'),f),function(d,e){var f=j(d,e,'SignPlus');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-plus")})}(f[0],i('Sign')),function(d,e){var f=j(d,e,'SignMinus');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minus")})}(f[0],i('Sign'))}(i[0],i),function(f,g){var h=q(f,'Chronic'),b=[h].concat(g),i=e.$r(b);return function(e,f){var b=j(e,f,'TimeZone');return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?(b.$tag(e),a):a},{$$s:c})}),n(b,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/[PMCE][DS]T|UTC/i,"tz"],[/(tzminus)?\d{2}:?\d{2}/,"tz"]])))}),c(b,'$to_s',z("timezone"))}(b[0],i('Tag'))}(i[0],i),G.$require("strscan"),function(h,i){var k=q(h,'Chronic'),g=[k].concat(i);return function(k,p,q){var i=j(k,p,'Numerizer'),g=[i].concat(q),h=e.$r(g);return o(g[0],'DIRECT_NUMS',[["eleven","11"],["twelve","12"],["thirteen","13"],["fourteen","14"],["fifteen","15"],["sixteen","16"],["seventeen","17"],["eighteen","18"],["nineteen","19"],["ninteen","19"],["zero","0"],["one","1"],["two","2"],["three","3"],["four(\\W|$)","4\\1"],["five","5"],["six(\\W|$)","6\\1"],["seven(\\W|$)","7\\1"],["eight(\\W|$)","8\\1"],["nine(\\W|$)","9\\1"],["ten","10"],["\\ba[\\b^$]","1"]]),o(g[0],'ORDINALS',[["first","1"],["third","3"],["fourth","4"],["fifth","5"],["sixth","6"],["seventh","7"],["eighth","8"],["ninth","9"],["tenth","10"],["twelfth","12"],["twentieth","20"],["thirtieth","30"],["fourtieth","40"],["fiftieth","50"],["sixtieth","60"],["seventieth","70"],["eightieth","80"],["ninetieth","90"]]),o(g[0],'TEN_PREFIXES',[["twenty",20],["thirty",30],["forty",40],["fourty",40],["fifty",50],["sixty",60],["seventy",70],["eighty",80],["ninety",90]]),o(g[0],'BIG_PREFIXES',[["hundred",100],["thousand",1e3],["million",1e6],["billion",1e9],["trillion",1e12]]),n(i,'$numerize',function(c){var e=this;return c=c.$dup(),c=c.$gsub(/ +|([^\d])-([^\d])/,"\\1 \\2"),c=c.$gsub(/a half/,"haAlf"),m(h('DIRECT_NUMS'),'each',[],function(d){return d==null&&(d=a),c=c.$gsub(C([d['$[]'](0)],'i'),b("",d['$[]'](1)))}),m(h('ORDINALS'),'each',[],function(d){return d==null&&(d=a),c=c.$gsub(C([d['$[]'](0)],'i'),b(b("",d['$[]'](1)),d['$[]'](0)['$[]'](-2,2)))}),m(h('TEN_PREFIXES'),'each',[],function(d){return d==null&&(d=a),c=m(c,'gsub',[C(["(?:",d['$[]'](0),") *(\\d(?=[^\\d]|$))*"],'i')],function(){var c;return b("",b(d['$[]'](1),((c=A['~'])===a?a:c['$[]'](1)).$to_i()).$to_s())})}),m(h('TEN_PREFIXES'),'each',[],function(d){return d==null&&(d=a),c=m(c,'gsub',[C([d['$[]'](0)],'i')],function(){return b("",d['$[]'](1).$to_s())})}),m(h('BIG_PREFIXES'),'each',[],function g(e){var h=g.$$s==null?this:g.$$s;return e==null&&(e=a),c=m(c,'gsub',[C(["(?:)?(\\d*) *",e['$[]'](0)],'i')],function(){var c;return d(((c=A['~'])===a?a:c['$[]'](1))['$empty?']())?e['$[]'](1):b("",f(e['$[]'](1),((c=A['~'])===a?a:c['$[]'](1)).$to_i()).$to_s())}),h.$andition(c)},{$$s:e}),c=m(c,'gsub',[/(\d+)(?: | and |-)*haAlf/i],function(){var c;return b(((c=A['~'])===a?a:c['$[]'](1)).$to_f(),.5).$to_s()}),c.$gsub(//,"")}),function(f,g){var h=[f].concat(g),i=e.$r(h);return f.$private(),c(f,'$andition',function(f){var c=a;for(c=i('StringScanner').$new(f);d(c.$scan_until(/(\d+)( | and )(\d+)(?=[^\w]|$)/i));)(d(c['$[]'](2)['$=~'](/and/))||d(r(c['$[]'](1).$size(),c['$[]'](3).$size())))&&(f['$[]='](e.Range.$new(l(c.$pos(),c.$matched_size()),l(c.$pos(),1),!1),b("",b(c['$[]'](1).$to_i(),c['$[]'](3).$to_i()).$to_s())),c.$reset())})}(e.get_singleton_class(i),g)}(g[0],null,g)}(i[0],i),function(d,e){var g=q(d,'Chronic'),h=[g].concat(e);return function(e,g){var d=j(e,g,'Season');return d.$attr_reader("start"),d.$attr_reader("end"),c(d,'$initialize',function(b,c){var a=this;return a.start=b,a.end=c}),n(d,'$find_next_season',function(e,g){var c=a,d=a;return c=["spring","summer","autumn","winter"],d=b(c.$index(e),f(1,g))['$%'](4),c['$[]'](d)}),n(d,'$season_after',function(a){var b=this;return b.$find_next_season(a,1)}),n(d,'$season_before',function(a){var b=this;return b.$find_next_season(a,-1)})}(h[0],null)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(h,i,k){var f=j(h,i,'Repeater'),l=[f].concat(k),g=e.$r(l),o=f.$$prototype;return o.now=a,n(f,'$scan',function(c,b){var e=this;return m(c,'each',[],function g(c){var f=g.$$s==null?this:g.$$s,e=a;return c==null&&(c=a),d(e=f.$scan_for_season_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_month_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_day_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_day_portions(c,b))?(c.$tag(e),a):d(e=f.$scan_for_times(c,b))?(c.$tag(e),a):d(e=f.$scan_for_units(c,b))?(c.$tag(e),a):a},{$$s:e})}),n(f,'$scan_for_season_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterSeasonName'),s(new Map([[/^springs?$/,"spring"],[/^summers?$/,"summer"],[/^(autumn)|(fall)s?$/,"autumn"],[/^winters?$/,"winter"]])),a)},-2),n(f,'$scan_for_month_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterMonthName'),s(new Map([[/^jan[:\.]?(uary)?$/,"january"],[/^feb[:\.]?(ruary)?$/,"february"],[/^mar[:\.]?(ch)?$/,"march"],[/^apr[:\.]?(il)?$/,"april"],[/^may$/,"may"],[/^jun[:\.]?e?$/,"june"],[/^jul[:\.]?y?$/,"july"],[/^aug[:\.]?(ust)?$/,"august"],[/^sep[:\.]?(t[:\.]?|tember)?$/,"september"],[/^oct[:\.]?(ober)?$/,"october"],[/^nov[:\.]?(ember)?$/,"november"],[/^dec[:\.]?(ember)?$/,"december"]])),a)},-2),n(f,'$scan_for_day_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterDayName'),s(new Map([[/^m[ou]n(day)?$/,"monday"],[/^t(ue|eu|oo|u|)s?(day)?$/,"tuesday"],[/^we(d|dnes|nds|nns)(day)?$/,"wednesday"],[/^th(u|ur|urs|ers)(day)?$/,"thursday"],[/^fr[iy](day)?$/,"friday"],[/^sat(t?[ue]rday)?$/,"saturday"],[/^su[nm](day)?$/,"sunday"]])),a)},-2),n(f,'$scan_for_day_portions',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterDayPortion'),s(new Map([[/^ams?$/,"am"],[/^pms?$/,"pm"],[/^mornings?$/,"morning"],[/^afternoons?$/,"afternoon"],[/^evenings?$/,"evening"],[/^(night|nite)s?$/,"night"]])),a)},-2),n(f,'$scan_for_times',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterTime'),/^\d{1,2}(:?\d{1,2})?([\.:]?\d{1,2}([\.:]\d{1,6})?)?$/,a)},-2),n(f,'$scan_for_units',function(f,e){try{var c=x('return');return e==null&&(e=new Map),m(s(new Map([[/^years?$/,"year"],[/^seasons?$/,"season"],[/^months?$/,"month"],[/^fortnights?$/,"fortnight"],[/^weeks?$/,"week"],[/^weekends?$/,"weekend"],[/^(week|business)days?$/,"weekday"],[/^days?$/,"day"],[/^hrs?$/,"hour"],[/^hours?$/,"hour"],[/^mins?$/,"minute"],[/^minutes?$/,"minute"],[/^secs?$/,"second"],[/^seconds?$/,"second"]])),'each',[],function l(i,h){var j=a,k=a;if(i==null&&(i=a),h==null&&(h=a),d(i['$=~'](f.$word())))j=b("Repeater",h.$to_s().$capitalize()),k=g('Chronic').$const_get(j),c.$throw(k.$new(h,e),l.$$is_lambda);else return a},{$$ret:c}),a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}},-2),c(f,'$<=>',function(a){var b=this;return b.$width()['$<=>'](a.$width())}),c(f,'$width',function(){var a=this;return a.$raise("Repeater#width must be overridden in subclasses")}),c(f,'$next',function(e){var b=this;return d(b.now)?a:b.$raise("Start point must be set before calling #next")}),c(f,'$this',function(e){var b=this;return d(b.now)?a:b.$raise("Start point must be set before calling #this")}),c(f,'$to_s',z("repeater"))}(f[0],k('Tag'),f)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterYear'),q=[m].concat(t),i=e.$r(q),n=m.$$prototype;return n.current_year_start=n.now=a,o(q[0],'YEAR_SECONDS',31536e3),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_year_start=a},-2),c(m,'$next',function e(f){var m=e.$$p||a,c=this,j=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[f],m),d(c.current_year_start))j=k(f,"future")?1:-1,c.current_year_start=i('Chronic').$construct(b(c.current_year_start.$year(),j));else switch(f.valueOf()){case"future":c.current_year_start=i('Chronic').$construct(b(c.now.$year(),1));break;case"past":c.current_year_start=i('Chronic').$construct(l(c.now.$year(),1));break;default:a}return i('Span').$new(c.current_year_start,i('Chronic').$construct(b(c.current_year_start.$year(),1)))}),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),f=i('Chronic').$construct(b(c.now.$year(),1),1,1);break;case"past":e=i('Chronic').$construct(c.now.$year(),1,1),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day());break;case"none":e=i('Chronic').$construct(c.now.$year(),1,1),f=i('Chronic').$construct(b(c.now.$year(),1),1,1);break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(d,e,h){var f=this,b=a,c=a,g=a;return b=k(h,"future")?1:-1,c=f.$build_offset_time(d.$begin(),e,b),g=f.$build_offset_time(d.$end(),e,b),i('Span').$new(c,g)}),c(m,'$width',function(){return i('YEAR_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year")}),m.$private(),c(m,'$build_offset_time',function(c,j,k){var l=this,g=a,e=a,h=a;return g=b(c.$year(),f(j,k)),e=l.$month_days(g,c.$month()),h=d(r(c.$day(),e))?e:c.$day(),i('Chronic').$construct(g,c.$month(),h,c.$hour(),c.$min(),c.$sec())}),c(m,'$month_days',function(b,a){return d(p('Date')['$leap?'](b))?p(i('RepeaterMonth'),'MONTH_DAYS_LEAP')['$[]'](l(a,1)):p(i('RepeaterMonth'),'MONTH_DAYS')['$[]'](l(a,1))})}(i[0],t('Repeater'),i)}(i[0],i),function(l,n){var r=q(l,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var l=j(t,r,'RepeaterSeason'),q=[l].concat(s),i=e.$r(q),n=l.$$prototype;return n.now=n.next_season_end=n.next_season_start=a,o(q[0],'SEASON_SECONDS',7862400),o(q[0],'SEASONS',new Map([["spring",i('Season').$new(i('MiniDate').$new(3,20),i('MiniDate').$new(6,20))],["summer",i('Season').$new(i('MiniDate').$new(6,21),i('MiniDate').$new(9,22))],["autumn",i('Season').$new(i('MiniDate').$new(9,23),i('MiniDate').$new(12,21))],["winter",i('Season').$new(i('MiniDate').$new(12,22),i('MiniDate').$new(3,19))]])),c(l,'$initialize',function c(e,d){var f=c.$$p||a,b=this;return c.$$p=null,d==null&&(d=new Map),h(b,g(b,'initialize',c,!1,!0),'initialize',[e,d],f),b.next_season_start=a,b.next_season_end=a},-2),c(l,'$next',function c(e){var j=c.$$p||a,b=this,d=a,f=a;return c.$$p=null,h(b,g(b,'next',c,!1,!0),'next',[e],j),d=k(e,"future")?1:-1,f=i('Season').$find_next_season(b.$find_current_season(i('MiniDate').$from_time(b.now)),d),b.$find_next_season_span(d,f)}),c(l,'$this',function o(l){var q=o.$$p||a,c=this,d=a,e=a,j=a,n=a,m=a;switch(o.$$p=null,l==null&&(l="future"),h(c,g(c,'this',o,!1,!0),'this',[l],q),d=k(l,"future")?1:-1,e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),j=c.$find_current_season(i('MiniDate').$from_time(c.now)),l.valueOf()){case"past":n=b(e,f(d,c.$num_seconds_til_start(j,d))),m=e;break;case"future":n=b(e,p(i('RepeaterDay'),'DAY_SECONDS')),m=b(e,f(d,c.$num_seconds_til_end(j,d)));break;case"none":n=b(e,f(d,c.$num_seconds_til_start(j,d))),m=b(e,f(d,c.$num_seconds_til_end(j,d)));break;default:a}return c.$construct_season(n,m)},-1),c(l,'$offset',function(a,b,c){var d=this;return i('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(l,'$offset_by',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(e,c),i('SEASON_SECONDS')))}),c(l,'$width',function(){return i('SEASON_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-season")}),l.$private(),c(l,'$find_next_season_span',function(c,e){var a=this;return d(a.next_season_start)||d(a.next_season_end)||(a.next_season_start=i('Chronic').$construct(a.now.$year(),a.now.$month(),a.now.$day()),a.next_season_end=i('Chronic').$construct(a.now.$year(),a.now.$month(),a.now.$day())),a.next_season_start=b(a.next_season_start,f(c,a.$num_seconds_til_start(e,c))),a.next_season_end=b(a.next_season_end,f(c,a.$num_seconds_til_end(e,c))),a.$construct_season(a.next_season_start,a.next_season_end)}),c(l,'$find_current_season',function(b){return m(["spring","summer","autumn","winter"],'find',[],function(c){return c==null&&(c=a),b['$is_between?'](i('SEASONS')['$[]'](c).$start(),i('SEASONS')['$[]'](c).$end())})}),c(l,'$num_seconds_til',function(h,j){var e=this,g=a,c=a;for(g=i('Chronic').$construct(e.now.$year(),e.now.$month(),e.now.$day()),c=0;!d(i('MiniDate').$from_time(b(g,f(j,c)))['$equals?'](h));)c=b(c,p(i('RepeaterDay'),'DAY_SECONDS'));return c}),c(l,'$num_seconds_til_start',function(a,b){var c=this;return c.$num_seconds_til(i('SEASONS')['$[]'](a).$start(),b)}),c(l,'$num_seconds_til_end',function(a,b){var c=this;return c.$num_seconds_til(i('SEASONS')['$[]'](a).$end(),b)}),c(l,'$construct_season',function(a,b){return i('Span').$new(i('Chronic').$construct(a.$year(),a.$month(),a.$day()),i('Chronic').$construct(b.$year(),b.$month(),b.$day()))})}(i[0],s('Repeater'),i)}(i[0],i),function(g,h){var i=q(g,'Chronic'),d=[i].concat(h),l=e.$r(d);return function(n,l,m){var d=j(n,l,'RepeaterSeasonName'),h=[d].concat(m),g=e.$r(h),i=d.$$prototype;return i.type=i.now=a,o(h[0],'SEASON_SECONDS',7862400),o(h[0],'DAY_SECONDS',86400),c(d,'$next',function(d){var b=this,c=a;return c=k(d,"future")?1:-1,b.$find_next_season_span(c,b.type)}),c(d,'$this',function(i){var c=this,d=a,e=a,j=a,h=a,n=a,l=a,m=a;switch(i==null&&(i="future"),d=k(i,"future")?1:-1,e=g('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),j=b(e,f(d,c.$num_seconds_til_start(c.type,d))),h=b(e,f(d,c.$num_seconds_til_end(c.type,d))),n=c.$find_current_season(g('MiniDate').$from_time(c.now)),i.valueOf()){case"past":l=j,m=k(n,c.type)?e:h;break;case"future":l=k(n,c.type)?b(e,p(g('RepeaterDay'),'DAY_SECONDS')):j,m=h;break;case"none":l=j,m=h;break;default:a}return c.$construct_season(l,m)},-1),c(d,'$offset',function(a,b,c){var d=this;return g('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(d,'$offset_by',function(d,e,h){var c=a;return c=k(h,"future")?1:-1,b(d,f(f(e,c),p(g('RepeaterYear'),'YEAR_SECONDS')))})}(d[0],l('RepeaterSeason'),d)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterMonth'),n=[m].concat(t),i=e.$r(n),q=m.$$prototype;return q.current_month_start=q.now=a,o(n[0],'MONTH_SECONDS',2592e3),o(n[0],'YEAR_MONTHS',12),o(n[0],'MONTH_DAYS',[31,28,31,30,31,30,31,31,30,31,30,31]),o(n[0],'MONTH_DAYS_LEAP',[31,29,31,30,31,30,31,31,30,31,30,31]),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_month_start=a},-2),c(m,'$next',function e(f){var j=e.$$p||a,c=this;return e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[f],j),d(c.current_month_start)?c.current_month_start=c.$offset_by(i('Chronic').$construct(c.current_month_start.$year(),c.current_month_start.$month()),1,f):c.current_month_start=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,f),i('Span').$new(c.current_month_start,i('Chronic').$construct(c.current_month_start.$year(),b(c.current_month_start.$month(),1)))}),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),f=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,"future");break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day());break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month()),f=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,"future");break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(a,b,c){var d=this;return i('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(m,'$offset_by',function(c,o,q){var s=this,j=a,m=a,n=a,g=a,e=a,h=a,p=a;return j=k(q,"future")?1:-1,m=v(f(j,o),i('YEAR_MONTHS')),n=f(j,o)['$%'](i('YEAR_MONTHS')),g=b(c.$year(),m),e=b(c.$month(),n),d(r(e,i('YEAR_MONTHS')))&&(g=b(g,1),e=l(e,i('YEAR_MONTHS'))),h=s.$month_days(g,e),p=d(r(c.$day(),h))?h:c.$day(),i('Chronic').$construct(g,e,p,c.$hour(),c.$min(),c.$sec())}),c(m,'$width',function(){return i('MONTH_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month")}),m.$private(),c(m,'$month_days',function(b,a){return d(p('Date')['$leap?'](b))?i('MONTH_DAYS_LEAP')['$[]'](l(a,1)):i('MONTH_DAYS')['$[]'](l(a,1))})}(i[0],t('Repeater'),i)}(i[0],i),function(i,m){var n=q(i,'Chronic'),f=[n].concat(m),p=e.$r(f);return function(s,p,q){var i=j(s,p,'RepeaterMonthName'),n=[i].concat(q),f=e.$r(n),m=i.$$prototype;return m.current_month_begin=m.now=m.index=m.type=a,o(n[0],'MONTH_SECONDS',2592e3),o(n[0],'MONTHS',new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_month_begin=a},-2),c(i,'$next',function e(i){var q=e.$$p||a,c=this,p=a,m=a,n=a,o=a,j=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[i],q),d(c.current_month_begin))switch(i.valueOf()){case"future":c.current_month_begin=f('Chronic').$construct(b(c.current_month_begin.$year(),1),c.current_month_begin.$month());break;case"past":c.current_month_begin=f('Chronic').$construct(l(c.current_month_begin.$year(),1),c.current_month_begin.$month());break;default:a}else{switch(i.valueOf()){case"future":d(y(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(r(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(b(c.now.$year(),1),c.$index()));break;case"none":d(u(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(r(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(b(c.now.$year(),1),c.$index()));break;case"past":d(t(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(y(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(l(c.now.$year(),1),c.$index()));break;default:a}d(p=c.current_month_begin)?p:c.$raise("Current month should be set by now")}return m=c.current_month_begin.$year(),n=c.current_month_begin.$month(),k(n,12)?(o=b(m,1),j=1):(o=m,j=b(n,1)),f('Span').$new(c.current_month_begin,f('Chronic').$construct(o,j))}),c(i,'$this',function d(b){var e=d.$$p||a,c=this;switch(d.$$p=null,b==null&&(b="future"),h(c,g(c,'this',d,!1,!0),'this',[b],e),b.valueOf()){case"past":return c.$next(b);case"future":case"none":return c.$next("none");default:return a}},-1),c(i,'$width',function(){return f('MONTH_SECONDS')}),c(i,'$index',function(){var b=this,c=a;return b.index=d(c=b.index)?c:f('MONTHS')['$[]'](b.type)}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-monthname-"),d.type.$to_s())})}(f[0],p('Repeater'),f)}(i[0],i),function(l,n){var r=q(l,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var l=j(t,r,'RepeaterFortnight'),q=[l].concat(s),i=e.$r(q),n=l.$$prototype;return n.current_fortnight_start=n.now=a,o(q[0],'FORTNIGHT_SECONDS',1209600),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_fortnight_start=a},-2),c(l,'$next',function j(l){var r=j.$$p||a,c=this,n=a,e=a,o=a,q=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],r),d(c.current_fortnight_start))n=k(l,"future")?1:-1,c.current_fortnight_start=b(c.current_fortnight_start,f(n,i('FORTNIGHT_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("sunday"),e['$start='](c.now),o=e.$next("future"),c.current_fortnight_start=o.$begin();break;case"past":e=i('RepeaterDayName').$new("sunday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),m(2,'times',[],function(){return e.$next("past")}),q=e.$next("past"),c.current_fortnight_start=q.$begin();break;default:a}return i('Span').$new(c.current_fortnight_start,b(c.current_fortnight_start,i('FORTNIGHT_SECONDS')))}),c(l,'$this',function l(e){var o=l.$$p||a,c=this,f=a,d=a,n=a,j=a,m=a;switch(l.$$p=null,e==null&&(e="future"),h(c,g(c,'this',l,!1,!0),'this',[e],o),k(e,"none")&&(e="future"),e.valueOf()){case"future":return f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),p(i('RepeaterHour'),'HOUR_SECONDS')),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),d.$this("future"),n=d.$this("future"),j=n.$begin(),i('Span').$new(f,j);case"past":return j=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),m=d.$next("past"),f=m.$begin(),i('Span').$new(f,j);default:return a}},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('FORTNIGHT_SECONDS')))}),c(l,'$width',function(){return i('FORTNIGHT_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-fortnight")})}(i[0],s('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),r=e.$r(i);return function(s,q,r){var l=j(s,q,'RepeaterWeek'),n=[l].concat(r),i=e.$r(n),m=l.$$prototype;return m.current_week_start=m.now=a,o(n[0],'WEEK_SECONDS',604800),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_week_start=a},-2),c(l,'$next',function j(l){var q=j.$$p||a,c=this,m=a,e=a,n=a,o=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],q),d(c.current_week_start))m=k(l,"future")?1:-1,c.current_week_start=b(c.current_week_start,f(m,i('WEEK_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("sunday"),e['$start='](c.now),n=e.$next("future"),c.current_week_start=n.$begin();break;case"past":e=i('RepeaterDayName').$new("sunday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),e.$next("past"),o=e.$next("past"),c.current_week_start=o.$begin();break;default:a}return i('Span').$new(c.current_week_start,b(c.current_week_start,i('WEEK_SECONDS')))}),c(l,'$this',function l(f){var n=l.$$p||a,c=this,e=a,d=a,m=a,k=a,j=a;switch(l.$$p=null,f==null&&(f="future"),h(c,g(c,'this',l,!1,!0),'this',[f],n),f.valueOf()){case"future":return e=b(i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),p(i('RepeaterHour'),'HOUR_SECONDS')),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),m=d.$this("future"),k=m.$begin(),i('Span').$new(e,k);case"past":return k=i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),j=d.$next("past"),e=j.$begin(),i('Span').$new(e,k);case"none":return d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),j=d.$next("past"),e=j.$begin(),i('Span').$new(e,b(e,i('WEEK_SECONDS')));default:return a}},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('WEEK_SECONDS')))}),c(l,'$width',function(){return i('WEEK_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-week")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var r=q(m,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var m=j(t,r,'RepeaterWeekend'),q=[m].concat(s),i=e.$r(q),n=m.$$prototype;return n.current_week_start=n.now=a,o(q[0],'WEEKEND_SECONDS',172800),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_week_start=a},-2),c(m,'$next',function j(l){var q=j.$$p||a,c=this,m=a,e=a,n=a,o=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],q),d(c.current_week_start))m=k(l,"future")?1:-1,c.current_week_start=b(c.current_week_start,f(m,p(i('RepeaterWeek'),'WEEK_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("saturday"),e['$start='](c.now),n=e.$next("future"),c.current_week_start=n.$begin();break;case"past":e=i('RepeaterDayName').$new("saturday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),o=e.$next("past"),c.current_week_start=o.$begin();break;default:a}return i('Span').$new(c.current_week_start,b(c.current_week_start,i('WEEKEND_SECONDS')))}),c(m,'$this',function f(d){var l=f.$$p||a,e=this,c=a,j=a,k=a;switch(f.$$p=null,d==null&&(d="future"),h(e,g(e,'this',f,!1,!0),'this',[d],l),d.valueOf()){case"future":case"none":return c=i('RepeaterDayName').$new("saturday"),c['$start='](e.now),j=c.$this("future"),i('Span').$new(j.$begin(),b(j.$begin(),i('WEEKEND_SECONDS')));case"past":return c=i('RepeaterDayName').$new("saturday"),c['$start='](e.now),k=c.$this("past"),i('Span').$new(k.$begin(),b(k.$begin(),i('WEEKEND_SECONDS')));default:return a}},-1),c(m,'$offset',function(d,j,g){var h=a,e=a,c=a;return h=k(g,"future")?1:-1,e=i('RepeaterWeekend').$new("weekend"),e['$start='](d.$begin()),c=b(e.$next(g).$begin(),f(f(l(j,1),h),p(i('RepeaterWeek'),'WEEK_SECONDS'))),i('Span').$new(c,b(c,l(d.$end(),d.$begin())))}),c(m,'$width',function(){return i('WEEKEND_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-weekend")})}(i[0],s('Repeater'),i)}(i[0],i),function(l,n){var p=q(l,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var i=j(s,q,'RepeaterWeekday'),n=[i].concat(r),l=e.$r(n),p=i.$$prototype;return p.current_weekday_start=p.now=a,o(n[0],'DAY_SECONDS',86400),o(n[0],'DAYS',new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_weekday_start=a},-2),c(i,'$next',function i(j){var n=i.$$p||a,c=this,e=a;if(i.$$p=null,h(c,g(c,'next',i,!1,!0),'next',[j],n),e=k(j,"future")?1:-1,d(c.current_weekday_start))(function(){try{var g=x('break');return m(c,'loop',[],function h(){var c=h.$$s==null?this:h.$$s;if(c.current_weekday_start==null&&(c.current_weekday_start=a),c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS'))),d(c['$is_weekday?'](c.current_weekday_start.$wday())))g.$throw(a,h.$$is_lambda);else return a},{$$s:c})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}})();else for(c.current_weekday_start=l('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS')));!d(c['$is_weekday?'](c.current_weekday_start.$wday()));)c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS')));return l('Span').$new(c.current_weekday_start,b(c.current_weekday_start,l('DAY_SECONDS')))}),c(i,'$this',function d(b){var e=d.$$p||a,c=this;switch(d.$$p=null,b==null&&(b="future"),h(c,g(c,'this',d,!1,!0),'this',[b],e),b.valueOf()){case"past":return c.$next("past");case"future":case"none":return c.$next("future");default:return a}},-1),c(i,'$offset',function(h,i,j){var m=this,g=a,e=a,c=a;for(g=k(j,"future")?1:-1,e=0,c=0;!k(e,i);)c=b(c,f(g,l('DAY_SECONDS'))),d(m['$is_weekday?'](b(h.$begin(),c).$wday()))&&(e=b(e,1));return b(h,c)}),c(i,'$width',function(){return l('DAY_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-weekday")}),i.$private(),c(i,'$is_weekend?',function(b){var c=this,e=a;return d(e=b['$=='](c.$symbol_to_number("saturday")))?e:b['$=='](c.$symbol_to_number("sunday"))}),c(i,'$is_weekday?',function(a){var b=this;return b['$is_weekend?'](a)['$!']()}),c(i,'$symbol_to_number',function(c){var e=this,b=a;return d(b=l('DAYS')['$[]'](c))?b:e.$raise("Invalid symbol specified")})}(i[0],r('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),p=e.$r(i);return function(r,p,q){var l=j(r,p,'RepeaterDay'),n=[l].concat(q),i=e.$r(n),m=l.$$prototype;return m.current_day_start=m.now=a,o(n[0],'DAY_SECONDS',86400),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_day_start=a},-2),c(l,'$next',function e(j){var m=e.$$p||a,c=this,l=a;return e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[j],m),d(c.current_day_start)||(c.current_day_start=i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day())),l=k(j,"future")?1:-1,c.current_day_start=b(c.current_day_start,f(l,i('DAY_SECONDS'))),i('Span').$new(c.current_day_start,b(c.current_day_start,i('DAY_SECONDS')))}),c(l,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),i('DAY_SECONDS'));break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour());break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),i('DAY_SECONDS'));break;default:a}return i('Span').$new(e,f)},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('DAY_SECONDS')))}),c(l,'$width',function(){return i('DAY_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day")})}(i[0],p('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),r=e.$r(i);return function(s,q,r){var i=j(s,q,'RepeaterDayName'),n=[i].concat(r),l=e.$r(n),m=i.$$prototype;return m.current_date=m.now=m.type=a,o(n[0],'DAY_SECONDS',86400),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_date=a},-2),c(i,'$next',function j(m){var o=j.$$p||a,c=this,i=a,n=a,e=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[m],o),i=k(m,"future")?1:-1,d(c.current_date))c.current_date=b(c.current_date,f(i,7));else for(c.current_date=p('Date').$new(c.now.$year(),c.now.$month(),c.now.$day()),c.current_date=b(c.current_date,i),n=c.$symbol_to_number(c.type);D(c.current_date.$wday(),n);)c.current_date=b(c.current_date,i);return e=c.current_date.$succ(),l('Span').$new(l('Chronic').$construct(c.current_date.$year(),c.current_date.$month(),c.current_date.$day()),l('Chronic').$construct(e.$year(),e.$month(),e.$day()))}),c(i,'$this',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b="future"),h(d,g(d,'this',c,!1,!0),'this',[b],e),k(b,"none")&&(b="future"),d.$next(b)},-1),c(i,'$width',function(){return l('DAY_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dayname-"),d.type.$to_s())}),i.$private(),c(i,'$symbol_to_number',function(e){var f=this,b=a,c=a;return b=new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]]),d(c=b['$[]'](e))?c:f.$raise("Invalid symbol specified")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterDayPortion'),q=[m].concat(t),i=e.$r(q),n=m.$$prototype;return n.type=n.range=n.current_span=n.now=a,o(q[0],'PORTIONS',new Map([["am",e.Range.$new(0,l(f(f(12,60),60),1),!1)],["pm",e.Range.$new(f(f(12,60),60),l(f(f(24,60),60),1),!1)],["morning",e.Range.$new(f(f(6,60),60),f(f(12,60),60),!1)],["afternoon",e.Range.$new(f(f(13,60),60),f(f(17,60),60),!1)],["evening",e.Range.$new(f(f(17,60),60),f(f(20,60),60),!1)],["night",e.Range.$new(f(f(20,60),60),f(f(24,60),60),!1)]])),c(m,'$initialize',function l(j,m){var n=l.$$p||a,c=this,k=a;return l.$$p=null,m==null&&(m=new Map),h(c,g(c,'initialize',l,!1,!0),'initialize',[j,m],n),c.current_span=a,d(j['$kind_of?'](i('Integer')))?c.range=e.Range.$new(f(f(c.type,60),60),f(f(b(c.type,12),60),60),!1):(c.range=i('PORTIONS')['$[]'](j),d(k=c.range)?k:c.$raise("Invalid type '"+j+"' for RepeaterDayPortion")),d(k=c.range)?k:c.$raise("Range should have been set by now")},-2),c(m,'$next',function j(f){var t=j.$$p||a,c=this,m=a,n=a,o=a,p=a,k=a,e=a,q=a,s=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[f],t),d(c.current_span))return m=B("future",n=f)?1:B("past",n)?-1:a,o=i('Chronic').$construct(c.current_span.$begin().$year(),c.current_span.$begin().$month(),b(c.current_span.$begin().$day(),m),c.current_span.$begin().$hour(),c.current_span.$begin().$min(),c.current_span.$begin().$sec()),p=i('Chronic').$construct(c.current_span.$end().$year(),c.current_span.$end().$month(),b(c.current_span.$end().$day(),m),c.current_span.$end().$hour(),c.current_span.$end().$min(),c.current_span.$end().$sec()),c.current_span=i('Span').$new(o,p);if(k=l(c.now,i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day())),d(y(k,c.range.$begin())))switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),l(c.now.$day(),1)),c.range.$begin());break;default:a}else if(d(r(k,c.range.$end())))switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin());break;default:a}else switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),l(c.now.$day(),1)),c.range.$begin());break;default:a}return q=l(c.range.$end(),c.range.$begin()),s=c.$construct_date_from_reference_and_offset(e,q),c.current_span=i('Span').$new(e,s)}),c(m,'$this',function d(e){var k=d.$$p||a,c=this,f=a,j=a;return d.$$p=null,e==null&&(e="future"),h(c,g(c,'this',d,!1,!0),'this',[e],k),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin()),j=c.$construct_date_from_reference_and_offset(f),c.current_span=i('Span').$new(f,j)},-1),c(m,'$offset',function(h,j,d){var e=this,g=a,c=a;return e.now=h.$begin(),g=e.$next(d),c=k(d,"future")?1:-1,b(g,f(f(c,l(j,1)),p(i('RepeaterDay'),'DAY_SECONDS')))}),c(m,'$width',function(){var b=this,c=a;return d(c=b.range)?c:b.$raise("Range has not been set"),d(b.current_span)?b.current_span.$width():d(b.type['$kind_of?'](i('Integer')))?f(f(12,60),60):l(b.range.$end(),b.range.$begin())}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dayportion-"),d.type.$to_s())}),m.$private(),c(m,'$construct_date_from_reference_and_offset',function(e,h){var k=this,g=a,m=a,c=a,j=a,n=a;return h==null&&(h=a),g=d(m=h)?m:l(k.range.$end(),k.range.$begin()),c=l(g,f(12,60))['$%'](60),j=v(l(g,c),60)['$%'](60),n=b(v(l(l(g,j),c),f(60,60)),e.$hour()['$%'](24)),i('Chronic').$construct(e.$year(),e.$month(),e.$day(),n,j,c)},-2)}(i[0],t('Repeater'),i)}(i[0],i),function(m,n){var p=q(m,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var m=j(s,q,'RepeaterHour'),p=[m].concat(r),i=e.$r(p),n=m.$$prototype;return n.current_hour_start=n.now=a,o(p[0],'HOUR_SECONDS',3600),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_hour_start=a},-2),c(m,'$next',function e(j){var n=e.$$p||a,c=this,m=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[j],n),d(c.current_hour_start))m=k(j,"future")?1:-1,c.current_hour_start=b(c.current_hour_start,f(m,i('HOUR_SECONDS')));else switch(j.valueOf()){case"future":c.current_hour_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),b(c.now.$hour(),1));break;case"past":c.current_hour_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),l(c.now.$hour(),1));break;default:a}return i('Span').$new(c.current_hour_start,b(c.current_hour_start,i('HOUR_SECONDS')))}),c(m,'$this',function j(e){var k=j.$$p||a,c=this,d=a,f=a;switch(j.$$p=null,e==null&&(e="future"),h(c,g(c,'this',j,!1,!0),'this',[e],k),e.valueOf()){case"future":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),b(c.now.$min(),1)),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),b(c.now.$hour(),1));break;case"past":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min());break;case"none":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=b(d,i('HOUR_SECONDS'));break;default:a}return i('Span').$new(d,f)},-1),c(m,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('HOUR_SECONDS')))}),c(m,'$width',function(){return i('HOUR_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-hour")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var p=q(m,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var m=j(s,q,'RepeaterMinute'),p=[m].concat(r),i=e.$r(p),n=m.$$prototype;return n.current_minute_start=n.now=a,o(p[0],'MINUTE_SECONDS',60),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_minute_start=a},-2),c(m,'$next',function j(e){var n=j.$$p||a,c=this,m=a;if(j.$$p=null,e==null&&(e="future"),h(c,g(c,'next',j,!1,!0),'next',[e],n),d(c.current_minute_start))m=k(e,"future")?1:-1,c.current_minute_start=b(c.current_minute_start,f(m,i('MINUTE_SECONDS')));else switch(e.valueOf()){case"future":c.current_minute_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),b(c.now.$min(),1));break;case"past":c.current_minute_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),l(c.now.$min(),1));break;default:a}return i('Span').$new(c.current_minute_start,b(c.current_minute_start,i('MINUTE_SECONDS')))},-1),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=c.now,f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min());break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),f=c.now;break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),i('MINUTE_SECONDS'));break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('MINUTE_SECONDS')))}),c(m,'$width',function(){return i('MINUTE_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minute")})}(i[0],r('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),p=e.$r(i);return function(r,p,q){var i=j(r,p,'RepeaterSecond'),n=[i].concat(q),l=e.$r(n),m=i.$$prototype;return m.second_start=m.now=a,o(n[0],'SECOND_SECONDS',1),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.second_start=a},-2),c(i,'$next',function i(e){var m=i.$$p||a,c=this,j=a;return i.$$p=null,e==null&&(e="future"),h(c,g(c,'next',i,!1,!0),'next',[e],m),j=k(e,"future")?1:-1,d(c.second_start)?c.second_start=b(c.second_start,f(l('SECOND_SECONDS'),j)):c.second_start=b(c.now,f(j,l('SECOND_SECONDS'))),l('Span').$new(c.second_start,b(c.second_start,l('SECOND_SECONDS')))},-1),c(i,'$this',function d(e){var f=d.$$p||a,c=this;return d.$$p=null,e==null&&(e="future"),h(c,g(c,'this',d,!1,!0),'this',[e],f),l('Span').$new(c.now,b(c.now,1))},-1),c(i,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),l('SECOND_SECONDS')))}),c(i,'$width',function(){return l('SECOND_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-second")})}(i[0],p('Repeater'),i)}(i[0],i),function(n,o){var p=q(n,'Chronic'),i=[p].concat(o),s=e.$r(i);return function(w,q,s){var i=j(w,q,'RepeaterTime'),p=[i].concat(s),o=e.$r(p),n=i.$$prototype;return n.options=n.current_time=n.now=n.type=a,function(n,i,k){var g=j(n,i,'Tick'),l=[g].concat(k),m=e.$r(l),h=g.$$prototype;return h.time=h.ambiguous=a,g.$attr_accessor("time"),c(g,'$initialize',function(c,a){var b=this;return a==null&&(a=!1),b.time=c,b.ambiguous=a},-2),c(g,'$ambiguous?',I("ambiguous")),c(g,'$*',function(b){var a=this;return m('Tick').$new(f(a.time,b),a.ambiguous)}),c(g,'$to_f',function(){var a=this;return a.time.$to_f()}),c(g,'$to_s',function(){var a=this;return b(a.time.$to_s(),d(a.ambiguous)?"?":"")})}(p[0],null,p),c(i,'$initialize',function(w,n){var h=this,c=a,m=a,j=a,i=a,g=a,p=a,q=a,s=a;return n==null&&(n=new Map),h.current_time=a,h.options=n,c=w.$split(":"),d(r(c.$count(),4))&&h.$raise(o('ArgumentError'),"Time cannot have more than 4 groups of ':'"),d(r(c.$first().$length(),2))&&k(c.$count(),1)&&(d(r(c.$first().$length(),4))&&(m=l(c.$first().$length(),2),c.$insert(1,c.$first()['$[]'](e.Range.$new(m,c.$first().$length(),!1))),c['$[]='](0,c.$first()['$[]'](e.Range.$new(0,l(m,1),!1)))),j=l(c.$first().$length(),2),c.$insert(1,c.$first()['$[]'](e.Range.$new(j,c.$first().$length(),!1))),c['$[]='](0,c.$first()['$[]'](e.Range.$new(0,l(j,1),!1)))),i=!1,g=c.$first().$to_i(),(d(h.options['$[]']("hours24")['$nil?']())||E(h.options['$[]']("hours24")['$nil?']())&&D(h.options['$[]']("hours24"),!0))&&((k(c.$first().$length(),1)&&d(r(g,0))||d(t(g,10))&&d(u(g,12))||k(h.options['$[]']("hours24"),!1)&&d(r(g,0)))&&(i=!0),k(g,12)&&d(i)&&(g=0)),g=f(g,f(60,60)),p=0,q=0,s=0,d(r(c.$count(),1))&&(p=f(c['$[]'](1).$to_i(),60)),d(r(c.$count(),2))&&(q=c['$[]'](2).$to_i()),d(r(c.$count(),3))&&(s=v(c['$[]'](3).$to_f(),10['$**'](c['$[]'](3).$length()))),h.type=o('Tick').$new(b(b(b(g,p),q),s),i)},-2),c(i,'$next',function q(v){var y=q.$$p||a,c=this,n=a,p=a,r=a,e=a,s=a,j=a,i=a,x=a,w=a;return q.$$p=null,h(c,g(c,'next',q,!1,!0),'next',[v],y),n=f(f(60,60),12),p=f(f(60,60),24),r=!1,d(c.current_time)||(r=!0,e=o('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day()),s=l(e,p),j=b(e,p),i=l(e.$gmt_offset(),j.$gmt_offset()),j=b(j,i),m(c,'catch',["done"],function f(){var c=f.$$s==null?this:f.$$s;return c.type==null&&(c.type=a),k(v,"future")?d(c.type['$ambiguous?']())?m([b(b(e,c.type.$time()),i),b(b(b(e,n),c.type.$time()),i),b(j,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(t(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):m([b(b(e,c.type.$time()),i),b(j,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(t(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):d(c.type['$ambiguous?']())?m([b(b(b(e,n),c.type.$time()),i),b(b(e,c.type.$time()),i),b(b(s,c.type.$time()),n)],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(u(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):m([b(b(e,c.type.$time()),i),b(s,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(u(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c})},{$$s:c}),d(x=c.current_time)?x:c.$raise("Current time cannot be nil at this point")),d(r)||(w=d(c.type['$ambiguous?']())?n:p,c.current_time=b(c.current_time,k(v,"future")?w:w['$-@']())),o('Span').$new(c.current_time,b(c.current_time,c.$width()))}),c(i,'$this',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b="future"),h(d,g(d,'this',c,!1,!0),'this',[b],e),k(b,"none")&&(b="future"),d.$next(b)},-1),c(i,'$width',z(1)),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-time-"),d.type.$to_s())})}(i[0],s('Repeater'),i)}(i[0],i),function(h,i){var f=q(h,'Chronic'),g=[f].concat(i),c=e.$r(g);return o(g[0],'VERSION',"0.10.2"),function(a,b){return a.$attr_accessor("debug"),a.$attr_accessor("time_class")}(e.get_singleton_class(f),g),f['$debug='](!1),f['$time_class='](p('Time')),n(f,'$parse',function(b,a){return a==null&&(a=new Map),c('Parser').$new(a).$parse(b)},-2),n(f,'$construct',function(j,e,f,g,h,i,m){var q=this,o=a,n=a;return e==null&&(e=1),f==null&&(f=1),g==null&&(g=0),h==null&&(h=0),i==null&&(i=0),m==null&&(m=a),d(t(i,60))&&(h=b(h,v(i,60)),i=i['$%'](60)),d(t(h,60))&&(g=b(g,v(h,60)),h=h['$%'](60)),d(t(g,24))&&(f=b(f,v(g,24)),g=g['$%'](24)),d(o=u(f,56))?o:q.$raise("day must be no more than 56 (makes month resolution easier)"),d(r(f,28))&&(n=d(p('Date')['$leap?'](j))?p(c('Date'),'MONTH_DAYS_LEAP')['$[]'](e):p(c('Date'),'MONTH_DAYS')['$[]'](e),d(r(f,n))&&(e=b(e,v(f,n)),f=f['$%'](n))),d(r(e,12))&&(k(e['$%'](12),0)?(j=b(j,v(l(e,12),12)),e=12):(j=b(j,v(e,12)),e=e['$%'](12))),k(c('Chronic').$time_class().$name(),"Date")?c('Chronic').$time_class().$new(j,e,f):E(c('Chronic').$time_class()['$respond_to?']("new"))||d(y(c('RUBY_VERSION').$to_f(),1.9))&&k(c('Chronic').$time_class().$name(),"Time")?c('Chronic').$time_class().$local(j,e,f,g,h,i):(k(c('Chronic').$time_class().$name(),"DateTime")&&(m=c('Time').$normalize_offset(m)),c('Chronic').$time_class().$new(j,e,f,g,h,i,m))},-2)}(i[0],i)},Opal.modules["web/gxg"]=function(d){var r=d.module,o=d.const_set,e=d.gvars,x=d.klass,g=d.def,n=d.slice,c=d.truthy,f=d.send,q=d.alias,j=d.eqeq,p=d.thrower,h=d.defs,m=d.rb_gt,s=d.rb_divide,i=d.rb_minus,l=d.rb_plus,w=d.rb_le,v=d.neqeq,t=d.rb_ge,u=d.rb_lt,k=[],a=d.nil,b=d.$$$;return d.add_stubs('private,[],try_convert,to_sym,to_s,uuid_generate,create_channel,new,unknown,to_proc,log_unknown,fatal,error,warn,log_warn,info,debug,is_a?,post_event,log_error,now,add_timer,add_periodic_timer,cancel_timer,public,each,to_enum,flatten,==,class,fetch_channel,destroy_channel,uuid,>,/,to_f,-,to_i,+,passes_needed,times,<=,<<,is_any?,match,size,[]=,children_of,!=,delete,keys,record_by_uuid,values,object_id,sort,<=>,object_by_uuid,parent_of,find_index,>=,delete_at,<,unshift,insert,each_with_index'),function(c,d){var e=r(c,'GxG'),b=[e].concat(d);return o(b[0],'LOG',a),o(b[0],'DISPATCHER',a),o(b[0],'OBJECT_SPACE',new Map([["registry",new Map]]))}(k[0],k),e.object_space=new Map([["registry",new Map]]),function(i,k,l){var e=x(i,k,'Object'),m=[e].concat(l),h=d.$r(m),o=e.$$prototype;return o.uuid=a,e.$private(),g(e,'$logged_in?',function(){return b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in")}),g(e,'$bytes',function(e){var a,c;return a=n(arguments),c=a,b(h('GxG'),'ByteArray').$try_convert(c)},-1),g(e,'$new_message',function(g){var e,d,a=this;return e=n(arguments),d=e,c(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b(b('GxG'),'Events'),'Message').$new(new Map([["sender",a.uuid],["subject",d['$[]'](1)],["body",d['$[]'](0)]]))},-1),g(e,'$log_unknown',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'unknown',[d,e,i],h.$to_proc()):a},-1),q(e,"log_trace","log_unknown"),g(e,'$log_fatal',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'fatal',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_error',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'error',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_warn',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'warn',[d,e,i],h.$to_proc()):a},-1),q(e,"log_warning","log_warn"),g(e,'$log_info',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'info',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_debug',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'debug',[d,e,i],h.$to_proc()):a},-1),g(e,'$post_event',function h(d,e){var i=h.$$p||a,j=this,g=a;return h.$$p=null,d==null&&(d="root"),e==null&&(e=a),g=!1,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'post_event',[d],i.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'post_event',[d],i.$to_proc()):j.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$post_event_at',function i(d,e){var j=i.$$p||a,k=this,g=a;return i.$$p=null,d==null&&(d=h('Time').$now()),e==null&&(e=a),g=a,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'add_timer',[new Map([["when",d]])],j.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'add_timer',[new Map([["when",d]])],j.$to_proc()):k.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$post_event_periodic',function h(d,e){var i=h.$$p||a,j=this,g=a;return h.$$p=null,d==null&&(d=.333),e==null&&(e=a),g=a,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'add_periodic_timer',[new Map([["interval",d]])],i.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",d]])],i.$to_proc()):j.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$cancel_periodic',function(d,e){var g=this,f=a;return d==null&&(d=a),e==null&&(e=a),f=!1,c(d['$is_a?'](h('Hash')))&&(c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?f=e.$cancel_timer(d):c(b(b('GxG'),'DISPATCHER'))?f=b(b('GxG'),'DISPATCHER').$cancel_timer(d):g.$log_error("No Event Dispatcher Defined")),f},-1),e.$public(),g(e,'$is_any?',function(k){var d,e,g=this,b=a;return d=n(arguments),e=d,b=!1,function(){try{var d=p('break');return f(e.$flatten().$to_enum(),'each',[],function f(e){var g=f.$$s==null?this:f.$$s;if(e==null&&(e=a),j(e.$class(),h('Class')))if(c(g['$is_a?'](e)))b=!0,d.$throw(a,f.$$is_lambda);else return a;else return a},{$$s:g})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),b},-1),g(e,'$defederate',function(){var d=this,e=a;return c(d.uuid)&&(e=b(b('GxG'),'CHANNELS').$fetch_channel(d.uuid),c(e)&&b(b('GxG'),'CHANNELS').$destroy_channel(d.uuid)),!0})}(k[0],null,k),function(n,o){var g=r(n,'GxG'),q=[g].concat(o),k=d.$r(q);return h(g,'$uuid_generate',function(){return k('SecureRandom').$uuid()}),h(g,'$passes_needed',function(d,e){var b=a,f=a;return d==null&&(d=0),e==null&&(e=0),c(m(d,0))&&c(m(e,0))?(b=s(d.$to_f(),e.$to_f()),f=i(b,b.$to_i().$to_f()),b=b.$to_i().$to_f(),c(m(f,0))&&(b=l(b,1)),b.$to_i()):0},-1),h(g,'$apportioned_ranges',function(g,h,j){var k=a,n=a,e=a;return g==null&&(g=0),h==null&&(h=0),j==null&&(j=0),k=[],n=b('GxG').$passes_needed(g,h),c(m(n,0))&&(e=j,f(n,'times',[],function(){var b=a;return c(w(l(e,i(h,1)),i(g,1)))?b=l(e,i(h,1)):b=i(g,1),k['$<<'](d.Range.$new(e,b,!1)),e=l(b,1)})),k},-1),h(g,'$valid_uuid?',function(d,e){var f=a;return d==null&&(d=a),e==null&&(e=!0),!!c(d['$is_any?'](b('String'),b('Symbol')))&&(j(e,!0)?f=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[4][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/:f=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/,!!c(d.$to_s().$match(f))&&(!!j(d.$to_s().$size(),36)))},-1),h(g,'$replace_registry',function(b){return e.object_space==null&&(e.object_space=a),b==null&&(b=new Map),e.object_space['$[]=']("registry",b),!0},-1),h(g,'$register',function(b,d){var f=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),d==null&&(d=a),c(e.object_space['$[]']("registry")['$[]'](b.$uuid().$to_s().$to_sym()))||(c(d)?f=k('GxG').$children_of(d).$size():f=0,e.object_space['$[]']("registry")['$[]='](b.$uuid().$to_s().$to_sym(),new Map([["object",b],["parent",d],["ordinal",f]]))),!0},-1),h(g,'$unregister',function(d){return e.object_space==null&&(e.object_space=a),d==null&&(d=a),c(e.object_space['$[]']("registry")['$[]'](d.$to_s().$to_sym()))&&v(b(k('GxG'),'DISPLAY_DETAILS')['$[]']("object").$uuid().$to_s().$to_sym(),d.$to_s().$to_sym())&&e.object_space['$[]']("registry").$delete(d.$to_s().$to_sym()),!0},-1),h(g,'$register_uuid_list',function(){return e.object_space==null&&(e.object_space=a),e.object_space['$[]']("registry").$keys()}),h(g,'$record_by_uuid',function(b){var d=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),d=a,c(e.object_space['$[]']("registry")['$[]'](b.$to_s().$to_sym()))&&(d=e.object_space['$[]']("registry")['$[]'](b.$to_s().$to_sym())),d},-1),h(g,'$object_by_uuid',function(b){var d=a;return b==null&&(b=a),(c(d=k('GxG').$record_by_uuid(b))?d:new Map)['$[]']("object")},-1),h(g,'$children_of',function(c){var d=a,b=a;return e.object_space==null&&(e.object_space=a),c==null&&(c=a),d=[],b=[],f(e.object_space['$[]']("registry").$values(),'each',[],function(d){return d==null&&(d=a),j(d['$[]']("parent").$object_id(),c.$object_id())?b['$<<'](d):a}),b=f(b,'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$[]']("ordinal")['$<=>'](c['$[]']("ordinal"))}),f(b,'each',[],function(b){return b==null&&(b=a),d['$<<'](b['$[]']("object"))}),d},-1),h(g,'$set_ordinal',function(d,e){var j=a,h=a,l=a,b=a,g=a;return d==null&&(d=a),e==null&&(e=0),j=!1,c(d['$is_any?'](k('String'),k('Symbol')))?h=k('GxG').$object_by_uuid(d.$to_sym()):h=d,l=k('GxG').$parent_of(h),c(l)&&(b=k('GxG').$children_of(l),g=b.$find_index(h),c(g)&&(c(t(e,i(b.$size(),1)))?b['$<<'](b.$delete_at(g)):c(u(e,0))?b=b.$unshift(b.$delete_at(g)):b=b.$insert(e,b.$delete_at(g)),f(b,'each_with_index',[],function(c,d){var b,e=a;return c==null&&(c=a),d==null&&(d=a),e=k('GxG').$record_by_uuid(c.$uuid().$to_sym()),(b=["ordinal",d],f(e,'[]=',b),b[b.length-1])}),j=!0)),j},-1),h(g,'$parent_of',function(b){var c=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),c=a,function(){try{var d=p('break');return f(e.object_space['$[]']("registry").$values(),'each',[],function f(e){if(e==null&&(e=a),j(e['$[]']("object").$object_id(),b.$object_id()))c=e['$[]']("parent"),d.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c},-1),h(g,'$lineage_of',function(c){var d=a,b=a;for(c==null&&(c=a),d=[],b=k('GxG').$parent_of(c);!j(b,a);)d.$unshift(b),b=k('GxG').$parent_of(b);return d},-1)}(k[0],k)},Opal.modules["web/gxg_augments"]=function(f){var j=f.klass,e=f.def,w=f.module,m=f.const_set,C=f.return_ivar,c=f.truthy,t=f.gvars,d=f.send,v=f.alias,B=f.slice,u=f.to_a,q=f.send2,p=f.find_super,l=f.defs,k=f.rb_plus,s=f.rb_lt,y=f.rb_times,g=f.eqeq,h=f.rb_gt,o=f.range,z=f.not,x=f.rb_minus,n=f.neqeq,r=f.thrower,i=[],A=f.$r(i),a=f.nil,b=f.$$$;return f.add_stubs('include?,respond_to?,call,puts,to_s,[],strftime,now,inspect,to_i,log_error,add,to_proc,warn,unknown,BigDecimal,%,to_f,parse,to_d,to_time,+,<,round,*,sec_fraction,**,private,iso8601_timediv,iso8601,public,clone,match,==,>,size,split,camel_case?,slice,json_1?,json_2?,json?,is_any?,process!,is_a?,valid_datetime_nolocale?,valid_datetime?,[]=,numeric_values,base64?,new,decode64,!,strict_decode64,strict_encode64,each_index,each,-,dup,raise,search,<<,shift,each_pair,each_with_index,object_id,!=,iterative,reverse,get_at_path,gsub,unshift,join,paths_to,to_sym,to_enum,=~,first,dirname,basename,delete,class,gxg_import,try_convert,process'),function(b,c,d){var f=j(b,c,'Buffer'),g=[f].concat(d);return function(c,d){var b=j(c,d,'Array'),f=b.$$prototype;return f.native=a,e(b,'$native_object',function(){var a=this;return a.native})}(g[0],null)}(i[0],null,i),function(c,d){var e=w(c,'GxG'),b=[e].concat(d);return function(c,d){var e=w(c,'Database'),b=[e].concat(d);return j(b[0],null,'Field'),j(b[0],null,'PersistedArray'),(j(b[0],null,'PersistedHash'),a)}(b[0],b)}(i[0],i),function(k,l,n){var g=j(k,l,'Logger'),i=[g].concat(n),h=f.$r(i);return m(i[0],'DEBUG',0),m(i[0],'INFO',1),m(i[0],'WARN',2),m(i[0],'ERROR',3),m(i[0],'FATAL',4),m(i[0],'UNKNOWN',5),m(i[0],'TRACE',5),e(g,'$initialize',function(a){var b=this;return a==null&&(a=3),b.level=a},-1),e(g,'$level',C("level")),e(g,'$level=',function(a){var b=this;return a==null&&(a=3),b.level=a},-1),e(g,'$add',function j(g,d,e,k){var i=j.$$p||a,l=this,m=a,n=a;t.$==null&&(t.$=a),j.$$p=null,g==null&&(g=a),d==null&&(d=a),e==null&&(e=a),k==null&&(k=a),c([b(b('Logger'),'DEBUG'),b(b('Logger'),'INFO'),b(b('Logger'),'WARN'),b(b('Logger'),'ERROR'),b(b('Logger'),'FATAL'),b(b('Logger'),'UNKNOWN')]['$include?'](g))||(g=b(b('Logger'),'UNKNOWN')),c(e)&&(c(d)||(d=e,e=a));try{return c(d)||c(i['$respond_to?']("call"))&&(d=i.$call()),m=["DEBUG","INFO","WARN","ERROR","FATAL","ANY"],l.$puts(""+m['$[]'](g).$to_s()+", ["+h('Time').$now().$strftime("%Y-%m-%dT%H:%M:%S%z")+"#"+t.$.$inspect()+"] "+h('Time').$now().$to_i().$to_s()+" -- "+e.$inspect()+": "+d.$to_s()+"\n"),!0}catch(a){if(f.rescue(a,[h('Exception')])){n=a;try{return l.$log_error(new Map([["error",n],["parameters",new Map([["severity",g],["message",d],["progname",e],["block",i]])]])),!1}finally{f.pop_exception(a)}}else throw a}},-1),e(g,'$debug',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('DEBUG'),a,b],e.$to_proc())},-1),e(g,'$info',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('INFO'),a,b],e.$to_proc())},-1),e(g,'$warn',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('WARN'),a,b],e.$to_proc())},-1),v(g,"warning","warn"),e(g,'$error',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('ERROR'),a,b],e.$to_proc())},-1),e(g,'$fatal',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('FATAL'),a,b],e.$to_proc())},-1),e(g,'$unknown',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('UNKNOWN'),a,b],e.$to_proc())},-1),v(g,"trace","unknown")}(i[0],null,i),function(a,c){var d=j(a,c,'Time');return e(d,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a.$to_f()))})}(i[0],null),function(i,m,n){var g=j(i,m,'DateTime'),o=[g].concat(n),h=f.$r(o);return e(g,'$intialize',function b(g){var f,c,i=b.$$p||a,e=this;return b.$$p=null,f=B(arguments),c=f,e.data=d(h('Time'),'parse',u(c)),q(e,p(e,'intialize',b,!1,!0),'intialize',u(c),null)},-1),e(g,'$to_time',function(){var a=this;return b('Time').$parse(a.$to_s())}),e(g,'$to_d',function(){var a=this;return a.$BigDecimal(a.$to_time().$to_d())}),l(g,'$now',function(){return h('DateTime').$parse(h('Time').$now().$strftime("%Y-%m-%dT%H:%M:%S%z"))}),e(g,'$to_s',function(){var a=this;return a.$strftime("%Y-%m-%dT%H:%M:%S%z")}),e(g,'$to_json',function(){var a=this;return a.$strftime("%Y-%m-%dT%H:%M:%S%z")}),e(g,'$strftime',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c="%FT%T%:z"),q(d,p(d,'strftime',b,!1,!0),'strftime',[c],null)},-1),l(g,'$_strptime',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c="%FT%T%z"),q(d,p(d,'_strptime',b,!1,!0),'_strptime',[e,c],null)},-2),e(g,'$iso8601_timediv',function(a){var b=this;return a=a.$to_i(),b.$strftime(k(k("T%T",c(s(a,1))?"":".%0*d"['$%']([a,y(b.$sec_fraction(),10['$**'](a)).$round()])),"%:z"))}),g.$private("iso8601_timediv"),e(g,'$iso8601',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=0),k(q(d,p(d,'iso8601',b,!1,!0),'iso8601',[],null),d.$iso8601_timediv(c))},-1),e(g,'$rfc3339',function(a){var b=this;return a==null&&(a=0),b.$iso8601(a)},-1),e(g,'$xmlschema',function(a){var b=this;return a==null&&(a=0),b.$iso8601(a)},-1),e(g,'$jisx0301',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=0),k(q(d,p(d,'jisx0301',b,!1,!0),'jisx0301',[],null),d.$iso8601_timediv(c))},-1)}(i[0],A('Date'),i),function(a,c){var d=j(a,c,'Integer');return e(d,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a.$to_f()))})}(i[0],null),function(c,d){var a=j(c,d,'Float');return a.$public(),e(a,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a))})}(i[0],null),function(m,n,p){var i=j(m,n,'String'),q=[i].concat(p),l=f.$r(q);return e(i,'$cast_to_ascii',function(){var a=this;return new window.TextDecoder("ascii").decode((new window.TextEncoder).encode(a.$clone().toString())).$to_s()}),e(i,'$valid_date?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/.$match(a))}),e(i,'$valid_datetime?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9][+-][0-9][0-9]:[0-9][0-9]/.$match(a))}),e(i,'$valid_datetime_nolocale?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/.$match(a))}),e(i,'$valid_path?',function(){var a=this;return!!(c(/.*(?:\\|\/)(.+)$/.$match(a))||g(a.$split(" ").$size(),1)||c(h(a.$split("/").$size(),1))||g(a,"/"))}),e(i,'$valid_jid?',function(){var a=this;return!!c(/^(?:([^@]*)@)??([^@\/]*)(?:\/(.*?))?$/.$match(a))}),e(i,'$camel_case?',function(){var a=this;return!!c(a.$match(/[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*/))}),e(i,'$split_camelcase',function(){var a=this;return c(a['$camel_case?']())?a.$split(/(?=[A-Z])/):a}),e(i,'$json_1?',function(){var a=this;return a.$slice(0,1)['$==']("{")}),e(i,'$json_2?',function(){var b=this,d=a,e=a;return c(d=b['$json_1?']())?!!c(e=b.$match('"apiVersion"\\s?:\\s?"2.0"'))&&e:d}),e(i,'$json?',function(){var b=this,d=a;return c(d=b['$json_1?']())?d:b['$json_2?']()}),e(i,'$from_json',function(e){var f=this,h=a;return e==null&&(e=!0),c(f['$json?']())?(h=b('JSON').$parse(f,new Map([["symbolize_names",e]])),c(h['$is_any?'](b('Hash'),b('Array'))))?d(h,'process!',[],function(d,f,h){var e=a;return d==null&&(d=a),f==null&&(f=a),h==null&&(h=a),c(d['$is_a?'](b('String')))&&(c(d['$valid_datetime?']())||c(d['$valid_datetime_nolocale?']())?h['$[]='](f,b('DateTime').$parse(d)):(e=d.$numeric_values(),c(e['$is_a?'](b('Hash')))&&(c(e['$[]']("integer"))?(e=e['$[]']("integer"),h['$[]='](f,e)):c(e['$[]']("float"))&&(e=e['$[]']("float"),h['$[]='](f,e)))),g(d['$[]'](o(0,6,!1)),"binary:")&&c(d['$[]'](o(7,-1,!1))['$base64?']())&&h['$[]='](f,b(l('GxG'),'ByteArray').$new(d['$[]'](o(7,-1,!1)).$decode64()))),a}):a:f},-1),e(i,'$base64?',function(){var b=this,d=a;try{if(z(["page","form","left"]['$include?'](b)))if(c(h(b.$size(),0)))try{return l('Base64').$strict_decode64(b),!0}catch(a){if(f.rescue(a,[l('Exception')])){d=a;try{return!1}finally{f.pop_exception(a)}}else throw a}else return!1;else return!1}catch(a){if(f.rescue(a,[l('Exception')])){d=a;try{return!1}finally{f.pop_exception(a)}}else throw a}}),e(i,'$encode64',function(){var a=this;return c(a['$base64?']())?a:b('Base64').$strict_encode64(a)}),e(i,'$decode64',function(){var a=this;return c(a['$base64?']())?b('Base64').$strict_decode64(a):a}),e(i,'$encrypt',function(f){var g=this,i=a,e=a,j=a;return f==null&&(f=""),c(h(f.$to_s().$size(),0))?(i=b(b('GxG'),'ByteArray').$new(f.$to_s()),e=b(b('GxG'),'ByteArray').$new(g.$to_s()),d(e,'each_index',[],function(f){var g,b=a;return f==null&&(f=a),b=e['$[]'](f),d(i,'each',[],function(e){return e==null&&(e=a),d([127,63,31,15,7,3,1,0],'each',[],function(d){return d==null&&(d=a),c(h(e,d))?(b=k(b,1),c(h(b,255)))?b=0:a:(b=x(b,1),c(s(b,0)))?b=255:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),j=e.$to_s(),j):g.$dup()},-1),e(i,'$decrypt',function(f){var g=this,i=a,e=a,j=a;return f==null&&(f=""),c(h(f.$to_s().$size(),0))?(i=b(b('GxG'),'ByteArray').$new(f.$to_s()),e=b(b('GxG'),'ByteArray').$new(g.$to_s()),d(e,'each_index',[],function(f){var g,b=a;return f==null&&(f=a),b=e['$[]'](f),d(i,'each',[],function(e){return e==null&&(e=a),d([127,63,31,15,7,3,1,0],'each',[],function(d){return d==null&&(d=a),c(h(e,d))?(b=x(b,1),c(s(b,0)))?b=255:a:(b=k(b,1),c(h(b,255)))?b=0:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),j=e.$to_s(),j):g.$dup()},-1),e(i,'$to_d',function(){var a=this;return a.$BigDecimal(a)})}(i[0],null,i),function(p,q,s){var m=j(p,q,'Hash'),t=[m].concat(s),i=f.$r(t);return l(m,'$process',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=new Map),f=new Map,c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'process!',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Hash or an Array, or a ByteArray")),f},-1),l(m,'$search',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=new Map),f=new Map,c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'search',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Hash or an Array, or a ByteArray")),f},-1),e(m,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,o=a,l=a,j=a,e=a,p=a,t=a,u=a;r.$$p=null,m=[],q=d(i('Proc'),'new',[],function(g,i){var f=a,e=a;if(g==null&&(g=a),i==null&&(i=[]),f=[],c(g))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",g]]));c(h(f.$size(),0));)e=f.$shift(),c(e['$[]']("object")['$is_any?'](b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash')))&&d(e['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",c]]))}),c(e['$[]']("object")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray')))&&d(e['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",c],["object",b]]))}),i['$<<'](e);return i},-1),o=d(i('Proc'),'new',[],function(b,c){var e=a;return b==null&&(b=[]),c==null&&(c=a),e=[],d(b,'each',[],function(b){return b==null&&(b=a),g(b['$[]']("parent").$object_id(),c.$object_id())?e['$<<'](b):a}),e},-1);try{if(l=q.$call(k,[]),j=o.$call(l,k),c(s['$respond_to?']("call")))while(c(h(j.$size(),0)))e=j.$shift(),g(e['$[]']("object").$object_id(),k.$object_id())||(p=s.$call(e['$[]']("object"),e['$[]']("parent_selector"),e['$[]']("parent")),c(p)&&m['$<<'](p)),n(e['$[]']("object").$object_id(),a.$object_id())&&(t=o.$call(l,e['$[]']("object")),d(t,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(f.rescue(a,[i('Exception')])){u=a;try{k.$log_error(new Map([["error",u],["parameters",new Map]]))}finally{f.pop_exception(a)}}else throw a}return m}),e(m,'$process',function c(){var e=c.$$p||a,f=this,b=a;return c.$$p=null,b=f.$clone(),d(b,'iterative',[],e.$to_proc()),b}),e(m,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(m,'$search',function e(){var f=e.$$p||a,g=this,b=a;return e.$$p=null,b=[],c(f['$respond_to?']("call"))&&(b=d(g,'iterative',[],f.$to_proc())),b}),e(m,'$paths_to',function(p,f){var u=this,l=a,e=a,j=a,s=a,t=a,q=a,m=a;return p==null&&(p=a),f==null&&(f=""),l=[],g(f['$[]'](0),"/")||(f=k("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](o(1,-1,!1)).$reverse():e=[],j=u.$get_at_path(f),s=[new Map([["selector",a],["container",j],["prefix","/"]])],t=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var e=r('break');return d(s,'each_with_index',[],function h(d,f){if(d==null&&(d=a),f==null&&(f=a),g(d['$[]']("container"),b))c=d,e.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),c}),q=j,m=!1,c(j['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(j,'process!',[],function(d,h,f){var j=a,i=a;return d==null&&(d=a),h==null&&(h=a),f==null&&(f=a),n(q.$object_id(),f.$object_id())&&(j=t.$call(f),c(j)&&(e=j['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=f),i=h.$to_s(),i=i.$gsub("/","%2f"),e.$unshift(i),m=!1,g(d,p)&&(m=!0),c(m)&&l['$<<'](k("/",e.$reverse().$join("/"))),c(d['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))&&s.$unshift(new Map([["selector",h],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):l['$<<'](k("/",e.$join("/"))),l},-1),e(m,'$object_map',function(){var c=this,b=a;return b=new Map,d(c,'search',[],function e(c,f,g){var h=e.$$s==null?this:e.$$s;return c==null&&(c=a),f==null&&(f=a),g==null&&(g=a),d(h.$paths_to(c),'each',[],function(f){var e;return f==null&&(f=a),(e=[f.$to_s().$to_sym(),c],d(b,'[]=',e),e[e.length-1])})},{$$s:c}),b}),e(m,'$get_at_path',function(e){var j=this,b=a,f=a,k=a;return e==null&&(e="/"),b=a,g(e,"/")?b=j:(f=[j],k=e.$to_s().$split("/"),function(){try{var e=r('break');return d(k.$to_enum(),'each',[],function k(j){var d=a;if(j==null&&(j=a),d=a,c(h(j.$size(),0))&&(g(j['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=j.$to_i():(d=j,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d))if(b=f.$first()['$[]'](d),c(b['$is_a?'](i('NilClass'))))e.$throw(a,k.$$is_lambda);else return f.$unshift(b);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()),b},-1),e(m,'$set_at_path',function(f,j){var l=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,n(f,"/")&&(i=l.$get_at_path(b('File').$dirname(f.$to_s())),c(i)&&(e=b('File').$basename(f.$to_s()),d=a,c(h(e.$size(),0))&&(g(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(m,'$symbolize_keys',function(){var e=this;return d(e,'process!',[],function(f,d,e){return f==null&&(f=a),d==null&&(d=a),e==null&&(e=a),c(e['$is_a?'](b('Hash')))&&(c(d['$is_a?'](b('Symbol')))||e['$[]='](d.$to_s().$to_sym(),e.$delete(d))),a}),e}),e(m,'$gxg_export',function(){var n=this,k=a,e=a,l=a,m=a,f=a,j=a;for(k=new Map([["type","Hash"],["content",new Map]]),e=[new Map([["parent",a],["parent_selector",a],["object",n],["record",k]])],l=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],d(e,'each',[],function(d){return d==null&&(d=a),g(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),m=d(i('Proc'),'new',[],function(b){return b==null&&(b=a),c(b['$is_any?'](i('Integer'),i('Float'),i('String')))?c(b['$is_a?'](i('Numeric')))?c(b.$to_s()['$include?']("."))?new Map([["type","Float"],["content",b]]):new Map([["type","Integer"],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b.$to_s()]])}),d(n,'search',[],function(d,f,g){return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_a?'](b('Hash')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Hash"],["content",new Map]])]])):c(d['$is_a?'](b('Array')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Array"],["content",[]]])]])):e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",m.$call(d)]]))}),f=[e['$[]'](0)];c(h(f.$size(),0));)j=f.$shift(),d(l.$call(j['$[]']("object")),'each',[],function(b){return b==null&&(b=a),j['$[]']("record")['$[]']("content")['$[]='](b['$[]']("parent_selector"),b['$[]']("record")),c(b['$[]']("object")['$is_any?'](i('Hash'),i('Array')))?f['$<<'](b):a});return k}),l(m,'$gxg_import',function(j){try{var n=this,l=a,m=a,k=a,e=a;if(j==null&&(j=a),l=a,c(j['$is_a?'](i('Hash'))))if(g(j['$[]']("type"),"Array"))l=b('Array').$gxg_import(j);else if(m=d(i('Proc'),'new',[],function h(e,b){var g,j=h.$$s==null?this:h.$$s,d=a,k=a;if(e==null&&(e=a),b==null&&(b=a),c(b['$is_a?'](i('String'))))try{d=(g=e,typeof f.compile=='function'?eval(f.compile(g,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:'(eval)',eval:!0})):j.$eval(g)),c(d['$respond_to?']("parse"))?b=d.$parse(b):c(d['$respond_to?']("new"))?b=d.$new(b):c(d['$respond_to?']("try_convert"))&&(b=d.$try_convert(b))}catch(b){if(f.rescue(b,[i('Exception')])){k=b;try{a}finally{f.pop_exception(b)}}else throw b}return b},{$$s:n}),g(j['$[]']("type"),"Hash")){for(l=new Map,k=[new Map([["parent",a],["parent_selector",a],["object",l],["record",j]])];c(h(k.$size(),0));)e=k.$shift(),c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Hash')))?d(e['$[]']("record")['$[]']("content"),'each_pair',[],function(b,c){var f;return b==null&&(b=a),c==null&&(c=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])}):c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Array')))&&d(e['$[]']("record")['$[]']("content"),'each_with_index',[],function(c,b){var f;return c==null&&(c=a),b==null&&(b=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])})}else l=m.$call(j['$[]']("type"),j['$[]']("content"));return l}catch(a){if(a===f.t_eval_return)return a.$v;throw a}},-1)}(i[0],null,i),function(p,q,s){var m=j(p,q,'Array'),t=[m].concat(s),i=f.$r(t);return l(m,'$process',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=[]),f=[],c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b(b('GxG'),'ByteArray'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'process',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Array, a Hash, or a ByteArray")),f},-1),l(m,'$search',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=[]),f=[],c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b(b('GxG'),'ByteArray'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'search',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Array, a Hash, or a ByteArray")),f},-1),e(m,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,o=a,l=a,j=a,e=a,p=a,t=a,u=a;r.$$p=null,m=[],q=d(i('Proc'),'new',[],function(g,i){var f=a,e=a;if(g==null&&(g=a),i==null&&(i=[]),f=[],c(g))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",g]]));c(h(f.$size(),0));)e=f.$shift(),c(e['$[]']("object")['$is_any?'](b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash')))&&d(e['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",c]]))}),c(e['$[]']("object")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray')))&&d(e['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",c],["object",b]]))}),i['$<<'](e);return i},-1),o=d(i('Proc'),'new',[],function(b,c){var e=a;return b==null&&(b=[]),c==null&&(c=a),e=[],d(b,'each',[],function(b){return b==null&&(b=a),g(b['$[]']("parent").$object_id(),c.$object_id())?e['$<<'](b):a}),e},-1);try{if(l=q.$call(k,[]),j=o.$call(l,k),c(s['$respond_to?']("call")))while(c(h(j.$size(),0)))e=j.$shift(),g(e['$[]']("object").$object_id(),k.$object_id())||(p=s.$call(e['$[]']("object"),e['$[]']("parent_selector"),e['$[]']("parent")),c(p)&&m['$<<'](p)),n(e['$[]']("object").$object_id(),a.$object_id())&&(t=o.$call(l,e['$[]']("object")),d(t,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(f.rescue(a,[i('Exception')])){u=a;try{k.$log_error(new Map([["error",u],["parameters",new Map]]))}finally{f.pop_exception(a)}}else throw a}return m}),e(m,'$process',function c(){var e=c.$$p||a,f=this,b=a;return c.$$p=null,b=f.$clone(),d(b,'iterative',[],e.$to_proc()),b}),e(m,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(m,'$search',function e(){var f=e.$$p||a,g=this,b=a;return e.$$p=null,b=[],c(f['$respond_to?']("call"))&&(b=d(g,'iterative',[],f.$to_proc())),b}),e(m,'$paths_to',function(p,f){var u=this,l=a,e=a,j=a,s=a,t=a,q=a,m=a;return p==null&&(p=a),f==null&&(f=""),l=[],g(f['$[]'](0),"/")||(f=k("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](o(1,-1,!1)).$reverse():e=[],j=u.$get_at_path(f),s=[new Map([["selector",a],["container",j]])],t=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var e=r('break');return d(s,'each_with_index',[],function h(d,f){if(d==null&&(d=a),f==null&&(f=a),g(d['$[]']("container"),b))c=d,e.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),c}),q=j,m=!1,c(j['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(j,'process!',[],function(d,h,f){var j=a,i=a;return d==null&&(d=a),h==null&&(h=a),f==null&&(f=a),n(q.$object_id(),f.$object_id())&&(j=t.$call(f),c(j)&&(e=j['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=f),i=h.$to_s(),i=i.$gsub("/","%2f"),e.$unshift(i),m=!1,g(d,p)&&(m=!0),c(m)&&l['$<<'](k("/",e.$reverse().$join("/"))),c(d['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))&&s.$unshift(new Map([["selector",h],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):l['$<<'](k("/",e.$join("/"))),l},-1),e(m,'$object_map',function(){var c=this,b=a;return b=new Map,d(c,'search',[],function e(c,f,g){var h=e.$$s==null?this:e.$$s;return c==null&&(c=a),f==null&&(f=a),g==null&&(g=a),d(h.$paths_to(c),'each',[],function(f){var e;return f==null&&(f=a),(e=[f.$to_s().$to_sym(),c],d(b,'[]=',e),e[e.length-1])})},{$$s:c}),b}),e(m,'$get_at_path',function(e){var j=this,b=a,f=a,k=a;return e==null&&(e="/"),b=a,g(e,"/")?b=j:(f=[j],k=e.$to_s().$split("/"),function(){try{var e=r('break');return d(k.$to_enum(),'each',[],function k(j){var d=a;if(j==null&&(j=a),d=a,c(h(j.$size(),0))&&(g(j['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=j.$to_i():(d=j,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d))if(b=f.$first()['$[]'](d),c(b['$is_a?'](i('NilClass'))))e.$throw(a,k.$$is_lambda);else return f.$unshift(b);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()),b},-1),e(m,'$set_at_path',function(f,j){var l=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,n(f,"/")&&(i=l.$get_at_path(b('File').$dirname(f.$to_s())),c(i)&&(e=b('File').$basename(f.$to_s()),d=a,c(h(e.$size(),0))&&(g(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(m,'$gxg_export',function(){var n=this,k=a,e=a,l=a,m=a,f=a,j=a;for(k=new Map([["type","Array"],["content",[]]]),e=[new Map([["parent",a],["parent_selector",a],["object",n],["record",k]])],l=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],d(e,'each',[],function(d){return d==null&&(d=a),g(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),m=d(i('Proc'),'new',[],function(b){return b==null&&(b=a),c(b['$is_any?'](i('Integer'),i('Float'),i('String')))?c(b['$is_a?'](i('Numeric')))?c(b.$to_s()['$include?']("."))?new Map([["type","Float"],["content",b]]):new Map([["type","Integer"],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b.$to_s()]])}),d(n,'search',[],function(d,f,g){return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_a?'](b('Hash')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Hash"],["content",new Map]])]])):c(d['$is_a?'](b('Array')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Array"],["content",[]]])]])):e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",m.$call(d)]]))}),f=[e['$[]'](0)];c(h(f.$size(),0));)j=f.$shift(),d(l.$call(j['$[]']("object")),'each',[],function(b){return b==null&&(b=a),j['$[]']("record")['$[]']("content")['$[]='](b['$[]']("parent_selector"),b['$[]']("record")),c(b['$[]']("object")['$is_any?'](i('Hash'),i('Array')))?f['$<<'](b):a});return k}),l(m,'$gxg_import',function(j){try{var n=this,l=a,m=a,k=a,e=a;if(j==null&&(j=a),l=a,c(j['$is_a?'](i('Hash'))))if(g(j['$[]']("type"),"Hash"))l=b('Hash').$gxg_import(j);else if(m=d(i('Proc'),'new',[],function h(e,b){var g,j=h.$$s==null?this:h.$$s,d=a,k=a;if(e==null&&(e=a),b==null&&(b=a),c(b['$is_a?'](i('String'))))try{d=(g=e,typeof f.compile=='function'?eval(f.compile(g,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:'(eval)',eval:!0})):j.$eval(g)),c(d['$respond_to?']("parse"))?b=d.$parse(b):c(d['$respond_to?']("new"))?b=d.$new(b):c(d['$respond_to?']("try_convert"))&&(b=d.$try_convert(b))}catch(b){if(f.rescue(b,[i('Exception')])){k=b;try{a}finally{f.pop_exception(b)}}else throw b}return b},{$$s:n}),g(j['$[]']("type"),"Array")){for(l=[],k=[new Map([["parent",a],["parent_selector",a],["object",l],["record",j]])];c(h(k.$size(),0));)e=k.$shift(),c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Hash')))?d(e['$[]']("record")['$[]']("content"),'each_pair',[],function(b,c){var f;return b==null&&(b=a),c==null&&(c=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])}):c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Array')))&&d(e['$[]']("record")['$[]']("content"),'each_with_index',[],function(c,b){var f;return c==null&&(c=a),b==null&&(b=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])})}else l=m.$call(j['$[]']("type"),j['$[]']("content"));return l}catch(a){if(a===f.t_eval_return)return a.$v;throw a}},-1)}(i[0],null,i)},Opal.modules["web/gxg_elements"]=function(g){var B=g.module,A=g.klass,b=g.truthy,c=g.def,e=g.send,h=g.rb_minus,i=g.slice,j=g.rb_plus,f=g.rb_gt,z=g.NilClass,p=g.range,m=g.to_a,n=g.rb_lt,o=g.rb_le,r=g.defs,C=g.return_ivar,x=g.send2,w=g.find_super,q=g.rb_ge,t=g.rb_times,u=g.neqeq,l=g.alias,k=g.eqeq,v=g.return_self,s=g.thrower,y=[],a=g.nil,d=g.$$$;return g.add_stubs('private,is_a?,to_a,to_s,new,each,-,[]=,+,bytesize,>,[],protected,inspect,is_any?,raise,array_to_ascii,string_to_array,to_i,include?,chr,array_to_string,data,to_enum,flatten,<<,filter_data,size,join_arrays,<,first,last,<=,public,respond_to?,process,to_proc,search,>=,maxsize=,padvalue=,outervalue=,call,*,times,clone,each_with_index,replace,index,pattern_range,!=,class,match,outervalue,padvalue,maxsize,dclone,frozen?,freeze,initialize_dup,slice,filter_parameters,count,==,try_convert,join,<=>,collect,delete,reject!,ord,with_index,hash,exception,gsub,message,upcase,split,force_encoding,pack,delete_at,reject,reverse,clear,%,~,rotate,sample,select,shuffle,sort,sort_by!,encode64,to_ascii,uniq,insert,rassoc,collect!,compact,values_at,find_index,select!,=~,unshift,basename'),function(D,E){var F=B(D,'GxG'),y=[F].concat(E);return function(H,E,F){var B=A(H,E,'ByteArray'),G=[B].concat(F),y=g.$r(G),D=B.$$prototype;return D.pad_value=D.data=D.max_size=D.outer=a,B.$private(),c(B,'$array_to_ascii',function(c){var e=a,f=a;return c==null&&(c=a),e="",b(c['$is_a?'](d(d('Buffer'),'Array')))&&(f=new Uint8Array(c.$to_a()),e=new window.TextDecoder('ascii').decode(f)),e},-1),c(B,'$array_to_string',function(c){var d=a;return c==null&&(c=a),d="",b(c)&&(d=(new window.TextDecoder).decode(new Uint8Array(c.$to_a())).$to_s()),d},-1),c(B,'$string_to_array',function(b){var c=a,d=a,f=a;return b==null&&(b=""),c=(new window.TextEncoder).encode(b.toString()),d=c.byteLength,f=y('Buffer').$new(d).$to_a(),e(g.Range.$new(0,h(d,1),!1),'each',[],function(b){var d;return b==null&&(b=a),(d=[b,c[b]],e(f,'[]=',d),d[d.length-1])}),f},-1),c(B,'$join_arrays',function(n){var m,l,c=a,d=a,k=a;return m=i(arguments),l=m,c=0,d=0,e(l,'each',[],function(b){return b==null&&(b=a),c=j(c,b.$bytesize())}),k=y('Buffer').$new(c).$to_a(),e(l,'each',[],function(c){var i=a;return c==null&&(c=a),i=c.$bytesize(),b(f(i,0))?e(g.Range.$new(0,h(i,1),!1),'each',[],function(b){return b==null&&(b=a),k['$[]='](d,c['$[]'](b)),d=j(d,1)}):a}),k},-1),B.$protected(),c(B,'$filter_data',function(c){var g=this,i=a,h=a;return c==null&&(c=""),i="ByteArray.new expects a String, a Integer or Float between 0 and 255, a nil ( counted as padvalue() ), a ByteArray, or an Array of any of those; you provided "+c.$inspect(),b(c['$is_any?'](z,d('String'),d('Numeric'),d('Array'),d(d('GxG'),'ByteArray'),d(y('Buffer'),'Array')))||g.$raise(y('Exception').$new(i)),b(c['$is_a?'](d(y('Buffer'),'Array')))&&(c=g.$array_to_ascii(c)),b(c['$is_a?'](d('String')))&&(c=g.$string_to_array(c)),b(c['$is_a?'](d('Numeric')))&&(c=c.$to_i(),b(p(0,255,!1)['$include?'](c))?c=g.$string_to_array(c.$chr()):g.$raise(y('Exception').$new(i))),b(c['$is_a?'](d(d('GxG'),'ByteArray')))&&(c=g.$string_to_array(g.$array_to_string(c.$data()))),b(c['$is_a?'](d('Array')))&&(h=[],e(c.$flatten().$to_enum(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),h['$<<'](d.$filter_data(b))},{$$s:g}),b(f(h.$size(),0))?c=e(g,'join_arrays',m(h)):c=y('Buffer').$new(0).$to_a()),b(c)||(c=y('Buffer').$new(1).$to_a(),c['$[]='](0,g.pad_value.$to_i())),c},-1),c(B,'$filter_parameters',function(m){var k,c,f=this,e=a;return k=i(arguments),c=k,e=a,b(c['$[]'](0)['$is_any?'](d('Numeric'),d('Integer'),d('Float'),d('BigDecimal')))?(c['$[]='](0,c['$[]'](0).$to_i()),b(n(c['$[]'](0),0))&&c['$[]='](0,j(f.data.$bytesize(),c['$[]'](0))),e=g.Range.$new(c['$[]'](0),c['$[]'](0),!1),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&(c['$[]='](1,c['$[]'](1).$to_i()),b(n(c['$[]'](1),1))?f.$raise(y('ArgumentError').$new("Second parameter needs to be a Numeric greater than 0, you provided "+c['$[]'](1).$inspect())):e=g.Range.$new(c['$[]'](0),j(c['$[]'](0),h(c['$[]'](1),1)),!1))):b(c['$[]'](0)['$is_a?'](y('Range')))?(b(n(c['$[]'](0).$first(),0))?c['$[]='](1,j(f.data.$bytesize(),c['$[]'](0).$first())):c['$[]='](1,c['$[]'](0).$first()),b(n(c['$[]'](0).$last(),0))?c['$[]='](2,j(f.data.$bytesize(),c['$[]'](0).$last())):c['$[]='](2,c['$[]'](0).$last()),b(o(c['$[]'](1),c['$[]'](2)))?e=g.Range.$new(c['$[]'](1),c['$[]'](2),!1):e=g.Range.$new(c['$[]'](2),c['$[]'](1),!1)):b(e)||f.$raise(y('ArgumentError').$new("First parameter needs to be a Numeric or a Range, you provided "+c['$[]'](0).$inspect())),e},-1),B.$public(),r(B,'$try_convert',function(f){var b,c;b=i(arguments),c=b;try{return d(y('GxG'),'ByteArray').$new(1,[c])}catch(b){if(g.rescue(b,[y('Exception')]))try{return a}finally{g.pop_exception(b)}else throw b}},-1),r(B,'$[]',function(f){var a,b;return a=i(arguments),b=a,e(d(y('GxG'),'ByteArray'),'new',m(b))},-1),r(B,'$process',function g(c){var h=g.$$p||a,i=this,f=a;return g.$$p=null,c==null&&(c=d(y('GxG'),'ByteArray').$new()),f=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))&&(b(c['$is_any?'](d('Array'),d('Hash'),d(d('GxG'),'ByteArray'),d('Set'),d('Struct')))?f=e(c,'process',[],h.$to_proc()):i.$raise(y('ArgumentError'),"you must pass an Array, a ByteArray, or a Hash")),f},-1),r(B,'$search',function g(c){var h=g.$$p||a,i=this,f=a;return g.$$p=null,c==null&&(c=d(y('GxG'),'ByteArray').$new()),f=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))&&(b(c['$is_any?'](d('Array'),d('Hash'),d(d('GxG'),'ByteArray'),d('Set'),d('Struct')))?f=e(c,'search',[],h.$to_proc()):i.$raise(y('ArgumentError'),"you must pass an Array, a ByteArray, or a Hash")),f},-1),c(B,'$data',C("data")),c(B,'$initialize',function o(u){var r=o.$$p||a,s,c,d=this,k=a,l=a,n=a,j=a;return o.$$p=null,s=i(arguments),c=s,d.data=y('Buffer').$new(0).$to_a(),k=new Map([["process",p(18446744073709551616,18446744073709551616,!1)]]),d.max_size=a,d.pad_value=0,d.outer=a,x(d,w(d,'initialize',o,!1,!0),'initialize',[],null),b(f(c.$size(),0))&&(b(r['$respond_to?']("call"))?b(c['$[]'](0)['$is_a?'](y('Numeric')))&&(c['$[]='](0,c['$[]'](0).$to_i()),b(q(c['$[]'](0),0))&&(b(f(c['$[]'](0),k['$[]']("process").$first()))&&c['$[]='](0,k['$[]']("process").$first()),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](1).$to_i()),b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](1).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](1).$to_i()),e(g.Range.$new(0,h(c['$[]'](0),1),!1).$to_enum(),'each',[],function g(d){var i=g.$$s==null?this:g.$$s,h=a;return d==null&&(d=a),h=[r.$call(d)].$flatten(),e(h.$to_enum(),'each',[],function g(d){var e=g.$$s==null?this:g.$$s,h=a;return e.data==null&&(e.data=a),d==null&&(d=a),d=b(h=e.$filter_data(d))?h:y('Buffer').$new(0).$to_a(),b(f(d.$bytesize(),0))?(b(f(t(c['$[]'](0),d.$bytesize()),k['$[]']("process").$first()))&&e.$raise(y('NoMemoryError').$new("This operation will exceed available per-process memory limits")),e.data=e.$join_arrays(e.data,d)):a},{$$s:i})},{$$s:d}),b(d.max_size)&&b(f(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))):(b(c['$[]'](0)['$is_a?'](y('Numeric')))?(l=c['$[]'](0).$to_i(),b(c['$[]'](1))?n=[c['$[]'](1)].$flatten():n=[d.pad_value.$to_i().$chr()],b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](2).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](3).$to_i()),b(c['$[]'](4)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](4).$to_i())):(l=1,n=[c['$[]'](0)].$flatten(),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](1).$to_i()),b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](2).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](3).$to_i())),j=[],e(n.$to_enum(),'each',[],function d(c){var f=d.$$s==null?this:d.$$s,e=a;return c==null&&(c=a),j['$<<'](b(e=f.$filter_data(c))?e:y('Buffer').$new(0).$to_a())},{$$s:d}),j=e(d,'join_arrays',m(j)),b(f(j.$bytesize(),0))&&(b(f(t(l,j.$bytesize()),k['$[]']("process").$first()))&&d.$raise(y('NoMemoryError').$new("This operation will exceed available per-process memory limits")),e(l,'times',[],function c(){var b=c.$$s==null?this:c.$$s;return b.data==null&&(b.data=a),b.data=b.$join_arrays(b.data,j)},{$$s:d})),b(d.max_size)&&b(f(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))),d},-1),c(B,'$process',function d(){var f=d.$$p||a,g=this,c=a;return d.$$p=null,c=g.$clone(),b(f['$respond_to?']("call"))&&e(c,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),f.$call(b,c,e)},{$$s:g}),c}),c(B,'$process!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))&&c.$replace(c.$array_to_ascii(e(c,'process',[],f.$to_proc()).$data())),c}),c(B,'$search',function d(){var f=d.$$p||a,g=this,c=a;return d.$$p=null,c=[],b(f['$respond_to?']("call"))&&e(g,'each_with_index',[],function h(d,e){var i=h.$$s==null?this:h.$$s,g=a;return d==null&&(d=a),e==null&&(e=a),g=f.$call(d,e,i),b(g)?c['$<<'](g):a},{$$s:g}),c}),c(B,'$pattern_range',function(c,f){var i=this,k=a,e=a;return c==null&&(c=""),f==null&&(f=0),k=a,c=i.$array_to_ascii(d(y('GxG'),'ByteArray').$new(c).$data()),e=i.$array_to_ascii(i.$data()).$index(c,f),b(e)&&(k=g.Range.$new(e,j(e,h(c.$size(),1)),!1)),k},-1),c(B,'$pattern_ranges',function(c){var f=this,h=a,g=a,e=a;for(c==null&&(c=""),h=[],g=0,b(c['$is_a?'](d(y('GxG'),'ByteArray')))&&(c=f.$array_to_ascii(c.$data())),e=f.$pattern_range(c,g);u(e,a);){if(b(e['$is_a?'](d('Range'))))if(h['$<<'](e),b(o(j(e.$last(),1),f.data.$bytesize())))g=j(e.$last(),1);else break;e=f.$pattern_range(c,g)}return h},-1),c(B,'$padvalue',function(){var a=this;return a.pad_value.$clone()}),c(B,'$padvalue=',function(g){var d,a,c=this;return d=i(arguments),a=d,b(f(a.$size(),0))&&(b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](a['$[]'](0)))&&(c.pad_value=a['$[]'](0)):c.$raise(y('TypeError').$new("Value type: expected Float or Integer. You provided "+a['$[]'](0).$class()))),c.pad_value.$clone()},-1),c(B,'$match',function(b){var a=this;return a.$array_to_ascii(a.data).$match(b)}),c(B,'$maxsize',function(){var a=this;return a.max_size.$clone()}),c(B,'$maxsize=',function(k){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?b(c['$[]'](0))?(b(c['$[]'](0)['$is_a?'](y('Numeric')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?(b(f(c['$[]'](0),18446744073709551616))&&d.$raise(y('NoMemoryError').$new("Setting maxsize this high exceeds per-process memory limits")),b(f(c['$[]'](0),d.max_size.$to_i()))?d.max_size=c['$[]'](0):b(n(c['$[]'](0),d.max_size.$to_i()))&&(d.max_size=c['$[]'](0),b(f(d.data.$bytesize(),c['$[]'](0)))&&d.data.$replace(d.data['$[]'](g.Range.$new(0,h(c['$[]'](0),1),!1))))):d.$raise(y('ArgumentError').$new("Expected NilClass or Numeric class. You provided "+c['$[]'](0).$class()))):d.max_size=a:d.max_size=a,d.max_size.$clone()},-1),c(B,'$outervalue',function(){var a=this;return a.outer.$clone()}),c(B,'$outervalue=',function(h){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?b(c['$[]'](0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](c['$[]'](0)))&&(d.outer=c['$[]'](0)):d.$raise(y('TypeError').$new("Expected a NilClass, a Float, or a Integer. You provided "+c['$[]'](0).$class()))):d.outer=a:d.outer=a,d.$outervalue()},-1),c(B,'$dclone',function(){var b=this,c=a;return c=d(y('GxG'),'ByteArray').$new(b.$array_to_ascii(b.data)),c['$padvalue='](b.$padvalue()),c['$maxsize='](b.$maxsize()),c['$outervalue='](b.$outervalue()),c}),c(B,'$initialize_clone',function(){var d=this,c=a;return c=d.$dclone(),b(d['$frozen?']())&&c.$freeze(),c}),c(B,'$initialize_dup',function(){var a=this;return a.$dclone()}),l(B,"dup","initialize_dup"),l(B,"initialize_copy","initialize_dup"),c(B,'$clone',function(){var a=this;return a.$initialize_dup()}),c(B,'$[]',function(b,c){var d=this;return b==null&&(b=0),c==null&&(c=a),d.$slice(b,c)},-1),c(B,'$[]=',function(p,o,l){var c=this,m=a,q=a,i=a,r=a;return p==null&&(p=0),o==null&&(o=a),l==null&&(l=a),b(o)&&(b(l)||(l=o,o=a)),l=c.$filter_data(l),m=a,q=a,b(l)&&(b(f(l.$bytesize(),0))&&(i=c.$filter_parameters(p,o),b(i)||(b(o)?m=y('ArgumentError').$new(""+p.$inspect()+","+o.$inspect()+" could not be fashioned into a valid Indexer"):m=y('ArgumentError').$new(""+p.$inspect()+" could not be fashioned into a valid Indexer")),b(m)&&c.$raise(m),b(c.max_size)&&((b(f(i.$count(),c.max_size))||b(f(i.$first(),h(c.max_size,1)))||b(f(i.$last(),h(c.max_size,1))))&&(m=y('IndexError').$new("Index exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(f(j(i.$first(),h(l.$bytesize(),1)),h(c.max_size,1)))&&(m=y('RangeError').$new("Data size at specified Index exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(p['$is_a?'](y('Integer')))?b(o)?b(f(j(i.$first(),h(i.$count(),1)),h(c.max_size,1)))?m=y('RangeError').$new("Range exceeds "+c.max_size+" limit. You might need to adjust maxsize."):b(n(i.$count(),l.$bytesize()))&&b(f(j(j(i.$first(),h(i.$count(),1)),h(h(l.$bytesize(),1),h(i.$count(),1))),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize.")):(b(f(j(h(c.data.$size(),1),l.$bytesize()),c.max_size))&&(m=y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(f(j(i.$first(),h(l.$bytesize(),1)),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize."))):b(f(i.$count(),c.max_size))?m=y('RangeError').$new("Range exceeds "+c.max_size+" limit. You might need to adjust maxsize."):b(n(i.$count(),l.$bytesize()))&&b(f(j(j(i.$first(),h(i.$count(),1)),h(h(l.$bytesize(),1),h(i.$count(),1))),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(m)&&c.$raise(m)),b(f(i.$first(),h(c.data.$bytesize(),1)))&&e(h(i.$first(),h(c.data.$bytesize(),1)),'times',[],function c(){var b=c.$$s==null?this:c.$$s;return b.pad_value==null&&(b.pad_value=a),b['$<<'](b.pad_value.$chr())},{$$s:c}),b(o)?c.data['$[]='](i.$first(),i.$count(),l):b(p['$is_a?'](y('Numeric')))?k(l.$bytesize(),1)?c.data['$[]='](i.$first(),l['$[]'](0)):(r=i.$first(),e(g.Range.$new(0,h(l.$bytesize(),1),!1),'each',[],function i(c){var g,d=i.$$s==null?this:i.$$s;return d.data==null&&(d.data=a),c==null&&(c=a),b(f(c,h(d.data.$bytesize(),1)))?d['$<<'](l['$[]'](c)):(g=[j(r,c),l['$[]'](c)],e(d.data,'[]=',g),g[g.length-1])},{$$s:c})):c.data['$[]='](i,l)),q=d(y('GxG'),'ByteArray').$new(l)),q},-1),c(B,'$|',function(k){var g,h,j=this,f=a,c=a;return g=i(arguments),h=g,f=d(y('GxG'),'ByteArray').$try_convert(h),c=j.$clone(),b(f)&&e(f,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?a:c['$<<'](d)}),c},-1),c(B,'$&',function(l){var j,g,k=this,h=a,c=a;return j=i(arguments),g=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&e(k,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?h['$<<'](d):a})),h},-1),c(B,'$*',function(l){var j,c,g=this,h=a;return j=i(arguments),c=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(b(f(c.$size(),0))?b(c['$[]'](0)['$is_a?'](d('String')))?h=g.$join(c['$[]'](0)):b(c['$[]'](0)['$is_a?'](y('Numeric')))?(c['$[]='](0,c['$[]'](0).$to_i()),b(o(t(c['$[]'](0),g.$size()),18446744073709551616))?e(c['$[]'](0),'times',[],function a(){var b=a.$$s==null?this:a.$$s;return h['$<<'](b.$clone())},{$$s:g}):g.$raise(y('NoMemoryError').$new("This operation will exceed per-process memory limits"))):g.$raise(y('ArgumentError').$new("a String or Numeric is required, you provied "+c['$[]'](0).$inspect())):g.$raise(y('TypeError').$new("Can't convert nil to ByteArray"))),h},-1),c(B,'$+',function(m){var k,g,e=this,h=a,j=a,c=a;return k=i(arguments),g=k,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))?(j=e.$clone(),c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&b(f(c.$size(),0))&&(h=d(y('GxG'),'ByteArray').$new(1,[e.$array_to_ascii(j.$data()),e.$array_to_ascii(c.$data())]))):e.$raise(y('TypeError').$new("Can't convert nil to ByteArray")),h},-1),c(B,'$-',function(l){var j,g,k=this,h=a,c=a;return j=i(arguments),g=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&e(k,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?a:h['$<<'](d)})),h},-1),c(B,'$<<',function(l){var h,g,c=this,e=a;return h=i(arguments),g=h,b(f(g.$size(),0))&&(e=d(y('GxG'),'ByteArray').$try_convert(g),b(e)&&(b(c.max_size)&&b(f(j(c.data.$bytesize(),e.$size()),c.max_size))&&c.$raise(y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),c.data=c.$join_arrays(c.data,e.$data()))),c},-1),c(B,'$<=>',function(k){var h,c,j=this,e=a,g=a;return h=i(arguments),c=h,e=1,b(f(c.$size(),0))&&(b(c['$[]'](0)['$is_a?'](d(d('GxG'),'ByteArray')))?e=j.$data()['$<=>'](c['$[]'](0).$data()):(g=d(y('GxG'),'ByteArray').$try_convert(c),b(g)&&(e=j.$data()['$<=>'](g.$data())))),e},-1),c(B,'$==',function(k){var g,c,h=this,e=a;return g=i(arguments),c=g,e=!1,b(f(c.$size(),0))&&b(c['$[]'](0)['$is_a?'](d(d('GxG'),'ByteArray')))&&(e=h.$data()['$=='](c['$[]'](0).$data())),e},-1),c(B,'$at',function(f){var c,a,d=this;return c=i(arguments),a=c,b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?d['$[]'](a['$[]'](0)):d.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+a['$[]'](0).$class()))},-1),c(B,'$clear',function(){var a=this;return a.data=y('Buffer').$new(0).$to_a(),a}),c(B,'$collect',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))?e(f,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c['$<<'](e.$array_to_ascii(e.$filter_data(h.$call(b))))},{$$s:f}):c=f.$to_enum("collect"),c}),c(B,'$collect!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))?(c.data=e(c,'collect',[],f.$to_proc()).$data(),c):c.$to_enum("collect!")}),c(B,'$combination',function k(l){var f=k.$$p||a,g,h,j=this,c=a;return k.$$p=null,g=i(arguments),h=g,c=e(j.$to_a(),'to_enum',["combination"].concat(m(h))),b(f['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),f.$call(d(y('GxG'),'ByteArray').$new(b))}),j):c},-1),c(B,'$repeated_combination',function k(l){var f=k.$$p||a,g,h,j=this,c=a;return k.$$p=null,g=i(arguments),h=g,c=e(j.$to_a(),'to_enum',["repeated_combination"].concat(m(h))),b(f['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),f.$call(d(y('GxG'),'ByteArray').$new(b))}),j):c},-1),c(B,'$compact',v),c(B,'$concat',function(k){var h,e,c=this,j=a,g=a;return h=i(arguments),e=h,j=c,b(f(e.$size(),0))&&(g=d(y('GxG'),'ByteArray').$try_convert(e),b(g)?c.data=c.$join_arrays(c.data,g.$data()):c.$raise(y('Exception').$new("Could not convert "+e.$inspect()+" to ByteArray"))),j},-1),c(B,'$count',function g(d){var h=g.$$p||a,f=this,c=a;return g.$$p=null,d==null&&(d=a),c=0,b(d['$is_a?'](y('Numeric')))?e(f,'each',[],function(b){return b==null&&(b=a),k(b,d.$to_i())?c=j(c,1):a}):b(h['$respond_to?']("call"))?e(f,'each',[],function(b){return b==null&&(b=a),k(h.$call(b),!0)?c=j(c,1):a}):c=f.data.$bytesize(),c},-1),c(B,'$cycle',function h(c){var g=h.$$p||a,d=this;if(h.$$p=null,c==null&&(c=a),b(f(d.data.$bytesize(),0))){if(b(n(c.$to_i(),0)))return a;if(b(g['$respond_to?']("call"))){if(b(c))return e(c.$to_i(),'times',[],function b(){var c=b.$$s==null?this:b.$$s;return e(c,'each',[],function(b){return b==null&&(b=a),g.$call(b)})},{$$s:d}),a;while(b(!0))e(d,'each',[],function(b){return b==null&&(b=a),g.$call(b)})}else return d.$to_a().$to_enum("cycle",c)}else return a},-1),c(B,'$delete',function l(n){var m=l.$$p||a,j,e,g=this,d=a,c=a,h=a;return l.$$p=null,j=i(arguments),e=j,d=a,b(e['$[]'](0)['$is_a?'](y('Numeric')))&&(c=g.$filter_data(e['$[]'](0).$to_i()),b(f(c.$bytesize(),1))&&(c=c['$[]'](0)),h=g.data.$delete(c),k(h,g.data)?b(m['$respond_to?']("call"))&&(d=m.$call()):(g.data.$replace(h),d=e['$[]'](0))),d},-1),c(B,'$delete_at',function(v){var t,p,c=this,r=a,l=a,m=a,o=a,s=a,q=a;return t=i(arguments),p=t,r=a,b(f(p.$size(),0))&&b(f(c.$size(),0))&&b(p['$[]'](0)['$is_a?'](d('Numeric')))&&(l=p['$[]'](0).$to_i(),b(n(l,c.$size()))&&(r=c.data['$[]'](l),k(l,0)?m=[g.Range.$new(1,h(c.data.$bytesize(),1),!1)]:(m=[g.Range.$new(0,h(l,1),!1)],k(l,h(c.data.$bytesize(),1))||m['$<<'](g.Range.$new(j(l,1),h(c.data.$bytesize(),1),!1))),o=0,e(m,'each',[],function(b){return b==null&&(b=a),o=j(o,b.$size())}),s=y('Buffer').$new(o).$to_a(),q=0,e(m,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(b,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),s['$[]='](q,c.data['$[]'](b)),q=j(q,1)},{$$s:d})},{$$s:c}),c.data=s)),r},-1),c(B,'$delete_if',function b(){var c=b.$$p||a,d=this;return b.$$p=null,e(d,'reject!',[],c.$to_proc())}),c(B,'$drop',function(a){var b=this;return b.$slice(g.Range.$new(h(a.$to_i(),1),-1,!1))}),c(B,'$drop_while',function f(){var g=f.$$p||a,h=this,c=a;return f.$$p=null,c=d(y('GxG'),'ByteArray').$new(),b(g['$respond_to?']("call"))?(e(h,'each',[],function(d){var e=a;return d==null&&(d=a),e=g.$call(d),b(e)?a:c['$<<'](d)}),c):h.$to_a().$to_enum("drop_while")}),c(B,'$each',function d(){var g=d.$$p||a,c=this;return d.$$p=null,b(g['$respond_to?']("call"))?(b(f(c.data.$bytesize(),0))&&e(c.data.$to_a(),'each',[],function(b){return b==null&&(b=a),g.$call(b.$ord())}),c):c.$to_enum("each")}),c(B,'$each_index',function d(){var i=d.$$p||a,c=this;return d.$$p=null,b(i['$respond_to?']("call"))?(b(f(c.data.$bytesize(),0))&&e(g.Range.$new(0,h(c.data.$bytesize(),1),!1),'each',[],function(b){return b==null&&(b=a),i.$call(b)}),c):c.$to_enum("each_index")}),c(B,'$each_with_index',function g(c){var h=g.$$p||a,d=this;return g.$$p=null,c==null&&(c=0),b(h['$respond_to?']("call"))?(b(f(d.data.$bytesize(),0))&&e(d.data.$to_a().$with_index(c),'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),h.$call(b.$ord(),c)}),d):d.$to_enum("each_with_index",c)},-1),c(B,'$empty?',function(){var a=this;return a.data.$bytesize()['$=='](0)}),c(B,'$eql?',function(g){var c,a,d=this;return!!(c=i(arguments),a=c,b(f(a.$size(),0)))&&d['$=='](a['$[]'](0))},-1),c(B,'$fetch',function e(j){var g=e.$$p||a,h,c,d=this;return e.$$p=null,h=i(arguments),c=h,b(f(c.$size(),0))&&b(c['$[]'](0)['$is_a?'](y('Numeric')))?(c['$[]='](0,d.$filter_parameters(c['$[]'](0).$to_i()).$first()),b(q(c['$[]'](0),d.$size()))?b(c['$[]'](1))?b(g['$respond_to?']("call"))?g.$call(c['$[]'](0)):c['$[]'](1):d.$raise(y('IndexError').$new("Index specified lies outside the ByteArray")):d['$[]'](c['$[]'](0))):a},-1),c(B,'$fill',function r(w){var s=r.$$p||a,t,c,k=this,v=a,o=a,p=a,q=a,l=a,u=a;if(r.$$p=null,t=i(arguments),c=t,v=a,o=d(y('GxG'),'ByteArray').$new(),b(s['$respond_to?']("call")))b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Numeric')))&&(c['$[]='](0,c['$[]'](0).$to_i()),b(n(c['$[]'](0),0))&&(b(c['$[]'](1)['$is_a?'](y('Numeric')))?b(f(c['$[]'](1).$to_i(),0))?c=[g.Range.$new(j(k.data.$bytesize(),c['$[]'](0)),j(j(k.data.$bytesize(),c['$[]'](0)),h(c['$[]'](1).$to_i(),1)),!1)]:k.$raise(y('ArgumentError').$new("length specified should be a positive Integer for Float")):c=[g.Range.$new(j(k.data.$bytesize(),c['$[]'](0)),h(k.data.$bytesize(),1),!1)])),p=e(k,'filter_parameters',m(c))):p=g.Range.$new(0,h(b(q=k.max_size)?q:k.data.$bytesize(),1),!1),e(g.Range.$new(0,h(k.data.$bytesize(),1),!1),'each',[],function g(d){var c=g.$$s==null?this:g.$$s,e=a;return c.pad_value==null&&(c.pad_value=a),c.data==null&&(c.data=a),d==null&&(d=a),b(p['$include?'](d))?(e=c.$filter_data(s.$call(d)),b(f(e.$size(),0)))?o['$<<'](e['$[]'](0)):o['$<<'](c.pad_value):o['$<<'](c.data['$[]'](d))},{$$s:k});else if(b(f(c.$size(),0))){switch(l=a,c.$size().valueOf()){case 1:p=g.Range.$new(0,h(b(u=k.max_size)?u:k.data.$bytesize(),1),!1),l=k.$filter_data(c['$[]'](0));break;case 2:p=k.$filter_parameters(c['$[]'](1)),l=k.$filter_data(c['$[]'](0));break;case 3:p=k.$filter_parameters(c['$[]'](1),c['$[]'](2)),l=k.$filter_data(c['$[]'](0));break;default:p=k.$filter_parameters(c['$[]'](1),c['$[]'](2)),l=k.$filter_data(c['$[]'](0))}l=b(q=l)?q:k.pad_value,b(l['$is_a?'](d('Array')))&&(l=b(q=l['$[]'](0))?q:k.pad_value),e(g.Range.$new(0,h(k.data.$bytesize(),1),!1).$to_enum(),'each',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.data==null&&(d.data=a),c==null&&(c=a),b(p['$include?'](c))?o['$<<'](l):o['$<<'](d.data['$[]'](c))},{$$s:k})}else k.$raise(y('ArgumentError').$new("wrong number of arguments (0 for 1..3)"));return b(f(o.$size(),0))&&(k.data=o.$data()),k},-1),c(B,'$first',function(k){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(f(c['$[]'](0),0))?(b(d.max_size)&&(b(o(c['$[]'](0),d.max_size))||d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+")."))),d['$[]'](g.Range.$new(0,h(c['$[]'](0),1),!1))):a:d.$raise(y('TypeError').$new("Expected Integer. You provided "+c['$[]'](0).$class()))):d['$[]'](0)},-1),c(B,'$flatten',function(){var a=this;return a.$dclone()}),c(B,'$flatten!',v),c(B,'$freeze',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.data.$freeze(),b.max_size.$freeze(),b.pad_value.$freeze(),b.outer.$freeze(),x(b,w(b,'freeze',c,!1,!0),'freeze',[],null)}),c(B,'$hash',function(){var a=this;return a.data.$hash()}),c(B,'$include?',function(g){var d,a,c=this;return d=i(arguments),a=d,b(f(a.$size(),0))?(b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](a['$[]'](0)))?c.data['$include?'](a['$[]'](0).$chr()):c.$raise(y('RangeError').$new("Value out of range: range is 0 to 255. You provided "+a['$[]'](0))):c.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+a['$[]'](0).$class()))):c.$raise(y('ArgumentError').$new("Wrong number of arguments ("+a.$size()+" for 1)."))},-1),c(B,'$find_index',function n(o){var l=n.$$p||a,m,c,d=this,g=a,h=a;return n.$$p=null,m=i(arguments),c=m,g=a,b(l['$respond_to?']("call"))?(h=0,function(){try{var b=s('break');return e(d,'each',[],function d(c){return c==null&&(c=a),k(l.$call(c),!0)&&(g=h,b.$throw(a,d.$$is_lambda)),h=j(h,1)})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()):b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](c['$[]'](0)))&&(b(c['$[]'](1))?g=d.$array_to_ascii(d.data).$index(c['$[]'](0).$chr(),c['$[]'](1)):g=d.$array_to_ascii(d.data).$index(c['$[]'](0).$chr())):d.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+c['$[]'](0).$class()))):g=d.data.$to_enum("bytes"),g},-1),c(B,'$insert',function(w){var u,l,c=this,r=a,p=a,d=a,s=a,t=a;if(u=i(arguments),l=u,b(f(l.$size(),1)))if(b(l['$[]'](0)['$is_a?'](y('Float')))&&l['$[]='](0,l['$[]'](0).$to_i()),b(l['$[]'](0)['$is_a?'](y('Integer')))){r=c.$filter_data(l['$[]'](g.Range.$new(1,h(l.$size(),1),!1))),b(c.max_size)&&(b(o(j(c.data.$bytesize(),r.$bytesize()),c.max_size))||c.$raise(y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You need to adjust maxsize.")));try{p=l['$[]'](0),d=[],b(q(p,0))&&b(n(p,c.data.$bytesize()))&&(k(p,0)?(d['$<<'](r),d['$<<'](c.data)):k(p,h(c.data.$bytesize(),1))?(d['$<<'](c.$slice(g.Range.$new(0,h(p,1),!1)).$data()),d['$<<'](r),s=y('Buffer').$new(1).$to_a(),s['$[]='](0,c.data['$[]'](h(c.data.$bytesize(),1))),d['$<<'](s)):(d['$<<'](c.$slice(g.Range.$new(0,h(p,1),!1)).$data()),d['$<<'](r),d['$<<'](c.$slice(g.Range.$new(p,h(c.data.$bytesize(),1),!1)).$data()))),b(f(d.$size(),0))&&(c.data=e(c,'join_arrays',m(d)))}catch(a){if(g.rescue(a,[y('Exception')])){t=a;try{c.$raise(t.$exception(t.$message().$gsub("string",c.$class().$to_s())))}finally{g.pop_exception(a)}}else throw a}}else c.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+l['$[]'](0).$class()));else c.$raise(y('ArgumentError').$new("Wrong number of arguments ("+l.$size()+" for 2)."));return c},-1),c(B,'$inspect',function(){var d=this,c=a;return c="[",b(f(d.data.$bytesize(),0))&&e(g.Range.$new(0,h(d.data.$bytesize(),1),!1),'each',[],function h(e){var g=h.$$s==null?this:h.$$s,d=a;return g.data==null&&(g.data=a),e==null&&(e=a),b(f(c.$size(),1))&&(c=j(c,", ")),d=g.data['$[]'](e),b(f(d,15))?c=j(c,"0x"+d.$to_s(16).$upcase()):c=j(c,"0x0"+d.$to_s(16).$upcase())},{$$s:d}),j(c,"]")}),c(B,'$join',function(f){var a,b,c=this;return a=i(arguments),b=a,e(c.$array_to_ascii(c.data).$split(),'join',m(b))},-1),c(B,'$last',function(l){var e,c,d=this,j=a;return e=i(arguments),c=e,b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(f(c['$[]'](0),0))?(j=g.Range.$new(h(h(d.data.$bytesize(),1),h(c['$[]'](0),1)),h(d.data.$bytesize(),1),!1),b(d.max_size)&&(b(o(c['$[]'](0),d.max_size))||d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+")."))),d['$[]'](j)):d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+").")):d.$raise(y('TypeError').$new("Expected Integer. You provided "+c['$[]'](0).$class()))):d['$[]'](h(d.data.$bytesize(),1))},-1),c(B,'$pack',function(h){var g,c,e=this,d=a,f=a;return g=i(arguments),c=g,d="",b(q(c.$size(),1))?(c['$[]='](0,b(f=c['$[]'](0))?f:""),b(c['$[]'](0)['$is_a?'](y('String')))?(b(c['$[]'](1)['$is_a?'](y('Encoding')))&&d.$force_encoding(c['$[]'](1)),d['$<<'](e.$to_a().$pack(c['$[]'](0)))):e.$raise(y('TypeError').$new("Expected String. You provided "+c['$[]'](0).$class()))):e.$raise(y('ArgumentError').$new("Wrong number of arguments ("+c.$size()+" for 1+).")),d},-1),c(B,'$permutation',function k(l){var g=k.$$p||a,h,j,f=this,c=a;return k.$$p=null,h=i(arguments),j=h,c=e(f.$array_to_ascii(f.data).$split(),'to_enum',["permutation"].concat(m(j))),b(g['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),g.$call(d(y('GxG'),'ByteArray').$new(b))}),f):c},-1),c(B,'$repeated_permutation',function k(l){var g=k.$$p||a,h,j,f=this,c=a;return k.$$p=null,h=i(arguments),j=h,c=e(f.$array_to_ascii(f.data).$split(),'to_enum',["repeated_permutation"].concat(m(j))),b(g['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),g.$call(d(y('GxG'),'ByteArray').$new(b))}),f):c},-1),c(B,'$pop',function(c){var h=this,g=a;return c==null&&(c=a),g=a,b(c['$is_a?'](y('Numeric')))?(b(f(c.$to_i(),0))||h.$raise(y('ArgumentError').$new(""+c+" needs to be a positive Numeric")),g=d(d('GxG'),'ByteArray').$new(),e(c,'times',[],function a(){var b=a.$$s==null?this:a.$$s;return g['$<<'](b.$delete_at(-1))},{$$s:h})):g=h.$delete_at(-1),g},-1),c(B,'$product',function l(m){var j=l.$$p||a,k,c,g=this,h=a;return l.$$p=null,k=i(arguments),c=k,b(f(g.data.$bytesize(),0))?(c=d(y('GxG'),'ByteArray').$new(c),b(j['$respond_to?']("call")))?(e(g,'each',[],function(b){return b==null&&(b=a),e(c,'each',[],function(c){return c==null&&(c=a),j.$call(d(y('GxG'),'ByteArray').$new([b,c]))})}),g):(h=d(y('GxG'),'ByteArray').$new(),e(g,'each',[],function(b){return b==null&&(b=a),e(c,'each',[],function(c){return c==null&&(c=a),h['$<<'](b),h['$<<'](c)})}),h):g},-1),c(B,'$push',function(f){var a,b,c=this;return a=i(arguments),b=a,c['$<<'](d(y('GxG'),'ByteArray').$new(b))},-1),c(B,'$rassoc',function(b){return b==null&&(b=a),a},-1),c(B,'$reject',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=a,b(h['$respond_to?']("call"))?(c=d(y('GxG'),'ByteArray').$new(),c['$padvalue='](f.pad_value),b(f.max_size)&&c['$maxsize='](f.max_size),e(f,'each_with_index',[],function(b,d){return b==null&&(b=a),d==null&&(d=a),k(h.$call(b),!0)?a:c['$<<'](b)})):c=f.$to_a().$to_enum("reject"),c}),c(B,'$reject!',function g(){var h=g.$$p||a,c=this,d=a,f=a;return g.$$p=null,d=a,b(h['$respond_to?']("call"))?(f=e(c,'reject',[],h.$to_proc()),b(f)&&(c.data=f.$data()),d=c):d=c.$to_a().$to_enum("reject!"),d}),c(B,'$replace',function(m){var k,j,c=this,e=a;return k=i(arguments),j=k,b(f(j.$size(),0))&&(e=d(y('GxG'),'ByteArray').$try_convert(j),b(e)?b(c.max_size)?b(o(e.$data().$bytesize(),c.max_size))?c.data=e.$data():c.data=e['$[]'](g.Range.$new(0,h(c.max_size,1),!1)).$data():c.data=e.$data():c.$raise(y('Exception').$new("Could not convert "+j['$[]'](0).$class()+" to ByteArray"))),c},-1),c(B,'$reverse',function(){var c=this,e=a;return e=d(y('GxG'),'ByteArray').$new(c.$array_to_ascii(c.data).$reverse()),e['$padvalue='](c.pad_value.$clone()),b(c.max_size)&&e['$maxsize='](c.max_size.$clone()),e}),c(B,'$reverse!',function(){var a=this;return a.data=a.$reverse().$data(),a}),c(B,'$reverse_each',function f(){var g=f.$$p||a,d=this,c=a;return f.$$p=null,c=a,b(g['$respond_to?']("call"))?(c=d.$clone(),c.$clear(),e(d.$reverse(),'each',[],function(b){return b==null&&(b=a),c['$<<'](g.$call(b))})):c=d.$reverse().$to_enum("each"),c}),c(B,'$rotate',function(c){var e=this,i=a,j=a,l=a;return c==null&&(c=1),b(c['$is_a?'](y('Numeric')))||e.$raise(y('ArgumentError').$new("Expected a Numeric, you provided "+c.$class())),b(n(c,0))?c=h(h(e.$size(),c['$~']()['$%'](e.$size())),1).$to_i():c=c['$%'](e.$size()).$to_i(),i=[],k(c,0)||(j=e.$filter_parameters(g.Range.$new(c,-1,!1)),i['$<<'](e['$[]'](j)),b(f(j.$first(),0))&&i['$<<'](e['$[]'](g.Range.$new(0,h(j.$first(),1),!1)))),b(f(i.$size(),0))?l=d(y('GxG'),'ByteArray').$new(i):l=e.$clone(),l},-1),c(B,'$rotate!',function(a){var c=this;return a==null&&(a=1),b(a['$is_a?'](y('Numeric')))?u(a.$to_i(),0)&&(c.data=c.$rotate(a).$data()):c.$raise(y('ArgumentError').$new("Expected a Numeric, you provided "+a.$class())),c},-1),c(B,'$sample',function(g){var a,b,c=this;return a=i(arguments),b=a,d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'sample',m(b)))},-1),c(B,'$select',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=d(y('GxG'),'ByteArray').$new(),c['$maxsize='](f.max_size),c['$padvalue='](f.pad_value),c['$outervalue='](f.outer),b(h['$respond_to?']("call"))?e(f,'each',[],function(b){return b==null&&(b=a),k(h.$call(b),!1)?a:c['$<<'](b)}):c=f.$to_enum("select"),c}),c(B,'$select!',function d(){var f=d.$$p||a,c=this,g=a;return d.$$p=null,b(f['$respond_to?']("call"))?(g=c.data.$hash(),c.data=e(c,'select',[],f.$to_proc()).$data(),k(g,c.data.$hash()))?a:c:c.$to_enum("select!")}),c(B,'$shift',function(){var a=this;return a.$delete_at(0)}),c(B,'$shuffle',function(g){var a,b,c=this;return a=i(arguments),b=a,d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'shuffle',m(b)))},-1),c(B,'$shuffle!',function(f){var b,c,a=this;return b=i(arguments),c=b,a.$replace(e(a,'shuffle',m(c))),a},-1),c(B,'$size',function(){var a=this;return a.data.$bytesize()}),c(B,'$slice',function(i,l){var c=this,g=a,m=a,o=a,n=a;return i==null&&(i=0),l==null&&(l=a),g=c.$filter_parameters(i,l),b(g)||(b(l)?c.$raise(y('ArgumentError').$new(""+i.$inspect()+","+l.$inspect()+" could not be fashioned into a valid Indexer")):c.$raise(y('ArgumentError').$new(""+i.$inspect()+" could not be fashioned into a valid Indexer"))),b(c.max_size)&&(b(f(g.$count(),c.max_size))||b(f(g.$first(),h(c.max_size,1)))||b(f(g.$last(),h(c.max_size,1))))&&c.$raise(y('IndexError').$new("Index exceeds "+c.max_size+" limit. You need to adjust maxsize.")),m=a,b(g)&&(k(g.$first(),g.$last())?m=c.data['$[]'](g.$first()):(o=y('Buffer').$new(g.$size()).$to_a(),n=0,e(g,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),o['$[]='](n,c.data['$[]'](b)),n=j(n,1)},{$$s:c}),m=d(d('GxG'),'ByteArray').$new(c.$array_to_ascii(o)))),m},-1),c(B,'$slice!',function(e,f){var c=this,d=a;return e==null&&(e=0),f==null&&(f=a),d=c.$slice(e,f),b(d['$is_a?'](y('Numeric')))?c.$replace(d.$chr()):c.$replace(d),k(c.$size(),1)?c.$slice(0):c},-1),c(B,'$sort',function c(){var f=c.$$p||a,g=this;return c.$$p=null,b(f['$respond_to?']("call"))?d(y('GxG'),'ByteArray').$new(e(g.$to_a(),'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.$call(b,c)})):d(y('GxG'),'ByteArray').$new(g.$to_a().$sort())}),c(B,'$sort!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))&&c.$replace(e(c,'sort',[],f.$to_proc()).$data()),c}),c(B,'$sort_by!',function f(){var g=f.$$p||a,c=this;return f.$$p=null,b(g['$respond_to?']("call"))?(c.$replace(d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'sort_by!',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g.$call(b,c)})).$data()),c):c.$to_enum("sort_by!")}),c(B,'$take',function(a){var b=this;return b.$slice(g.Range.$new(0,h(a.$to_i(),1),!1))}),c(B,'$take_while',function f(){var g=f.$$p||a,h=this,c=a;return f.$$p=null,b(g['$respond_to?']("call"))?(c=d(y('GxG'),'ByteArray').$new(),function(){try{var d=s('break');return e(h,'each',[],function h(e){var f=a;if(e==null&&(e=a),f=g.$call(e),b(f))return c['$<<'](e);d.$throw(a,h.$$is_lambda)})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c):h.$to_enum("take_while")}),c(B,'$to_a',function(){var c=this,d=a;return d=[],b(f(c.data.$bytesize(),0))&&e(g.Range.$new(0,h(c.data.$bytesize(),1),!1),'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),d['$<<'](c.data['$[]'](b))},{$$s:c}),d}),c(B,'$to_s',function(){var a=this;return a.$array_to_ascii(a.data)}),c(B,'$to_ascii',function(){var a=this;return a.$array_to_ascii(a.data)}),c(B,'$to_json',function(){var a=this;return j("binary:",a.$to_ascii().$encode64())}),c(B,'$transpose',function(){var a=this;return a.$clone()}),c(B,'$uniq',function c(){var f=c.$$p||a,g=this;return c.$$p=null,b(f['$respond_to?']("call"))?d(y('GxG'),'ByteArray').$new(e(g.$to_a(),'uniq',[],f.$to_proc())):g}),c(B,'$uniq!',function d(){var f=d.$$p||a,b=this,c=a;return d.$$p=null,c=e(b,'uniq',[],f.$to_proc()),k(c.$size(),b.$size())?a:(b.$replace(c),b)}),c(B,'$unshift',function(g){var c,a,d=this;return c=i(arguments),a=c,b(f(a.$size(),0))&&d.$insert(0,a),d},-1),c(B,'$values_at',function(l){var h,c,j=this,g=a;return h=i(arguments),c=h,g=d(y('GxG'),'ByteArray').$new(),b(f(c.$size(),0))&&e(c.$to_enum(),'each',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=a),b(c['$is_a?'](y('Numeric')))||b(c['$is_a?'](y('Range')))?(b(c['$is_a?'](y('Range')))||(c=c.$to_i()),g['$<<'](e['$[]'](c))):e.$raise(y('TypeError').$new("Expected Integer, Float or Range. You provided "+c.$class()))},{$$s:j}),g},-1),c(B,'$zip',function l(m){var j=l.$$p||a,k,c,h=this,g=a;return l.$$p=null,k=i(arguments),c=k,g=a,b(f(c.$size(),0))?(g=d(y('GxG'),'ByteArray').$new(),e(c.$to_enum("each_index"),'each',[],function(f){var g;return f==null&&(f=a),b(c['$[]'](f)['$is_a?'](d(y('GxG'),'ByteArray')))?a:(g=[f,d(y('GxG'),'ByteArray').$new(c['$[]'](f))],e(c,'[]=',g),g[g.length-1])}),e(h,'each_with_index',[],function l(k,i){var m=l.$$s==null?this:l.$$s,f=a,h=a;return k==null&&(k=a),i==null&&(i=a),f=d(y('GxG'),'ByteArray').$new(),f['$<<'](k),e(c.$to_enum("each_index"),'each',[],function g(d){var e=g.$$s==null?this:g.$$s;return e.pad_value==null&&(e.pad_value=a),d==null&&(d=a),b(q(i,c['$[]'](d).$size()))?f['$<<'](e.pad_value):f['$<<'](c['$[]'](d).$data()['$[]'](i))},{$$s:m}),b(j['$respond_to?']("call"))&&(h=j.$call(f),b(h['$is_a?'](d('Array')))&&(h=d(y('GxG'),'ByteArray').$new(h)),b(h['$is_a?'](d(d('GxG'),'ByteArray')))&&(f=h)),g['$<<'](f)},{$$s:h})):g=h.$clone(),g},-1),l(B,"assoc","rassoc"),l(B,"map","collect"),l(B,"map!","collect!"),l(B,"compact!","compact"),l(B,"indices","values_at"),l(B,"indexes","values_at"),l(B,"rindex","find_index"),l(B,"index","find_index"),l(B,"length","size"),l(B,"nitems","size"),l(B,"to_ary","to_a"),l(B,"keep_if","select!"),c(B,'$paths_to',function(c,d){var g=this,f=a;return c==null&&(c=a),d==null&&(d=""),f=[],b(c['$is_a?'](y('Numeric')))&&e(g,'each_with_index',[],function(b,e){return b==null&&(b=a),e==null&&(e=a),k(b,c.$to_i())?f['$<<'](j(j(d,"/"),e.$to_s())):a}),f},-1),c(B,'$get_at_path',function(d){var h=this,c=a,g=a,i=a;return d==null&&(d="/"),c=a,k(d,"/")?c=h:(g=[h],i=d.$split("/"),function(){try{var d=s('break');return e(i.$to_enum(),'each',[],function i(e){var h=a;if(e==null&&(e=a),h=a,b(f(e.$size(),0))&&k(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(h=e.$to_i()),b(h))if(c=g.$first()['$[]'](h),b(c['$is_a?'](y('NilClass'))))d.$throw(a,i.$$is_lambda);else return g.$unshift(c);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),c},-1),c(B,'$set_at_path',function(i,g){var l=this,j=a,h=a,e=a,c=a;return i==null&&(i="/"),g==null&&(g=a),j=a,u(i,"/")&&(h=l,b(h)&&(e=d('File').$basename(i),c=a,b(f(e.$size(),0))&&k(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(c=e.$to_i()),b(c)&&(h['$[]='](c,g),k(h['$[]'](c),g)&&(j=!0)))),j},-1)}(y[0],null,y)}(y[0],y)},Opal.modules["web/gxg_events"]=function(e){var m=e.module,n=e.const_set,j=e.klass,c=e.def,l=e.return_ivar,f=e.send,d=e.truthy,q=e.rb_gt,y=e.return_self,k=e.return_val,w=e.defs,p=e.slice,s=e.to_a,h=e.eqeq,t=e.rb_ge,g=e.rb_plus,o=e.alias,x=e.send2,z=e.find_super,u=e.rb_times,r=e.rb_divide,v=e.thrower,i=[],a=e.nil,b=e.$$$;return e.add_stubs('size,unshift,<<,each,values,[],read,dispatch_message,>,is_a?,valud_uuid?,to_s,fetch_channel,to_sym,write,send,socket,encode64,to_json,encrypt,export,secret,connector,log_warn,[]=,new,times,outbox_size,delete,next_message,send_message,new_message,import,raise,merge,uuid_generate,inspect,respond_to?,call,include?,keys,process,to_proc,process!,search,paths_to,get_at_path,set_at_path,is_any?,class,parse,is,gxg_import,gxg_export,shift,==,to_enum,>=,level,add,backtrace,+,exception,join,sleep,unknown?,unknown,warn?,warn,to_i,*,to_f,method,cancel_all_timers,now,each_with_index,delete_at,/,merge!,puts,adjust_event_queue,create_event_queue,post_to_event_queue,each_index,const_defined?,remove_const,startup,add_periodic_timer,process_messages,shutdown,create_channel'),function(A,B){var C=m(A,'GxG'),i=[C].concat(B);return n(i[0],'GXG_FEDERATION',new Map([["title","Untitled"],["uuid",a],["access_url",a],["available",new Map],["connections",new Map]])),function(h,i){var k=m(h,'Messages'),g=[k].concat(i);return function(e,f){var b=j(e,f,'Channel'),d=b.$$prototype;return d.inbox=d.outbox=a,c(b,'$initialize',function(c,d){var b=this;return c==null&&(c=a),d==null&&(d=a),b.uuid=c,b.inbox=[],b.outbox=[],b.socket=a,b.remote=a,b.channel_secret=a,b.object=d,b},-1),c(b,'$uuid',l("uuid")),c(b,'$object',l("object")),c(b,'$socket',l("socket")),c(b,'$socket=',function(b){var c=this;return b==null&&(b=a),c.socket=b},-1),c(b,'$remote',l("remote")),c(b,'$remote=',function(b){var c=this;return b==null&&(b=a),c.remote=b},-1),c(b,'$secret',l("channel_secret")),c(b,'$secret=',function(b){var c=this;return b==null&&(b=a),c.channel_secret=b},-1),c(b,'$inbox_size',function(){var a=this;return a.inbox.$size()}),c(b,'$next_message',function(){var a=this;return a.inbox.$unshift()}),c(b,'$outbox_size',function(){var a=this;return a.outbox.$size()}),c(b,'$send_message',function(a){var b=this;return b.outbox['$<<'](a)}),c(b,'$read',function(){var a=this;return a.outbox.$unshift()}),c(b,'$write',function(a){var b=this;return b.inbox['$<<'](a)})}(g[0],null),function(i,k,l){var g=j(i,k,'ChannelManager'),m=[g].concat(l),h=e.$r(m);return c(g,'$update_channels',function(){var e=this,c=a,b=a;return c=!1,b=[],f(h('GXG_FEDERATION')['$[]']("connections").$values(),'each',[],function(c){return c==null&&(c=a),b['$<<'](c)}),f(b,'each',[],function e(b){var f=e.$$s==null?this:e.$$s,c=a;for(b==null&&(b=a),c=b.$read();d(c);)f.$dispatch_message(c),c=b.$read()},{$$s:e}),d(q(b.$size(),0))&&(c=!0),c}),c(g,'$dispatch_message',function(c){var f=this,e=a,g=a,i=a;return c==null&&(c=a),e=!1,d(c['$is_a?'](b(b(b('GxG'),'Events'),'Message')))&&(g=c['$[]']("to"),d(b('GxG')['$valud_uuid?'](g.$to_s()))&&(i=f.$fetch_channel(g.$to_s().$to_sym()),d(i)?(i.$write(c),e=!0):d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))?(f.$socket().$send(new Map([["payload",c.$export().$to_s().$encrypt(f.$connector().$secret()).$encode64()]]).$to_json().$encode64(),"text"),e=!0):(f.$log_warn("Message dropped --> login and resend"),e=!1))),e},-1),c(g,'$fetch_channel',function(a){return h('GXG_FEDERATION')['$[]']("connections")['$[]'](a)}),c(g,'$create_channel',function(c,e){var f=this;return c==null&&(c=a),e==null&&(e=a),h('GXG_FEDERATION')['$[]']("connections")['$[]='](c,b(b(b('GxG'),'Messages'),'Channel').$new(c,e)),d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))?f.$socket().$send(new Map([["open_channel",c]]).$to_json().$encode64(),"text"):a},-1),c(g,'$destroy_channel',function(e){var g=this,c=a;return c=g.$fetch_channel(e),d(c)&&(f(c.$outbox_size(),'times',[],function e(f){var g=e.$$s==null?this:e.$$s,b=a;return f==null&&(f=a),b=c.$read(),d(b)?g.$dispatch_message(b):a},{$$s:g}),d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))&&g.$socket().$send(new Map([["close_channel",e]]).$to_json().$encode64(),"text")),h('GXG_FEDERATION')['$[]']("connections").$delete(e)}),c(g,'$next_message',function(e){var f=this,b=a,c=a;return b=a,c=f.$fetch_channel(e),d(c)&&(b=c.$next_message()),b}),c(g,'$send_message',function(c,e){var f=this,b=a;return b=f.$fetch_channel(c),d(b)?b.$send_message(e):a}),c(g,'$initialize',y)}(g[0],null,g)}(i[0],i),function(n,y){var A=m(n,'Events'),i=[A].concat(y);return function(i,l,m){var g=j(i,l,'Message'),n=[g].concat(m),h=e.$r(n),o=g.$$prototype;return o.data=a,w(g,'$import',function(b){var d=this,c=a;return b==null&&(b=a),c=f(d,'new_message',[],k(a)),c.$import(b),c},-1),c(g,'$initialize',function(i){var f,e,c=this;return f=p(arguments),e=f,d(e['$[]'](0)['$is_a?'](b('Hash')))||c.$raise(h('ArgumentError'),"you must pass a Hash to create the message"),c.data=new Map([["sender",a],["id",h('GxG').$uuid_generate().$to_s().$to_sym()],["subject",e['$[]'](1).$to_s()],["body",a],["on_success",a],["on_fail",a]]).$merge(e['$[]'](0)),d(c.data['$[]']("sender"))||c.$raise(h('ArgumentError'),"you must set the :sender key in the argument Hash"),c},-1),c(g,'$inspect',function(){var a=this;return a.data.$inspect()}),c(g,'$id',function(){var a=this;return a.data['$[]']("id")}),c(g,'$sender',function(){var a=this;return a.data['$[]']("sender")}),c(g,'$subject',function(){var a=this;return a.data['$[]']("subject")}),c(g,'$body',function(){var a=this;return a.data['$[]']("body")}),c(g,'$succeed',function(b){var c=this;return b==null&&(b=a),d(c.data['$[]']("on_success")['$respond_to?']("call"))?c.data['$[]']("on_success").$call(b):a},-1),c(g,'$fail',function(b){var c=this;return b==null&&(b=a),d(c.data['$[]']("on_fail")['$respond_to?']("call"))?c.data['$[]']("on_fail").$call(b):a},-1),c(g,'$on',function i(c){var g=i.$$p||a,b,e=this;if(i.$$p=null,c==null&&(c=a),d(["success","fail"]['$include?'](c)))if(d(g['$respond_to?']("call")))switch(c.valueOf()){case"success":return b=["on_success",g],f(e.data,'[]=',b),b[b.length-1];case"fail":return b=["on_fail",g],f(e.data,'[]=',b),b[b.length-1];default:return a}else return e.$raise(h('ArgumentError'),"You MUST provide a callable block.");else return e.$raise(h('ArgumentError'),"Unknown event type: "+c)},-1),c(g,'$keys',function(){var a=this;return a.data.$keys()}),c(g,'$[]',function(a){var b=this;return b.data['$[]'](a)}),c(g,'$[]=',function(b,c){var a,d=this;return a=[b,c],f(d.data,'[]=',a),a[a.length-1]}),c(g,'$process',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'process',[],c.$to_proc())}),c(g,'$process!',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'process!',[],c.$to_proc())}),c(g,'$search',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'search',[],c.$to_proc())}),c(g,'$paths_to',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'paths_to',s(b))},-1),c(g,'$get_at_path',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'get_at_path',s(b))},-1),c(g,'$set_at_path',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'set_at_path',s(b))},-1),c(g,'$import',function(c){var f=this,e=a;return c==null&&(c=a),d(c['$is_any?'](b('String'),b('Hash')))||f.$raise(h('Exception').$new("You MUST supply a JSON string or a Hash, you supplied: "+c.$class().$inspect())),e=!1,d(c['$is_a?'](b('String')))&&(c=h('JSON').$parse(c,new Map([["symbolize_names",!0]]))),d(c.$is(b('Hash')))&&(f.data.$merge(b('Hash').$gxg_import(c)),e=!0),e},-1),c(g,'$export',function(){var a=this;return a.data.$gxg_export().$to_json().$to_s()}),c(g,'$to_s',function(){var a=this;return a.$export().$to_s()}),c(g,'$to_json',function(){var a=this;return a.$to_s()})}(i[0],null,i),j(i[0],null,'LoggerDB'),function(s,p,q){var i=j(s,p,'LogRing'),r=[i].concat(q),n=e.$r(r),m=i.$$prototype;return m.outlets=m.busy=m.messages=a,c(i,'$initialize',function(){var a=this;return a.uuid=b('GxG').$uuid_generate().$to_sym(),a.busy=!1,a.outlets=new Map,a.messages=[]}),c(i,'$uuid',l("uuid")),c(i,'$keys',function(){var a=this;return a.outlets.$keys()}),c(i,'$[]',function(a){var b=this;return b.outlets['$[]'](a)}),c(i,'$[]=',function(e,a){var c=this;return d(a['$is_any?'](b('Logger'),b(b(b('GxG'),'Events'),'LoggerDB')))?(c.outlets['$[]='](e,a),a):c.$raise(n('ArgumentError'),"You must supply a Logger or GxG::Events::LoggerDB instance, you provided a "+a.$class())}),c(i,'$process_messages',function(){var i=this,c=a,j=a,k=a;if(!d(i.busy)){if(i.busy=!0,c=i.messages.$shift(),d(c['$is_a?'](b(b(b('GxG'),'Events'),'Message'))))try{h(c['$[]']("subject"),"notification")&&d(c['$[]']("body")['$is_a?'](b('Hash')))&&(j=i.$keys(),f(j.$to_enum("each"),'each',[],function h(f){var j=h.$$s==null?this:h.$$s,e=a,i=a;return f==null&&(f=a),e=j['$[]'](f),d(t(d(i=c['$[]']("body")['$[]']("severity"))?i:b(b('Logger'),'UNKNOWN'),e.$level()))?d(e['$is_a?'](b(b(b('GxG'),'Events'),'LoggerDB')))?a:d(c['$[]']("body")['$[]']("message")['$is_a?'](b('String')))||d(c['$[]']("body")['$[]']("message")['$is_a?'](b('Exception')))?e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message"),c['$[]']("body")['$[]']("progname")):d(c['$[]']("body")['$[]']("message")['$is_a?'](b('Hash')))?d(c['$[]']("body")['$[]']("message")['$[]']("error")['$is_a?'](b('Exception')))?d(c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace()['$is_a?'](b('Array')))?d(c['$[]']("body")['$[]']("message")['$[]']("parameters"))?e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Parameters: "),c['$[]']("body")['$[]']("message")['$[]']("parameters").$inspect()),"\n Trace: "),c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace().$join("\n")),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Trace: "),c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace().$join("\n")),"\n"),c['$[]']("body")['$[]']("progname")):d(c['$[]']("body")['$[]']("message")['$[]']("parameters"))?e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Parameters: "),c['$[]']("body")['$[]']("message")['$[]']("parameters").$inspect()),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message").$inspect(),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message").$inspect(),c['$[]']("body")['$[]']("progname")):a},{$$s:i}))}catch(a){if(e.rescue(a,[n('Exception')])){k=a;try{i.busy=!1}finally{e.pop_exception(a)}}else throw a}i.busy=!1}return!0}),c(i,'$add',function m(i,f,g,j){var l=m.$$p||a,c=this,k=a,o=a;m.$$p=null,i==null&&(i=a),f==null&&(f=a),g==null&&(g=a),j==null&&(j=a),d([b(b('Logger'),'DEBUG'),b(b('Logger'),'INFO'),b(b('Logger'),'WARN'),b(b('Logger'),'ERROR'),b(b('Logger'),'FATAL'),b(b('Logger'),'UNKNOWN')]['$include?'](i))||(i=b(b('Logger'),'UNKNOWN')),d(g)&&(d(f)||(f=g,g=a));try{for(d(f)||d(l['$respond_to?']("call"))&&(f=l.$call()),k=c.$new_message(new Map([["severity",i],["message",f],["progname",g]]),"notification"),d(j)&&k['$[]=']("sender",j);h(c.busy,!0);)c.$sleep(.333);return c.busy=!0,c.messages['$<<'](k),c.busy=!1,!0}catch(a){if(e.rescue(a,[n('Exception')])){o=a;try{return c.busy=!1,!1}finally{e.pop_exception(a)}}else throw a}},-1),c(i,'$unknown?',k(!0)),o(i,"trace?","unknown?"),c(i,'$unknown',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'UNKNOWN'),c,e,d(j=g)?j:i],k.$to_proc())},-1),o(i,"trace","unknown"),c(i,'$fatal?',k(!0)),c(i,'$fatal',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'FATAL'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$error?',k(!0)),c(i,'$error',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'ERROR'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$warn?',k(!0)),o(i,"warning?","warn?"),c(i,'$warn',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'WARN'),c,e,d(j=g)?j:i],k.$to_proc())},-1),o(i,"warning","warn"),c(i,'$info?',k(!0)),c(i,'$info',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'INFO'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$debug?',k(!0)),c(i,'$debug',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'DEBUG'),c,e,d(j=g)?j:i],k.$to_proc())},-1)}(i[0],null,i),function(s,n,o){var i=j(s,n,'EventDispatcher'),p=[i].concat(o),k=e.$r(p),m=i.$$prototype;return m.host_timer=m.js_interval=m.running=m.ticking=m.timers=m.event_queues=a,c(i,'$initialize',function d(e){var f=d.$$p||a,c=this;return d.$$p=null,e==null&&(e=.333),x(c,z(c,'initialize',d,!1,!0),'initialize',[],null),c.uuid=b('GxG').$uuid_generate().$to_sym(),c.event_queues=new Map([["root",new Map([["events",[]],["settings",new Map([["active",!0],["portion",100]])]])]]),c.running=!1,c.ticking=!1,c.timers=[],c.js_interval=u(e.$to_f(),1e3).$to_i(),c.host_timer=a,c},-1),c(i,'$startup',function(){var a=this;return!!(a.running=!0,d(a.host_timer)||(a.host_timer=setInterval(a.$method("tick").$to_proc(),a.js_interval)),d(a.host_timer))}),c(i,'$shutdown',function(){var b=this;return b.running=!1,d(b.host_timer)&&(d(b.host_timer['$is_a?'](k('Numeric')))?clearInterval(b.host_timer):clearInterval(b.host_timer._id)),b.$cancel_all_timers(),b.host_timer=a,!0}),c(i,'$tick',function(){var c=this,j=a,m=a,n=a,o=a,l=a,i=a;return d(c.running)?d(c.ticking)?a:(c.ticking=!0,j=[],d(q(c.timers.$size(),0))&&(m=[],n=b('Time').$now().$to_f(),f(c.timers,'each_with_index',[],function i(b,c){var e,h=i.$$s==null?this:i.$$s;return h.timers==null&&(h.timers=a),b==null&&(b=a),c==null&&(c=a),d(t(n,b['$[]']("when")))?(j['$<<'](b['$[]']("what")),d(b['$[]']("interval")))?(e=["when",g(n,b['$[]']("interval").$to_f())],f(h.timers['$[]'](c),'[]=',e),e[e.length-1]):m.$unshift(c):a},{$$s:c}),f(m,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.timers==null&&(c.timers=a),b==null&&(b=a),c.timers.$delete_at(b)},{$$s:c})),o=100,l=0,i=new Map,f(c.event_queues.$keys(),'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return c.event_queues==null&&(c.event_queues=a),b==null&&(b=a),d(c.event_queues['$[]'](b)['$[]']("settings")['$[]']("active"))&&d(q(c.event_queues['$[]'](b)['$[]']("events").$size(),0))?(i['$[]='](b,new Map([["portion",u(r(c.event_queues['$[]'](b)['$[]']("settings")['$[]']("portion").$to_f(),100),o.$to_f()).$to_i()]])),h(i['$[]'](b)['$[]']("portion"),0)&&i['$[]'](b)['$[]=']("portion",1),i['$[]'](b)['$[]=']("size",c.event_queues['$[]'](b)['$[]']("events").$size()),l=g(l,i['$[]'](b)['$[]']("size"))):a},{$$s:c}),f(i.$keys(),'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),function(){try{var c=v('break');return f(i['$[]'](b)['$[]']("portion"),'times',[],function e(){var f=e.$$s==null?this:e.$$s,g=a;if(f.event_queues==null&&(f.event_queues=a),g=f.event_queues['$[]'](b)['$[]']("events").$shift(),d(g['$respond_to?']("call")))return j['$<<'](g);c.$throw(a,e.$$is_lambda)},{$$s:e})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}()},{$$s:c}),f(j,'each',[],function(b){var c=a;if(b==null&&(b=a),d(b))try{return b.$call()}catch(b){if(e.rescue(b,[k('Exception')])){c=b;try{return a}finally{e.pop_exception(b)}}else throw b}else return a}),c.ticking=!1):a}),c(i,'$inspect_timers',l("timers")),c(i,'$inspect_queue',function(a){var b=this;return a==null&&(a="root"),b.event_queues['$[]'](a)},-1),c(i,'$adjust_event_queue',function(b,c){var e=this;return b==null&&(b="root"),c==null&&(c=new Map),h(b.$to_s().$to_sym(),"root")?a:d(e.event_queues['$[]'](b.$to_sym()))?f(["active"],'each',[],function h(e){var f=h.$$s==null?this:h.$$s,g=a;return f.event_queues==null&&(f.event_queues=a),e==null&&(e=a),d(c['$[]'](e.$to_sym()))?(g=new Map,g['$[]='](e.$to_sym(),c['$[]'](e.$to_sym())),f.event_queues['$[]'](b.$to_sym())['$[]']("settings")['$merge!'](g)):a},{$$s:e}):e.$puts("Warning: queue "+b.$inspect()+" does not exist")},-1),c(i,'$create_event_queue',function(e){var b=this,c=a,g=a;return e==null&&(e=new Map),d(e['$is_a?'](k('Hash')))||b.$raise(k('ArgumentError'),"you must provide a Hash as a parameter set"),c=e.$delete("name").$to_s().$to_sym(),d(q(c.$to_s().$size(),0))?d(b.event_queues['$[]'](c))?b.$raise(k('ArgumentError'),"Event Queue "+c.$inspect()+" already exists"):(b.event_queues['$[]='](c,new Map([["events",[]],["settings",new Map([["active",!1],["portion",0]])]])),g=r(100,b.event_queues.$keys().$size().$to_f()),f(b.event_queues.$keys(),'each',[],function e(c){var b,d=e.$$s==null?this:e.$$s;return d.event_queues==null&&(d.event_queues=a),c==null&&(c=a),(b=["portion",g],f(d.event_queues['$[]'](c)['$[]']("settings"),'[]=',b),b[b.length-1])},{$$s:b}),b.$adjust_event_queue(c,e.$merge(new Map([["active",!0]]))),!0):b.$raise(k('ArgumentError'),":name must be provided for Event Queue")},-1),c(i,'$delete_event_queue',function(b){var c=this,d=a;return!(b==null&&(b=a),h(b.$to_s().$to_sym(),"root"))&&(c.event_queues.$delete(b),d=r(c.event_queues.$keys().$size().$to_f(),100),f(c.event_queues.$keys(),'each',[],function g(c){var b,e=g.$$s==null?this:g.$$s;return e.event_queues==null&&(e.event_queues=a),c==null&&(c=a),(b=["portion",d],f(e.event_queues['$[]'](c)['$[]']("settings"),'[]=',b),b[b.length-1])},{$$s:c}),!0)},-1),c(i,'$pause_event_queue',function(b){var c=this;return b==null&&(b=a),h(b.$to_s().$to_sym(),"root")?a:c.$adjust_event_queue(b,new Map([["active",!0]]))},-1),c(i,'$unpause_event_queue',function(b){var c=this;return b==null&&(b=a),h(b.$to_s().$to_sym(),"root")?a:c.$adjust_event_queue(b,new Map([["active",!1]]))},-1),c(i,'$post_to_event_queue',function(c,b){var e=this;return c==null&&(c="root"),b==null&&(b=a),d(b['$respond_to?']("call"))?d(e.event_queues['$[]'](c))?e.event_queues['$[]'](c)['$[]']("events")['$<<'](b):e.event_queues['$[]']("root")['$[]']("events")['$<<'](b):a},-1),c(i,'$post_event',function e(b){var f=e.$$p||a,c=this;return e.$$p=null,b==null&&(b="root"),d(c.event_queues['$[]'](b.$to_sym()))||c.$create_event_queue(new Map([["name",b.$to_sym()]])),c.$post_to_event_queue(b.$to_sym(),f),!0},-1),c(i,'$add_timer',function j(e){var m=j.$$p||a,f=this,c=a,h=a,l=a,i=a;return j.$$p=null,e==null&&(e=new Map),c=e['$[]']("when"),h=d(l=e['$[]']("do"))?l:m,d(c['$is_a?'](b('Numeric')))?c=g(b('Time').$now().$to_f(),c.$to_f()):d(c['$is_a?'](b('Time')))?c=c.$to_f():f.$raise(k('ArgumentError'),"you must specify a :when => millisecond (float) offset, or a Time for the timer"),d(h['$respond_to?']("call"))||f.$raise(k('ArgumentError'),"you must provide a :do => callable object (Proc) for the timer, or a block"),i=b('GxG').$uuid_generate().$to_sym(),f.timers['$<<'](new Map([["when",c],["what",h],["id",i]])),new Map([["timer",i]])},-1),c(i,'$add_periodic_timer',function l(c){var n=l.$$p||a,i=this,e=a,j=a,m=a,f=a,h=a;return l.$$p=null,c==null&&(c=new Map),e=c['$[]']("interval"),j=d(m=c['$[]']("do"))?m:n,f=b('Time').$now().$to_f(),d(e['$is_a?'](b('Numeric')))?f=g(f,e.$to_f()):i.$raise(k('ArgumentError'),"you must specify an :interval => Float (as you would with sleep) offset interval for the periodic timer"),d(j['$respond_to?']("call"))||i.$raise(k('ArgumentError'),"you must provide a :do => callable object (Proc) for the timer, or a block"),h=b('GxG').$uuid_generate().$to_sym(),i.timers['$<<'](new Map([["when",f],["what",j],["interval",e.$to_f()],["id",h]])),new Map([["timer",h]])},-1),c(i,'$cancel_timer',function(b){var g=this,c=a,e=a;return b==null&&(b=new Map),c=b['$[]']("timer"),e=!1,d(c)&&function(){try{var b=v('break');return f(g.timers,'each_index',[],function g(d){var f=g.$$s==null?this:g.$$s;if(f.timers==null&&(f.timers=a),d==null&&(d=a),h(f.timers['$[]'](d)['$[]']("id"),c))f.timers.$delete_at(d),e=!0,b.$throw(a,g.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),e},-1),c(i,'$cancel_all_timers',function(){for(var a=this;h(a.ticking,!0);)a.$sleep(.333);return a.timers=[],!0})}(i[0],null,i)}(i[0],i)}(i[0],i),function(c,e){var a=m(c,'GxG'),f=[a].concat(e);return d(a['$const_defined?']("LOG"))&&a.$remove_const("LOG"),n(f[0],'LOG',b(b(b('GxG'),'Events'),'LogRing').$new())}(i[0],i),b(b('GxG'),'LOG')['$[]=']("default",b('Logger').$new(b(b('Logger'),'WARN'))),function(h,i){var a=m(h,'GxG'),c=[a].concat(i),g=e.$r(c);return d(a['$const_defined?']("DISPATCHER"))&&a.$remove_const("DISPATCHER"),n(c[0],'DISPATCHER',b(b(b('GxG'),'Events'),'EventDispatcher').$new(.1)),g('DISPATCHER').$startup(),n(c[0],'LOG_TIMER',f(g('DISPATCHER'),'add_periodic_timer',[new Map([["interval",1]])],function(){return b(b('GxG'),'LOG').$process_messages()})),w(a,'$shutdown',function(){return g('DISPATCHER').$shutdown()})}(i[0],i),function(a,c){var d=m(a,'GxG'),e=[d].concat(c);return n(e[0],'CHANNELS',b(b(b('GxG'),'Messages'),'ChannelManager').$new())}(i[0],i),function(f,g){var e=j(f,g,'Object'),h=e.$$prototype;return h.uuid=a,c(e,'$send_message',function(c){var a=this;return d(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b('GxG'),'CHANNELS').$send_message(a.uuid,c),!0}),c(e,'$next_message',function(){var a=this;return d(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b('GxG'),'CHANNELS').$next_message(a.uuid)}),c(e,'$post',function(f){var c=this,e=a;return d(c.uuid)||(c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(c.uuid,c)),e=b(b('GxG'),'CHANNELS').$fetch_channel(c.uuid),d(e)&&e.$write(f),!0}),c(e,'$process_message',function(b,c){return b==null&&(b=a),c==null&&(c=new Map),a},-1)}(i[0],null)},Opal.modules["web/gxg_database"]=function(g){var x=g.module,s=g.NilClass,k=g.defs,c=g.truthy,e=g.send,f=g.eqeq,m=g.thrower,h=g.rb_gt,j=g.rb_plus,r=g.klass,d=g.def,l=g.range,t=g.rb_divide,p=g.rb_times,w=g.return_ivar,i=g.return_val,o=g.neqeq,y=g.alias,n=g.rb_minus,u=g.eqeqeq,v=g.slice,z=g.rb_lt,q=[],a=g.nil,b=g.$$$;return g.add_stubs('index,keys,element_tables,to_sym,[],each,==,is_any?,search,element_table_for_instance,raise,persistable?,is_a?,new,object_id,<<,>,size,shift,call,[]=,log_error,each_pair,+,detached_format_find,respond_to?,format_pull,BigDecimal,to_s,gxg_import,import,public,clone,valid_uuid?,increment_version,to_d,log_warn,inspect,/,to_f,to_i,*,log_warning,uuid=,title=,parent=,parse,decode64,version=,format=,each_index,constraint=,uuid_generate,last,alive?,write_reserved?,get_reservation,now,hash,version,iterative_detached_persist,class,include?,delete,uuid,title,format,constraint,iso8601,encode64,to_enum,each_with_index,!=,iterative,to_proc,reverse,split,get_at_path,process!,gsub!,unshift,join,=~,first,dirname,basename,set_property_version,property_version,unpersist,private,-,valid_field_classes,===,delete_at,save,key,<,refresh_ordinals,push,insert,load_element_links,with_index'),function(A,B){var C=x(A,'GxG'),q=[C].concat(B);return function(C,D){var A=x(C,'Database'),B=[A].concat(D),q=g.$r(B);return k(A,'$element_tables',function(){return new Map([["unspecified",a],["element_boolean",[b('TrueClass'),b('FalseClass'),s]],["element_integer",[b('Integer')]],["element_float",[b('Float')]],["element_bigdecimal",[b('BigDecimal')]],["element_datetime",[b('Time')]],["element_text",[b('String')]],["element_binary",[b(b('GxG'),'ByteArray')]],["element_array",[b('Array')]],["element_hash",[b('Hash')]]])}),k(A,'$valid_field_classes',function(){return[b('TrueClass'),b('FalseClass'),s,b('Integer'),b('Float'),b('BigDecimal'),b('Time'),b('String'),b(b('GxG'),'ByteArray')]}),k(A,'$element_table_index',function(d){var e=a;return d==null&&(d="unspecified"),c(e=b(b('GxG'),'Database').$element_tables().$keys().$index(d.$to_sym()))?e:0},-1),k(A,'$element_table_by_index',function(d){var e=a;return d==null&&(d=0),c(e=b(b('GxG'),'Database').$element_tables().$keys()['$[]'](d))?e:"unspecified"},-1),k(A,'$element_table_for_instance',function(d){var g=a,h=a;return d==null&&(d=a),g="unspecified",h=b(b('GxG'),'Database').$element_tables(),function(){try{var b=m('break');return e(h.$keys(),'each',[],function i(e){if(e==null&&(e=a),f(e,"unspecified"))return a;if(c(d['$is_any?'](h['$[]'](e))))g=e,b.$throw(a,i.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),g},-1),k(A,'$persistable?',function(g){var d=a;return d=!0,c(g['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))||(c(g['$is_any?'](b('Hash'),b('Array')))?function(){try{var h=m('break');return e(g,'search',[],function j(e,g,i){return e==null&&(e=a),g==null&&(g=a),i==null&&(i=a),c(d)&&f(b(b('GxG'),'Database').$element_table_for_instance(e),"unspecified")&&(d=!1,h.$throw(a,j.$$is_lambda)),a})}catch(a){if(a===h)return a.$v;throw a}finally{h.is_orphan=!0}}():f(b(b('GxG'),'Database').$element_table_for_instance(g),"unspecified")&&(d=!1)),d}),k(A,'$iterative_detached_persist',function(d){var n=this,o=a,l=a,i=a,p=a,t=a,v=a,u=a,k=a,j=a,s=a,r=a;d==null&&(d=a),o=a;try{for(c(d['$is_any?'](b('Array'),b('Hash')))||n.$raise(q('ArgumentError'),"You MUST provide either an Array or a Hash."),c(b(q('GxG'),'Database')['$persistable?'](d))||n.$raise(q('ArgumentError'),"The object you are attempting to persist contains a non-persistable item."),c(d['$is_a?'](b('Array')))&&(l=b(b(b('GxG'),'Database'),'DetachedArray').$new()),c(d['$is_a?'](b('Hash')))&&(l=b(b(b('GxG'),'Database'),'DetachedHash').$new()),i=[new Map([["parent",a],["parent_selector",a],["object",d],["partner",l]])],p=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(i,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),t=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,e(i,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("object").$object_id(),b.$object_id())?c=d:a}),c},-1),v=e(q('Proc'),'new',[],function(d){var g=a;return d==null&&(d=a),g=a,function(){try{var h=m('break');return e(i,'each',[],function i(e){if(e==null&&(e=a),c(e['$is_a?'](b('Hash'))))if(f(e['$[]']("object").$object_id(),d.$object_id()))g=e['$[]']("partner"),h.$throw(a,i.$$is_lambda);else return a;else return a})}catch(a){if(a===h)return a.$v;throw a}finally{h.is_orphan=!0}}(),g}),u=a,e(d,'search',[],function(d,e,f){return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),c(d['$is_a?'](b('Array')))?i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",b(b(b('GxG'),'Database'),'DetachedArray').$new()]])):c(d['$is_a?'](b('Hash')))?i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",b(b(b('GxG'),'Database'),'DetachedHash').$new()]])):i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",d]]))}),k=[i['$[]'](0)];c(h(k.$size(),0));)j=k.$shift(),c(j['$is_a?'](b('Hash')))&&c(j['$[]']("object")['$is_any?'](b('Array'),b('Hash')))&&(s=p.$call(j['$[]']("object")),e(s,'each',[],function(d){return d==null&&(d=a),j['$[]']("partner")['$[]='](d['$[]']("parent_selector"),d['$[]']("partner")),c(d['$[]']("partner")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'DetachedHash')))?k['$<<'](d):a}));o=l}catch(a){if(g.rescue(a,[q('Exception')])){r=a;try{n.$log_error(new Map([["error",r],["parameters",new Map([["object",d]])]]))}finally{g.pop_exception(a)}}else throw a}return o},-1),k(A,'$detached_format_find',function(g){var h=a,d=a;return g==null&&(g=new Map),h=a,d=new Map,e(["uuid","ufs","title","version"],'each',[],function(b){var f;return b==null&&(b=a),c(g['$[]'](b))?(f=[b,g['$[]'](b)],e(d,'[]=',f),f[f.length-1]):a}),function(){try{var c=m('break');return e(b(q('GxG'),'DB')['$[]']("formats"),'each_pair',[],function k(i,b){var g=a;if(i==null&&(i=a),b==null&&(b=a),g=0,e(d.$keys(),'each',[],function(c){return c==null&&(c=a),f(b['$[]'](c),d['$[]'](c))?g=j(g,1):a}),f(d.$keys().$size(),g))h=b,c.$throw(a,k.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h},-1),k(A,'$detached_format_load',function l(f){var i=l.$$p||a,j=a,k=a,d=a,g=a;return l.$$p=null,f==null&&(f=new Map),j=!1,k=[],d=[],c(f['$is_a?'](b('Hash')))?(g=b(b('GxG'),'Database').$detached_format_find(f),c(g)?(d['$<<'](g),c(i['$respond_to?']("call"))&&i.$call(d),j=!0):k['$<<'](f)):c(f['$is_a?'](b('Array')))&&e(f,'each',[],function(e){return e==null&&(e=a),g=b(b('GxG'),'Database').$detached_format_find(e),c(g)?d['$<<'](g):k['$<<'](e)}),c(h(k.$size(),0))?e(b(q('GxG'),'CONNECTION'),'format_pull',[k],function(f){return f==null&&(f=a),c(f['$is_a?'](b('Hash')))&&c(f['$[]']("result")['$is_a?'](b('Array')))?(e(f['$[]']("result"),'each',[],function(c){return c==null&&(c=a),b(q('GxG'),'DB')['$[]']("formats")['$[]='](c['$[]']("uuid").$to_sym(),c),d['$<<'](c)}),c(i['$respond_to?']("call"))&&i.$call(d),j=!0):a}):c(h(d.$size(),0))&&(c(i['$respond_to?']("call"))&&i.$call(d),j=!0),j},-1),k(A,'$process_detached_import',function(d){var g=this,f=a;return d==null&&(d=a),f=[],c(d['$is_a?'](b('Hash')))&&(c(h(d['$[]']("formats").$size(),0))&&e(d['$[]']("formats").$keys(),'each',[],function i(g){var h,j=i.$$s==null?this:i.$$s,f=a;return g==null&&(g=a),c(b(q('GxG'),'DB')['$[]']("formats")['$[]'](g))?a:(f=d['$[]']("formats")['$[]'](g),c(f['$[]']("version")['$is_a?'](b('String')))&&f['$[]=']("version",j.$BigDecimal(f['$[]']("version").$to_s())),f['$[]=']("content",b('Hash').$gxg_import(f['$[]']("content"))),(h=[g,f],e(b(q('GxG'),'DB')['$[]']("formats"),'[]=',h),h[h.length-1]))},{$$s:g}),c(h(d['$[]']("records").$size(),1))?e(d['$[]']("records"),'each',[],function(c){return c==null&&(c=a),f['$<<'](b(b(q('GxG'),'Database'),'DetachedHash').$import(c))}):f['$<<'](b(b(q('GxG'),'Database'),'DetachedHash').$import(d['$[]']("records")['$[]'](0)))),f},-1),k(A,'$process_import',function(d){var g=this,f=a;return d==null&&(d=a),f=[],c(d['$is_a?'](b('Hash')))&&(c(h(d['$[]']("formats").$size(),0))&&e(d['$[]']("formats").$keys(),'each',[],function i(g){var h,j=i.$$s==null?this:i.$$s,f=a;return g==null&&(g=a),c(b(q('GxG'),'DB')['$[]']("formats")['$[]'](g))?a:(f=d['$[]']("formats")['$[]'](g),c(f['$[]']("version")['$is_a?'](b('String')))&&f['$[]=']("version",j.$BigDecimal(f['$[]']("version").$to_s())),f['$[]=']("content",b('Hash').$gxg_import(f['$[]']("content"))),(h=[g,f],e(b(q('GxG'),'DB')['$[]']("formats"),'[]=',h),h[h.length-1]))},{$$s:g}),c(h(d['$[]']("records").$size(),1))?e(d['$[]']("records"),'each',[],function(c){return c==null&&(c=a),f['$<<'](b(b(q('GxG'),'Database'),'PersistedHash').$import(c))}):f['$<<'](b(b(q('GxG'),'Database'),'PersistedHash').$import(d['$[]']("records")['$[]'](0)))),f},-1),function(A,v,x){var n=r(A,v,'DetachedHash'),z=[n].concat(x),q=g.$r(z),u=n.$$prototype;return u.uuid=u.title=u.version=u.property_links=u.format=u.parent=a,n.$public(),d(n,'$uuid',function(){var a=this;return a.uuid.$clone()}),d(n,'$uuid=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.uuid=b.$to_s().$to_sym():a},-1),d(n,'$title',function(){var a=this;return a.title.$clone()}),d(n,'$title=',function(b){var d=this;return b==null&&(b=a),c(b)?(d.title=b.$to_s()['$[]'](l(0,255,!1)),d.$increment_version()):a},-1),d(n,'$version',function(){var a=this;return a.version.$clone()}),d(n,'$version=',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b('Numeric')))?e.version=d.$to_s("F").$to_d():a},-1),d(n,'$element_version',function(d){var f=this,e=a;return d==null&&(d=a),e=0,c(d['$is_a?'](b('Symbol')))&&(c(h(d.$to_s().$size(),256))&&(f.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),c(f.property_links['$[]'](d.$to_s().$to_sym()))?e=f.property_links['$[]'](d.$to_s().$to_sym())['$[]']("record")['$[]']("version"):e=0),e},-1),d(n,'$set_element_version',function(f,e){var d=this,g=a;return e==null&&(e=a),g=!1,c(d.property_links['$[]'](f))?c(e['$is_a?'](b('Numeric')))?(d.property_links['$[]'](f)['$[]']("record")['$[]=']("version",t(p(e.$to_f(),1e4).$to_i().$to_f(),1e4)),g=!0):d.$log_warning("Attempted to set version to an invalid version value "+e.$inspect()+" for "+f.$inspect()+" on Object "+d.uuid.$inspect()):d.$log_warning("Attempted to set version with an invalid key "+f.$inspect()+" on Object "+d.uuid.$inspect()),g},-2),d(n,'$format',function(){var a=this;return a.format.$clone()}),d(n,'$format=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.format=b.$to_s().$to_sym():a},-1),d(n,'$parent',w("parent")),d(n,'$parent=',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?']([b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')]))?c(e.parent)?a:e.parent=d:a},-1),d(n,'$write_reserved?',i(!0)),d(n,'$release_reservation',i(!0)),d(n,'$get_reservation',i(!0)),d(n,'$wait_for_reservation',function(b){return b==null&&(b=a),!0},-1),k(n,'$import',function(i){var g=this,j=a,f=a,d=a;for(i==null&&(i=a),j=a,c(i['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))||g.$raise(q('Exception'),"Malformed import record passed."),f=[new Map([["target",b(b(b('GxG'),'Database'),'DetachedHash').$new()],["record",i]])],j=f['$[]'](0)['$[]']("target");c(h(f.$size(),0));)switch(d=f.$shift(),d['$[]']("record")['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":d['$[]']("target")['$uuid='](d['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),d['$[]']("target")['$title='](d['$[]']("record")['$[]']("title").$to_s()),e(d['$[]']("record")['$[]']("content").$keys(),'each',[],function i(g){var c,j=i.$$s==null?this:i.$$s,h=a;switch(g==null&&(g=a),d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return h=b(b(q('GxG'),'Database'),'DetachedHash').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_array":return h=b(b(q('GxG'),'Database'),'DetachedArray').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[g,d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content")],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[g,j.$BigDecimal(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[g,b('Chronic').$parse(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[g,b(b('GxG'),'ByteArray').$new(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s().$decode64())],e(d['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:g}),d['$[]']("target")['$version='](g.$BigDecimal(d['$[]']("record")['$[]']("version").$to_s())),d['$[]']("target")['$format='](d['$[]']("record")['$[]']("format").$to_s().$to_sym());break;case"element_array":d['$[]']("target")['$uuid='](d['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),d['$[]']("target")['$title='](d['$[]']("record")['$[]']("title").$to_s()),e(d['$[]']("record")['$[]']("content"),'each_index',[],function i(g){var c,j=i.$$s==null?this:i.$$s,h=a;switch(g==null&&(g=a),d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return h=b(b(q('GxG'),'Database'),'DetachedHash').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_array":return h=b(b(q('GxG'),'Database'),'DetachedArray').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[g,d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content")],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[g,j.$BigDecimal(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[g,b('Chronic').$parse(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[g,b(b('GxG'),'ByteArray').$new(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s().$decode64())],e(d['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:g}),d['$[]']("target")['$version='](g.$BigDecimal(d['$[]']("record")['$[]']("version").$to_s())),d['$[]']("target")['$constraint='](d['$[]']("record")['$[]']("constraint").$to_s().$to_sym());break;default:a}return j},-1),k(n,'$create_from_format',function(b){return b==null&&(b=a),a},-1),d(n,'$ufs',function(){var e=this,d=a;return c(e.format)?(d=b(q('GxG'),'DB')['$[]']("formats")['$[]'](e.format.$to_s().$to_sym()),c(d))?d['$[]']("ufs").$to_s().$to_sym():"":""}),d(n,'$increment_version',function(){var a=this;return a.version=j(a.version,1e-4)}),d(n,'$initialize',function(){var c=this;return c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c.title="Untitled "+c.uuid.$to_s(),c.version=c.$BigDecimal("0.0"),c.format=a,c.parent=a,c.property_links=new Map,c}),d(n,'$inspect',function(){var c=this,d=a,b=a;return d=c.property_links.$keys().$last(),b="{",e(c.property_links.$keys(),'each',[],function g(c){var e=g.$$s==null?this:g.$$s;return e.property_links==null&&(e.property_links=a),c==null&&(c=a),b=j(b,j(":"+c.$to_s()+" => ",e.property_links['$[]'](c)['$[]']("content").$inspect())),f(d,c)?a:b=j(b,", ")},{$$s:c}),j(b,"}")}),d(n,'$alive?',i(!0)),d(n,'$save',function(){var d=this,b=a,e=a;if(b=!1,c(d['$alive?']()))try{b=!0}catch(a){if(g.rescue(a,[q('Exception')])){e=a;try{d.$log_error(new Map([["error",e]]))}finally{g.pop_exception(a)}}else throw a}return b}),d(n,'$destroy',function(){var d=this,b=a,e=a;if(b=!1,c(d['$alive?']()))try{b=!0}catch(a){if(g.rescue(a,[q('Exception')])){e=a;try{d.$log_error(new Map([["error",e]]))}finally{g.pop_exception(a)}}else throw a}return b}),d(n,'$size',function(){var a=this;return a.property_links.$size()}),d(n,'$keys',function(){var a=this;return a.property_links.$keys()}),d(n,'$[]=',function(k,g){var e=this,n=a,i=a,m=a,d=a;if(k==null&&(k=a),g==null&&(g=a),c(e['$alive?']())||e.$raise(q('Exception'),"Attempted to alter a defunct structure"),n=a,c(k['$is_a?'](b('Symbol'))))if(c(h(k.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+k.$inspect()+" to "+k.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),k=k.$to_s()['$[]'](l(0,255,!1)).$to_sym()),i=k.$to_s().$to_sym(),c(g['$is_any?'](s,b('TrueClass'),b('FalseClass'),b('Integer'),b('Float'),b('BigDecimal'),b('String'),b('Time'),b(b('GxG'),'ByteArray'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array'))))if(c(e['$write_reserved?']())||e.$get_reservation(),c(e['$write_reserved?']())){if(c(e.property_links['$[]'](k.$to_s().$to_sym()))?m="set_value":c(e.format)?e.$raise(q('Exception'),"Formatted - the structure cannot be altered"):m="add_value",d=new Map([["linkid",a],["content",a],["loaded",!0],["state",0],["record",new Map([["parent_uuid",e.uuid.$to_s()],["property",k.$to_s()],["ordinal",0],["version",e.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",e.$BigDecimal("0.0")],["element_datetime",b('Time').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",a],["element_array",a],["element_hash",a]])]]),c(g['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'))))d['$[]=']("content",g),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(g['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",g)):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",g));else if(c(g['$is_any?'](b('Hash'),b('Array'))))d['$[]=']("content",b(b('GxG'),'Database').$iterative_detached_persist(g)),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(g['$is_a?'](b('Hash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",d['$[]']("content"))):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",d['$[]']("content")));else switch(d['$[]']("record")['$[]=']("element",b(b('GxG'),'Database').$element_table_for_instance(g).$to_s()),d['$[]']("record")['$[]']("element").valueOf()){case"element_boolean":f(g.$class(),s)&&(d['$[]']("record")['$[]=']("element_boolean",-1),d['$[]=']("content",a)),f(g.$class(),b('FalseClass'))&&(d['$[]']("record")['$[]=']("element_boolean",0),d['$[]=']("content",!1)),f(g.$class(),b('TrueClass'))&&(d['$[]']("record")['$[]=']("element_boolean",1),d['$[]=']("content",!0));break;case"element_integer":d['$[]']("record")['$[]=']("element_integer",g),d['$[]=']("content",g);break;case"element_float":d['$[]']("record")['$[]=']("element_float",g),d['$[]=']("content",g);break;case"element_bigdecimal":d['$[]']("record")['$[]=']("element_bigdecimal",e.$BigDecimal(g.$to_s())),d['$[]=']("content",d['$[]']("record")['$[]']("element_bigdecimal"));break;case"element_datetime":d['$[]']("record")['$[]=']("element_datetime",g),d['$[]=']("content",g);break;case"element_text":d['$[]']("record")['$[]=']("element_text",g),d['$[]']("record")['$[]=']("length",g.$size()),d['$[]=']("content",g);break;case"element_binary":f(m,"set_value")&&(d['$[]']("record")['$[]=']("version",e.property_links['$[]'](i)['$[]']("record")['$[]']("version")),d['$[]']("record")['$[]=']("element_binary",e.property_links['$[]'](i)['$[]']("record")['$[]']("element_binary"))),d['$[]']("record")['$[]=']("length",g.$size()),d['$[]=']("content",g);break;default:e.$raise(q('Exception'),"Unable to map an element type for value: "+g.$inspect())}switch(m.valueOf()){case"set_value":c(d['$[]']("content")['$is_a?'](e.property_links['$[]'](i)['$[]']("content").$class()))||c([!0,!1,a]['$include?'](d['$[]']("content")))&&c([!0,!1,a]['$include?'](e.property_links['$[]'](i)['$[]']("content")))?(d['$[]=']("linkid",e.property_links['$[]'](i)['$[]']("linkid")),c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",j(e.property_links['$[]'](i)['$[]']("record")['$[]']("version"),1e-4)),d['$[]']("record")['$[]=']("ordinal",e.property_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),d['$[]=']("state",e.property_links['$[]'](i)['$[]']("state")),e.property_links['$[]='](i,d)):(c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(e.property_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",e.property_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),e.property_links['$[]='](i,d)),n=e.property_links['$[]'](i)['$[]']("content");break;case"add_value":c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",e.$BigDecimal("0.0")),d['$[]']("record")['$[]=']("ordinal",e.property_links.$keys().$size()),d['$[]=']("loaded",!0),e.property_links['$[]='](i,d);break;default:a}c(e.property_links['$[]'](i)['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e.property_links['$[]'](i)['$[]']("content")['$parent='](e),e.$increment_version(),n=e.property_links['$[]'](i)['$[]']("content")}else e.$raise(q('Exception'),"You do not have sufficient privileges to make this change. (write-reservation)");else e.$raise(q('Exception'),"The value is not persistable.");else e.$raise(q('Exception'),"You must provide a property key in the form of a Symbol.");return n},-1),d(n,'$[]',function(d){var e=this,f=a,g=a;return d==null&&(d=a),f=a,c(e['$alive?']())?c(d['$is_a?'](b('Symbol')))?(c(h(d.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),g=d.$to_s().$to_sym(),c(e.property_links['$[]'](g))&&(f=e.property_links['$[]'](g)['$[]']("content"))):e.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$class().$inspect()):e.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(n,'$include?',function(a){var b=this;return b.property_links.$keys()['$include?'](a)}),d(n,'$delete',function(d){var e=this,f=a;return d==null&&(d=a),f=a,c(d['$is_a?'](b('Symbol')))?(c(h(d.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),c(e.format)?e.$raise(q('Exception'),"Formatted - the structure cannot be altered"):c(e.property_links['$[]'](d))&&(f=e.property_links['$[]'](d)['$[]']("content"),e.property_links.$delete(d))):e.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$class().$inspect()),f},-1),d(n,'$unpersist',function(){var j=this,k=a,d=a,l=a,g=a,i=a;if(k=new Map,c(j['$alive?']()))for(d=[new Map([["parent",a],["parent_selector",a],["object",j],["record",k]])],l=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(d,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(j,'search',[],function(e,f,g){return e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",new Map]])):c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",[]]])):d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",e]]))}),g=[d['$[]'](0)];c(h(g.$size(),0));)i=g.$shift(),e(l.$call(i['$[]']("object")),'each',[],function(d){return d==null&&(d=a),i['$[]']("record")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?g['$<<'](d):a});return k}),d(n,'$export',function(i){var d=this,m=a,j=a,k=a,g=a,o=a,l=a,n=a;for(i==null&&(i=new Map([["exclude_file_segments",!1]])),m=c(j=i['$[]']("exclude_file_segments"))&&j,f(i['$[]']("clone"),!0)?k=new Map([["type","element_hash"],["uuid",q('GxG').$uuid_generate().$to_s().$to_sym()],["title",d.title.$clone()],["version",d.version.$to_s("F")],["content",new Map]]):k=new Map([["type","element_hash"],["uuid",d.uuid.$clone()],["title",d.title.$clone()],["version",d.version.$to_s("F")],["format",d.format.$clone()],["content",new Map]]),g=[new Map([["parent",a],["parent_selector",a],["object",d],["record",k]])],o=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(g,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(d,'search',[],function o(d,e,h){var p=o.$$s==null?this:o.$$s,k=a,n=a,l=a;if(d==null&&(d=a),e==null&&(e=a),h==null&&(h=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(f(i['$[]']("clone"),!0)?k=q('GxG').$uuid_generate().$to_s().$to_sym():k=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["format",d.$format().$clone()],["content",new Map]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_hash"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["format",d.$format().$clone()],["content",new Map]])]]))),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(f(i['$[]']("clone"),!0)?k=q('GxG').$uuid_generate().$to_s().$to_sym():k=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["constraint",d.$constraint().$clone()],["content",[]]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_array"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["constraint",d.$constraint().$clone()],["content",[]]])]]))),c(d['$is_any?'](s,b('TrueClass'),b('FalseClass'),b('Integer'),b('Float'),b('BigDecimal'),b('String'),b('Time'),b(b('GxG'),'ByteArray')))){switch(n=b(q('GxG'),'Database').$element_table_for_instance(d),n.valueOf()){case"element_bigdecimal":l=d.$to_s();break;case"element_datetime":l=d.$iso8601().$to_s();break;case"element_binary":l=d.$to_s().$encode64();break;case"element_text":l=d.$to_s();break;default:l=d}return g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type",n],["version",(c(j=h.$version(e))?j:p.$BigDecimal("0.0")).$to_s("F")],["content",l]])]]))}return a},{$$s:d}),l=[g['$[]'](0)];c(h(l.$size(),0));)n=l.$shift(),e(o.$call(n['$[]']("object")),'each',[],function(d){return d==null&&(d=a),n['$[]']("record")['$[]']("content")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?l['$<<'](d):a});return k},-1),d(n,'$each_pair',function d(){var f=d.$$p||a,g=this,b=a;return d.$$p=null,b=new Map,e(g.property_links.$keys(),'each',[],function f(c){var d,g=f.$$s==null?this:f.$$s;return c==null&&(c=a),(d=[c,g['$[]'](c)],e(b,'[]=',d),d[d.length-1])},{$$s:g}),c(f['$respond_to?']("call"))?e(b.$to_enum("each_pair"),'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.$call(b,c)}):b.$to_enum("each_pair")}),d(n,'$iterative',function r(j){var t=r.$$p||a,k=this,m=a,s=a,n=a,p=a,i=a,d=a,l=a,u=a,v=a;r.$$p=null,j==null&&(j=new Map([["include_inactive",!0]])),m=[],s=e(q('Proc'),'new',[],function(i,g){var f=a,d=a;if(i==null&&(i=a),g==null&&(g=[]),f=[],c(i))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",i]]));c(h(f.$size(),0));)d=f.$shift(),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",b],["object",c]]))}):c(j['$[]']("include_inactive"))&&g['$<<'](d)),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",c],["object",b]]))}):c(j['$[]']("include_inactive"))&&g['$<<'](d));return g},-1),n=e(q('Proc'),'new',[],function(b,c){var d=a;return b==null&&(b=[]),c==null&&(c=a),d=[],e(b,'each',[],function(b){return b==null&&(b=a),f(b['$[]']("parent").$object_id(),c.$object_id())?d['$<<'](b):a}),d},-1);try{if(p=s.$call(k,[]),i=n.$call(p,k),c(t['$respond_to?']("call")))while(c(h(i.$size(),0)))d=i.$shift(),f(d['$[]']("object").$object_id(),k.$object_id())||(l=t.$call(d['$[]']("object"),d['$[]']("parent_selector"),d['$[]']("parent")),c(l)&&m['$<<'](l)),o(d['$[]']("object").$object_id(),a.$object_id())&&(u=n.$call(p,d['$[]']("object")),e(u,'each',[],function(b){return b==null&&(b=a),i['$<<'](b)}))}catch(a){if(g.rescue(a,[q('Exception')])){v=a;try{k.$log_error(new Map([["error",v],["parameters",new Map]]))}finally{g.pop_exception(a)}}else throw a}return m},-1),y(n,"process","iterative"),d(n,'$process!',function c(b){var f=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),e(d,'iterative',[b],f.$to_proc()),d},-1),d(n,'$search',function f(b){var g=f.$$p||a,h=this,d=a;return f.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),d=[],c(g['$respond_to?']("call"))&&(d=e(h,'iterative',[b],g.$to_proc())),d},-1),d(n,'$paths_to',function(n,g){var t=this,j=a,d=a,i=a,r=a,s=a,p=a,k=a;return n==null&&(n=a),g==null&&(g=""),j=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](l(1,-1,!1)).$reverse():d=[],i=t.$get_at_path(g),r=[new Map([["selector",a],["container",i]])],s=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(r,'each_with_index',[],function h(e,g){if(e==null&&(e=a),g==null&&(g=a),f(e['$[]']("container"),b))c=e,d.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c}),p=i,k=!1,c(i['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?e(i,'process!',[],function(e,h,g){var i=a,l=a;return e==null&&(e=a),h==null&&(h=a),g==null&&(g=a),o(p.$object_id(),g.$object_id())&&(i=s.$call(g),c(i)&&(d=i['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),p=g),l=h.$to_s(),l['$gsub!']("/","%2f"),d.$unshift(l),k=!1,f(e,n)&&(k=!0),c(k)&&j['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&r.$unshift(new Map([["selector",h],["container",e],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):j['$<<']("/"['$<<'](d.$join("/"))),j},-1),d(n,'$get_at_path',function(d){var i=this,b=a,g=a,j=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],j=d.$split("/"),function(){try{var d=m('break');return e(j.$to_enum(),'each',[],function j(i){var e=a;if(i==null&&(i=a),e=a,c(h(i.$size(),0))&&(f(i['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?e=i.$to_i():(e=i.$to_s(),e['$gsub!']("%2f","/"),e=e.$to_sym())),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,j.$$is_lambda);else return g.$unshift(b);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),b},-1),d(n,'$set_at_path',function(g,j){var l=this,k=a,i=a,e=a,d=a;return g==null&&(g="/"),j==null&&(j=a),k=a,o(g,"/")&&(i=l.$get_at_path(b('File').$dirname(g)),c(i)&&(e=b('File').$basename(g),d=a,c(h(e.$size(),0))&&(f(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e.$to_s(),d['$gsub!']("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),d(n,'$merge!',function(d,g){var h=this,f=a;return d==null&&(d=a),g==null&&(g=new Map),f=h,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))&&(c(h.format)?e(d.$keys(),'each',[],function(e){return e==null&&(e=a),c(f.$keys()['$include?'](e))&&(f['$[]='](e,d['$[]'](e)),c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash'))))?f.$set_property_version(e,d.$property_version(e)):a}):e(d.$keys(),'each',[],function(e){return e==null&&(e=a),f['$[]='](e,d['$[]'](e)),c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))?f.$set_property_version(e,d.$property_version(e)):a})),f},-1),d(n,'$merge',function(d,h){var g=this,f=a;return d==null&&(d=a),h==null&&(h=new Map),f=g,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))&&(f=b(b(b('GxG'),'Database'),'DetachedHash').$iterative_detached_persist(g.$unpersist()),c(g.format)?(e(d.$keys(),'each',[],function(e){return e==null&&(e=a),c(f.$keys()['$include?'](e))&&(f['$[]='](e,d['$[]'](e)),c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash'))))?f.$set_property_version(e,d.$property_version(e)):a}),f['$format='](g.format)):e(d.$keys(),'each',[],function(e){return e==null&&(e=a),f['$[]='](e,d['$[]'](e)),c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))?f.$set_property_version(e,d.$property_version(e)):a})),f},-1)}(B[0],null,B),function(D,A,B){var k=r(D,A,'DetachedArray'),C=[k].concat(B),q=g.$r(C),x=k.$$prototype;return x.element_links=x.uuid=x.title=x.version=x.constraint=x.parent=x.format=a,k.$private(),d(k,'$element_destroy',function(b){return b==null&&(b=a),a},-1),d(k,'$element_write',function(b){return b==null&&(b=a),a},-1),d(k,'$load_element_links',i(a)),d(k,'$refresh_ordinals',function(){var b=this,c=a;return c=[],e(b.element_links,'each_with_index',[],function e(f,b){var d=e.$$s==null?this:e.$$s;return d.element_links==null&&(d.element_links=a),f==null&&(f=a),b==null&&(b=a),d.element_links['$[]'](b)['$[]']("record")['$[]=']("ordinal",b),c['$<<'](d.element_links['$[]'](b))},{$$s:b}),b.element_links=c}),k.$public(),d(k,'$uuid',function(){var a=this;return a.uuid.$clone()}),d(k,'$uuid=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.uuid=b.$to_s().$to_sym():a},-1),d(k,'$title',function(){var a=this;return a.title.$clone()}),d(k,'$title=',function(b){var d=this;return b==null&&(b=a),c(b)?(d.title=b.$to_s()['$[]'](l(0,255,!1)),d.$increment_version()):a},-1),d(k,'$version',function(){var a=this;return a.version.$clone()}),d(k,'$version=',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b('Numeric')))?e.version=d.$to_s("F").$to_d():a},-1),d(k,'$element_version',function(d){var f=this,e=a;return d==null&&(d=a),e=0,c(d['$is_a?'](b('Numeric')))&&(c(f.element_links['$[]'](d))?e=f.element_links['$[]'](d)['$[]']("record")['$[]']("version"):e=0),e},-1),d(k,'$set_element_version',function(f,e){var d=this,g=a;return e==null&&(e=a),g=!1,c(d.element_links['$[]'](f))?c(e['$is_a?'](b('Numeric')))?(d.element_links['$[]'](f)['$[]']("record")['$[]=']("version",t(p(e.$to_f(),1e4).$to_i().$to_f(),1e4)),g=!0):d.$log_warning("Attempted to set version to an invalid version value "+e.$inspect()+" for index "+f.$inspect()+" on Object "+d.uuid.$inspect()):d.$log_warning("Attempted to set version with an invalid index "+f.$inspect()+" on Object "+d.uuid.$inspect()),g},-2),d(k,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(k,'$constraint=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.constraint=b.$to_s().$to_sym():a},-1),d(k,'$parent',w("parent")),d(k,'$parent=',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?']([b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')]))?c(e.parent)?a:e.parent=d:a},-1),d(k,'$get_permissions',i(a)),d(k,'$set_permissions',function(b,c){return b==null&&(b=a),c==null&&(c=a),a},-1),d(k,'$reservation',i(a)),d(k,'$write_permission?',i(!0)),d(k,'$write_reserved?',i(!0)),d(k,'$release_reservation',i(!0)),d(k,'$get_reservation',i(!0)),d(k,'$wait_for_reservation',function(b){return b==null&&(b=a),!0},-1),d(k,'$get_delegate',i(a)),d(k,'$set_delegate',function(b){return b==null&&(b=a),a},-1),d(k,'$increment_version',function(){var b=this;return c(b['$alive?']())&&c(b['$write_reserved?']())?b.version=t(p(j(b.version,1e-4),1e4).$to_i().$to_f(),1e4):a}),d(k,'$save_version',i(a)),d(k,'$clear_constraint',function(){var b=this;return c(b['$alive?']())&&c(b.constraint)&&(b.constraint=a),!0}),d(k,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(k,'$ufs',function(){var e=this,d=a;return c(e.format)?(d=b(q('GxG'),'DB')['$[]']("formats")['$[]'](e.format.$to_s().$to_sym()),c(d))?d['$[]']("ufs").$to_s().$to_sym():"":""}),d(k,'$refresh_links',i(a)),d(k,'$initialize',function(){var c=this;return c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c.title="Untitled "+c.uuid.$to_s(),c.version=0,c.constraint=a,c.parent=a,c.data=[],c.element_links=[],c}),d(k,'$inspect',function(){var c=this,b=a;return b="[",e(c.element_links,'each_index',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.element_links==null&&(d.element_links=a),c==null&&(c=a),b=j(b,d.element_links['$[]'](c)['$[]']("content").$inspect()),f(c,n(d.element_links.$size(),1))?a:b=j(b,", ")},{$$s:c}),j(b,"]")}),d(k,'$alive?',i(!0)),d(k,'$db_address',i(a)),d(k,'$deactivate',i(a)),d(k,'$save',i(a)),d(k,'$destroy',i(a)),d(k,'$size',function(){var a=this;return a.element_links.$size()}),d(k,'$structure_attached?',i(!1)),d(k,'$structure_detach',i(!0)),d(k,'$[]=',function(i,h){var g=this,l=a,k=a,d=a,m=a;if(i==null&&(i=a),h==null&&(h=a),c(g['$alive?']())||g.$raise(q('Exception'),"Attempted to alter a defunct structure"),l=a,c(i['$is_a?'](b('Integer'))))if(c(h['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))||c(h['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array'))))if(c(g['$write_reserved?']())||g.$get_reservation(),c(g['$write_reserved?']())){if(c(h['$is_any?'](b('Hash'),b('Array')))&&e(h,'search',[],function e(d,f,g){var h=e.$$s==null?this:e.$$s;return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))||c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array')))?a:h.$raise(q('Exception'),"The structure you are attaching has an unpersistable item within it (not supported).")},{$$s:g}),c(g.element_links['$[]'](i))?k="set_value":c(g.constraint)?g.$raise(q('Exception'),"Formatted - the structure cannot be altered"):k="add_value",d=new Map([["linkid",a],["content",a],["loaded",!1],["state",0],["record",new Map([["parent_uuid",g.uuid.$to_s()],["ordinal",0],["version",0],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",g.$BigDecimal("0.0")],["element_datetime",b('Time').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",a],["element_array",a],["element_hash",a]])]]),c(h['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'))))d['$[]=']("content",h),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(h['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",h)):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",h));else if(c(h['$is_any?'](b('Hash'),b('Array'))))d['$[]=']("content",b(b('GxG'),'Database').$iterative_detached_persist(h)),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(h['$is_a?'](b('Hash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",d['$[]']("content"))):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",d['$[]']("content")));else switch(d['$[]']("record")['$[]=']("element",b(b('GxG'),'Database').$element_table_for_instance(h).$to_s()),d['$[]']("record")['$[]']("element").valueOf()){case"element_boolean":u(s,m=h.$class())?(d['$[]']("record")['$[]=']("element_boolean",-1),d['$[]=']("content",a)):u(b('FalseClass'),m)?(d['$[]']("record")['$[]=']("element_boolean",0),d['$[]=']("content",!1)):u(b('TrueClass'),m)?(d['$[]']("record")['$[]=']("element_boolean",1),d['$[]=']("content",!0)):a;break;case"element_integer":d['$[]']("record")['$[]=']("element_integer",h),d['$[]=']("content",h);break;case"element_float":d['$[]']("record")['$[]=']("element_float",h),d['$[]=']("content",h);break;case"element_bigdecimal":d['$[]']("record")['$[]=']("element_bigdecimal",g.$BigDecimal(h.$to_s())),d['$[]=']("content",d['$[]']("record")['$[]']("element_bigdecimal"));break;case"element_datetime":d['$[]']("record")['$[]=']("element_datetime",h),d['$[]=']("content",h);break;case"element_text":d['$[]']("record")['$[]=']("element_text",h),d['$[]']("record")['$[]=']("length",h.$size()),d['$[]=']("content",h);break;case"element_binary":f(k,"set_value")&&(d['$[]']("record")['$[]=']("version",g.element_links['$[]'](i)['$[]']("record")['$[]']("version")),d['$[]']("record")['$[]=']("element_binary_uuid",g.element_links['$[]'](i)['$[]']("record")['$[]']("element_binary_uuid"))),d['$[]']("record")['$[]=']("length",h.$size()),d['$[]=']("content",h);break;default:g.$raise(q('Exception'),"Unable to map an element type for value: "+h.$inspect())}switch(k.valueOf()){case"set_value":c(d['$[]']("content")['$is_a?'](g.element_links['$[]'](i)['$[]']("content").$class()))||c([!0,!1,a]['$include?'](d['$[]']("content")))&&c([!0,!1,a]['$include?'](g.element_links['$[]'](i)['$[]']("content")))?(d['$[]=']("linkid",g.element_links['$[]'](i)['$[]']("linkid")),c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(g.element_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",g.element_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),d['$[]=']("state",g.element_links['$[]'](i)['$[]']("state")),c(d['$[]']("content")['$is_a?'](b('String')))&&g.element_links['$[]='](i,d)):(c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(g.element_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",g.element_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),g.element_links['$[]='](i,d));break;case"add_value":c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",0),d['$[]']("record")['$[]=']("ordinal",g.element_links.$size()),d['$[]=']("loaded",!0),g.element_links['$[]='](i,d);break;default:a}c(g.element_links['$[]'](i)['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&g.element_links['$[]'](i)['$[]']("content")['$parent='](g),g.$increment_version(),l=g.element_links['$[]'](i)['$[]']("content")}else g.$raise(q('Exception'),"You do not have sufficient privileges to make this change. (write-reservation)");else g.$raise(q('Exception'),"The value is not persistable.");else g.$raise(q('Exception'),"You must provide a index in the form of an Integer.");return l},-1),d(k,'$[]',function(d){var e=this,f=a;return d==null&&(d=a),f=a,c(e['$alive?']())?c(d['$is_a?'](b('Integer')))?c(e.element_links['$[]'](d))&&(f=e.element_links['$[]'](d)['$[]']("content")):e.$raise(q('ArgumentError'),"You must specify with an Integer, not a "+d.$class().$inspect()):e.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(k,'$delete_at',function(e){var d=this,f=a,g=a;return e==null&&(e=a),f=a,c(d['$alive?']())?c(e['$is_a?'](b('Integer')))?c(d['$write_reserved?']())?c(d.element_links['$[]'](e))&&(f=d['$[]'](e),g=d.element_links.$delete_at(e),c(g['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&g['$[]']("content").$save(),d.$increment_version()):d.$raise(q('Exception'),"You do not have sufficient privileges to make this change"):d.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$key().$class().$inspect()):d.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(k,'$<<',function(i){var d,b,f=this;return d=v(arguments),b=d,c(h(b.$size(),0))&&e(b,'each',[],function f(d){var b,c=f.$$s==null?this:f.$$s;return c.element_links==null&&(c.element_links=a),d==null&&(d=a),(b=[c.element_links.$size(),d],e(c,'[]=',b),b[b.length-1])},{$$s:f}),f},-1),d(k,'$push',function(i){var d,b,f=this;return d=v(arguments),b=d,c(h(b.$size(),0))&&e(b,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$<<'](b)},{$$s:f}),f},-1),d(k,'$pop',function(){var a=this;return a.$delete_at(n(a.element_links.$size(),1))}),d(k,'$shift',function(){var a=this;return a.$delete_at(0)}),d(k,'$insert',function(d,g){var e=this,i=a;return d==null&&(d=a),g==null&&(g=a),c(b(b('GxG'),'Database')['$persistable?'](g))&&(i=new Map([["linkid",a],["content",a],["loaded",!1],["state",0],["record",new Map([["parent_uuid",e.uuid.$to_s()],["ordinal",0],["version",e.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",e.$BigDecimal("0.0")],["element_datetime",b('DateTime').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_text_uuid",""],["element_binary_uuid",""],["element_array_uuid",""],["element_hash_uuid",""]])]]),d=d.$to_i(),c(z(d,0))&&(d=n(e.$size(),d)),f(d,0)?(i['$[]']("record")['$[]=']("ordinal",d),e.element_links.$unshift(i),e.$refresh_ordinals(),e['$[]='](0,g)):c(h(d,n(e.$size(),1)))?e.$push(g):(i['$[]']("record")['$[]=']("ordinal",d),e.element_links.$insert(d,i),e.$refresh_ordinals(),e['$[]='](d,g))),e},-1),d(k,'$unshift',function(b){var c=this;return b==null&&(b=a),c.$insert(0,b)},-1),d(k,'$swap',function(b,d){var e=this,f=a,h=a;return b==null&&(b=a),d==null&&(d=a),f=!1,c(b)&&c(d)&&c(g.Range.$new(0,n(e.$size(),1),!1)['$include?'](b.$to_i()))&&c(g.Range.$new(0,n(e.$size(),1),!1)['$include?'](d.$to_i()))&&o(b.$to_i(),d.$to_i())&&(h=e.element_links['$[]'](b),e.element_links['$[]='](b,e.element_links['$[]'](d)),e.element_links['$[]='](d,h),f=!0),f},-1),d(k,'$include?',function(c){var d=this,b=a;return b=!1,function(){try{var g=m('break');return e(d.element_links,'each',[],function e(d){if(d==null&&(d=a),f(d['$[]']("content"),c))b=!0,g.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}(),b}),d(k,'$find_index',function(c){var d=this,b=a;return b=a,function(){try{var g=m('break');return e(d.element_links,'each_with_index',[],function h(d,e){if(d==null&&(d=a),e==null&&(e=a),f(d['$[]']("content"),c))b=e,g.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}(),b}),d(k,'$export',function(i){var d=this,m=a,k=a,j=a,g=a,o=a,l=a,n=a;if(i==null&&(i=new Map([["exclude_file_segments",!1]])),c(d['$alive?']()))for(m=c(k=i['$[]']("exclude_file_segments"))&&k,f(i['$[]']("clone"),!0)?j=new Map([["type","element_array"],["uuid",q('GxG').$uuid_generate().$to_s().$to_sym()],["title",d.title.$clone()],["version",d.version.$clone()],["content",[]]]):j=new Map([["type","element_array"],["uuid",d.uuid.$clone()],["title",d.title.$clone()],["version",d.version.$clone()],["constraint",d.constraint.$clone()],["content",[]]]),g=[new Map([["parent",a],["parent_selector",a],["object",d],["record",j]])],o=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(g,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(d,'search',[],function(d,e,h){var j=a,n=a,l=a;if(d==null&&(d=a),e==null&&(e=a),h==null&&(h=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(f(i['$[]']("clone"),!0)?j=q('GxG').$uuid_generate().$to_s().$to_sym():j=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["format",d.$format().$clone()],["content",new Map]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_hash"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["format",d.$format().$clone()],["content",new Map]])]]))),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(f(i['$[]']("clone"),!0)?j=q('GxG').$uuid_generate().$to_s().$to_sym():j=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["constraint",d.$constraint().$clone()],["content",[]]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_array"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["constraint",d.$constraint().$clone()],["content",[]]])]]))),c(d['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))){switch(n=b(q('GxG'),'Database').$element_table_for_instance(d),n.valueOf()){case"element_bigdecimal":l=d.$to_s();break;case"element_datetime":l=d.$iso8601().$to_s();break;case"element_binary":l=d.$to_s().$encode64();break;case"element_text":l=d.$to_s();break;default:l=d}return g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type",n],["version",c(k=h.$version(e))?k:0],["content",l]])]]))}return a}),l=[g['$[]'](0)];c(h(l.$size(),0));)n=l.$shift(),e(o.$call(n['$[]']("object")),'each',[],function(d){return d==null&&(d=a),n['$[]']("record")['$[]']("content")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?l['$<<'](d):a});else j=a;return j},-1),d(k,'$sync_export',function(a){var b=this;return a==null&&(a=new Map),b.$save()},-1),d(k,'$first',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](0):a}),d(k,'$last',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](n(b.element_links.$size(),1)):a}),d(k,'$each',function d(){var f=d.$$p||a,b=this;return d.$$p=null,c(f['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links,'each_index',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f.$call(d['$[]'](b))},{$$s:b}),b):b.$to_enum("each")}),d(k,'$each_index',function d(){var f=d.$$p||a,b=this;return d.$$p=null,c(f['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links,'each_index',[],function(b){return b==null&&(b=a),f.$call(b)}),b):b.$to_enum("each_index")}),d(k,'$each_with_index',function f(d){var g=f.$$p||a,b=this;return f.$$p=null,d==null&&(d=0),c(g['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links.$to_enum("each").$with_index(d),'each',[],function c(d,b){var e=c.$$s==null?this:c.$$s;return d==null&&(d=a),b==null&&(b=a),g.$call(e['$[]'](b),b)},{$$s:b}),b):b.$to_enum("each_with_index",d)},-1),d(k,'$iterative',function r(i){var t=r.$$p||a,k=this,m=a,s=a,n=a,p=a,j=a,d=a,l=a,u=a,v=a;r.$$p=null,i==null&&(i=new Map([["include_inactive",!0]])),m=[],s=e(q('Proc'),'new',[],function(j,f){var g=a,d=a;if(j==null&&(j=a),f==null&&(f=[]),g=[],c(j))for(g['$<<'](new Map([["parent",a],["parent_selector",a],["object",j]]));c(h(g.$size(),0));)d=g.$shift(),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",b],["object",c]]))}):c(i['$[]']("include_inactive"))&&f['$<<'](d)),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",c],["object",b]]))}):c(i['$[]']("include_inactive"))&&f['$<<'](d)),(c(d['$alive?']())||c(i['$[]']("include_inactive")))&&f['$<<'](d);return f},-1),n=e(q('Proc'),'new',[],function(b,c){var d=a;return b==null&&(b=[]),c==null&&(c=a),d=[],e(b,'each',[],function(b){return b==null&&(b=a),f(b['$[]']("parent").$object_id(),c.$object_id())?d['$<<'](b):a}),d},-1);try{if(p=s.$call(k,[]),j=n.$call(p,k),c(t['$respond_to?']("call")))while(c(h(j.$size(),0)))d=j.$shift(),f(d['$[]']("object").$object_id(),k.$object_id())||(l=t.$call(d['$[]']("object"),d['$[]']("parent_selector"),d['$[]']("parent")),c(l)&&m['$<<'](l)),o(d['$[]']("object").$object_id(),a.$object_id())&&(u=n.$call(p,d['$[]']("object")),e(u,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(g.rescue(a,[q('Exception')])){v=a;try{k.$log_error(new Map([["error",v],["parameters",new Map]]))}finally{g.pop_exception(a)}}else throw a}return m},-1),y(k,"process","iterative"),d(k,'$process!',function c(b){var f=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),e(d,'iterative',[b],f.$to_proc()),d},-1),d(k,'$search',function f(b){var g=f.$$p||a,h=this,d=a;return f.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),d=[],c(g['$respond_to?']("call"))&&(d=e(h,'iterative',[b],g.$to_proc())),d},-1),d(k,'$paths_to',function(n,g){var t=this,j=a,d=a,i=a,r=a,s=a,p=a,k=a;return n==null&&(n=a),g==null&&(g=""),j=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](l(1,-1,!1)).$reverse():d=[],i=t.$get_at_path(g),r=[new Map([["selector",a],["container",i]])],s=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(r,'each_with_index',[],function h(e,g){if(e==null&&(e=a),g==null&&(g=a),f(e['$[]']("container"),b))c=e,d.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c}),p=i,k=!1,c(i['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?e(i,'process!',[],function(e,h,g){var i=a,l=a;return e==null&&(e=a),h==null&&(h=a),g==null&&(g=a),o(p.$object_id(),g.$object_id())&&(i=s.$call(g),c(i)&&(d=i['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),p=g),l=h.$to_s(),l['$gsub!']("/","%2f"),d.$unshift(l),k=!1,f(e,n)&&(k=!0),c(k)&&j['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&r.$unshift(new Map([["selector",h],["container",e],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):j['$<<']("/"['$<<'](d.$join("/"))),j},-1),d(k,'$get_at_path',function(d){var i=this,b=a,g=a,j=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],j=d.$split("/"),function(){try{var d=m('break');return e(j.$to_enum(),'each',[],function j(i){var e=a;if(i==null&&(i=a),e=a,c(h(i.$size(),0))&&(f(i['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?e=i.$to_i():(e=i.$to_s(),e['$gsub!']("%2f","/"),e=e.$to_sym())),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,j.$$is_lambda);else return g.$unshift(b);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),b},-1),d(k,'$set_at_path',function(g,j){var l=this,k=a,i=a,e=a,d=a;return g==null&&(g="/"),j==null&&(j=a),k=a,o(g,"/")&&(i=l.$get_at_path(b('File').$dirname(g)),c(i)&&(e=b('File').$basename(g),d=a,c(h(e.$size(),0))&&(f(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e.$to_s(),d['$gsub!']("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),d(k,'$unpersist',function(){var j=this,k=a,d=a,l=a,g=a,i=a;if(k=[],c(j['$alive?']()))for(d=[new Map([["parent",a],["parent_selector",a],["object",j],["record",k]])],l=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(d,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(j,'search',[],function(e,f,g){return e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",new Map]])):c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",[]]])):d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",e]]))}),g=[d['$[]'](0)];c(h(g.$size(),0));)i=g.$shift(),e(l.$call(i['$[]']("object")),'each',[],function(d){return d==null&&(d=a),i['$[]']("record")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?g['$<<'](d):a});return k})}(B[0],null,B),r(B[0],b(b(b('GxG'),'Database'),'DetachedArray'),'PeristedArray'),function(i,j,l){var f=r(i,j,'PeristedHash'),m=[f].concat(l),d=g.$r(m);return k(f,'$import',function(j){var i=this,k=a,g=a,f=a;for(j==null&&(j=a),k=a,c(j['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))||i.$raise(d('Exception'),"Malformed import record passed."),g=[new Map([["target",b(b(b('GxG'),'Database'),'PersistedHash').$new()],["record",j]])],k=g['$[]'](0)['$[]']("target");c(h(g.$size(),0));)switch(f=g.$shift(),f['$[]']("record")['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":f['$[]']("target")['$uuid='](f['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),f['$[]']("target")['$title='](f['$[]']("record")['$[]']("title").$to_s()),e(f['$[]']("record")['$[]']("content").$keys(),'each',[],function j(h){var c,k=j.$$s==null?this:j.$$s,i=a;switch(h==null&&(h=a),f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return i=b(b(d('GxG'),'Database'),'PersistedHash').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_array":return i=b(b(d('GxG'),'Database'),'PersistedArray').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[h,f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content")],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[h,k.$BigDecimal(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[h,b('Chronic').$parse(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[h,b(b('GxG'),'ByteArray').$new(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s().$decode64())],e(f['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:i}),f['$[]']("target")['$version='](i.$BigDecimal(f['$[]']("record")['$[]']("version").$to_s())),f['$[]']("target")['$format='](f['$[]']("record")['$[]']("format").$to_s().$to_sym());break;case"element_array":f['$[]']("target")['$uuid='](f['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),f['$[]']("target")['$title='](f['$[]']("record")['$[]']("title").$to_s()),e(f['$[]']("record")['$[]']("content"),'each_index',[],function j(h){var c,k=j.$$s==null?this:j.$$s,i=a;switch(h==null&&(h=a),f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return i=b(b(d('GxG'),'Database'),'PersistedHash').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_array":return i=b(b(d('GxG'),'Database'),'PersistedArray').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[h,f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content")],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[h,k.$BigDecimal(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[h,b('Chronic').$parse(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[h,b(b('GxG'),'ByteArray').$new(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s().$decode64())],e(f['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:i}),f['$[]']("target")['$version='](i.$BigDecimal(f['$[]']("record")['$[]']("version").$to_s())),f['$[]']("target")['$constraint='](f['$[]']("record")['$[]']("constraint").$to_s().$to_sym());break;default:a}return k},-1)}(B[0],b(b(b('GxG'),'Database'),'DetachedHash'),B)}(q[0],q)}(q[0],q),function(c,e,f){var a=r(c,e,'Array'),h=[a].concat(f),i=g.$r(h);return d(a,'$persist',function(){var a=this;return b(i('GxG'),'Database').$iterative_detached_persist(a)})}(q[0],null,q),function(c,e,f){var a=r(c,e,'Hash'),h=[a].concat(f),i=g.$r(h);return d(a,'$persist',function(){var a=this;return b(i('GxG'),'Database').$iterative_detached_persist(a)})}(q[0],null,q)},Opal.modules["web/gxg_libraries"]=function(b){var l=b.module,m=b.klass,c=b.truthy,i=b.send,d=b.eqeq,g=b.rb_gt,e=b.def,h=b.return_ivar,k=b.thrower,j=[],a=b.nil,f=b.$$$;return b.add_stubs('is_a?,raise,uuid,title,version,to_s,[],each,library_loaded?,<<,load_libraries,==,>,size,loaded?,base64?,decode64,set_script,instance_eval,log_error,to_sym,the_refrence'),l(j[0],'Libraries'),function(n,o){var p=l(n,'GxG'),j=[p].concat(o);return function(r,o,p){var j=m(r,o,'Library'),q=[j].concat(p),l=b.$r(q),n=j.$$prototype;return n.local=n.source=n.type=n.global=a,e(j,'$initialize',function(b){var e=this,h=a,j=a;return b==null&&(b=a),c(b['$is_a?'](f(f(l('GxG'),'Database'),'PersistedHash')))||e.$raise(l('ArgumentError'),"You MUST provide a persisted source object."),e.uuid=b.$uuid(),e.title=b.$title(),e.version=b.$version(),e.type=(c(h=b['$[]']("type"))?h:"text/javascript").$to_s(),j=[],c(b['$[]']("requirements")['$is_a?'](f(f(f('GxG'),'Database'),'PersistedArray')))&&i(b['$[]']("requirements"),'each',[],function(b){return b==null&&(b=a),c(f(l('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$library_loaded?'](b))?a:j['$<<'](b)}),i(f(l('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_libraries',[j],function p(o){var e=p.$$s==null?this:p.$$s,k=a,m=a,n=a,q=a,j=a,i;return e.src==null&&(e.src=a),e.local==null&&(e.local=a),e.global==null&&(e.global=a),e.uuid==null&&(e.uuid=a),e.type==null&&(e.type=a),e.charset==null&&(e.charset=a),e.source==null&&(e.source=a),e.title==null&&(e.title=a),o==null&&(o=a),d(o,!0)?(e.src=b['$[]']("options")['$[]']("src").$to_s(),c(g(e.src.$size(),0))||(e.src=a),e.charset=(c(h=b['$[]']("options")['$[]']("charset"))?h:"utf-8").$to_s(),e.local=b['$[]']("options")['$[]']("local"),c(e.local)||(e.local=!1),e.global=b['$[]']("options")['$[]']("global").$to_s(),c(g(e.global.$size(),0))||(e.global=a),c(e['$loaded?']())||(c(g(e.global.$to_s().$size(),0))||(c(e.type="text/javascript")?e.global="Opal":e.global="GxG"),c(e.src['$is_a?'](f('String')))?(k=e.uuid,m=e.type,n=e.charset,q=e.src,i=document.createElement('script'),i.id=k,i.type=m,i.charset=n,i.src=q,document.body.appendChild(i)):(j=b['$[]']("options")['$[]']("native").$to_s(),c(j['$is_a?'](f('String')))&&c(g(j.$size(),0))&&(c(j['$base64?']())&&(j=j.$to_s().$decode64()),k=e.uuid,m=e.type,n=e.charset,i=document.createElement('script'),i.id=k,i.type=m,i.charset=n,i.innerHTML=j,document.body.appendChild(i)))),e.source=b,e.$set_script(e.source['$[]']("script").$to_s()),e.source=a):e.$raise(l('Exception'),"Library load error - skipping library intitialization: "+e.title)},{$$s:e}),e},-1),e(j,'$uuid',h("uuid")),e(j,'$title',h("title")),e(j,'$version',h("version")),e(j,'$type',h("type")),e(j,'$local',h("local")),e(j,'$global',h("global")),e(j,'$set_script',function(e){try{var h,f=this,i=a,j=a;if(e==null&&(e=""),i=!1,c(g(e.$size(),0)))try{c(e['$base64?']())&&(e=e.$decode64()),d(f.local,!0)?f.$instance_eval(e):(h=e,typeof b.compile=='function'?eval(b.compile(h,{scope_variables:["result","the_script_body"],arity_check:!1,file:'(eval)',eval:!0})):f.$eval(h)),i=!0}catch(a){if(b.rescue(a,[l('Exception')])){j=a;try{f.$log_error(new Map([["error",j],["parameters",new Map([["script",e]])]]))}finally{b.pop_exception(a)}}else throw a}return i}catch(a){if(a===b.t_eval_return)return a.$v;throw a}},-1),e(j,'$require_resource',function(b){var e=this,f=a;return b==null&&(b=a),f=!1,c(e.source)&&function(){try{var c=k('break');return i(e.source['$[]']("content"),'each',[],function g(e){var h=g.$$s==null?this:g.$$s;if(e==null&&(e=a),(d(e.$title(),b)||d(e.$uuid(),h.$the_refrence().$to_s().$to_sym()))&&d(e['$[]']("component").$to_s(),"script")&&d(e['$[]']("type").$to_s(),"text/ruby"))h.$set_script(e['$[]']("script").$to_s()),f=!0,c.$throw(a,g.$$is_lambda);else return a},{$$s:e})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),f},-1),e(j,'$require_module_resource',function(e){try{var f=this,h=a;return e==null&&(e=a),h=!1,c(f.source)&&function(){try{var j=k('break');return i(f.source['$[]']("content"),'each',[],function i(f){var k,l,m=i.$$s==null?this:i.$$s;if(f==null&&(f=a),(d(f.$title(),e)||d(f.$uuid(),m.$the_refrence().$to_s().$to_sym()))&&d(f['$[]']("component").$to_s(),"script")&&d(f['$[]']("type").$to_s(),"text/ruby"))if(c(g(f['$[]']("script").$size(),0)))c(f['$[]']("script")['$base64?']())?(k=f['$[]']("script").$to_s().$decode64(),typeof b.compile=='function'?eval(b.compile(k,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:'(eval)',eval:!0})):m.$eval(k)):(l=f['$[]']("script").$to_s(),typeof b.compile=='function'?eval(b.compile(l,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:'(eval)',eval:!0})):m.$eval(l)),h=!0,j.$throw(a,i.$$is_lambda);else return a;else return a},{$$s:f})}catch(a){if(a===j)return a.$v;throw a}finally{j.is_orphan=!0}}(),h}catch(a){if(a===b.t_eval_return)return a.$v;throw a}},-1),e(j,'$loaded?',function(){try{var e,a=this;return d(a.type,"text/javascript")?!!c(window.hasOwnProperty(a.global.$to_s())):!!c(a.global)&&(!!c((e="defined? "+a.global.$to_s(),typeof b.compile=='function'?eval(b.compile(e,{scope_variables:[],arity_check:!1,file:'(eval)',eval:!0})):a.$eval(e))))}catch(a){if(a===b.t_eval_return)return a.$v;throw a}})}(j[0],null,j)}(j[0],j)},Opal.modules["web/gxg_applications"]=function(g){var m=g.module,l=g.klass,c=g.truthy,e=g.send,f=g.eqeq,j=g.rb_gt,d=g.def,i=g.thrower,h=g.return_ivar,k=[],a=g.nil,b=g.$$$;return g.add_stubs('[],is_a?,[]=,to_sym,to_s,uuid,each,base64?,decode64,json?,parse,process_import,log_error,title,unpersist,==,is_any?,library_loaded?,<<,load_libraries,get_library,>,size,instance_eval,log_warn,the_refrence,get_resource,app_state_pull,app_state_push,values,delete,search,respond_to?,downcase,to_proc,method,element,call,state_pull,application_close,inspect,valid_uuid?,get_window,keys,find_child,set_application,unlink_viewport,unlink_window,window_close,exit,get_viewport,gxg_each_child,destroy'),function(n,o){var p=m(n,'GxG'),k=[p].concat(o);return function(r,o,p){var k=l(r,o,'Application'),q=[k].concat(p),m=g.$r(q),n=k.$$prototype;return n.viewports=n.windows=n.definition=n.process=n.state=n.libraries=n.event_handlers=n.event_listeners=a,d(k,'$initialize',function(h){var d=this,i=a,n=a,l=a,k=a;if(h==null&&(h=new Map),d.process=h['$[]']("application"),d.definition=h['$[]']("source"),d.title="Untitled",d.state=c(i=h['$[]']("state"))?i:new Map,d.viewports=new Map,c(h['$[]']("viewport")['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))&&d.viewports['$[]='](h['$[]']("viewport").$uuid().$to_s().$to_sym(),h['$[]']("viewport")),c(h['$[]']("viewports")['$is_a?'](b('Array')))&&e(h['$[]']("viewports"),'each',[],function h(d){var f,g=h.$$s==null?this:h.$$s;return g.viewports==null&&(g.viewports=a),d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))?(f=[d.$uuid().$to_s().$to_sym(),d],e(g.viewports,'[]=',f),f[f.length-1]):a},{$$s:d}),d.windows=new Map,c(h['$[]']("window")['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))&&d.windows['$[]='](h['$[]']("window").$uuid().$to_s().$to_sym(),h['$[]']("window")),c(h['$[]']("windows")['$is_a?'](b('Array')))&&e(h['$[]']("windows"),'each',[],function h(d){var f,g=h.$$s==null?this:h.$$s;return g.windows==null&&(g.windows=a),d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))?(f=[d.$uuid().$to_s().$to_sym(),d],e(g.windows,'[]=',f),f[f.length-1]):a},{$$s:d}),d.libraries=new Map,d.event_handlers=new Map,d.event_listeners=new Map,d.credentialed=c(i=h['$[]']("credentialed"))&&i,d.unique=c(i=h['$[]']("unique"))?i:!0,d.location=h['$[]']("location"),d.heap=new Map,c(d.definition['$is_a?'](b('String'))))if(c(d.definition['$base64?']())&&(d.definition=d.definition.$decode64()),c(d.definition['$json?']()))try{d.definition=b('JSON').$parse(d.definition,new Map([["symbolize_names",!0]])),d.definition=b(b('GxG'),'Database').$process_import(d.definition)}catch(a){if(g.rescue(a,[m('Exception')])){n=a;try{d.$log_error(new Map([["error",n],["parameters",new Map([["definition",d.definition]])]]))}finally{g.pop_exception(a)}}else throw a}return c(d.definition['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.title=d.definition.$title(),l=d.definition['$[]']("options").$unpersist(),f(l['$[]']("credentialed"),!0)?d.credentialed=!0:d.credentialed=!1,f(l['$[]']("unique"),!0)?d.unique=!0:d.unique=!1),c(d.definition['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(k=[],c(d.definition['$[]']("requirements")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&e(d.definition['$[]']("requirements"),'each',[],function(d){return d==null&&(d=a),c(b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$library_loaded?'](d))?a:k['$<<'](d)}),e(b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_libraries',[k],function h(g){var d=h.$$s==null?this:h.$$s;return d.definition==null&&(d.definition=a),g==null&&(g=a),f(g,!0)?(c(d.definition['$[]']("requirements")['$is_a?'](b(b(b('GxG'),'Database'),'PersistedArray')))&&e(d.definition['$[]']("requirements"),'each',[],function i(g){var d,h=i.$$s==null?this:i.$$s,f=a;return h.libraries==null&&(h.libraries=a),g==null&&(g=a),f=b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$get_library(g),c(f)?(d=[f.$uuid(),f],e(h.libraries,'[]=',d),d[d.length-1]):a},{$$s:d}),c(j(d.definition['$[]']("script").$size(),0))?c(d.definition['$[]']("script")['$base64?']())?d.$instance_eval(d.definition['$[]']("script").$to_s().$decode64()):d.$instance_eval(d.definition['$[]']("script").$to_s()):a):d.$log_warn("Library load error - not processing main application script for "+d.definition.$title()+".")},{$$s:d})),d},-1),d(k,'$get_resource',function(b){var d=this,g=a;return b==null&&(b=a),g=a,c(d.definition)&&function(){try{var c=i('break');return e(d.definition['$[]']("content"),'each',[],function e(d){var h=e.$$s==null?this:e.$$s;if(d==null&&(d=a),f(d.$title(),b)||f(d.$uuid(),h.$the_refrence().$to_s().$to_sym()))g=d,c.$throw(a,e.$$is_lambda);else return a},{$$s:d})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),g},-1),d(k,'$require_resource',function(e){var d=this,g=a,b=a;return e==null&&(e=a),g=!1,c(d.definition)&&(b=d.$get_resource(e),c(b)&&f(b['$[]']("component").$to_s(),"script")&&f(b['$[]']("type").$to_s(),"text/ruby")&&c(j(b['$[]']("script").$size(),0))&&(c(b['$[]']("script")['$base64?']())?d.$instance_eval(b['$[]']("script").$to_s().$decode64()):d.$instance_eval(b['$[]']("script").$to_s()),g=!0)),g},-1),d(k,'$title',h("title")),d(k,'$credentialed',h("credentialed")),d(k,'$unique',h("unique")),d(k,'$location',h("location")),d(k,'$libraries',h("libraries")),d(k,'$state_data',h("state")),d(k,'$state_pull',function(){var d=this;return e(b(m('GxG'),'CONNECTION'),'app_state_pull',[new Map([["application",d.process.$to_s()]])],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=a),!!c(d['$is_a?'](b('Hash')))&&(!!c(d['$[]']("result")['$is_a?'](b('Hash')))&&(f.state=d['$[]']("result"),!0))},{$$s:d})}),d(k,'$state_push',function(){var d=this;return e(b(m('GxG'),'CONNECTION'),'app_state_push',[new Map([["application",d.process.$to_s()],["data",d.state]])],function(d){return d==null&&(d=a),!!c(d['$is_a?'](b('Hash')))&&(!!f(d['$[]']("result"),!0))})}),d(k,'$get_library',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.libraries['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.libraries.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$link_viewport',function(d){var e=this;return!!(d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport'))))&&(e.viewports['$[]='](d.$uuid().$to_s().$to_sym(),d),!0)},-1),d(k,'$unlink_viewport',function(d){var g=this;return!!(d==null&&(d=a),c(d['$is_any?'](b('String'),b('Symbol'))))&&(c(g.viewports['$[]'](d.$to_s().$to_sym()))?g.viewports.$delete(d.$to_s().$to_sym()):function(){try{var b=i('break');return e(g.viewports.$values(),'each',[],function e(c){var g=e.$$s==null?this:e.$$s;if(g.viewports==null&&(g.viewports=a),c==null&&(c=a),f(c.$title(),d))g.viewports.$delete(c.$uuid()),b.$throw(a,e.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),!0)},-1),d(k,'$viewports',h("viewports")),d(k,'$get_viewport',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.viewports['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.viewports.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$link_window',function(d){var e=this;return!!(d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'Window'))))&&(e.windows['$[]='](d.$uuid().$to_s().$to_sym(),d),!0)},-1),d(k,'$unlink_window',function(d){var g=this;return!!(d==null&&(d=a),c(d['$is_any?'](b('String'),b('Symbol'))))&&(c(g.windows['$[]'](d.$to_s().$to_sym()))?g.windows.$delete(d.$to_s().$to_sym()):function(){try{var b=i('break');return e(g.windows.$values(),'each',[],function e(c){var g=e.$$s==null?this:e.$$s;if(g.windows==null&&(g.windows=a),c==null&&(c=a),f(c.$title(),d))g.windows.$delete(c.$uuid()),b.$throw(a,e.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),!0)},-1),d(k,'$windows',h("windows")),d(k,'$get_window',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.windows['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.windows.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$process_uuid',h("process")),d(k,'$source_uuid',function(){var d=this;return c(d.definition['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d.definition.$uuid():a}),d(k,'$search_resources',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&c(h.definition)&&function(){try{var j=i('break');return e(h.definition['$[]']("content"),'search',[],function k(e,h,i){if(e==null&&(e=a),h==null&&(h=a),i==null&&(i=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash'))))if(f(d.$to_s().$to_sym(),e.$uuid().$to_s().$to_sym())||f(d.$to_s(),e.$title().$to_s()))g=e,j.$throw(a,k.$$is_lambda);else return a;else return a})}catch(a){if(a===j)return a.$v;throw a}finally{j.is_orphan=!0}}(),g},-1),d(k,'$on',function g(d,f){var h=g.$$p||a,e=this;return g.$$p=null,d==null&&(d=a),f==null&&(f=!1),c(d['$is_any?'](b('String'),b('Symbol')))&&c(h['$respond_to?']("call"))?(e.event_handlers['$[]='](d.$to_s().$downcase().$to_sym(),h),e.event_listeners['$[]='](d.$to_s().$downcase().$to_sym(),e.$method("event_handler").$to_proc()),e.$element().addEventListener(d.$to_s().$downcase(),e.event_listeners['$[]'](d.$to_s().$downcase().$to_sym()),f)):a},-1),d(k,'$remove_listener',function(b){var d=this;return b==null&&(b=a),c(d.event_handlers['$[]'](b.$to_s().$downcase().$to_sym()))&&c(d.event_listeners['$[]'](b.$to_s().$downcase().$to_sym()))&&(d.$element().removeEventListener(b.$to_s().$downcase(),d.event_listeners['$[]'](b.$to_s().$downcase().$to_sym())),d.event_handlers.$delete(b.$to_s().$downcase().$to_sym()),d.event_listeners.$delete(b.$to_s().$downcase().$to_sym())),!0},-1),d(k,'$event_handler',function(h){var i=this,e=a,d=a,f=a,g=a,j=a;return e=h.type.$to_s().$downcase().$to_sym(),d=new Map,c(i.event_handlers['$[]'](e))?(f=c(g=b(b(b(m('GxG'),'Gui'),'EventHandlers'),'EVENT_GENRES')['$[]'](e))?g:"event",c(f)&&(j=b(b(b(m('GxG'),'Gui'),'EventHandlers'),'EVENT_FIELDS')['$[]'](f),c(j)&&(serializer=function(a){if(a){var b={eventName:a.toString(),altKey:a.altKey,bubbles:a.bubbles,button:a.button,buttons:a.buttons,cancelBubble:a.cancelBubble,cancelable:a.cancelable,clientX:a.clientX,clientY:a.clientY,composed:a.composed,ctrlKey:a.ctrlKey,currentTarget:a.currentTarget?a.currentTarget.outerHTML:null,defaultPrevented:a.defaultPrevented,detail:a.detail,eventPhase:a.eventPhase,fromElement:a.fromElement?a.fromElement.outerHTML:null,isTrusted:a.isTrusted,layerX:a.layerX,layerY:a.layerY,metaKey:a.metaKey,movementX:a.movementX,movementY:a.movementY,offsetX:a.offsetX,offsetY:a.offsetY,pageX:a.pageX,pageY:a.pageY,relatedTarget:a.relatedTarget?a.relatedTarget.outerHTML:null,returnValue:a.returnValue,screenX:a.screenX,screenY:a.screenY,shiftKey:a.shiftKey,sourceCapabilities:a.sourceCapabilities?a.sourceCapabilities.toString():null,target:a.target?a.target.outerHTML:null,timeStamp:a.timeStamp,toElement:a.toElement?a.toElement.outerHTML:null,type:a.type,view:a.view?a.view.toString():null,which:a.which,x:a.x,y:a.y};return b}},d=JSON.stringify(serializer(h)),d=b('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])))),i.event_handlers['$[]'](e).$call(d)):a}),d(k,'$menu_item_select',function(b){return b==null&&(b=a),a},-1),d(k,'$run',function(d){var e=this;return d==null&&(d=new Map),c(d['$is_a?'](b('Hash')))&&f(d['$[]']("restore"),!0)?e.$state_pull():a},-1),d(k,'$exitready?',function(a){return a==null&&(a=new Map),"ready"},-1),d(k,'$before_exit',function(a){return a==null&&(a=new Map),!0},-1),d(k,'$exit',function(d){var g=this;return d==null&&(d=new Map),e(b(m('GxG'),'CONNECTION'),'application_close',[new Map([["application",g.process]])],function g(d){var e=g.$$s==null?this:g.$$s;return e.process==null&&(e.process=a),d==null&&(d=a),c(d['$is_a?'](b('Hash')))?f(d['$[]']("result"),!0)?b(m('GxG'),'APPLICATIONS')['$[]']("processes").$delete(e.process):e.$log_warn("Could not close application "+e.process.$inspect()+" : "+d.$inspect()):e.$log_warn("Malformed response: "+d.$inspect())},{$$s:g}),!0},-1),d(k,'$window_close',function(d){var f=this,g=a;return d==null&&(d=new Map),c(d['$is_a?'](b('Hash')))?c(m('GxG')['$valid_uuid?'](d['$[]']("window")))?(g=b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$get_window(d['$[]']("window")),c(g)?(e(f.viewports.$keys(),'each',[],function e(b){var f=e.$$s==null?this:e.$$s,d=a;return b==null&&(b=a),d=g.$find_child(b),c(d)?(d.$set_application(a),f.$unlink_viewport(b)):a},{$$s:f}),f.$unlink_window(g.$uuid()),b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$window_close(g.$uuid()),c(j(f.windows.$size(),0)))?a:f.$exit():a):f.$log_warn("Invalid Argument passed: "+d.$inspect()):a},-1),d(k,'$viewport_clear',function(d){var g=this,b=a;return!!(d==null&&(d=a),b=g.$get_viewport(d),c(b))&&(e(b,'gxg_each_child',[],function(c){return c==null&&(c=a),f(c,b)?a:c.$destroy()}),!0)},-1)}(k[0],null,k)}(k[0],k)},Opal.modules["web/gxg_vdom"]=function(g){var l=g.module,v=g.class_variable_set,c=g.truthy,f=g.eqeq,u=g.range,i=g.rb_plus,j=g.defs,n=g.klass,d=g.def,o=g.return_ivar,e=g.send,p=g.rb_minus,k=g.thrower,h=g.rb_gt,m=g.class_variable_get,r=g.return_val,q=g.Class,F=g.slice,s=g.send2,t=g.find_super,E=g.to_a,w=g.const_set,D=g.not,y=g.gvars,x=g.alias,A=g.rb_ge,C=g.neqeq,B=g.return_self,z=[],a=g.nil,b=g.$$$;return g.add_stubs('is_any?,unpersist,==,[],to_s,downcase,extname,include?,+,relative_url,log_warn,inspect,to_sym,valid_properties,each,keys,[]=,to_i,-,style_sheet,>,<<,new,is_a?,name,rule_names,remove_rule,find_rule,size,index,gsub,expand_path,each_with_index,reverse,delete_at,native_object,to_a,create_element,factory,update_classes,_stylize,style,class,set_attribute,join,map,_before_create,before_create,create,_after_create,after_create,cascade,raise,component_class,title,register_object,values,call,clone,shift,children,each_child,clearning_queue,unregister_object,page,delete,every_child,remove_listeners,forget_child,parent,element,has_key?,uuid,split,last,each_pair,set_state,!,get_state,add_state,merge_style,respond_to?,domtype,component,to_proc,method,remove_listener,parse,base64?,decode64,instance_eval,log_error,include,uuid_generate,find_object,puts,to_n,compile,find_child,included,each_included,send,start,animate,layout_refresh,find_parent_type,valid_uuid?,theme_icon,theme_background,theme_widget,theme_font,site_asset,attr_reader,dasherize,!~,strip,capitalize,set_settings,creation,set_text,root,build_components,disable,clear_attribute,type,to_f,version,>=,loaded?,library_pull,json?,process_import,load_library,set_busy,application_open,pull_object,merge,run,!=,add_child,set_application,get_viewport,link_viewport,link_window,track_deltas,set_script,on,close,build_page,find_object_by,detach,body,all_descendants,destroy,clear,clear_rules,refresh_css_cache,load_font,set_rule,load_libraries,load_page'),function(G,H){var I=l(G,'GxG'),z=[I].concat(H);return function(G,H){var I=l(G,'Gui'),z=[I].concat(H);return function(I,J){var H=l(I,'Vdom'),z=[H].concat(J),G=g.$r(z);return v(z[0],'@@CssCache',[]),v(z[0],'@@CssRuleProperties',new Map),j(H,'$load_font',function(d){var n=this,m=a,g=a,j=a,h=a,e=a,k=a,q,l,o,r,p;if(d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))){if(c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),f(d['$[]']("resource_type"),"font-face")){if(m=(c(g=d['$[]']("font_family"))?g:"Unknown").$to_s(),j=(c(g=d['$[]']("font_style"))?g:"normal").$to_s(),h=(c(g=d['$[]']("font_weight"))?g:400).$to_s(),c(d['$[]']("format")))e=d['$[]']("format").$to_s().$downcase();else switch(G('File').$extname(d['$[]']("source")).$downcase().valueOf()){case".ttf":case".otf":e="truetype";break;case".eot":e="embedded-opentype";break;case".svg":e="svg";break;case".woff":e="woff";break;case".woff2":e="woff2";break;default:e="unknown"}return c(["sftp:","ftp:/","http:","https"]['$include?'](d['$[]']("source")['$[]'](u(0,4,!1)).$downcase()))?k=d['$[]']("source"):k=i(b(b('GxG'),'CONNECTION').$relative_url().$to_s(),d['$[]']("source")),q=m.$to_s(),l="url('"+k+"')",o="format('"+e+"')",o=="format('unknown')"?(r=l):(r=l+" "+o),h=h,j=j,p=new FontFace(q,l,{weight:h,style:j}),p.load().then(function(a){document.fonts.add(a)}).catch(function(a){alert(a)}),!0}return n.$log_warn("You attempted to load a non-font resource as a font: "+d.$inspect()),!1}else return n.$log_warn("You attempted to load a font with the wrong value: "+d.$inspect()),!1},-1),function(m,i,j){var f=n(m,i,'CSSRule'),k=[f].concat(j),l=g.$r(k),h=f.$$prototype;return h.native_rule=h.name=a,d(f,'$initialize',function(e){var b=this,d=a;return b.native_rule=e,b.name=(c(d=b.native_rule.selectorText)?d:"").$to_s().$to_sym()}),d(f,'$native_object',o("native_rule")),d(f,'$inspect',function(){var a=this;return""}),d(f,'$name',o("name")),d(f,'$keys',function(){return b(b(l('GxG'),'Gui'),'Vdom').$valid_properties()}),d(f,'$[]',function(a){var b=this;return b.native_rule.style[a]}),d(f,'$[]=',function(e,b){var f=this,d=a;return f.native_rule.style[e]=c(d=b)?d:"",b}),d(f,'$merge',function(b){var c=this;return b==null&&(b=new Map),e(b.$keys(),'each',[],function f(c){var d,g=f.$$s==null?this:f.$$s;return c==null&&(c=a),(d=[c,b['$[]'](c)],e(g,'[]=',d),d[d.length-1])},{$$s:c}),c},-1)}(z[0],null,z),j(H,'$style_sheet',function(){var b=a,d=a;return b=a,d=document.styleSheets.length.$to_i(),function(){try{var f=k('break');return e(g.Range.$new(0,p(d,1),!1),'each',[],function g(e){var d=a;if(e==null&&(e=a),d=document.styleSheets[e],c(d))if(c(d.href.$to_s()['$include?']("/themes/page.css")))b=d,f.$throw(a,g.$$is_lambda);else return a;else return a})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}(),b}),j(H,'$refresh_css_cache',function(){var d=a,j=a,f=a,k=a,l=a,i=a;if(d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)){j=[];try{f=d.cssRules}catch(a){if(g.rescue(a,[G('Exception')])){k=a;try{f=d.rules}finally{g.pop_exception(a)}}else throw a}c(f)&&(l=f.length.$to_i(),c(h(l,0))?i=p(f.length.$to_i(),1):i=0,e(g.Range.$new(0,i,!1),'each',[],function(e){var f=a;e==null&&(e=a);try{f=d.cssRules[e]}catch(a){if(g.rescue(a,[G('Exception')])){k=a;try{f=d.rules[e]}finally{g.pop_exception(a)}}else throw a}return c(f)?j['$<<'](b(b(b(G('GxG'),'Gui'),'Vdom'),'CSSRule').$new(f)):a})),v(z[0],'@@CssCache',j)}return!0}),j(H,'$valid_properties',function(){return m(z[0],'@@CssRuleProperties',!1).$keys()}),j(H,'$get_property_name',function(d){var e=a;return d==null&&(d=a),e=a,c(d['$is_a?'](b('Symbol')))&&(e=m(z[0],'@@CssRuleProperties',!1)['$[]'](d)),e},-1),j(H,'$rules',function(){var b=a;return b=[],e(m(z[0],'@@CssCache',!1),'each',[],function(c){return c==null&&(c=a),b['$<<'](c.$name())}),b}),j(H,'$rule_names',function(){var b=a;return b=[],e(m(z[0],'@@CssCache',!1),'each',[],function(c){return c==null&&(c=a),b['$<<'](c.$name())}),b}),j(H,'$find_rule',function(b){var c=a;return b==null&&(b=a),c=[],e(m(z[0],'@@CssCache',!1),'each',[],function(d){return d==null&&(d=a),f(d.$name(),b.$to_s().$to_sym())?c['$<<'](d):a}),c},-1),j(H,'$clear_rules',function(){var c=a;return c=b(b(b('GxG'),'Gui'),'Vdom').$rule_names(),e(c,'each',[],function(c){return c==null&&(c=a),f(c,".hidden")?a:b(b(b('GxG'),'Gui'),'Vdom').$remove_rule(c)}),!0}),j(H,'$set_rule',function(k,n,s){var r=this,d=a,q=a,l=a,j=a,o=a,t=a;if(k==null&&(k=a),n==null&&(n=new Map),s==null&&(s=new Map([["merge",!0]])),d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)){if(q=b(b(G('GxG'),'Gui'),'Vdom').$find_rule(k),c(h(q.$size(),0))&&b(b(G('GxG'),'Gui'),'Vdom').$remove_rule(k),l=b(b('GxG'),'CONNECTION').$relative_url(),j="{ ",e(n.$keys(),'each',[],function(e){var d=a,h=a,b=a;return e==null&&(e=a),d=n['$[]'](e).$to_s(),c(d['$include?']("url("))&&(h=d.$index(")"),b=d['$[]'](g.Range.$new(4,p(h,1),!1)),(f(b['$[]'](0),"'")||f(b['$[]'](0),'"'))&&(b=b['$[]'](u(1,-1,!1))),(f(b['$[]'](-1),"'")||f(b['$[]'](-1),'"'))&&(b=b['$[]'](u(0,-2,!1))),c(b['$include?']("data:"))||c(b['$include?']("http:"))||c(b['$include?']("https:"))||f(b['$[]'](g.Range.$new(0,p(l.$size(),1),!1)),l)||(d=i(i("url('",G('File').$expand_path(i(i(l,"/"),b))),"')").$gsub("//","/"))),j=i(j,""+e.$to_s()+": "+d.$to_s()+"; ")}),j=i(j," }"),f(d.insertRule(i(k.$to_s(),j.$to_s()),d.cssRules.length).$to_i(),(d.cssRules.length-1).$to_i())){try{o=d.cssRules[d.cssRules.length-1]}catch(a){if(g.rescue(a,[G('Exception')])){t=a;try{o=d.rules[d.cssRules.length-1]}finally{g.pop_exception(a)}}else throw a}return m(z[0],'@@CssCache',!1)['$<<'](b(b(b(G('GxG'),'Gui'),'Vdom'),'CSSRule').$new(o)),!0}return r.$log_warn("GxG Style Sheet Rule creation failed.."),!1}else return r.$log_warn("GxG Style Sheet not found."),!1},-1),j(H,'$remove_rule',function(d){var j=a,i=a;return!!(d==null&&(d=a),j=[],e(m(z[0],'@@CssCache',!1),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f(b.$name(),d.$to_s().$to_sym())||f(b.$name(),d.$to_s())?j['$<<'](c):a}),i=[],e(j.$reverse(),'each',[],function(b){return b==null&&(b=a),i['$<<'](m(z[0],'@@CssCache',!1).$delete_at(b))}),c(h(i.$size(),0)))&&(e(i,'each',[],function(f){var j=a,d=a,i=a;return f==null&&(f=a),j=f.$native_object(),d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)&&(i=d.cssRules.length.$to_i(),c(h(i,0)))?e(g.Range.$new(0,p(i,1),!1).$to_a().$reverse(),'each',[],function(b){var e=a;return b==null&&(b=a),e=d.cssRules[b],c(e)&&c(j.selectorText==e.selectorText)?d.deleteRule(b):a}):a}),!0)},-1),function(m,n){var j=l(m,'ElementMethods'),p=[j].concat(n),k=g.$r(p);return d(j,'$_before_create',r(a)),d(j,'$before_create',r(a)),d(j,'$create',function(){var b=this;return b.domtype==null&&(b.domtype=a),b.parent==null&&(b.parent=a),b.options==null&&(b.options=a),c(b.domtype)?b.element=b.$factory().$create_element(b,b.domtype,b.parent,b.options):a}),d(j,'$_after_create',function(){var a=this;return a.$update_classes(),a.$_stylize()}),d(j,'$after_create',r(a)),d(j,'$style',function(){var b=this,d=a;return b.style==null&&(b.style=a),b.style=c(d=b.style)?d:new Map}),d(j,'$_stylize',function(){var c=this,b=a;return b=c.$style(),f(b.$class(),k('Hash'))?c.$set_attribute("style",e(b,'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+":"+c+";"}).$join()):a}),d(j,'$cascade',r(a)),d(j,'$creation',function(){var a=this;return a.$_before_create(),a.$before_create(),a.$create(),a.$_after_create(),a.$after_create(),a.$_stylize(),a.$cascade()}),d(j,'$add_child',function(g,h){var e=this,d=a,i=a;return e.children==null&&(e.children=a),g==null&&(g=new Map),h==null&&(h=new Map),d=a,f(g['$[]']("component").$to_s().$downcase().$to_sym(),"unknown")?e.$raise("Unknown Component Type"):(i=b(k('GxG'),'Gui').$component_class(g['$[]']("component").$to_s().$downcase().$to_sym()),c(i['$is_a?'](q))?(d=i.$new(e,g,h),e.children['$[]='](d.$title().$to_s().$to_sym(),d),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$register_object(d.$title(),d)):e.$raise("Unknown Component Type")),d},-1),d(j,'$each_child',function c(){var d=c.$$p||a,b=this;return b.children==null&&(b.children=a),c.$$p=null,e(b.children.$values(),'each',[],function(b){return b==null&&(b=a),d.$call(b)})}),d(j,'$all_descendants',function f(){var g=f.$$p||a,b=this,d=a;for(b.children==null&&(b.children=a),b.process_queue==null&&(b.process_queue=a),f.$$p=null,b.process_queue=b.children.$values().$clone();c(h(b.process_queue.$size(),0));)d=b.process_queue.$shift(),c(d)&&(g.$call(d),c(h(d.$children().$values().$size(),0))&&e(d,'each_child',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.process_queue==null&&(c.process_queue=a),b==null&&(b=a),c.process_queue['$<<'](b)},{$$s:b}))}),d(j,'$forget_children',function(){var b=this,f=a,d=a;for(b.children==null&&(b.children=a),f=b.children.$values();c(h(b.$clearning_queue().$size(),0));)d=f.$shift(),c(d)&&(e(d.$children().$values(),'each',[],function(b){return b==null&&(b=a),f['$<<'](b)}),b.$page().$unregister_object(d.$title().$to_s()));return b.children=new Map}),d(j,'$forget_child',function(c){var b=this;return b.children==null&&(b.children=a),b.$page().$unregister_object(c),b.children.$delete(c.$to_s().$to_sym())}),d(j,'$destroy',function(){var b=this;return b.title==null&&(b.title=a),e(b,'every_child',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),b.$remove_listeners(),d.$page().$unregister_object(b.$title().$to_s())},{$$s:b}),b.$remove_listeners(),b.$parent().$forget_child(b.title.$to_s()),b.$parent().$element().removeChild(b.$element()),!0}),d(j,'$method_missing',function e(d,i){var h=e.$$p||a,f,g,b=this;return b.children==null&&(b.children=a),e.$$p=null,f=F(arguments,1),g=f,c(b.children['$has_key?'](d))?b.children['$[]'](d):s(b,t(b,'method_missing',e,!1,!0),'method_missing',[d].concat(E(g)),h)},-2),d(j,'$dom_id',function(){var a=this;return a.$uuid().$to_s()}),d(j,'$title',o("title")),d(j,'$update_classes',function(){var d=this,b=a,g=a;return d.element==null&&(d.element=a),d.states==null&&(d.states=a),b="",g=d.element.className.$split(" "),e(g,'each_with_index',[],function h(d,j){var e=h.$$s==null?this:h.$$s;return e.states==null&&(e.states=a),d==null&&(d=a),j==null&&(j=a),c(e.states.$keys()['$include?'](d.$to_s().$to_sym()))?a:(b=i(b,d),f(d,g.$last()))?a:b=i(b," ")},{$$s:d}),c(h(d.states.$keys().$size(),0))&&(b=i(b," ")),e(d.states,'each_pair',[],function g(c,d){var e=g.$$s==null?this:g.$$s;return e.states==null&&(e.states=a),c==null&&(c=a),d==null&&(d=a),f(d,!0)?(b=i(b,c.$to_s()),f(e.states.$keys().$last(),c))?a:b=i(b," "):a},{$$s:d}),d.element.className=b.$to_s(),!0}),d(j,'$option_replace',function(d,e){var b=this,f=a,g=a;return b.options==null&&(b.options=a),e==null&&(e=a),f=c(g=b.options['$[]'](d))?g:e,c(b.options['$has_key?'](d))&&b.options.$delete(d),f},-2),d(j,'$set_state',function(d,c){var b=this;return b.states==null&&(b.states=a),c==null&&(c=!1),f(c,!0)?b.states['$[]='](d.$to_s().$to_sym(),!0):b.states['$[]='](d.$to_s().$to_sym(),!1),b.$update_classes()},-2),d(j,'$set_states',function(b){var c=this;return b==null&&(b=new Map),e(b,'each_pair',[],function h(c,g){var b,d=h.$$s==null?this:h.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),g==null&&(g=a),f(g,!0)?(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1]):(b=[c.$to_s().$to_sym(),!1],e(d.states,'[]=',b),b[b.length-1])},{$$s:c}),c.$update_classes()},-1),d(j,'$get_state',function(e){var b=this,d=a;return!!(b.states==null&&(b.states=a),c(d=b.states['$[]'](e.$to_s().$to_sym())))&&d}),d(j,'$get_states',o("states")),d(j,'$toggle_state',function(a){var b=this;return b.$set_state(a,b.$get_state(a)['$!']())}),d(j,'$set_application',function(b){var c=this;return b==null&&(b=a),c.application=b},-1),d(j,'$application',o("application")),d(j,'$state_active?',function(c){var b=this;return b.states==null&&(b.states=a),b.states.$keys()['$include?'](c.$to_s().$to_sym())}),d(j,'$add_states',function(b){var c=this;return e(b,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$add_state(b)},{$$s:c})}),d(j,'$add_state',function(b,a){var c=this;return a==null&&(a=!1),c.$set_state(b,a)},-2),d(j,'$value',function(){var b=this;return b.element==null&&(b.element=a),b.element.innerHTML}),d(j,'$get_text',function(){var b=this;return b.element==null&&(b.element=a),b.element.textContent}),d(j,'$value=',function(c){var b=this;return b.element==null&&(b.element=a),b.element.value=c}),d(j,'$set_text',function(c){var b=this;return b.element==null&&(b.element=a),b.element.textContent=c}),d(j,'$html',function(c){var b=this;return b.element==null&&(b.element=a),b.element.innerHTML=c}),d(j,'$set_style',function(d){var g=this,f=a;return!!(g.element==null&&(g.element=a),d==null&&(d=new Map),f="",c(d['$is_a?'](b('Hash'))))&&(e(d,'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f=i(i(f,""+b.$to_s()+": "),""+c.$to_s()+";")}),g.element.setAttribute("style",f),!0)},-1),d(j,'$merge_style',function(d){var f=this;return!!(d==null&&(d=new Map),c(d['$is_a?'](b('Hash'))))&&(e(d,'each_pair',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$element().style[b]=c.$to_s()},{$$s:f}),!0)},-1),d(j,'$set_bg_color',function(a){var b=this;return a==null&&(a=0),b.$merge_style(new Map([["background-color","#"+a.$to_s()]]))},-1),d(j,'$get_attribute',function(b){var g=this,f=a,d=a,e=a;return b==null&&(b=a),f="",c(b)&&(d=g.$element(),e=a,d.getAttributeNames().includes(b)&&(d.getAttribute(b)!=null?e=d.getAttribute(b):e=!0),f=e.$to_s()),f},-1),d(j,'$set_attribute',function(b,d){var f=this,e=a;return b==null&&(b=a),d==null&&(d=a),e=!1,c(b)&&(c(d)?e=f.$element().setAttribute(b,d):e=f.$element().setAttribute(b,null)),e},-1),d(j,'$clear_attribute',function(b){var e=this,d=a;return b==null&&(b=a),d=!1,c(b)&&(e.$element().removeAttribute(b),d=!0),d},-1),d(j,'$each_child',function d(){var f=d.$$p||a,b=this;return b.children==null&&(b.children=a),d.$$p=null,c(f['$respond_to?']("call"))?e(b.children.$values(),'each',[],function(b){return b==null&&(b=a),f.$call(b)}):b.children.$values().$each()}),d(j,'$every_child',function g(){var i=g.$$p||a,j=this,b=a,d=a,f=a;for(g.$$p=null,b=[],d=[j];c(h(d.$size(),0));)f=d.$shift(),c(f)&&c(h(f.$children().$keys().$size(),0))&&e(f.$children().$values(),'each',[],function(e){return e==null&&(e=a),b['$<<'](e),c(h(e.$children().$keys().$size(),0))?d['$<<'](e):a});return c(i['$respond_to?']("call"))?e(b,'each',[],function(b){return b==null&&(b=a),i.$call(b)}):b.$values().$each()}),d(j,'$find_child',function(d){var i=this,e=a,g=a,b=a;for(d==null&&(d=a),e=a,g=i.$children().$values();c(h(g.$size(),0));)if(b=g.$shift(),c(b))if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){e=b;break}return e},-1),d(j,'$find_descendant',function(d){var j=this,g=a,i=a,b=a;for(d==null&&(d=a),g=a,i=j.$children().$values();c(h(i.$size(),0));)if(b=i.$shift(),c(b)){if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){g=b;break}c(g)||e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),i['$<<'](b)})}return g},-1),d(j,'$find_descendants',function(d){var j=this,i=a,g=a,b=a;for(d==null&&(d=a),i=[],g=j.$children().$values();c(h(g.$size(),0));)b=g.$shift(),c(b)&&((f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d))&&i['$<<'](b),e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),g['$<<'](b)}));return i},-1),d(j,'$find_ancestor',function(d){var i=this,g=a,e=a,b=a;for(d==null&&(d=a),g=a,e=[i.$parent()];c(h(e.$size(),0));)if(b=e.$shift(),c(b)){if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){g=b;break}f(b.$component(),"page")||e['$<<'](b.$parent())}return g},-1),d(j,'$find_ancestors',function(d){var i=this,g=a,e=a,b=a;for(d==null&&(d=a),g=[],e=[i.$parent()];c(h(e.$size(),0));)b=e.$shift(),c(b)&&((f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d))&&g['$<<'](b),f(b.$component(),"page")||e['$<<'](b.$parent()));return g},-1)}(z[0],z),function(k,m){var f=l(k,'EventHandlers'),i=[f].concat(m),j=g.$r(i);return w(i[0],'EVENT_TYPES',g.large_array_unpack("abort,afterprint,animatedend,animationiteration,animationstart,beforeprint,beforeunload,blur,canplay,canplaythrough,change,click,contextmenu,copy,cut,dblclick,drag,dragend,dragcenter,dragleave,dragover,dragstart,drop,durationchange,ended,error,focus,focusin,focusout,fullscreenchange,fullscreenerror,hashchange,input,invalid,keydown,keypress,keyup,load,loadeddata,loadedmetadata,loadstart,message,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,offline,online,open,pagehide,pageshow,paste,play,playing,popstate,progress,ratechange,resize,reset,scroll,search,seeked,select,show,stalled,storage,submit,suspend,timeupdate,toggle,touchcancel,touchend,touchmove,touchstart,transitionend,unload,volumechange,waiting,wheel")),w(i[0],'EVENT_GENRES',new Map([["click","mouse"],["contextmenu","mouse"],["dblclick","mouse"],["mouseenter","mouse"],["mouseleave","mouse"],["mouseover","mouse"],["mouseup","mouse"],["mousedown","mouse"],["mousemove","mouse"],["mouseout","mouse"],["keydown","keyboard"],["keypress","keyboard"],["keyup","keyboard"],["touchcancel","touch"],["touchmove","touch"],["touchstart","touch"],["touchend","touch"],["animationstart","animation"],["animationend","animation"],["animationiteration","animation"],["animationpause","animation"],["animationresume","animation"],["animationstop","animation"],["input","input"],["drag","drag"],["dragend","drag"],["dragenter","drag"],["dragleave","drag"],["dragover","drag"],["dragstart","drag"],["drop","drag"],["wheel","wheel"],["abort","ui"],["beforeunload","ui"],["error","ui"],["load","ui"],["resize","ui"],["scroll","ui"],["select","ui"],["unload","ui"],["blur","focus"],["focus","focus"],["focusin","focus"],["focusout","focus"],["afterprint","event"],["beforeprint","event"],["canplay","event"],["canplaythrough","event"],["change","event"],["fullscreenchange","event"],["fullscreenerror","event"],["invalid","event"],["loadeddata","event"],["loadedmetadata","event"],["message","event"],["offline","event"],["online","event"],["open","event"],["close","event"],["pause","event"],["play","event"],["playing","event"],["progress","event"],["changerate","event"],["reset","event"],["search","event"],["seek","event"],["seeking","event"],["show","event"],["hide","event"],["stalled","event"],["submit","event"],["suspend","event"],["timeupdate","event"],["toggle","event"],["waiting","event"],["copy","clipboard"],["cut","clipboard"],["paste","clipboard"],["pagehide","transition"],["pageshow","transition"],["popstate","history"],["loadstart","progress"],["storage","storage"],["credentialchanged","ui"]])),w(i[0],'EVENT_FIELDS',new Map([["mouse",["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["keyboard",["altKey","charCode","code","ctrlKey","metaKey","isComposing","key","keyCode","location","shift","repeat","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["touch",["altKey","ctrlKey","metaKey","shiftKey","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["animation",["animationName","elapsedTime","pseudoElement","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["input",["data","inputType","isComposing","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["drag",["dataTranser","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["wheel",["deltaX","deltaY","deltaZ","deltaMode","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["ui",["detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["focus",["relatedTarget","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["event",["bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["transition",["persisted","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["history",["state","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["progress",["lengthComputable","loaded","total","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["storage",["key","newValue","oldValue","storageArea","url","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["clipboard",["clipboardData","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]]])),d(f,'$on',function h(e,f){var i=h.$$p||a,d=this,g=a;return d.event_handlers==null&&(d.event_handlers=a),d.event_listeners==null&&(d.event_listeners=a),h.$$p=null,e==null&&(e=a),f==null&&(f=!1),g=!1,c(d.event_handlers['$is_a?'](b('Hash')))||(d.event_handlers=new Map,d.event_listeners=new Map),c(e['$is_any?'](b('String'),b('Symbol')))&&c(i['$respond_to?']("call"))&&(d.event_handlers['$[]='](e.$to_s().$downcase().$to_sym(),i),d.event_listeners['$[]='](e.$to_s().$downcase().$to_sym(),d.$method("event_handler").$to_proc()),d.$element().addEventListener(e.$to_s().$downcase(),d.event_listeners['$[]'](e.$to_s().$downcase().$to_sym()),f),g=!0),g},-1),d(f,'$remove_listener',function(d){var b=this;return b.event_listeners==null&&(b.event_listeners=a),b.event_handlers==null&&(b.event_handlers=a),d==null&&(d=a),c(b.event_handlers['$[]'](d.$to_s().$downcase().$to_sym()))&&c(b.event_listeners['$[]'](d.$to_s().$downcase().$to_sym()))&&(b.$element().removeEventListener(d.$to_s().$downcase(),b.event_listeners['$[]'](d.$to_s().$downcase().$to_sym())),b.event_handlers.$delete(d.$to_s().$downcase().$to_sym()),b.event_listeners.$delete(d.$to_s().$downcase().$to_sym())),!0},-1),d(f,'$remove_listeners',function(){var b=this;return b.event_handlers==null&&(b.event_handlers=a),e(b.event_handlers.$keys().$clone(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$remove_listener(b)},{$$s:b}),!0}),d(f,'$event_handler',function(i){var e=this,f=a,d=a,g=a,h=a,k=a;return e.event_handlers==null&&(e.event_handlers=a),f=i.type.$to_s().$downcase().$to_sym(),d=new Map,c(e.event_handlers['$[]'](f))?(g=c(h=b(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers'),'EVENT_GENRES')['$[]'](f))?h:"event",c(g)&&(k=b(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers'),'EVENT_FIELDS')['$[]'](g),c(k)&&(serializer=function(a){if(a){var b={eventName:a.toString(),altKey:a.altKey,bubbles:a.bubbles,button:a.button,buttons:a.buttons,cancelBubble:a.cancelBubble,cancelable:a.cancelable,clientX:a.clientX,clientY:a.clientY,composed:a.composed,ctrlKey:a.ctrlKey,currentTarget:a.currentTarget?a.currentTarget.outerHTML:null,defaultPrevented:a.defaultPrevented,detail:a.detail,eventPhase:a.eventPhase,fromElement:a.fromElement?a.fromElement.outerHTML:null,isTrusted:a.isTrusted,layerX:a.layerX,layerY:a.layerY,metaKey:a.metaKey,movementX:a.movementX,movementY:a.movementY,offsetX:a.offsetX,offsetY:a.offsetY,pageX:a.pageX,pageY:a.pageY,relatedTarget:a.relatedTarget?a.relatedTarget.outerHTML:null,returnValue:a.returnValue,screenX:a.screenX,screenY:a.screenY,shiftKey:a.shiftKey,sourceCapabilities:a.sourceCapabilities?a.sourceCapabilities.toString():null,target:a.target?a.target.outerHTML:null,timeStamp:a.timeStamp,toElement:a.toElement?a.toElement.outerHTML:null,type:a.type,view:a.view?a.view.toString():null,which:a.which,x:a.x,y:a.y};return b}},d=JSON.stringify(serializer(i)),d=b('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])))),e.event_handlers['$[]'](f).$call(d)):a}),d(f,'$set_script',function(b,d){var e=this,f=a,i=a;if(b==null&&(b=""),d==null&&(d=a),f=!1,c(h(b.$size(),0)))try{c(b['$base64?']())&&(b=b.$decode64()),c(d)?(d.$remove_listeners(),d.$instance_eval(b)):(e.$remove_listeners(),e.$instance_eval(b)),f=!0}catch(a){if(g.rescue(a,[j('Exception')])){i=a;try{e.$log_error(new Map([["error",i],["parameters",new Map([["script",b]])]]))}finally{g.pop_exception(a)}}else throw a}return f},-1)}(z[0],z),function(r,l,m){var i=n(r,l,'Animation'),q=[i].concat(m),j=g.$r(q),k=i.$$prototype;return k.target_list=k.targets=k.origin=k.destination=k.options=k.tweens=a,i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers')),d(i,'$initialize',function(d,g){var f=this,h=a,k=a,i=a;return d==null&&(d=new Map),g==null&&(g=a),f.event_handlers=new Map,f.event_listeners=new Map,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("origin"))?c(d['$[]']("origin")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.origin=d['$[]']("origin").$unpersist():f.origin=d['$[]']("origin"):f.origin=a,c(d['$[]']("destination"))||f.$raise(j('ArgumentError'),"You MUST provide a :destination state for the object."),c(d['$[]']("destination")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.destination=d['$[]']("destination").$unpersist():f.destination=d['$[]']("destination"),c(d['$[]']("options"))?(f.options=new Map,c(d['$[]']("options")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?h=d['$[]']("options").$unpersist():h=d['$[]']("options"),k=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(h,'each_pair',[],function h(f,g){var b,d=h.$$s==null?this:h.$$s;return d.event_handlers==null&&(d.event_handlers=a),d.options==null&&(d.options=a),f==null&&(f=a),g==null&&(g=a),c(k.$keys()['$include?'](f))?c(g['$respond_to?']("call"))?(d.event_handlers['$[]='](f,g),(b=[f,g],e(d.options,'[]=',b),b[b.length-1])):d.$log_warn("Attempted to pass an invalid object as an event handler. "+f.$inspect()+" --> "+g.$inspect()):(b=[f,g],e(d.options,'[]=',b),b[b.length-1])},{$$s:f})):f.options=a,c(d['$[]']("targets"))||f.$raise(j('ArgumentError'),"You MUST provide a one or more :targets."),c(d['$[]']("targets")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.target_list=d['$[]']("targets").$unpersist():f.target_list=d['$[]']("targets")),f.uuid=(c(i=g)?i:b('GxG').$uuid_generate()).$to_s().$to_sym(),f.targets=a,f.tweens=[],f},-1),d(i,'$update_targets',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.target_list=d.$unpersist():f.target_list=d,e=!0),e},-1),d(i,'$update_origin',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.origin=d.$unpersist():f.origin=d,e=!0),e},-1),d(i,'$update_destination',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.destination=d.$unpersist():f.destination=d,e=!0),e},-1),d(i,'$update_options',function(d){var h=this,f=a,g=a,i=a;return d==null&&(d=a),f=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?g=d.$unpersist():g=d,h.options=new Map,i=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(g,'each_pair',[],function h(f,g){var b,d=h.$$s==null?this:h.$$s;return d.event_handlers==null&&(d.event_handlers=a),d.options==null&&(d.options=a),f==null&&(f=a),g==null&&(g=a),c(i.$keys()['$include?'](f))?c(g['$respond_to?']("call"))?(d.event_handlers['$[]='](f,g),(b=[f,g],e(d.options,'[]=',b),b[b.length-1])):d.$log_warn("Attempted to pass an invalid object as an event handler. "+f.$inspect()+" --> "+g.$inspect()):(b=[f,g],e(d.options,'[]=',b),b[b.length-1])},{$$s:h}),f=!0),f},-1),d(i,'$uuid',o("uuid")),d(i,'$compile',function(){var d=this,m=a,o=a,k=a,l=a,i=a,n=a,q=a;m=!1;try{d.targets=[],o=[],e(d.target_list.$keys(),'each',[],function k(i){var d=k.$$s==null?this:k.$$s;return d.target_list==null&&(d.target_list=a),i==null&&(i=a),f(i,"class")&&(c(d.target_list['$[]']("class")['$is_a?'](b('String')))||d.$raise(j('Exception'),"You MUST provide :class target as a String, not: "+d.target_list['$[]']("class").$class().$inspect()),e(d.target_list['$[]']("class").$split(" "),'each',[],function i(b){var j=i.$$s==null?this:i.$$s,d=a,f=a;return b==null&&(b=a),c(h(b.$size(),0))&&(d=document.getElementsByClassName(b),f=d.length.$to_i(),c(h(f,0)))?e(g.Range.$new(0,p(f,1),!1),'each',[],function g(e){var b=g.$$s==null?this:g.$$s,f=a;return b.targets==null&&(b.targets=a),e==null&&(e=a),f=d.item(e),c(b.targets['$include?'](f))?a:b.targets['$<<'](f)},{$$s:j}):a},{$$s:d})),f(i,"objects")&&(c(d.target_list['$[]']("objects")['$is_a?'](b('Array')))||d.$raise(j('Exception'),"You MUST provide :object target list as an Array, not: "+d.target_list['$[]']("objects").$class().$inspect()),e(d.target_list['$[]']("objects"),'each',[],function i(f){var d=i.$$s==null?this:i.$$s,g=a,h=a,e=a;return d.targets==null&&(d.targets=a),f==null&&(f=a),g=b(j('GxG'),'DISPLAY_DETAILS')['$[]']("object").$find_object(f.$to_s().$to_sym()),c(g)?(h=g.$element().attributes.getNamedItem('id')||0,c(h==0))?a:(e=document.getElementById(h),c(e)?c(d.targets['$include?'](e))?a:d.targets['$<<'](e):a):a},{$$s:d})),f(i,"elements")&&(c(d.target_list['$[]']("elements")['$is_a?'](b('Array')))||d.$raise(j('Exception'),"You MUST provide :elements target list as an Array, not: "+d.target_list['$[]']("elements").$class().$inspect()),e(d.target_list['$[]']("elements"),'each',[],function g(f){var d=g.$$s==null?this:g.$$s,b=a,e=a;return d.targets==null&&(d.targets=a),f==null&&(f=a),b=f.attributes.getNamedItem('id')||0,c(b==0)?a:(b=b.value,e=document.getElementById(b),c(e)?c(d.targets['$include?'](e))?a:d.targets['$<<'](e):a)},{$$s:d})),f(i,"assets"),a},{$$s:d}),c(h(d.targets.$size(),0))||d.$puts("No valid targets resulted."),e(d.targets,'each',[],function(b){return b==null&&(b=a),o.push(b)}),c(d.origin['$is_a?'](b('Hash')))?c(h(d.origin.$size(),0))?(k=new Map,e(d.origin,'each_pair',[],function(b,d){var c,g=a;return b==null&&(b=a),d==null&&(d=a),f(b,"attribue")||f(b,"attribute")?g="attr":g=b,(c=[g,d],e(k,'[]=',c),c[c.length-1])})):k=a:k=a,c(h(d.destination.$size(),0))?(l=new Map,e(d.destination,'each_pair',[],function(b,d){var c,g=a;return b==null&&(b=a),d==null&&(d=a),f(b,"attribue")||f(b,"attribute")?g="attr":g=b,(c=[g,d],e(l,'[]=',c),c[c.length-1])})):d.$raise(j('Exception'),"You MUST define a valid :destination state. not: "+d.destination.$inspect()),c(d.options['$is_a?'](b('Hash')))?c(h(d.options.$size(),0))?(i=new Map,n=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(d.options,'each_pair',[],function h(b,g){var d,f=h.$$s==null?this:h.$$s,j=a;return f.event_handlers==null&&(f.event_handlers=a),b==null&&(b=a),g==null&&(g=a),c(n.$keys()['$include?'](b))?(j=n['$[]'](b),c(f.event_handlers['$[]'](b)['$respond_to?']("call")))?(d=[j,f.event_handlers['$[]'](b)],e(i,'[]=',d),d[d.length-1]):a:c(["start_time"]['$include?'](b))?a:(d=[b,g],e(i,'[]=',d),d[d.length-1])},{$$s:d})):i=a:i=a,d.tweens=[],e(d.targets,'each',[],function e(b){var d=e.$$s==null?this:e.$$s;return d.tweens==null&&(d.tweens=a),b==null&&(b=a),c(k)?c(i)?d.tweens['$<<'](KUTE.fromTo(b,k.$to_n(),l.$to_n(),i.$to_n())):d.tweens['$<<'](KUTE.fromTo(b,k.$to_n(),l.$to_n())):c(i)?d.tweens['$<<'](KUTE.to(b,l.$to_n(),i.$to_n())):d.tweens['$<<'](KUTE.to(b,l.$to_n()))},{$$s:d}),m=!0}catch(b){if(g.rescue(b,[j('Exception')])){q=b;try{d.$log_error(new Map([["error",q]])),d.targets=a,d.tweens=[]}finally{g.pop_exception(b)}}else throw b}return m}),d(i,'$start',function(d){var f=this;return d==null&&(d=a),c(h(f.tweens.$size(),0))||f.$compile(),c(d['$is_a?'](b('Numeric')))||(d=window.performance.now()),c(h(f.tweens.$size(),0))?e(f.tweens,'each',[],function(b){return b==null&&(b=a),b.start(d)}):a},-1),d(i,'$stop',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.stop()}):a}),d(i,'$pause',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.pause()}):a}),d(i,'$resume',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.resume()}):a}),d(i,'$included',function(){var f=this,d=a;return d=[],c(f.targets)&&e(f.targets,'each',[],function(f){var e=a,g=a;return f==null&&(f=a),e=f.attributes.getNamedItem('id')||0,c(e==0)?a:(e=e.value,g=b(j('GxG'),'DISPLAY_DETAILS')['$[]']("object").$find_child(e.$to_s()),c(g))?d['$<<'](g):a}),d}),d(i,'$each_included',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d['$respond_to?']("call"))?e(f.$included(),'each',[],function(b){return b==null&&(b=a),d.$call(b)}):f.$included().$each()}),d(i,'$broadcast',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=a),e(d,'each_included',[],function(d){return d==null&&(d=a),d.$send(b,c)})},-1)}(z[0],null,z),function(i,j){var h=l(i,'AnimationSupport'),k=[h].concat(j),f=g.$r(k);return d(h,'$animate',function(d){var g=this,e=a,f=a;return d==null&&(d=a),c(d['$[]']("destination")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(e=b(b(b(b('GxG'),'Gui'),'Vdom'),'Animation').$new(new Map([["targets",new Map([["elements",[g.$element()]]])],["origin",d['$[]']("origin")],["destination",d['$[]']("destination")],["options",d['$[]']("options")]])),f=window.performance.now(),c(d['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(f=d['$[]']("options")['$[]']("start_time")),e.$compile(),e.$start(f),!0):(g.$log_warn("Ignoring invalid animation: NO valid :destination state specified (required). not: "+d['$[]']("destination").$inspect()),!1)},-1),d(h,'$show',function i(d){var h=i.$$p||a,g=this;return i.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),c(d['$[]']("destination")['$is_a?'](b('Hash')))&&c(d['$[]']("destination")['$[]']("opacity")['$is_a?'](b('Numeric')))&&(c(d['$[]']("origin")['$is_a?'](b('Hash')))?c(d['$[]']("origin")['$[]']("opacity")['$is_a?'](b('Numeric')))?g.$merge_style(new Map([["opacity",d['$[]']("origin")['$[]']("opacity")]])):g.$merge_style(new Map([["opacity",0]])):g.$merge_style(new Map([["opacity",0]]))),g.$set_state("hidden",!1),c(h['$respond_to?']("call"))&&(c(d['$[]']("options"))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",e(f('Proc'),'new',[],function(){return h.$call()}))),g.$animate(d)):(g.$set_state("hidden",!1),c(h['$respond_to?']("call"))&&h.$call()),b(b('GxG'),'Gui').$layout_refresh(),!0},-1),d(h,'$hide',function j(d){var i=j.$$p||a,g=this,h=a,k=a;return j.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),c(i['$respond_to?']("call"))?(c(d['$[]']("options"))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0),i.$call()},{$$s:g}))):(h=a,c(d['$[]']("options"))?c(d['$[]']("options")['$[]']("animationend")['$respond_to?']("call"))?(k=d['$[]']("options")['$[]']("animationend"),h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return k.$call(),b.$set_state("hidden",!0)},{$$s:g})):h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0)},{$$s:g}):(d['$[]=']("options",new Map),h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0)},{$$s:g})),c(h)&&(c(d['$[]']("options")['$is_a?'](b('Hash')))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",h))),g.$animate(d)):(g.$set_state("hidden",!0),c(i['$respond_to?']("call"))&&i.$call()),b(b('GxG'),'Gui').$layout_refresh(),!0},-1)}(z[0],z),function(k,m){var i=l(k,'ApplicationSupport'),n=[i].concat(m),j=g.$r(n);return d(i,'$find_parent_type',function(d){var i=this,g=a,f=a,e=a;if(d==null&&(d=a),g=a,c(d['$is_any?'](q,b('String'),b('Symbol'))))if(c(d['$is_any?'](b('String'),b('Symbol')))&&(d=b(j('GxG'),'Gui').$component_class(d.$to_s().$to_sym())),c(d['$is_a?'](q)))for(f=[i];c(h(f.$size(),0));)if(e=f.$shift(),c(e)){if(c(e['$is_a?'](d))){g=e;break}f['$<<'](e.$parent())}return g},-1),d(i,'$viewport',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'ApplicationViewport'))}),d(i,'$tree_node',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'TreeNode'))}),d(i,'$tree',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Tree'))}),d(i,'$window',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Window'))}),d(i,'$find_parent',function(d){var k=this,e=a,i=a,g=a,b=a;for(d==null&&(d=a),e=a,c(j('GxG')['$valid_uuid?'](d))?i=!0:i=!1,g=[k.$parent()];c(h(g.$size(),0));)if(b=g.$shift(),c(b)){if(c(i)){if(f(b.$uuid(),d)){e=b;break}}else if(f(b.$title(),d)){e=b;break}c(e)||g['$<<'](b.$parent())}return e},-1),d(i,'$find_child_type',function(d){var i=this,f=a,g=a,e=a;if(d==null&&(d=a),f=a,c(d['$is_any?'](q,b('String'),b('Symbol'))))if(c(d['$is_any?'](b('String'),b('Symbol')))&&(d=b(j('GxG'),'Gui').$component_class(d.$to_s().$to_sym())),c(d['$is_a?'](q)))for(g=i.$children().$values();c(h(g.$size(),0));)if(e=g.$shift(),c(e))if(c(e['$is_a?'](d))){f=e;break}return f},-1),d(i,'$find_child',function(d){var l=this,g=a,k=a,i=a,b=a;for(d==null&&(d=a),g=a,c(j('GxG')['$valid_uuid?'](d))?k=!0:k=!1,i=l.$children().$values();c(h(i.$size(),0));)if(b=i.$shift(),c(b)){if(c(k)){if(f(b.$uuid(),d)){g=b;break}}else if(f(b.$title(),d)){g=b;break}c(g)||e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),i['$<<'](b)})}return g},-1),d(i,'$find_peer',function(b){var c=this;return b==null&&(b=a),c.$parent().$find_child(b)},-1)}(z[0],z),function(f,h){var c=l(f,'ThemeSupport'),i=[c].concat(h),e=g.$r(i);return d(c,'$theme_icon',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_icon(c)},-1),d(c,'$theme_background',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_background(c)},-1),d(c,'$theme_widget',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_widget(c)},-1),d(c,'$theme_font',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_font(c)},-1),d(c,'$site_asset',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$site_asset(c)},-1)}(z[0],z),function(g,h){var b=n(g,h,'Factory');return b.$attr_reader("body"),d(b,'$initialize',function(c){var a=this;for(a.body=document.body;document.body.firstChild;)document.body.removeChild(document.body.firstChild)}),d(b,'$create_element',function(g,d,h,c){var i=this,b=a;return c==null&&(c=new Map),f(d,"body")?b=document.body:b=document.createElement(d),f(d,"body")||(f(c['$[]']("prepend"),!0)?h.$element().insertBefore(b,c['$[]']("prepend").$element()):h.$element().appendChild(b)),b.classList.add(i.$dasherize(g.$class().$name())),D(c['$has_key?']("id"))&&(b.id=g.$uuid().$to_s()),e(c,'each',[],function(c,d){switch(c==null&&(c=a),d==null&&(d=a),c.valueOf()){case"prepend":return a;case"content":return b.appendChild(document.createTextNode(d));break;default:return b.setAttribute(c,d)}}),b},-4),d(b,'$dasherize',function(c){var b=a;return b=c.$gsub("::","-").$downcase().$gsub("_","-"),f(b['$[]'](0),"-")&&(b=b['$[]'](u(1,-1,!1))),b}),d(b,'$camelize',function(b){return c(b['$!~'](/-/))?b:e(b,'gsub',[/(?:-|(\/))([a-z\d]*)/],function(){var b;return""+((b=y['~'])===a?a:b['$[]'](1))+((b=y['~'])===a?a:b['$[]'](2)).$capitalize()}).$strip()})}(z[0],null),function(q,l,m){var i=n(q,l,'BaseElement'),p=[i].concat(m),j=g.$r(p),k=i.$$prototype;return k.uuid=k.settings=k.states=k.component=k.parent=a,i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ElementMethods')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'AnimationSupport')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ApplicationSupport')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ThemeSupport')),i.$attr_reader("uuid","title","component","parent","children","element","domtype","settings"),d(i,'$set_settings',function(b){var c=this;return b==null&&(b=a),c.settings=b},-1),x(i,"settings=","set_settings"),d(i,'$initialize',function(k,f,g){var d=this,i=a;return f==null&&(f=new Map),g==null&&(g=new Map),c(f['$is_a?'](b(b(j('GxG'),'Database'),'DetachedHash')))?(d.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c(h(f['$[]']("title").$to_s().$size(),0))?c(f['$[]']("title").$to_s().$include("Untitled "))?d.title="Untitled Component "+d.uuid.$to_s():d.title=f['$[]']("title").$to_s():d.title=f.$title().$to_s()):(d.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),d.title=(c(i=f['$[]']("title"))?i:"Untitled Component "+d.uuid.$to_s()).$to_s()),d.component=(c(i=f['$[]']("component"))?i:"unknown").$to_s().$downcase().$to_sym(),d.parent=k,c(f['$[]']("settings")['$is_a?'](b(b(j('GxG'),'Database'),'DetachedHash')))?d.settings=f['$[]']("settings").$unpersist():c(f['$[]']("settings")['$is_a?'](b('Hash')))?d.settings=f['$[]']("settings"):d.settings=new Map,c(f['$respond_to?']("uuid"))?d.settings['$[]=']("template",f.$uuid().$to_s().$to_sym()):d.settings['$[]=']("template",a),c(g['$[]']("application"))?d.application=g['$[]']("application"):d.application=a,d.children=new Map,d.element=a,d.domtype="div",d.states=new Map,d.states['$[]='](d.component.$to_s().$gsub(".","-").$to_sym(),!0),c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("states")['$is_any?'](b('Array'),b(b(j('GxG'),'Database'),'DetachedArray')))&&e(f['$[]']("options")['$[]']("states"),'each',[],function f(c){var b,d=f.$$s==null?this:f.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1])},{$$s:d}),d.style=new Map,c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("style")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&(d.style=f['$[]']("options")['$[]']("style")),d.options=new Map,c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&e(f['$[]']("options"),'each_pair',[],function h(b,f){var d,g=h.$$s==null?this:h.$$s;return g.options==null&&(g.options=a),b==null&&(b=a),f==null&&(f=a),c(["background-color","icon","label","data","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]['$include?'](b.$to_s().$to_sym()))?a:(d=[b.$to_s().$to_sym(),f.$to_s()],e(g.options,'[]=',d),d[d.length-1])},{$$s:d}),d.event_handlers=new Map,d.event_listeners=new Map,d.$creation(),c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("content")['$is_a?'](b('String')))&&d.$set_text(f['$[]']("content")),d},-2),d(i,'$parent',o("parent")),d(i,'$root',function(){var g=this,e=a,d=a,b=a;for(e=a,d=[g.parent];c(h(d.$size(),0));)if(b=d.$shift(),c(b)){if(f(b.$component(),"page")){e=b;break}d['$<<'](b.$parent())}return e}),d(i,'$factory',function(){var a=this;return a.$root().$factory()}),d(i,'$build',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=new Map),d.$page().$build_components(d,b,c)},-1)}(z[0],null,z),function(f,g){var b=n(f,g,'BaseInputElement'),e=b.$$prototype;return e.options=e.element=e.disabled=a,d(b,'$_before_create',function e(){var f=e.$$p||a,b=this,d=a;return e.$$p=null,s(b,t(b,'_before_create',e,!1,!0),'_before_create',[],null),b.domtype="input",c(d=b.options['$[]']("type"))?d:b.options['$[]=']("type","text"),c(b.options['$[]']("content"))&&b.options['$[]=']("value",b.options.$delete("content")),b.disabled=c(d=b.options['$[]']("disabled"))&&d}),d(b,'$value',function(){var a=this;return a.element.value}),d(b,'$value=',function(a){var b=this;return b.element.value=a}),d(b,'$_after_create',function d(){var e=d.$$p||a,b=this;return d.$$p=null,s(b,t(b,'_after_create',d,!1,!0),'_after_create',[],null),c(b.disabled)?b.$disable():a}),d(b,'$disable',function(){var a=this;return a.$set_attribute("disabled","disabled")}),d(b,'$enable',function(){var a=this;return a.$clear_attribute("disabled")})}(z[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement')),function(b,c){var e=n(b,c,'BaseClickableElement');return d(e,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,s(c,t(c,'_before_create',b,!1,!0),'_before_create',[],null)})}(z[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(s,o,p){var j=n(s,o,'Page'),q=[j].concat(p),l=g.$r(q),m=j.$$prototype;return m.theme_prefix=m.settings=m.element=m.uuid=m.title=m.title_registry=m.factory=a,j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ElementMethods')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'EventHandlers')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'AnimationSupport')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ApplicationSupport')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ThemeSupport')),j.$attr_reader("uuid","title","component","parent","children","domtype","settings"),d(j,'$set_settings',function(b){var c=this;return b==null&&(b=a),c.settings=b},-1),x(j,"settings=","set_settings"),d(j,'$get_library',function(d){var h=a;return d==null&&(d=a),h=a,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?function(){try{var i=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){var j=a;if(b==null&&(b=a),f(b.$title(),d['$[]']("library").$to_s())&&f(b.$type(),c(j=d['$[]']("type"))?j:b.$type()))if(c(d['$[]']("maximum")))if(c(g.Range.$new(d['$[]']("minimum").$to_f(),d['$[]']("maximum").$to_f(),!1)['$include?'](b.$version())))h=b,i.$throw(a,e.$$is_lambda);else return a;else if(c(A(b.$version(),d['$[]']("minimum").$to_f())))h=b,i.$throw(a,e.$$is_lambda);else return a;else return a})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}():c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()))?h=b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()):function(){try{var c=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){if(b==null&&(b=a),f(b.$title(),d))h=b,c.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h},-1),d(j,'$library_loaded?',function(d){var h=a;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(h=!1,function(){try{var i=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){var j=a;if(b==null&&(b=a),f(b.$title(),d['$[]']("library").$to_s())&&f(b.$type(),(c(j=d['$[]']("type"))?j:b.$type()).$to_s()))if(c(d['$[]']("maximum")))if(c(g.Range.$new(d['$[]']("minimum").$to_f(),d['$[]']("maximum").$to_f(),!1)['$include?'](b.$version())))h=b['$loaded?'](),i.$throw(a,e.$$is_lambda);else return a;else if(c(A(b.$version(),d['$[]']("minimum").$to_f())))h=b['$loaded?'](),i.$throw(a,e.$$is_lambda);else return a;else return a})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}(),h):!!c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()))||(h=!1,function(){try{var c=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){if(b==null&&(b=a),f(b.$title(),d))h=b['$loaded?'](),c.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h)},-1),d(j,'$load_library',function h(d){var i=h.$$p||a,g=a,f=a;return h.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$[]']("maximum"))?g=d['$[]']("maximum").$to_f():g=a,e(b(l('GxG'),'CONNECTION'),'library_pull',[new Map([["library",d['$[]']("library").$to_s()],["type",(c(f=d['$[]']("type"))?f:"text/ruby").$to_s()],["minimum",(c(f=d['$[]']("minimum"))?f:0).$to_f()],["maximum",g],["dependencies",!0],["loaded",b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$keys()]])],function(d){return d==null&&(d=a),c(d['$is_a?'](b('Hash')))&&c(d['$[]']("result")['$is_a?'](b('Array')))?e(d['$[]']("result"),'each',[],function(e){var d=a;return e==null&&(e=a),c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$keys()['$include?'](e['$[]']("uuid").$to_s().$to_sym()))?a:(d=e['$[]']("data"),c(d['$is_a?'](b('String')))?(c(d['$base64?']())&&(d=d.$decode64()),c(d['$json?']())&&(d=b('JSON').$parse(d,new Map([["symbolize_names",!0]]))),c(d['$is_a?'](b('Hash')))&&(d=b(b('GxG'),'Database').$process_import(d)),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]='](e['$[]']("uuid").$to_s().$to_sym(),b(b('GxG'),'Library').$new(d)),c(i['$respond_to?']("call")))?i.$call(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](e['$[]']("uuid").$to_s().$to_sym())):a):a)}):a})):a},-1),d(j,'$load_libraries',function g(d){var h=g.$$p||a,i=this,f=a;return g.$$p=null,d==null&&(d=[]),f=!0,c(d['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e(d,'each',[],function g(d){var h=g.$$s==null?this:g.$$s;return d==null&&(d=a),function(){try{var g=k('break');return e(b(l('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_library',[d],function d(b){var e=d.$$s==null?this:d.$$s;if(b==null&&(b=a),c(b['$loaded?']()))return a;e.$log_warn("Unable to load library: "+b.$title()),f=!1,g.$throw(a,d.$$is_lambda)},{$$s:h})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}()},{$$s:i}),c(h['$respond_to?']("call"))&&h.$call(f),f},-1),d(j,'$application_open',function(d,f){var g=this,h=a,j=a;return d==null&&(d=new Map),f==null&&(f=new Map),h=!1,c(d['$is_a?'](b('Hash')))?(j=e(l('Proc'),'new',[],r(a)),g.$set_busy(!0),e(b(l('GxG'),'CONNECTION'),'application_open',[d,j],function j(d){var g=j.$$s==null?this:j.$$s;return d==null&&(d=a),c(d['$is_a?'](b('Hash')))?c(d['$[]']("result")['$is_a?'](b('Hash')))?e(b(l('GxG'),'CONNECTION'),'pull_object',[d['$[]']("result")['$[]']("location")],function e(c){var g=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(l('GxG'),'APPLICATIONS')['$[]']("processes")['$[]='](d['$[]']("result")['$[]']("application").$to_s().$to_sym(),b(l('GxG'),'Application').$new(d['$[]']("result").$merge(new Map([["source",c]])))),h=b(l('GxG'),'APPLICATIONS')['$[]']("processes")['$[]'](d['$[]']("result")['$[]']("application").$to_s().$to_sym()).$run(f),g.$set_busy(!1)},{$$s:g}):g.$log_warn(i("Error opening Application: ",d.$inspect())):g.$log_warn("Malformed response: "+d.$inspect())},{$$s:g})):g.$log_warn("Invalid Argument: "+d.$inspect()),h},-1),d(j,'$site_asset',function(e){var d=a;return e==null&&(e=a),c(window.location.href['$include?']("https://"))?d=i("https://",window.location.host):d=i("http://",window.location.host),C(b(b('GxG'),'CONNECTION').$relative_url().$to_s()['$[]'](0),"/")&&(d=i(d,"/")),c(e)?i(d,l('File').$expand_path(i(i(b(b('GxG'),'CONNECTION').$relative_url().$to_s(),"/"),e.$to_s()))):""},-1),d(j,'$theme_icon',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/icons/"),b.$to_s()):""},-1),d(j,'$theme_background',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/backgrounds/"),b.$to_s()):""},-1),d(j,'$theme_widget',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/widgets/"),b.$to_s()):""},-1),d(j,'$theme_font',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/fonts/"),b.$to_s()):""},-1),d(j,'$theme_window_title_layout',function(){return new Map([["left",["close","minimize","maximize"]],["center",["title"]],["right",[]]])}),d(j,'$build_components',function(i,j,d){var l=a,k=a,g=a;if(i==null&&(i=a),j==null&&(j=a),d==null&&(d=new Map),l=!1,c(i)||(i=b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")),c(i)&&c(j['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray')))){for(k=[new Map([["parent",i],["content",j]])];c(h(k.$size(),0));)g=k.$shift(),c(g)&&e(g['$[]']("content"),'each',[],function(e){var i=a;return e==null&&(e=a),i=g['$[]']("parent").$add_child(e,d),c(h(e['$[]']("content").$size(),0))&&k['$<<'](new Map([["parent",i],["content",e['$[]']("content")]])),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.application.viewport")&&c(d['$[]']("application"))&&(i.$set_application(d['$[]']("application")),c(d['$[]']("application").$get_viewport(i.$uuid()))||d['$[]']("application").$link_viewport(i)),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window")&&c(d['$[]']("application"))&&(d['$[]']("application").$link_window(i),i.$set_application(d['$[]']("application"))),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window.dialog")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu.bar")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),c(g['$[]']("parent")['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))&&c(e['$[]']("options")['$[]']("track"))?g['$[]']("parent").$track_deltas(i.$uuid(),i,e['$[]']("options")['$[]']("track")):a});l=!0}return l},-1),d(j,'$build',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=new Map),d.$build_components(d,b,c)},-1),d(j,'$build_page',function(f){var d=this,g=a;return f==null&&(f=a),c(f['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(d.element=document.body,d.settings=f['$[]']("settings"),d.theme_prefix=i(b(b('GxG'),'CONNECTION').$relative_url(),"/themes/"+(c(g=d.settings['$[]']("theme"))?g:"default")),d.uuid=f.$uuid().$to_s().$to_sym(),d.element.id=d.uuid.$to_s(),d.title=d.settings['$[]']("page_title").$to_s(),document.title=d.title.$to_s(),d.component="org.gxg.gui.page",d.parent=d,d.children=new Map,d.domtype="body",d.states=new Map([["org-gxg-gui-page",!0]]),c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("states")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e(f['$[]']("options")['$[]']("states"),'each',[],function f(c){var b,d=f.$$s==null?this:f.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1])},{$$s:d}),d.style=new Map,c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("style")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.style=f['$[]']("options")['$[]']("style")),d.options=new Map,c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&e(f['$[]']("options"),'each_pair',[],function h(b,f){var d,g=h.$$s==null?this:h.$$s;return g.options==null&&(g.options=a),b==null&&(b=a),f==null&&(f=a),c(["background-color","data","icon","label","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]['$include?'](b.$to_s().$to_sym()))?a:(d=[b.$to_s().$to_sym(),f.$to_s()],e(g.options,'[]=',d),d[d.length-1])},{$$s:d}),d.event_handlers=new Map,d.event_listeners=new Map,d.$creation(),c(f['$[]']("script")['$is_a?'](b('String')))&&c(h(f['$[]']("script").$size(),0))&&d.$set_script(f['$[]']("script")),d.$build_components(d,f['$[]']("content"))):a},-1),d(j,'$initialize',function(d){var c=this;return d==null&&(d=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("object",c),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["onbeforeunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["beforeunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["onunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),c.theme_prefix=i(b(b('GxG'),'CONNECTION').$relative_url(),"/themes/"+b(b('GxG'),'DISPLAY_DETAILS')['$[]']("theme")),c.settings=a,c.busy=!1,c.window_switcher=a,c.window_registry=new Map,c.dialog=a,c.dialog_queue=[],c.title_registry=new Map,c.$build_page(d),c},-1),d(j,'$find_object_by_dom_id',function(f){var m=this,j=a,l=a,g=a,d=a;for(f==null&&(f=a),j=a,c(f['$is_a?'](b('Numeric')))?f=i("_",f.$to_i().$to_s()):f=f.$to_s(),l=[m];c(h(l.$size(),0));){if(g=l.$shift(),d=g.$element().attributes.getNamedItem('id')||0,!c(d==0))if(d=d.value,c(d.$to_s()==f.$to_s())){j=g;break}c(g['$respond_to?']("children"))&&function(){try{var b=k('break');return e(g.$children().$keys(),'each',[],function h(e){if(e==null&&(e=a),d=g.$children()['$[]'](e).$element().attributes.getNamedItem('id')||0,c(d==0))return a;if(d=d.value,c(d.$to_s()==f.$to_s()))j=g.$children()['$[]'](e),b.$throw(a,h.$$is_lambda);else return l['$<<'](g.$children()['$[]'](e))})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()}return j},-1),d(j,'$find_object',function(d){var i=this,g=a,f=a,b=a;for(d==null&&(d=a),g=a,f=[i];c(h(f.$size(),0));)if(b=f.$shift(),c(b['$respond_to?']("children"))){if(c(b.$children()['$[]'](d))){g=b.$children()['$[]'](d);break}e(b.$children().$keys(),'each',[],function(c){return c==null&&(c=a),f['$<<'](b.$children()['$[]'](c))})}return g},-1),d(j,'$find_object_by',function(b){var h=this,d=a,g=a;return b==null&&(b=a),d=a,c(l('GxG')['$valid_uuid?'](b))?g=!0:g=!1,function(){try{var i=k('break');return e(h.title_registry.$keys(),'each',[],function j(e){var h=j.$$s==null?this:j.$$s;if(h.title_registry==null&&(h.title_registry=a),e==null&&(e=a),f(g,!0))if(c(h.title_registry['$[]'](e).$to_s()['$include?'](b.$to_s())))d=h.$find_object(e),i.$throw(a,j.$$is_lambda);else return a;else if(f(b,h.title_registry['$[]'](e)))d=h.$find_object(e),i.$throw(a,j.$$is_lambda);else return a},{$$s:h})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}(),d},-1),d(j,'$register_object',function(b,d){var e=this;return!!(b==null&&(b=a),d==null&&(d=a),c(b)&&c(d))&&(e.title_registry['$[]='](d.$uuid(),b.$to_s()),!0)},-1),d(j,'$unregister_object',function(e){var f=this,d=a;return!!(e==null&&(e=a),c(e))&&(d=f.$find_object_by(e),c(d)&&(c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))&&d.$detach(),f.title_registry.$delete(d.$uuid())),!0)},-1),d(j,'$factory',function(){var d=this,e=a;return d.factory=c(e=d.factory)?e:b(b(b(l('GxG'),'Gui'),'Vdom'),'Factory').$new(d)}),d(j,'$element',function(){var a=this;return a.$factory().$body()}),d(j,'$parent',B),d(j,'$root',B),d(j,'$domclear',function(){while(document.body.firstChild)document.body.removeChild(document.body.firstChild);return!0}),d(j,'$clear',function(){var b=this,c=a;return e(b,'all_descendants',[],function(b){return b==null&&(b=a),b.$remove_listeners()}),b.$remove_listeners(),e(b,'each_child',[],function(b){return b==null&&(b=a),b.$destroy()}),c=document.body.getAttributeNames(),e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$clear_attribute(b)},{$$s:b}),!0})}(z[0],null,z),j(H,'$load_page',function(d){var g=this,i=a,j=a;return d==null&&(d=a),c(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$is_any?'](b(b(b('GxG'),'Gui'),'Page'),b(b(b(b('GxG'),'Gui'),'Vdom'),'Page')))&&(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$clear(),b(b(b('GxG'),'Gui'),'Vdom').$clear_rules(),b(b(b('GxG'),'Gui'),'Vdom').$refresh_css_cache()),i=c(j=d['$[]']("settings")['$[]']("theme"))?j:"default",e(b(b('GxG'),'CONNECTION'),'pull_object',["/Public/www/content/themes/"+i],function h(g){var i=h.$$s==null?this:h.$$s;return g==null&&(g=a),c(g['$is_a?'](b('Array')))?(e(g['$[]'](0)['$[]']("resources"),'each',[],function(c){return c==null&&(c=a),f(c['$[]']("resource_type"),"font-face")?b(b(b('GxG'),'Gui'),'Vdom').$load_font(c):a}),e(g['$[]'](0)['$[]']("rules"),'each_pair',[],function(c,d){return c==null&&(c=a),d==null&&(d=a),b(b(b('GxG'),'Gui'),'Vdom').$set_rule(c,d)}),c(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$is_any?'](b(b(b('GxG'),'Gui'),'Page'),b(b(b(b('GxG'),'Gui'),'Vdom'),'Page')))?b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$build_page(d):b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("object",b(b(b('GxG'),'Gui'),'Page').$new(d)),b(b('GxG'),'Gui').$layout_refresh()):i.$log_error(new Map([["error",G('Exception').$new("Invalid theme object as response.")]]))},{$$s:g}),c(d['$[]']("requirements")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&c(h(d['$[]']("requirements").$size(),0))&&g.$load_libraries(d['$[]']("requirements")),c(d['$[]']("auto_start")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&c(h(d['$[]']("auto_start").$size(),0))&&e(d['$[]']("auto_start"),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$application_open(new Map([["name",b['$[]']("name")],["restore",!0]]))},{$$s:g}),!0},-1),j(H,'$navigate_to',function(j){var k=this,d=a,l=a;return j==null&&(j=""),c(h(b(b('GxG'),'CONNECTION').$relative_url().$to_s().$size(),0))?d=j['$[]'](g.Range.$new(b(b('GxG'),'CONNECTION').$relative_url().$size(),-1,!1)):d=j,(f(d,"/")||f(d,""))&&(d="/index"),f(d['$[]'](0),"/")||(d=i("/",d)),b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("host_path",d),c(b(G('GxG'),'PAGES')['$[]'](d))?b(b(G('GxG'),'Gui'),'Vdom').$load_page(b(G('GxG'),'PAGES')['$[]'](d)):(l=e(G('Proc'),'new',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$log_error(b.$inspect())},{$$s:k}),e(b(b('GxG'),'CONNECTION'),'pull_object',["/Public/www/content/pages"+d,l],function f(e){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),g.$puts("Response (Page Load): "+e.$inspect()),c(e['$is_any?'](b('Array')))?(b(G('GxG'),'PAGES')['$[]='](d,e['$[]'](0)),b(b(G('GxG'),'Gui'),'Vdom').$load_page(b(G('GxG'),'PAGES')['$[]'](d))):g.$log_error(new Map([["error",G('Exception').$new("Invalid page object as response.")]])),b(b('GxG'),'Gui').$layout_refresh()},{$$s:k}))},-1)}(z[0],z)}(z[0],z)}(z[0],z)},Opal.modules["web/gxg_foundation"]=function(j){var n=j.module,f=j.klass,d=j.send2,e=j.find_super,g=j.send,c=j.def,h=j.truthy,q=j.rb_gt,i=j.eqeq,r=j.const_set,m=j.defs,s=j.Class,p=j.neqeq,o=j.return_ivar,k=j.rb_plus,l=[],b=j.nil,a=j.$$$;return j.add_stubs('[]=,to_s,clone,values,children,>,size,shift,==,domtype,to_sym,title,value,each,<<,delete,[],on,index,keys,component_class,is_a?,is_any?,component_registered?,!=,log_warn,inspect,register_component_class,include?,new_component,title=,build_components,page,find_object_by,set_text,state_active?,set_state,application,menu_item_select,new,add_child,+,set_attribute,uuid,set_script,find_descendant,raise,downcase,value=,private,log_error'),function(l,o){var t=n(l,'GxG'),k=[t].concat(o);return function(t,u){var o=n(t,'Gui'),k=[o].concat(u),l=j.$r(k);return f(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'Page'),'Page'),function(i,j){var a=f(i,j,'Abbreviation'),h=a.$$prototype;return h.title=h.options=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="abbr",(c=["title",a.title.$clone().$to_s()],g(a.options,'[]=',c),c[c.length-1])})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Address');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="address"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Area');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="area"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bold');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="b"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bdi');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="bdi"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bdo');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="bdo"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'BlockQuote');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="blockquote"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Break');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="br"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Caption');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="caption"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Cite');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="cite"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Code');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="code"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Column');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="col"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ColumnGroup');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="colgroup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Data');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="data"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DataList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="datalist"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Description');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dd"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Deleted');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="del"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Details');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="details"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Dfn');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dfn"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Dialog');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dialog"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Division');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DescriptionList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dl"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DescriptionTerm');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dt"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Emphasis');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="em"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Figure');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="figure"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'FigureCaption');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="figcaption"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ThemeDivider');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="hr"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Italic');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="i"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'InlineFrame');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="iframe"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Insertion');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ins"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'KeyboardKey');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="kbd"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Map');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="map"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Mark');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="mark"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Meter');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="meter"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'NoScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="noscript"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Object');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="object"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'OptionGroup');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="optgroup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Parameter');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="param"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Picture');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="picture"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Preformatted');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="pre"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Progress');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="progress"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Quotation');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="q"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'StrikeThrough');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="s"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Sample');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="samp"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Source');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="source"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Strong');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="strong"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Small');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="small"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Style');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="style"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'SubScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="sub"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Summary');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="summary"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'SuperScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="sup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Svg');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="svg"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Template');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="template"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Time');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="time"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Track');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="track"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Misspelled');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="u"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Variable');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="var"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'WordBreak');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="wbr"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="header"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Navigation');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="nav"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Main');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="main"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Section');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="section"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Article');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="article"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Aside');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="aside"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Footer');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="footer"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(j,k){var a=f(j,k,'Form');return c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"}),c(a,'$form_data',function(){var e=this,d=b,c=b,a=b;for(d=new Map,c=e.$children().$values();h(q(c.$size(),0));)a=c.$shift(),h(a)&&(i(a.$domtype(),"input")?d['$[]='](a.$title().$to_s().$to_sym(),a.$value()):g(a.$children().$values(),'each',[],function(a){return a==null&&(a=b),c['$<<'](a)}));return d})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,i){var a=f(h,i,'ButtonInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","button"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(h,i){var a=f(h,i,'SubmitButton'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","submit"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(g,h){var a=f(g,h,'Block'),i=a.$$prototype;return i.options=b,c(a,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",a.options.$delete("type"),!0})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(h,i){var a=f(h,i,'CheckBox'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","checkbox"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(i,j){var a=f(i,j,'Image'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this,i=b;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="image",h(a.options['$[]']("source"))&&a.options['$[]=']("src",a.options.$delete("source")),h(i=a.options['$[]']("alt"))?i:(c=["alt",a.options['$[]']("src")],g(a.options,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Video'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="video",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Audio'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="audio",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Canvas'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="canvas",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,i){var a=f(h,i,'HiddenInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","hidden"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'FileInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","file"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'TextInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","text"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'PasswordInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","password"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'ResetInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","reset"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'RadioButton'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","radio"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'ColorPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","color"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'DatePicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","date"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'DateTimeLocal'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","datetime-local"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'EmailInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","email"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'MonthPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","month"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'NumberInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","number"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'RangeInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","range"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'SearchInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","search"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'PhoneInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","tel"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'TimePicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","time"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'UrlInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","url"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'WeekPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","week"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(a,g){var h=f(a,g,'Label');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="label"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TextArea');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="textarea"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Output');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="output"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Paragraph');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="p"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header1');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h1"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header2');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h2"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header3');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h3"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header4');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h4"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header5');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h5"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header6');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h6"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'List');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ul"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'OrderedList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ol"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ListItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Anchor');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="a"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(g,i){var a=f(g,i,'ExternalLink'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var g=c.$$p||b,a=this,f=b;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),h(f=a.options['$[]']("target"))?f:a.options['$[]=']("target","_blank"),a.domtype="a"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(j,k){var a=f(j,k,'Button'),h=a.$$prototype;return h.options=h.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.options['$[]']("type"),"button")||a.options['$[]=']("type","button"),i(a.states['$[]']("button"),!0)?b:(c=["button",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),g(c,'on',["click"],function(a){return a==null&&(a=b),document.activeElement.blur()})})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Table');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="table"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableHeader');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="th"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableRow');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="tr"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableCell');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="td"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTable'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("table"),!0)?b:(c=["table",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableHeader'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("th"),!0)?b:(c=["th",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableRow'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("tr"),!0)?b:(c=["tr",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableCell'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("td"),!0)?b:(c=["td",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Span');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="span"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Select');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="select"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Option');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="option"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'FieldSet'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="fieldset",i(a.states['$[]']("fieldset"),!0)?b:(c=["fieldset",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Legend');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="legend"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),r(k[0],'COMPONENT_CLASSES',new Map([["org.gxg.gui.page",a(a(a('GxG'),'Gui'),'Page')],["org.gxg.gui.abbreviation",a(a(a('GxG'),'Gui'),'Abbreviation')],["org.gxg.gui.address",a(a(a('GxG'),'Gui'),'Address')],["org.gxg.gui.area",a(a(a('GxG'),'Gui'),'Area')],["org.gxg.gui.bold",a(a(a('GxG'),'Gui'),'Bold')],["org.gxg.gui.bdi",a(a(a('GxG'),'Gui'),'Bdi')],["org.gxg.gui.bdo",a(a(a('GxG'),'Gui'),'Bdo')],["org.gxg.gui.blockquote",a(a(a('GxG'),'Gui'),'BlockQuote')],["org.gxg.gui.break",a(a(a('GxG'),'Gui'),'Break')],["org.gxg.gui.caption",a(a(a('GxG'),'Gui'),'Caption')],["org.gxg.gui.cite",a(a(a('GxG'),'Gui'),'Cite')],["org.gxg.gui.code",a(a(a('GxG'),'Gui'),'Code')],["org.gxg.gui.column",a(a(a('GxG'),'Gui'),'Column')],["org.gxg.gui.column.group",a(a(a('GxG'),'Gui'),'ColumnGroup')],["org.gxg.gui.data",a(a(a('GxG'),'Gui'),'Data')],["org.gxg.gui.data.list",a(a(a('GxG'),'Gui'),'DataList')],["org.gxg.gui.description",a(a(a('GxG'),'Gui'),'Description')],["org.gxg.gui.deleted",a(a(a('GxG'),'Gui'),'Deleted')],["org.gxg.gui.details",a(a(a('GxG'),'Gui'),'Details')],["org.gxg.gui.dfn",a(a(a('GxG'),'Gui'),'Dfn')],["org.gxg.gui.dialog",a(a(a('GxG'),'Gui'),'Dialog')],["org.gxg.gui.division",a(a(a('GxG'),'Gui'),'Division')],["org.gxg.gui.description.list",a(a(a('GxG'),'Gui'),'DescriptionList')],["org.gxg.gui.description.item",a(a(a('GxG'),'Gui'),'DescriptionTerm')],["org.gxg.gui.emphasis",a(a(a('GxG'),'Gui'),'Emphasis')],["org.gxg.gui.figure",a(a(a('GxG'),'Gui'),'Figure')],["org.gxg.gui.figure.caption",a(a(a('GxG'),'Gui'),'FigureCaption')],["org.gxg.gui.theme.divider",a(a(a('GxG'),'Gui'),'ThemeDivider')],["org.gxg.gui.italic",a(a(a('GxG'),'Gui'),'Italic')],["org.gxg.gui.frame.inline",a(a(a('GxG'),'Gui'),'InlineFrame')],["org.gxg.gui.insertion",a(a(a('GxG'),'Gui'),'Insertion')],["org.gxg.gui.keyboard.key",a(a(a('GxG'),'Gui'),'KeyboardKey')],["org.gxg.gui.map",a(a(a('GxG'),'Gui'),'Map')],["org.gxg.gui.mark",a(a(a('GxG'),'Gui'),'Mark')],["org.gxg.gui.meter",a(a(a('GxG'),'Gui'),'Meter')],["org.gxg.gui.noscript",a(a(a('GxG'),'Gui'),'NoScript')],["org.gxg.gui.object",a(a(a('GxG'),'Gui'),'Object')],["org.gxg.gui.option.group",a(a(a('GxG'),'Gui'),'OptionGroup')],["org.gxg.gui.parameter",a(a(a('GxG'),'Gui'),'Parameter')],["org.gxg.gui.picture",a(a(a('GxG'),'Gui'),'Picture')],["org.gxg.gui.preformatted",a(a(a('GxG'),'Gui'),'Preformatted')],["org.gxg.gui.progress",a(a(a('GxG'),'Gui'),'Progress')],["org.gxg.gui.quotation",a(a(a('GxG'),'Gui'),'Quotation')],["org.gxg.gui.strike.through",a(a(a('GxG'),'Gui'),'StrikeThrough')],["org.gxg.gui.sample",a(a(a('GxG'),'Gui'),'Sample')],["org.gxg.gui.section",a(a(a('GxG'),'Gui'),'Section')],["org.gxg.gui.small",a(a(a('GxG'),'Gui'),'Small')],["org.gxg.gui.source",a(a(a('GxG'),'Gui'),'Source')],["org.gxg.gui.strong",a(a(a('GxG'),'Gui'),'Strong')],["org.gxg.gui.style",a(a(a('GxG'),'Gui'),'Style')],["org.gxg.gui.sub.script",a(a(a('GxG'),'Gui'),'SubScript')],["org.gxg.gui.summary",a(a(a('GxG'),'Gui'),'Summary')],["org.gxg.gui.super.script",a(a(a('GxG'),'Gui'),'SuperScript')],["org.gxg.gui.svg",a(a(a('GxG'),'Gui'),'Svg')],["org.gxg.gui.template",a(a(a('GxG'),'Gui'),'Template')],["org.gxg.gui.text.area",a(a(a('GxG'),'Gui'),'TextArea')],["org.gxg.gui.time",a(a(a('GxG'),'Gui'),'Time')],["org.gxg.gui.track",a(a(a('GxG'),'Gui'),'Track')],["org.gxg.gui.misspelled",a(a(a('GxG'),'Gui'),'Misspelled')],["org.gxg.gui.variable",a(a(a('GxG'),'Gui'),'Variable')],["org.gxg.gui.word.break",a(a(a('GxG'),'Gui'),'WordBreak')],["org.gxg.gui.header",a(a(a('GxG'),'Gui'),'Header')],["org.gxg.gui.navigator",a(a(a('GxG'),'Gui'),'Navigation')],["org.gxg.gui.main",a(a(a('GxG'),'Gui'),'Main')],["org.gxg.gui.article",a(a(a('GxG'),'Gui'),'Article')],["org.gxg.gui.aside",a(a(a('GxG'),'Gui'),'Aside')],["org.gxg.gui.footer",a(a(a('GxG'),'Gui'),'Footer')],["org.gxg.gui.form",a(a(a('GxG'),'Gui'),'Form')],["org.gxg.gui.input.button",a(a(a('GxG'),'Gui'),'ButtonInput')],["org.gxg.gui.input.button.submit",a(a(a('GxG'),'Gui'),'SubmitButton')],["org.gxg.gui.block",a(a(a('GxG'),'Gui'),'Block')],["org.gxg.gui.button.checkbox",a(a(a('GxG'),'Gui'),'CheckBox')],["org.gxg.gui.image",a(a(a('GxG'),'Gui'),'Image')],["org.gxg.gui.video",a(a(a('GxG'),'Gui'),'Video')],["org.gxg.gui.audio",a(a(a('GxG'),'Gui'),'Audio')],["org.gxg.gui.canvas",a(a(a('GxG'),'Gui'),'Canvas')],["org.gxg.gui.input.hidden",a(a(a('GxG'),'Gui'),'HiddenInput')],["org.gxg.gui.input.file",a(a(a('GxG'),'Gui'),'FileInput')],["org.gxg.gui.input.text",a(a(a('GxG'),'Gui'),'TextInput')],["org.gxg.gui.input.password",a(a(a('GxG'),'Gui'),'PasswordInput')],["org.gxg.gui.input.reset",a(a(a('GxG'),'Gui'),'ResetInput')],["org.gxg.gui.button.radio",a(a(a('GxG'),'Gui'),'RadioButton')],["org.gxg.gui.picker.color",a(a(a('GxG'),'Gui'),'ColorPicker')],["org.gxg.gui.picker.date",a(a(a('GxG'),'Gui'),'DatePicker')],["org.gxg.gui.input.datetime.local",a(a(a('GxG'),'Gui'),'DateTimeLocal')],["org.gxg.gui.input.email",a(a(a('GxG'),'Gui'),'EmailInput')],["org.gxg.gui.picker.month",a(a(a('GxG'),'Gui'),'MonthPicker')],["org.gxg.gui.picker.number",a(a(a('GxG'),'Gui'),'NumberInput')],["org.gxg.gui.input.range",a(a(a('GxG'),'Gui'),'RangeInput')],["org.gxg.gui.input.search",a(a(a('GxG'),'Gui'),'SearchInput')],["org.gxg.gui.input.phone",a(a(a('GxG'),'Gui'),'PhoneInput')],["org.gxg.gui.picker.time",a(a(a('GxG'),'Gui'),'TimePicker')],["org.gxg.gui.input.url",a(a(a('GxG'),'Gui'),'UrlInput')],["org.gxg.gui.picker.week",a(a(a('GxG'),'Gui'),'WeekPicker')],["org.gxg.gui.label",a(a(a('GxG'),'Gui'),'Label')],["org.gxg.gui.output",a(a(a('GxG'),'Gui'),'Output')],["org.gxg.gui.paragraph",a(a(a('GxG'),'Gui'),'Paragraph')],["org.gxg.gui.header.one",a(a(a('GxG'),'Gui'),'Header1')],["org.gxg.gui.header.two",a(a(a('GxG'),'Gui'),'Header2')],["org.gxg.gui.header.three",a(a(a('GxG'),'Gui'),'Header3')],["org.gxg.gui.header.four",a(a(a('GxG'),'Gui'),'Header4')],["org.gxg.gui.header.five",a(a(a('GxG'),'Gui'),'Header5')],["org.gxg.gui.header.six",a(a(a('GxG'),'Gui'),'Header6')],["org.gxg.gui.list",a(a(a('GxG'),'Gui'),'List')],["org.gxg.gui.list.ordered",a(a(a('GxG'),'Gui'),'OrderedList')],["org.gxg.gui.list.item",a(a(a('GxG'),'Gui'),'ListItem')],["org.gxg.gui.link.anchor",a(a(a('GxG'),'Gui'),'Anchor')],["org.gxg.gui.link.external",a(a(a('GxG'),'Gui'),'ExternalLink')],["org.gxg.gui.button",a(a(a('GxG'),'Gui'),'Button')],["org.gxg.gui.table",a(a(a('GxG'),'Gui'),'Table')],["org.gxg.gui.table.header",a(a(a('GxG'),'Gui'),'TableHeader')],["org.gxg.gui.table.row",a(a(a('GxG'),'Gui'),'TableRow')],["org.gxg.gui.table.cell",a(a(a('GxG'),'Gui'),'TableCell')],["org.gxg.gui.block.table",a(a(a('GxG'),'Gui'),'BlockTable')],["org.gxg.gui.block.table.header",a(a(a('GxG'),'Gui'),'BlockTableHeader')],["org.gxg.gui.block.table.row",a(a(a('GxG'),'Gui'),'BlockTableRow')],["org.gxg.gui.block.table.cell",a(a(a('GxG'),'Gui'),'BlockTableCell')],["org.gxg.gui.span",a(a(a('GxG'),'Gui'),'Span')],["org.gxg.gui.select",a(a(a('GxG'),'Gui'),'Select')],["org.gxg.gui.option",a(a(a('GxG'),'Gui'),'Option')],["org.gxg.gui.field.set",a(a(a('GxG'),'Gui'),'FieldSet')],["org.gxg.gui.legend",a(a(a('GxG'),'Gui'),'Legend')]])),m(o,'$component_class',function(c){var d=b;return c==null&&(c=b),d=b,h(c)&&(d=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]'](c.$to_s().$to_sym())),d},-1),m(o,'$class_component',function(c){var d=b,e=b;return c==null&&(c=b),d=b,h(c)&&(e=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES').$values().$index(c),h(e)&&(d=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES').$keys()['$[]'](e))),d},-1),m(o,'$component_registered?',function(c){return!!(c==null&&(c=b),h(a(l('GxG'),'Gui').$component_class(c)))},-1),m(o,'$register_component_class',function(c,d){var e=this;return c==null&&(c=b),d==null&&(d=b),!!(h(c['$is_any?'](a('String'),a('Symbol')))&&h(d['$is_a?'](s)))&&(h(a(l('GxG'),'Gui')['$component_registered?'](c.$to_s().$to_sym()))?p(a(l('GxG'),'Gui').$component_class(c.$to_s().$to_sym()),d)?(a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]='](c.$to_s().$to_sym(),d),!0):(e.$log_warn("Component Class "+c.$to_s().$to_sym().$inspect()+" => "+d.$inspect()+" already defined."),!1):(a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]='](c.$to_s().$to_sym(),d),!0))},-1)}(k[0],k)}(l[0],l),function(l,m){var p=n(l,'GxG'),j=[p].concat(m);return function(l,m){var p=n(l,'Gui'),j=[p].concat(m);return function(h,j){var a=f(h,j,'GridContainer'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-container"),!0)?b:(c=["grid-container",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.container",a(a(a('GxG'),'Gui'),'GridContainer')),function(h,j){var a=f(h,j,'GridX'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-x"),!0)?b:(c=["grid-x",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.x",a(a(a('GxG'),'Gui'),'GridX')),function(h,j){var a=f(h,j,'GridY'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-y"),!0)?b:(c=["grid-y",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.y",a(a(a('GxG'),'Gui'),'GridY')),function(k,l){var a=f(k,l,'Accordion'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("accordion"),!0)||a.states['$[]=']("accordion",!0),h(a.options.$keys()['$include?']("data-accordion"))?b:(c=["data-accordion",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion",a(a(a('GxG'),'Gui'),'Accordion')),function(k,l){var a=f(k,l,'AccordionItem'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="li",i(a.states['$[]']("accordion-item"),!0)||a.states['$[]=']("accordion-item",!0),h(a.options.$keys()['$include?']("data-accordion-item"))?b:(c=["data-accordion-item",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.item",a(a(a('GxG'),'Gui'),'AccordionItem')),function(k,l){var a=f(k,l,'AccordionMenu'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-accordion-menu"))?b:(c=["data-accordion-menu",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.menu",a(a(a('GxG'),'Gui'),'AccordionMenu')),function(h,j){var a=f(h,j,'AccordionSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),i(a.states['$[]']("nested"),!0)?b:(c=["nested",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.submenu",a(a(a('GxG'),'Gui'),'AccordionSubMenu')),function(a,g){var h=f(a,g,'AccordionMenuItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.menu.item",a(a(a('GxG'),'Gui'),'AccordionMenuItem')),function(h,j){var a=f(h,j,'AnchorButton'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="a",i(a.states['$[]']("button"),!0)?b:(c=["button",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.anchor.button",a(a(a('GxG'),'Gui'),'AnchorButton')),function(h,j){var a=f(h,j,'Badge'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="span",i(a.states['$[]']("badge"),!0)?b:(c=["badge",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.badge",a(a(a('GxG'),'Gui'),'Badge')),function(h,j){var a=f(h,j,'Breadcrumb'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("breadcrumb"),!0)?b:(c=["breadcrumb",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.breadcrumb",a(a(a('GxG'),'Gui'),'Breadcrumb')),function(g,h){var a=f(g,h,'BreadcrumbItem');return c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.breadcrumb.item",a(a(a('GxG'),'Gui'),'BreadcrumbItem')),function(h,j){var a=f(h,j,'ButtonGroup'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("button-group"),!0)?b:(c=["button-group",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.button.group",a(a(a('GxG'),'Gui'),'ButtonGroup')),function(h,j){var a=f(h,j,'Callout'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("callout"),!0)?b:(c=["callout",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.callout",a(a(a('GxG'),'Gui'),'Callout')),function(h,j){var a=f(h,j,'ColoredLabel'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="span",i(a.states['$[]']("label"),!0)?b:(c=["label",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.label.colored",a(a(a('GxG'),'Gui'),'ColoredLabel')),function(k,l){var a=f(k,l,'DrilldownMenu'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-drilldown"))?b:(c=["data-drilldown",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.menu",a(a(a('GxG'),'Gui'),'DrilldownMenu')),function(h,j){var a=f(h,j,'DrilldownSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.submenu",a(a(a('GxG'),'Gui'),'DrilldownSubMenu')),function(a,g){var h=f(a,g,'DrilldownMenuItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.menu.item",a(a(a('GxG'),'Gui'),'DrilldownMenuItem')),function(h,j){var a=f(h,j,'DropdownSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.submenu",a(a(a('GxG'),'Gui'),'DropdownSubMenu')),function(j,k){var a=f(j,k,'DropdownMenuItem'),i=a.$$prototype;return i.uuid=i.settings=i.application=i.label=i.parent=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$initialize',function c(g,h,f){var i=c.$$p||b,a=this;return c.$$p=null,f==null&&(f=new Map),a.label=b,d(a,e(a,'initialize',c,!1,!0),'initialize',[g,h,f],null),a},-3),c(a,'$cascade',function(){var a=this,c=b,e=b,d=b;return c=a.$new_component("org.gxg.gui.link.anchor"),c['$title=']("label "+a.uuid.$to_s()),c['$[]=']("options",new Map([["content",(h(e=a.settings['$[]']("label"))?e:"Untitled").$to_s()]])),c['$[]=']("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),a.$page().$build_components(a,[c],new Map([["application",a.application]])),d=a.$page().$find_object_by("label "+a.uuid.$to_s()),h(d)?a.label=d:b}),c(a,'$label',o("label")),c(a,'$set_label_text',function(a){var c,d=this;return a==null&&(a=b),h(d.label)?(d.label.$set_text(a.$to_s()),(c=["label",a.$to_s()],g(d.settings,'[]=',c),c[c.length-1])):b},-1),c(a,'$enabled?',function(){var a=this;return!!h(a.label)&&(!h(a.label['$state_active?']("menu-item-disabled")))}),c(a,'$enable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!1):b}),c(a,'$disable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!0):b}),c(a,'$set_data',function(c){var a,d=this;return c==null&&(c=b),(a=["data",c],g(d.settings,'[]=',a),a[a.length-1])},-1),c(a,'$select',function(c){var d=this,a=b;return c==null&&(c=b),a=d.parent.$application(),h(a)?a.$menu_item_select(d.settings):b},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.menu.item",a(a(a('GxG'),'Gui'),'DropdownMenuItem')),function(k,l){var a=f(k,l,'Equalizer'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-x"),!0)||a.states['$[]=']("grid-x",!0),i(a.states['$[]']("grid-margin-x"),!0)||a.states['$[]=']("grid-margin-x",!0),h(a.options.$keys()['$include?']("data-equalizer"))||a.options['$[]=']("data-equalizer",b),h(a.options.$keys()['$include?']("data-equalize-on"))?b:(c=["data-equalize-on","medium"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.equalizer",a(a(a('GxG'),'Gui'),'Equalizer')),function(h,j){var a=f(h,j,'FlexGridRow'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("row"),!0)?b:(c=["row",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.flexgrid.row",a(a(a('GxG'),'Gui'),'FlexGridRow')),function(h,j){var a=f(h,j,'FlexGridColumn'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("columns"),!0)?b:(c=["columns",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.flexgrid.column",a(a(a('GxG'),'Gui'),'FlexGridColumn')),function(h,j){var a=f(h,j,'Embed'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("responsive-embed"),!0)?b:(c=["responsive-embed",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.embed",a(a(a('GxG'),'Gui'),'Embed')),function(h,j){var a=f(h,j,'MediaObject'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("media-object"),!0)?b:(c=["media-object",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.media.object",a(a(a('GxG'),'Gui'),'MediaObject')),function(h,j){var a=f(h,j,'MediaObjectSection'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("media-object-section"),!0)?b:(c=["media-object-section",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.media.object.section",a(a(a('GxG'),'Gui'),'MediaObjectSection')),function(l,m){var j=f(l,m,'DropdownMenu'),k=j.$$prototype;return k.states=k.options=k.application=b,c(j,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("dropdown"),!0)||a.states['$[]=']("dropdown",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-dropdown-menu"))?b:(c=["data-dropdown-menu",b],g(a.options,'[]=',c),c[c.length-1])}),c(j,'$add_menu_item',function(d,e){var f=this,c=b;return d==null&&(d=b),e==null&&(e=b),c=a(a(a('GxG'),'Database'),'DetachedHash').$new(),c['$[]=']("component","org.gxg.gui.dropdown.menu.item"),c['$[]=']("settings",new Map([["label",d],["data",e]])),c['$[]=']("options",new Map),c['$[]=']("script",""),c['$[]=']("content",[]),f.$page().$build_components(f,[c],new Map([["application",f.application]])),!0},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.menu",a(a(a('GxG'),'Gui'),'DropdownMenu')),f(j[0],a(a(a('GxG'),'Gui'),'DropdownMenu'),'MenuBar'),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu.bar",a(a(a('GxG'),'Gui'),'MenuBar')),function(j,k){var a=f(j,k,'Menu'),h=a.$$prototype;return h.states=h.application=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$add_menu_item',function(c,d){var a=this,e=b;return c==null&&(c=b),d==null&&(d=b),e=a.$new_component("org.gxg.gui.menu.item"),e['$[]=']("settings",new Map([["label",c],["data",d]])),a.$page().$build_components(a,[e],new Map([["application",a.application]])),!0},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu",a(a(a('GxG'),'Gui'),'Menu')),function(j,k){var a=f(j,k,'MenuItem'),i=a.$$prototype;return i.uuid=i.settings=i.application=i.label=i.parent=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$initialize',function c(g,h,f){var i=c.$$p||b,a=this;return c.$$p=null,f==null&&(f=new Map),a.label=b,d(a,e(a,'initialize',c,!1,!0),'initialize',[g,h,f],null),a},-3),c(a,'$cascade',function(){var a=this,c=b,e=b,d=b;return c=a.$new_component("org.gxg.gui.link.anchor"),c['$title=']("label "+a.uuid.$to_s()),c['$[]=']("options",new Map([["content",(h(e=a.settings['$[]']("label"))?e:"Untitled").$to_s()]])),c['$[]=']("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),a.$page().$build_components(a,[c],new Map([["application",a.application]])),d=a.$page().$find_object_by("label "+a.uuid.$to_s()),h(d)?a.label=d:b}),c(a,'$label',o("label")),c(a,'$set_label_text',function(a){var c,d=this;return a==null&&(a=b),h(d.label)?(d.label.$set_text(a.$to_s()),(c=["label",a.$to_s()],g(d.settings,'[]=',c),c[c.length-1])):b},-1),c(a,'$enabled?',function(){var a=this;return!!h(a.label)&&(!h(a.label['$state_active?']("menu-item-disabled")))}),c(a,'$enable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!1):b}),c(a,'$disable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!0):b}),c(a,'$set_data',function(c){var a,d=this;return c==null&&(c=b),(a=["data",c],g(d.settings,'[]=',a),a[a.length-1])},-1),c(a,'$select',function(c){var d=this,a=b;return c==null&&(c=b),a=d.parent.$application(),h(a)?a.$menu_item_select(d.settings):b},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu.item",a(a(a('GxG'),'Gui'),'MenuItem')),function(h,j){var a=f(h,j,'OffCanvasWrapper'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-wrapper"),!0)?b:(c=["off-canvas-wrapper",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.wrapper",a(a(a('GxG'),'Gui'),'OffCanvasWrapper')),function(k,l){var a=f(k,l,'OffCanvasWrapperInner'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-wrapper-inner"),!0)||a.states['$[]=']("off-canvas-wrapper-inner",!0),h(a.options.$keys()['$include?']("data-off-canvas-wrapper"))?b:(c=["data-off-canvas-wrapper",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.wrapper.inner",a(a(a('GxG'),'Gui'),'OffCanvasWrapperInner')),function(k,l){var a=f(k,l,'OffCanvasLeft'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas"),!0)||a.states['$[]=']("off-canvas",!0),i(a.states['$[]']("position-left"),!0)||a.states['$[]=']("position-left",!0),h(a.options.$keys()['$include?']("data-off-canvas"))?b:(c=["data-off-canvas",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.left",a(a(a('GxG'),'Gui'),'OffCanvasLeft')),function(k,l){var a=f(k,l,'OffCanvasRight'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas"),!0)||a.states['$[]=']("off-canvas",!0),i(a.states['$[]']("position-right"),!0)||a.states['$[]=']("position-right",!0),h(a.options.$keys()['$include?']("data-off-canvas"))||a.options['$[]=']("data-off-canvas",b),h(a.options.$keys()['$include?']("data-position"))?b:(c=["data-position","right"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.right",a(a(a('GxG'),'Gui'),'OffCanvasRight')),function(k,l){var a=f(k,l,'OffCanvasContent'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-content"),!0)||a.states['$[]=']("off-canvas-content",!0),h(a.options.$keys()['$include?']("data-off-canvas-content"))?b:(c=["data-off-canvas-content",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.content",a(a(a('GxG'),'Gui'),'OffCanvasContent')),function(k,l){var a=f(k,l,'Orbit'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("orbit"),!0)||a.states['$[]=']("orbit",!0),h(a.options.$keys()['$include?']("role"))||a.options['$[]=']("role","region"),h(a.options.$keys()['$include?']("data-orbit"))?b:(c=["data-orbit",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit",a(a(a('GxG'),'Gui'),'Orbit')),function(h,j){var a=f(h,j,'OrbitContainer'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("orbit-container"),!0)?b:(c=["orbit-container",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.container",a(a(a('GxG'),'Gui'),'OrbitContainer')),function(h,j){var a=f(h,j,'OrbitPrevious'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.states['$[]']("orbit-previous"),!0)?b:(c=["orbit-previous",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.previous",a(a(a('GxG'),'Gui'),'OrbitPrevious')),function(h,j){var a=f(h,j,'OrbitNext'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.states['$[]']("orbit-next"),!0)?b:(c=["orbit-next",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.next",a(a(a('GxG'),'Gui'),'OrbitNext')),function(h,j){var a=f(h,j,'OrbitSlide'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="li",i(a.states['$[]']("orbit-slide"),!0)?b:(c=["orbit-slide",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.slide",a(a(a('GxG'),'Gui'),'OrbitSlide')),function(h,j){var a=f(h,j,'OrbitNavigator'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="nav",i(a.states['$[]']("orbit-bullets"),!0)?b:(c=["orbit-bullets",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.navigator",a(a(a('GxG'),'Gui'),'OrbitNavigator')),function(i,j){var a=f(i,j,'OrbitBullet'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",h(a.options.$keys()['$include?']("data-slide"))?b:(c=["data-slide","0"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.bullet",a(a(a('GxG'),'Gui'),'OrbitBullet')),function(i,j){var a=f(i,j,'Pagination'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",h(a.options.$keys()['$include?']("role"))?b:(c=["role","navigation"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.pagination",a(a(a('GxG'),'Gui'),'Pagination')),function(a,g){var h=f(a,g,'PaginationItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.pagination.item",a(a(a('GxG'),'Gui'),'PaginationItem')),function(k,l){var a=f(k,l,'ProgressBar'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("progress"),!0)||a.states['$[]=']("progress",!0),h(a.options.$keys()['$include?']("role"))?b:(c=["role","progressbar"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.progress.bar",a(a(a('GxG'),'Gui'),'ProgressBar')),function(h,j){var a=f(h,j,'ProgressMeter'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("progress-meter"),!0)?b:(c=["progress-meter",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.progress.meter",a(a(a('GxG'),'Gui'),'ProgressMeter')),function(j,l){var g=f(j,l,'HorizontalSlider'),a=g.$$prototype;return a.states=a.options=a.data_second=a.data_start=a.data_end=a.uuid=b,c(g,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("slider"),!0)||a.states['$[]=']("slider",!0),h(a.options['$[]']("data-initial-start"))?a.data_start=a.options.$delete("data-initial-start"):a.data_start="50",h(a.options['$[]']("data-initial-end"))?a.data_second=a.options.$delete("data-initial-end"):a.data_second=b,h(a.options['$[]']("data-end"))?a.data_end=a.options.$delete("data-end"):a.data_end="200"}),c(g,'$_after_create',function l(){var p=l.$$p||b,a=this,g=b,c=b,i=b,m=b,f=b,j=b,n=b,o=b;return l.$$p=null,d(a,e(a,'_after_create',l,!1,!0),'_after_create',[],null),h(a.data_second)?(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-initial-end",a.data_second],["data-end",a.data_end],["states",["slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),m=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),n=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container_two",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),o=n.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s()),m.$set_attribute("aria-controls",o.$uuid().$to_s())):(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-end",a.data_end],["states",["slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s())),$(document).foundation()}),c(g,'$set_script',function g(c,i){var k=g.$$p||b,a=this,f=b,j=b;return g.$$p=null,c==null&&(c=""),i==null&&(i=b),h(i)?i.$set_script(c):h(a.data_second)?(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null),j=a.$find_descendant("slider_handle_two"),h(j)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,j],null)):(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null))},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.slider.horizontal",a(a(a('GxG'),'Gui'),'HorizontalSlider')),function(j,l){var g=f(j,l,'VerticalSlider'),a=g.$$prototype;return a.states=a.options=a.data_second=a.data_start=a.data_end=a.uuid=b,c(g,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("slider"),!0)||a.states['$[]=']("slider",!0),i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),h(a.options['$[]']("data-initial-start"))?a.data_start=a.options.$delete("data-initial-start"):a.data_start="50",h(a.options['$[]']("data-initial-end"))?a.data_second=a.options.$delete("data-initial-end"):a.data_second=b,h(a.options['$[]']("data-end"))?a.data_end=a.options.$delete("data-end"):a.data_end="200"}),c(g,'$_after_create',function l(){var p=l.$$p||b,a=this,g=b,c=b,i=b,m=b,f=b,j=b,n=b,o=b;return l.$$p=null,d(a,e(a,'_after_create',l,!1,!0),'_after_create',[],null),h(a.data_second)?(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-initial-end",a.data_second],["data-end",a.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),m=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),n=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container_two",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),o=n.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s()),m.$set_attribute("aria-controls",o.$uuid().$to_s())):(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-end",a.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s())),$(document).foundation()}),c(g,'$set_script',function g(c,i){var k=g.$$p||b,a=this,f=b,j=b;return g.$$p=null,c==null&&(c=""),i==null&&(i=b),h(i)?i.$set_script(c):h(a.data_second)?(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null),j=a.$find_descendant("slider_handle_two"),h(j)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,j],null)):(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null))},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.slider.vertical",a(a(a('GxG'),'Gui'),'VerticalSlider')),function(i,j){var a=f(i,j,'StickyContainer'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",h(a.options.$keys()['$include?']("data-sticky-container"))?b:(c=["data-sticky-container",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.sticky.container",a(a(a('GxG'),'Gui'),'StickyContainer')),function(k,l){var a=f(k,l,'Sticky'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("sticky"),!0)||a.states['$[]=']("sticky",!0),h(a.options.$keys()['$include?']("data-sticky"))?b:(c=["data-sticky",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.sticky",a(a(a('GxG'),'Gui'),'Sticky')),function(j,l){var a=f(j,l,'Switch'),h=a.$$prototype;return h.states=h.uuid=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("switch"),!0)?b:(c=["switch",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function(){var a=this,c=b,d=b,e=b;return c=a.$add_child(new Map([["component","org.gxg.gui.button.checkbox"],["title",k("switch_input",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["switch-input"]]])],["script",""],["content",[]]])),d=a.$add_child(new Map([["component","org.gxg.gui.label"],["title",k("switch_paddle",a.uuid.$to_s())],["settings",new Map],["options",new Map([["for",c.$uuid().$to_s()],["states",["switch-paddle"]]])],["script",""],["content",[]]])),e=d.$add_child(new Map([["component","org.gxg.gui.span"],["title",k("switch_span",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["show-for-sr"]]])],["script",""],["content",[]]])),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.switch",a(a(a('GxG'),'Gui'),'Switch')),function(h,j){var a=f(h,j,'TabContent'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("tabs-panel"),!0)?b:(c=["tabs-panel",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.tab.content",a(a(a('GxG'),'Gui'),'TabContent')),function(h,j){var a=f(h,j,'TabSet'),g=a.$$prototype;return g.uuid=g.tabs=g.tab_content=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"}),c(a,'$_after_create',function(){var a=this;return a.tabs=a.$add_child(new Map([["component","org.gxg.gui.list"],["title",k("tabs",a.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs",b],["states",["tabs"]]])],["script",""],["content",[]]])),a.tab_content=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("tab_content",a.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs-content",a.tabs.$uuid().$to_s()],["states",["tabs-content"]]])],["script",""],["content",[]]])),$(document).foundation()}),c(a,'$add_child',function(c,f){var d=this,a=b,g=b,e=b;return c==null&&(c=new Map),f==null&&(f=new Map),a=b,i(c['$[]']("component").$to_s().$downcase().$to_sym(),"tab_content")?(a=d.tab_content.$add_child(c),g=d.tabs.$add_child(new Map([["component","org.gxg.gui.list.item"],["title",k("tab",a.$uuid().$to_s())],["settings",new Map],["options",new Map([["states",["tabs-title"]]])],["script",""],["content",[]]])),e=g.$add_child(new Map([["component","org.gxg.gui.link.anchor"],["title",k("link",a.$uuid().$to_s())],["settings",new Map],["options",new Map([["href",k("#",a.$uuid().$to_s())],["states",[]]])],["script",""],["content",[]]])),e['$value='](a.$title().$to_s())):d.$raise("Unacceptable Component Type"),a},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.tab.set",a(a(a('GxG'),'Gui'),'TabSet')),function(h,j){var a=f(h,j,'Thumbnail'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="img",i(a.states['$[]']("thumbnail"),!0)?b:(c=["thumbnail",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.thumbnail",a(a(a('GxG'),'Gui'),'Thumbnail')),function(h,j){var a=f(h,j,'Titlebar'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar"),!0)?b:(c=["title-bar",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar",a(a(a('GxG'),'Gui'),'Titlebar')),function(h,j){var a=f(h,j,'TitlebarLeft'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar-left"),!0)?b:(c=["title-bar-left",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar.left",a(a(a('GxG'),'Gui'),'TitlebarLeft')),function(h,j){var a=f(h,j,'TitlebarRight'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar-right"),!0)?b:(c=["title-bar-right",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar.right",a(a(a('GxG'),'Gui'),'TitlebarRight')),function(h,j){var a=f(h,j,'Topbar'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar"),!0)?b:(c=["top-bar",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar",a(a(a('GxG'),'Gui'),'Topbar')),function(h,j){var a=f(h,j,'TopbarLeft'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar-left"),!0)?b:(c=["top-bar-left",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar.left",a(a(a('GxG'),'Gui'),'TopbarLeft')),function(h,j){var a=f(h,j,'TopbarRight'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar-right"),!0)?b:(c=["top-bar-right",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar.right",a(a(a('GxG'),'Gui'),'TopbarRight'))}(j[0],j)}(l[0],l),function(e,g){var d=f(e,g,'Object');return d.$private(),c(d,'$new_component',function(d){var e=this,c=b;return d==null&&(d=b),c=b,h(d)?h(a(a('GxG'),'Gui')['$component_registered?'](d.$to_s().$to_sym()))?(c=a(a(a('GxG'),'Database'),'DetachedHash').$new(),c['$[]=']("component",d.$to_s()),c['$[]=']("settings",new Map),c['$[]=']("options",new Map),c['$[]=']("script",""),c['$[]=']("content",[])):e.$log_error("Component "+d.$inspect()+" not registered."):e.$log_error("You MUST specify a registered component moniker."),c},-1)}(l[0],null)},Opal.modules["web/gxg_layout"]=function(d){var l=d.module,h=d.send,c=d.truthy,i=d.rb_divide,f=d.rb_gt,g=d.rb_lt,e=d.rb_times,j=d.defs,m=d.thrower,n=d.def,k=[],b=d.nil,a=d.$$$;return d.add_stubs('to_i,max,each,each_pair,[],find_object,[]=,element,/,to_f,to_sym,to_s,values,>,<,*,include?,layout_refresh,delete'),function(d,k){var o=l(d,'GxG'),p=[o].concat(k);return function(k){var d=l(k,'Gui');return j(d,'$layout_refresh',function(){var r=this,n=b,q=b,o=b,p=b,m=b,d=b,j=b,k=b,l=b;return n=window.innerWidth.$to_i(),q=document.body,o=document.documentElement,p=0,p=Math.max(q.scrollHeight,q.offsetHeight,o.clientHeight,o.scrollHeight,o.offsetHeight),m=[window.innerHeight.$to_i(),p.$to_i()].$max(),d=0,j=0,k=1,l=1,h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=b),h(a(a('GxG'),'LAYOUT')['$[]'](d),'each_pair',[],function o(k,l){var j,p=o.$$s==null?this:o.$$s,g=b,e=b,f=b;return k==null&&(k=b),l==null&&(l=b),g=p.$find_object(k),c(g)?(e=new Map([["top",0],["left",0],["right",0],["bottom",0]]),e['$[]=']("top",g.$element().getBoundingClientRect().top.$to_i()),e['$[]=']("left",g.$element().getBoundingClientRect().left.$to_i()),e['$[]=']("right",g.$element().getBoundingClientRect().right.$to_i()),e['$[]=']("bottom",g.$element().getBoundingClientRect().bottom.$to_i()),f=new Map([["top",0],["left",0],["right",0],["bottom",0]]),f['$[]=']("top",i(e['$[]']("top").$to_f(),m.$to_f())),f['$[]=']("left",i(e['$[]']("left").$to_f(),n.$to_f())),f['$[]=']("right",i(e['$[]']("right").$to_f(),n.$to_f())),f['$[]=']("bottom",i(e['$[]']("bottom").$to_f(),m.$to_f())),(j=[k.$to_s().$to_sym(),f],h(a(a('GxG'),'LAYOUT')['$[]'](d.$to_s().$to_sym()),'[]=',j),j[j.length-1])):b},{$$s:f})},{$$s:r}),h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function(e){return e==null&&(e=b),h(a(a('GxG'),'LAYOUT')['$[]'](e).$values(),'each',[],function(a){switch(a==null&&(a=b),e.valueOf()){case"top":return c(f(a['$[]']("bottom"),d))?d=a['$[]']("bottom"):b;break;case"left":return c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;case"right":return c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom":return c(g(a['$[]']("top"),l))?l=a['$[]']("top"):b;break;case"top-left":return c(f(a['$[]']("bottom"),d))&&(d=a['$[]']("bottom")),c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;case"top-right":return c(f(a['$[]']("bottom"),d))&&(d=a['$[]']("bottom")),c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom-right":return c(g(a['$[]']("top"),l))&&(l=a['$[]']("top")),c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom-left":return c(g(a['$[]']("top"),l))&&(l=a['$[]']("top")),c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;default:return b}})}),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("page_width",n.$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("page_height",m.$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("top",e(d,m.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("top_percent",e(d,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("left",e(j,n.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("left_percent",e(j,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("right",e(k,n.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("right_percent",e(k,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("bottom",e(l,m.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("bottom_percent",e(l,100)),!0}),j(d,'$layout_add_item',function(e,d,f){return!!(e==null&&(e=b),d==null&&(d=b),f==null&&(f=!0),c(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]['$include?'](d.$to_s().$to_sym())))&&(a(a('GxG'),'LAYOUT')['$[]'](d.$to_s().$to_sym())['$[]='](e.$to_s().$to_sym(),new Map([["top",0],["left",0],["right",0],["bottom",0]])),c(f)&&a(a('GxG'),'Gui').$layout_refresh(),!0)},-1),j(d,'$layout_remove_item',function(d){return d==null&&(d=b),function(){try{var e=m('break');return h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function g(f){if(f==null&&(f=b),c(a(a('GxG'),'LAYOUT')['$[]'](f.$to_s().$to_sym())['$[]'](d.$to_s().$to_sym())))a(a('GxG'),'LAYOUT')['$[]'](f.$to_s().$to_sym()).$delete(d.$to_s().$to_sym()),e.$throw(b,g.$$is_lambda);else return b})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),a(a('GxG'),'Gui').$layout_refresh(),!0},-1),n(d,'$layout_content_area',function(){return a(a('GxG'),'LAYOUT_LIMITS')})}(p[0])}(k[0],k)},Opal.modules["web/gxg_windows"]=function(j){var v=j.module,p=j.klass,d=j.def,m=j.alias,b=j.truthy,x=j.assign_ivar,l=j.return_ivar,i=j.rb_times,f=j.rb_divide,e=j.rb_minus,h=j.rb_plus,g=j.send,n=j.rb_ge,q=j.rb_le,r=j.rb_lt,o=j.rb_gt,k=j.eqeq,s=j.send2,t=j.find_super,u=j.thrower,w=[],a=j.nil,c=j.$$$;return j.add_stubs('set_application,respond_to?,unlink_viewport,register_component_class,layout_content_area,[],*,/,to_f,height,width,[]=,gxg_merge_style,parent,-,size,+,each_pair,to_sym,to_s,include?,to_i,gsub,update_appearance,is_any?,delete,element,is_a?,>=,fit_within_boundaries,commit_settings,set_top,set_left,<=,set_right,set_bottom,set_width,set_height,<,>,set_text,set_window_title,set_frame,layout_refresh,==,add_child,original_add_child,children,valid_uuid?,values,original_children,shift,uuid,title,each,<<,new,title=,theme_widget,build_components,page,find_object_by,post_event,set_data,set_responder,dialog_close,call,set_attribute,merge_style,set_script,menu_reference,search_content,set_menu,log_warn,inspect,window_register,before_open,open,show,after_open,get_window_registration,before_close,close,hide,after_close,application,unlink_window,window_unregister,destroy,set_title,get_window,link_window,every_child,dialog_open,to_proc,min,collect,max,window_is_in_back?,window_back_layer,window_top_layer,window_next_layer,step,get_window_switcher,next_minimize_slot,window_send_to_back,animate,top,left,right,bottom,find_child,unminimize_effect,clear_special_state,unmaximize_effect,rolldown_effect,window_restoreable?,window_restore,set_special_state,minimize_effect,maximize_effect,window_bring_to_front,rollup_effect,keys,to_h,sort_by,each_with_index,window_repack_layers'),function(y,z){var A=v(y,'GxG'),w=[A].concat(z);return function(y,z){var A=v(y,'Gui'),w=[A].concat(z);return function(f,g){var c=p(f,g,'ApplicationViewport'),e=c.$$prototype;return e.application=e.uuid=a,d(c,'$set_application',function(b){var c=this;return b==null&&(b=a),c.application=b},-1),m(c,"application=","set_application"),d(c,'$detach',function(){var c=this;return b(c.application)&&b(c.application['$respond_to?']("unlink_viewport"))?(c.application.$unlink_viewport(c.uuid),c.application=a):a})}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement')),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.application.viewport",c(c(c('GxG'),'Gui'),'ApplicationViewport')),function(B,y,z){var u=p(B,y,'Window'),A=[u].concat(z),w=j.$r(A),v=u.$$prototype;return v.top=v.left=v.title_object=v.window_title=v.content=v.title_margin=v.menu_margin=v.resize_margin=v.tracking=v.menu_bar=v.menu_area=v.bottom=v.right=v.modal=v.menu_reference=v.uuid=v.closebox=v.minimizebox=v.maximizebox=v.scrolling=v.resize=v.application=a,d(u,'$before_close',function(b){return b==null&&(b=a),a},-1),d(u,'$close',function(b){return b==null&&(b=a),a},-1),d(u,'$after_close',function(b){return b==null&&(b=a),a},-1),d(u,'$before_open',function(b){return b==null&&(b=a),a},-1),d(u,'$open',function(b){return b==null&&(b=a),a},-1),d(u,'$after_open',function(b){return b==null&&(b=a),a},-1),d(u,'$set_application',x("application")),m(u,"application=","set_application"),d(u,'$application',l("application")),d(u,'$commit_settings',function(){var d=this,k=a,m=a,n=a,o=a,l=a,j=a;return k=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),m=i(f(d.top.$to_f(),k['$[]']("page_height").$to_f()),100),n=i(f(d.left.$to_f(),k['$[]']("page_width").$to_f()),100),o=i(f(d.$height().$to_f(),k['$[]']("page_height").$to_f()),100),l=i(f(d.$width().$to_f(),k['$[]']("page_width").$to_f()),100),j=new Map,j['$[]=']("position","absolute"),j['$[]=']("display","block"),j['$[]=']("tabindex",-1),j['$[]=']("top",""+m+"%"),j['$[]=']("left",""+n+"%"),j['$[]=']("height",""+o+"%"),j['$[]=']("width",""+l+"%"),d.$gxg_merge_style(j),b(d.title_object)&&d.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"]])),b(d.content)&&(d.content.$gxg_merge_style(new Map([["height",""+e(d.$height(),h(h(d.title_margin,d.menu_margin),d.resize_margin))+"px"],["width",""+e(d.$width(),i(d.resize_margin,2))+"px"]])),g(d.tracking,'each_pair',[],function j(k,d){var l=j.$$s==null?this:j.$$s,c=a;return k==null&&(k=a),d==null&&(d=a),c=new Map,g(d['$[]']("details"),'each_pair',[],function m(l,k){var d,j=m.$$s==null?this:m.$$s;switch(j.resize_margin==null&&(j.resize_margin=a),j.title_margin==null&&(j.title_margin=a),j.menu_margin==null&&(j.menu_margin=a),l==null&&(l=a),k==null&&(k=a),l.$to_s().$to_sym().valueOf()){case"width":return b(k.$to_s()['$include?']("%"))?(d=["width",h(i(f(k.$to_s().$gsub("%","").$to_f(),100),e(j.$width(),i(j.resize_margin,2)).$to_f()).$to_i().$to_s(),"px")],g(c,'[]=',d),d[d.length-1]):(d=["width",""+k.$to_s()+"px"],g(c,'[]=',d),d[d.length-1]);break;case"height":return b(k.$to_s()['$include?']("%"))?(d=["height",h(i(f(k.$to_s().$gsub("%","").$to_f(),100),e(j.$height(),h(h(j.title_margin,j.menu_margin),j.resize_margin)).$to_f()).$to_i().$to_s(),"px")],g(c,'[]=',d),d[d.length-1]):(d=["height",""+k.$to_s()+"px"],g(c,'[]=',d),d[d.length-1]);break;default:return a}},{$$s:l}),d['$[]']("object").$gxg_merge_style(c)},{$$s:d})),b(d.menu_bar)&&(d.menu_area.$gxg_merge_style(new Map([["width",""+e(d.$width(),i(d.resize_margin,2))+"px"]])),b(d.menu_bar['$respond_to?']("update_appearance")))?d.menu_bar.$update_appearance():a}),d(u,'$track_deltas',function(d,e,f){var g=this;return!!(d==null&&(d=a),e==null&&(e=a),f==null&&(f=new Map),b(d)&&b(e)&&b(f['$is_any?'](c('Hash'),c(c(c('GxG'),'Database'),'DetachedHash'))))&&(g.tracking['$[]='](d,new Map([["object",e],["details",f]])),!0)},-1),d(u,'$untrack_deltas',function(c){var d=this;return!!(c==null&&(c=a),b(c))&&(d.tracking.$delete(c),!0)},-1),d(u,'$content',l("content")),d(u,'$content_width',function(){var a=this;return b(a.content)?(a.content.$element().getBoundingClientRect().right-a.content.$element().getBoundingClientRect().left).$to_i():0}),d(u,'$content_height',function(){var a=this;return b(a.content)?(a.content.$element().getBoundingClientRect().bottom-a.content.$element().getBoundingClientRect().top).$to_i():0}),d(u,'$set_top',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(f.bottom,d),100))?b(n(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("top")))?(f.top=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"top=","set_top"),d(u,'$top',l("top")),d(u,'$set_left',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(f.right,d),200))?b(n(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("left")))?(f.left=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"left=","set_left"),d(u,'$left',l("left")),d(u,'$set_right',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(d,f.left),200))?b(q(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("right")))?(f.right=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"right=","set_right"),d(u,'$right',l("right")),d(u,'$set_bottom',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(d,f.top),100))?b(q(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("bottom")))?(f.bottom=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"bottom=","set_bottom"),d(u,'$bottom',l("bottom")),d(u,'$set_width',function(d){var e=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(d,200))?b(q(h(e.left,d),c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("right")))?(e.right=h(e.left,d),e.$fit_within_boundaries(),e.$commit_settings()):a:a},-1),m(u,"width=","set_width"),d(u,'$width',function(){var a=this;return e(a.right,a.left)}),d(u,'$set_height',function(d){var e=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(d,100))?b(q(h(e.top,d),c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("bottom")))?(e.bottom=h(e.top,d),e.$fit_within_boundaries(),e.$commit_settings()):a:a},-1),m(u,"height=","set_height"),d(u,'$height',function(){var a=this;return e(a.bottom,a.top)}),d(u,'$set_position',function(f,g){var d=this,i=a,k=a,e=a;return f==null&&(f=a),g==null&&(g=a),i=d.$width(),k=d.$height(),e=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),b(j.Range.$new(e['$[]']("top"),e['$[]']("bottom"),!1)['$include?'](g.$to_i()))&&b(j.Range.$new(e['$[]']("top"),e['$[]']("bottom"),!1)['$include?'](h(g.$to_i(),k)))&&(d.top=g.$to_i()),b(j.Range.$new(e['$[]']("left"),e['$[]']("right"),!1)['$include?'](f.$to_i()))&&b(j.Range.$new(e['$[]']("left"),e['$[]']("right"),!1)['$include?'](h(f.$to_i(),i)))&&(d.left=f.$to_i()),d.bottom=h(d.top,k),d.right=h(d.left,i),d.$fit_within_boundaries(),d.$commit_settings()},-1),d(u,'$set_frame',function(f){var d=this,e=a;return f==null&&(f=a),b(f['$is_a?'](c('Hash')))?(d.top=b(e=f['$[]']("top"))?e:d.top,d.left=b(e=f['$[]']("left"))?e:d.left,d.right=b(e=f['$[]']("right"))?e:d.right,d.bottom=b(e=f['$[]']("bottom"))?e:d.bottom,d.$fit_within_boundaries(),d.$commit_settings()):a},-1),d(u,'$position',function(){var a=this;return new Map([["x",a.left],["y",a.top]])}),d(u,'$fit_within_boundaries',function(){var d=this,f=a,g=a,e=a;return f=d.$width(),g=d.$height(),e=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),b(r(d.top,e['$[]']("top")))&&(d.top=e['$[]']("top")),b(r(d.left,e['$[]']("left")))&&(d.left=e['$[]']("left")),d.right=h(d.left,f),d.bottom=h(d.top,g),b(o(d.bottom,e['$[]']("bottom")))&&(d.bottom=e['$[]']("bottom")),b(o(d.right,e['$[]']("right")))?d.right=e['$[]']("right"):a}),d(u,'$set_window_title',function(g){var d=this;return g==null&&(g=a),b(d.title_object)&&b(g['$is_a?'](c('String')))?(d.window_title=g,d.title_object.$set_text(d.window_title),d.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"]]))):a},-1),m(u,"window_title=","set_window_title"),d(u,'$window_title',function(){var c=this;return b(c.title_object)?c.window_title:a}),d(u,'$special_state',l("special_state")),d(u,'$set_special_state',function(e){var d=this,f=a;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))?(d.special_state=e,d.top=b(f=e['$[]']("top"))?f:d.top,d.left=b(f=e['$[]']("left"))?f:d.left,d.right=b(f=e['$[]']("right"))?f:d.right,d.bottom=b(f=e['$[]']("bottom"))?f:d.bottom,d.$fit_within_boundaries(),d.$commit_settings()):a},-1),d(u,'$clear_special_state',function(d){var e=this;return d==null&&(d=a),e.special_state=a,b(d['$is_a?'](c('Hash')))?e.$set_frame(d):a},-1),d(u,'$initialize',function n(o,g,m){var p=n.$$p||a,d=this,l=a,j=a;return n.$$p=null,m==null&&(m=new Map),c(c('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_refresh(),l=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),d.special_state=a,d.content=a,b(g['$[]']("top")['$is_a?'](c('String')))||b(g['$[]']("top").$to_s()['$include?']("."))?b(g['$[]']("top")['$is_a?'](c('String')))?d.top=i(l['$[]']("page_height"),f(g['$[]']("top").$gsub("%","").$to_f(),100)):d.top=i(l['$[]']("page_height"),f(g['$[]']("top"),100)):d.top=b(j=g['$[]']("top"))?j:e(f(window.innerHeight.$to_i(),2),50),b(g['$[]']("left")['$is_a?'](c('String')))||b(g['$[]']("left").$to_s()['$include?']("."))?b(g['$[]']("left")['$is_a?'](c('String')))?d.left=i(l['$[]']("page_width"),f(g['$[]']("left").$gsub("%","").$to_f(),100)):d.left=i(l['$[]']("page_width"),f(g['$[]']("left"),100)):d.left=b(j=g['$[]']("left"))?j:e(f(window.innerWidth.$to_i(),2),100),b(g['$[]']("right")['$is_a?'](c('String')))||b(g['$[]']("right").$to_s()['$include?']("."))?b(g['$[]']("right")['$is_a?'](c('String')))?d.right=i(l['$[]']("page_width"),f(g['$[]']("right").$gsub("%","").$to_f(),100)):d.right=i(l['$[]']("page_width"),f(g['$[]']("right"),100)):d.right=b(j=g['$[]']("right"))?j:h(f(window.innerWidth.$to_i(),2),100),b(g['$[]']("bottom")['$is_a?'](c('String')))||b(g['$[]']("bottom").$to_s()['$include?']("."))?b(g['$[]']("bottom")['$is_a?'](c('String')))?d.bottom=i(l['$[]']("page_height"),f(g['$[]']("bottom").$gsub("%","").$to_f(),100)):d.bottom=i(l['$[]']("page_height"),f(g['$[]']("bottom"),100)):d.bottom=b(j=g['$[]']("bottom"))?j:h(f(window.innerHeight.$to_i(),2),50),d.window_title=b(j=g['$[]']("window_title"))?j:"Untitled",d.title_object=a,b(g['$[]']("width")['$is_a?'](c('String')))||b(g['$[]']("width").$to_s()['$include?']("."))?b(g['$[]']("width")['$is_a?'](c('String')))?d.right=h(d.left,i(e(l['$[]']("right"),l['$[]']("left")),f(g['$[]']("width").$gsub("%","").$to_f(),100))):d.right=h(d.left,i(e(l['$[]']("right"),l['$[]']("left")),f(g['$[]']("width"),100))):b(g['$[]']("width")['$is_a?'](c('Numeric')))&&(d.right=h(d.left,g.$delete("width"))),b(g['$[]']("height")['$is_a?'](c('String')))||b(g['$[]']("height").$to_s()['$include?']("."))?b(g['$[]']("height")['$is_a?'](c('String')))?d.bottom=h(d.top,i(e(l['$[]']("bottom"),l['$[]']("top")),f(g['$[]']("height").$gsub("%","").$to_f(),100))):d.bottom=h(d.top,i(e(l['$[]']("bottom"),l['$[]']("top")),f(g['$[]']("height"),100))):b(g['$[]']("height")['$is_a?'](c('Numeric')))&&(d.bottom=h(d.top,g['$[]']("height"))),d.$fit_within_boundaries(),d.modal=b(j=g['$[]']("modal"))&&j,d.scrolling=g['$[]']("scroll"),d.title_margin=24,k(d.modal,!0)?(d.resize=!1,d.resize_margin=0):(d.resize=b(j=g['$[]']("resize"))?j:!0,d.resize_margin=2,d.title_margin=26),k(d.modal,!0)?(d.closebox=!1,d.minimizebox=!1,d.maximizebox=!1):(k(g['$[]']("close"),!1)?d.closebox=!1:d.closebox=(b(j=g['$[]']("close"))?j:"enabled").$to_s().$to_sym(),k(g['$[]']("minimize"),!1)?d.minimizebox=!1:d.minimizebox=(b(j=g['$[]']("minimize"))?j:"enabled").$to_s().$to_sym(),k(g['$[]']("maximize"),!1)?d.maximizebox=!1:d.maximizebox=(b(j=g['$[]']("maximize"))?j:"enabled").$to_s().$to_sym()),d.tracking=new Map,d.menu_reference=g['$[]']("menu"),d.menu_area=a,d.menu_bar=a,b(d.menu_reference)?d.menu_margin=16:d.menu_margin=0,s(d,t(d,'initialize',n,!1,!0),'initialize',[o,g,m],null),d},-3),d(u,'$menu_reference',l("menu_reference")),d(u,'$menubar',l("menu_area")),m(u,"original_add_child","add_child"),d(u,'$add_child',function(c){var d=this;return c==null&&(c=a),b(d.content)?d.content.$add_child(c):d.$original_add_child(c)},-1),m(u,"original_children","children"),d(u,'$children',function(){var a=this;return b(a.content)?a.content.$children():new Map}),d(u,'$find_child',function(f,h){var j=this,e=a,i=a,d=a,c=a;for(f==null&&(f=a),h==null&&(h=!1),e=a,b(w('GxG')['$valid_uuid?'](f))?i=!0:i=!1,k(h,!0)?d=j.$original_children().$values():d=j.$children().$values();b(o(d.$size(),0));)if(c=d.$shift(),b(c)){if(b(i)){if(k(c.$uuid(),f)){e=c;break}}else if(k(c.$title(),f)){e=c;break}b(e)||g(c.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(u,'$cascade',function(){var d=this,J=a,z=a,v=a,u=a,s=a,y=a,o=a,q=a,t=a,I=a,j=a,K=a,B=a,H=a,G=a,F=a,C=a,D=a,E=a,A=a,r=a,p=a,l=a,x=a,m=a,n=a;return d.$commit_settings(),J=[],z=c(c(c('GxG'),'Database'),'DetachedHash').$new(),z['$title=']("title_object "+d.uuid.$to_s()),z['$[]=']("component","org.gxg.gui.label"),z['$[]=']("settings",new Map),z['$[]=']("options",new Map([["content",d.window_title],["style",new Map([["width","100%"],["font-size","16px"],["text-align","center"]])]])),z['$[]=']("script",""),z['$[]=']("content",[]),v=c(c(c('GxG'),'Database'),'DetachedHash').$new(),v['$[]=']("component","org.gxg.gui.image"),v['$[]=']("settings",new Map),v['$[]=']("options",new Map([["src",d.$theme_widget("close.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),v['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n the_window = self.window\n if the_window\n if the_window.application\n the_window.application.window_close({:window => the_window.uuid})\n else\n GxG::DISPLAY_DETAILS[:object].window_close(the_window.uuid)\n end\n else\n log_warn('Window Not Found')\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n end\n end\n "),v['$[]=']("content",[]),u=c(c(c('GxG'),'Database'),'DetachedHash').$new(),u['$[]=']("component","org.gxg.gui.image"),u['$[]=']("settings",new Map),u['$[]=']("options",new Map([["src",d.$theme_widget("minimize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),u['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :minimize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n end\n end\n "),u['$[]=']("content",[]),s=c(c(c('GxG'),'Database'),'DetachedHash').$new(),s['$[]=']("component","org.gxg.gui.image"),s['$[]=']("settings",new Map),s['$[]=']("options",new Map([["src",d.$theme_widget("maximize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),s['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :maximize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n end\n end\n "),s['$[]=']("content",[]),y=c(c(c('GxG'),'Database'),'DetachedHash').$new(),y['$[]=']("component","org.gxg.gui.block.table"),y['$[]=']("settings",new Map),y['$[]=']("options",new Map([["style",new Map([["clear","both"],["height","24px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 0px 0px"],["border-bottom","1px solid #c2c2c2"]])],["states",new Map([["default-background-color",!0]])]])),y['$[]=']("script",""),y['$[]=']("content",[]),o=c(c(c('GxG'),'Database'),'DetachedHash').$new(),o['$[]=']("component","org.gxg.gui.block.table.row"),o['$[]=']("settings",new Map),o['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),o['$[]=']("script",""),o['$[]=']("content",[]),q=c(c(c('GxG'),'Database'),'DetachedHash').$new(),q['$[]=']("component","org.gxg.gui.block.table.cell"),q['$[]=']("settings",new Map),q['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),q['$[]=']("script",""),q['$[]=']("content",[]),t=c(c(c('GxG'),'Database'),'DetachedHash').$new(),t['$[]=']("component","org.gxg.gui.block.table.cell"),t['$[]=']("settings",new Map),t['$[]=']("options",new Map([["style",new Map([["width","100%"],["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),t['$[]=']("script",""),t['$[]=']("content",[]),I=c(c(c('GxG'),'Database'),'DetachedHash').$new(),I['$[]=']("component","org.gxg.gui.block.table.cell"),I['$[]=']("settings",new Map),I['$[]=']("options",new Map([["style",new Map([["float","right"],["padding","0px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),I['$[]=']("script",""),I['$[]=']("content",[]),b(d.closebox)&&(k(d.closebox,"disabled")&&(v['$[]']("options")['$[]=']("src",d.$theme_widget("close_disable.png")),v['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](v)),b(d.minimizebox)&&(k(d.minimizebox,"disabled")&&(u['$[]']("options")['$[]=']("src",d.$theme_widget("minimize_disable.png")),u['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](u)),b(d.maximizebox)&&(k(d.maximizebox,"disabled")&&(s['$[]']("options")['$[]=']("src",d.$theme_widget("maximize_disable.png")),s['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](s)),t['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n #\n if @window_handle\n unless @last_mouse_x\n @last_mouse_x = event[:pageX]\n end\n unless @last_mouse_y\n @last_mouse_y = event[:pageY]\n end\n offset_x = (event[:pageX] - @window_handle.left)\n if event[:pageY] < @window_handle.top\n offset_y = (@window_handle.top - event[:pageY])\n else\n offset_y = (event[:pageY] - @window_handle.top)\n end\n new_x = ((event[:pageX] - offset_x) + (event[:pageX] - @last_mouse_x))\n new_y = ((event[:pageY] - offset_y) + (event[:pageY] - @last_mouse_y))\n @window_handle.set_position(new_x,new_y)\n @last_mouse_x = event[:pageX]\n @last_mouse_y = event[:pageY]\n end\n end\n end\n on(:dblclick) do |event|\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :rollup\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousemove) do |event|\n @window_handle = self.window\n if ((event[:buttons] & 1) == 1)\n @mode = :drag\n"+" do_drag(event)\n"+" else\n"+" @mode = :hover\n"+" end\n"+" end\n"+" on(:mouseover) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" on(:mouseleave) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" on(:mouseenter) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" "),t['$[]']("content")['$<<'](z),o['$[]']("content")['$<<'](q),o['$[]']("content")['$<<'](t),o['$[]']("content")['$<<'](I),y['$[]']("content")['$<<'](o),J['$<<'](y),j=c(c(c('GxG'),'Database'),'DetachedHash').$new(),j['$title=']("content "+d.uuid.$to_s()),j['$[]=']("component","org.gxg.gui.block"),j['$[]=']("settings",new Map),j['$[]=']("options",new Map([["style",new Map([["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+e(d.$width(),i(d.resize_margin,2))+"px"],["height",""+e(d.$height(),h(h(d.title_margin,d.menu_margin),d.resize_margin))+"px"]])],["states",new Map([["default-background-color",!0]])]])),j['$[]=']("script",""),j['$[]=']("content",[]),K=j.$uuid(),b(d.scrolling)?k(d.scrolling,!0)?j['$[]']("options")['$[]']("style")['$[]=']("overflow","scroll"):(k(d.scrolling,"vertical")&&j['$[]']("options")['$[]']("style")['$[]=']("overflow-y","scroll"),k(d.scrolling,"horizontal")&&j['$[]']("options")['$[]']("style")['$[]=']("overflow-x","scroll")):j['$[]']("options")['$[]']("style")['$[]=']("overflow","hidden"),B=c(c(c('GxG'),'Database'),'DetachedHash').$new(),B['$[]=']("component","org.gxg.gui.block.table.cell"),B['$[]=']("settings",new Map),B['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),B['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),B['$[]=']("content",[]),H=c(c(c('GxG'),'Database'),'DetachedHash').$new(),H['$[]=']("component","org.gxg.gui.block.table.cell"),H['$[]=']("settings",new Map),H['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),H['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),H['$[]=']("content",[]),G=c(c(c('GxG'),'Database'),'DetachedHash').$new(),G['$[]=']("component","org.gxg.gui.block.table.cell"),G['$[]=']("settings",new Map),G['$[]=']("options",new Map([["style",new Map([["height","2px"],["cursor","s-resize"]])]])),G['$[]=']("script","\n def do_drag(event)\n window_handle = self.window\n if window_handle\n if ((event[:buttons] & 1) == 1)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),G['$[]=']("content",[]),F=c(c(c('GxG'),'Database'),'DetachedHash').$new(),F['$[]=']("component","org.gxg.gui.block.table.cell"),F['$[]=']("settings",new Map),F['$[]=']("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","sw-resize"]])]])),F['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX] - 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),F['$[]=']("content",[]),C=c(c(c('GxG'),'Database'),'DetachedHash').$new(),C['$[]=']("component","org.gxg.gui.block.table.cell"),C['$[]=']("settings",new Map),C['$[]=']("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","se-resize"]])]])),C['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),C['$[]=']("content",[]),D=c(c(c('GxG'),'Database'),'DetachedHash').$new(),D['$[]=']("component","org.gxg.gui.block.table.cell"),D['$[]=']("settings",new Map),D['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),D['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),D['$[]=']("content",[]),E=c(c(c('GxG'),'Database'),'DetachedHash').$new(),E['$[]=']("component","org.gxg.gui.block.table.cell"),E['$[]=']("settings",new Map),E['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),E['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),E['$[]=']("content",[]),A=c(c(c('GxG'),'Database'),'DetachedHash').$new(),A['$title=']("menu_area "+d.uuid.$to_s()),A['$[]=']("component","org.gxg.gui.block.table.cell"),A['$[]=']("settings",new Map),A['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["height","16px"],["padding","0px"],["margin","0px"]])]])),A['$[]=']("script",""),A['$[]=']("content",[]),r=c(c(c('GxG'),'Database'),'DetachedHash').$new(),r['$title=']("menu_area_row "+d.uuid.$to_s()),r['$[]=']("component","org.gxg.gui.block.table.row"),r['$[]=']("settings",new Map),r['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["clear","both"],["padding","0px"],["width","100%"],["height","16px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"],["border-bottom","1px solid #c2c2c2"]])]])),r['$[]=']("script",""),r['$[]=']("content",[D,A,E]),p=c(c(c('GxG'),'Database'),'DetachedHash').$new(),p['$title=']("content_area "+d.uuid.$to_s()),p['$[]=']("component","org.gxg.gui.block.table.cell"),p['$[]=']("settings",new Map),p['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["border","0px"]])]])),p['$[]=']("script",""),p['$[]=']("content",[j]),l=c(c(c('GxG'),'Database'),'DetachedHash').$new(),l['$[]=']("component","org.gxg.gui.block.table.row"),l['$[]=']("settings",new Map),l['$[]=']("options",new Map),l['$[]=']("script",""),l['$[]=']("content",[]),x=c(c(c('GxG'),'Database'),'DetachedHash').$new(),x['$[]=']("component","org.gxg.gui.block.table.row"),x['$[]=']("settings",new Map),x['$[]=']("options",new Map),x['$[]=']("script",""),x['$[]=']("content",[]),m=c(c(c('GxG'),'Database'),'DetachedHash').$new(),m['$title=']("window_body "+d.uuid.$to_s()),m['$[]=']("component","org.gxg.gui.block.table"),m['$[]=']("settings",new Map),m['$[]=']("options",new Map([["style",new Map([["width","100%"]])],["states",new Map([["default-background-color",!0]])]])),m['$[]=']("script",""),m['$[]=']("content",[]),b(d.resize)?(l['$[]=']("content",[B,p,H]),x['$[]=']("content",[F,G,C]),b(d.menu_reference)?m['$[]=']("content",[r,l,x]):m['$[]=']("content",[l,x])):b(d.menu_reference)?(l['$[]=']("content",[p]),m['$[]=']("content",[r,l])):(l['$[]=']("content",[p]),m['$[]=']("content",[l])),J['$<<'](m),d.content=a,d.$page().$build_components(d,J,new Map([["application",d.application]])),n=d.$page().$find_object_by(K),b(n)&&(d.content=n),n=d.$page().$find_object_by("window_body "+d.uuid.$to_s()),b(n)&&(d.window_body=n),n=d.$page().$find_object_by("title_object "+d.uuid.$to_s()),b(n)&&(d.title_object=n),n=d.$page().$find_object_by("menu_area "+d.uuid.$to_s()),b(n)&&(d.menu_area=n,d.menu_margin=(d.menu_area.$element().getBoundingClientRect().bottom-d.menu_area.$element().getBoundingClientRect().top).$to_i(),b(d.menu_area)&&d.menu_area.$parent().$parent().$gxg_merge_style(new Map([["border-collapse","collapse"]]))),g(c(w('GxG'),'DISPATCHER'),'post_event',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$commit_settings()},{$$s:d}),d})}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement'),w),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.window",c(c(c('GxG'),'Gui'),'Window')),function(y,r,u){var n=p(y,r,'DialogBox'),v=[n].concat(u),w=j.$r(v),q=n.$$prototype;return q.title_object=q.window_title=q.responder=q.right=q.left=q.bottom=q.top=q.opacity=q.content=q.background_color=q.layer=q.uuid=a,d(n,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,s(c,t(c,'_before_create',b,!1,!0),'_before_create',[],null)}),d(n,'$uuid',l("uuid")),d(n,'$before_close',function(b){return b==null&&(b=a),a},-1),d(n,'$after_close',function(b){return b==null&&(b=a),a},-1),d(n,'$before_open',function(b){return b==null&&(b=a),a},-1),d(n,'$after_open',function(b){return b==null&&(b=a),a},-1),d(n,'$set_application',x("application")),m(n,"application=","set_application"),d(n,'$application',l("application")),d(n,'$set_window_title',function(d){var e=this;return d==null&&(d=a),b(e.title_object)&&b(d['$is_a?'](c('String')))?(e.window_title=d,e.title_object.$set_text(e.window_title)):a},-1),m(n,"window_title=","set_window_title"),d(n,'$window_title',function(){var c=this;return b(c.title_object)?c.window_title:a}),d(n,'$set_data',function(a){var b=this;return a==null&&(a=new Map),b.data=a},-1),m(n,"data=","set_data"),d(n,'$data',l("data")),d(n,'$set_responder',function(c){var d=this;return c==null&&(c=a),b(c['$respond_to?']("call"))?d.responder=c:a},-1),m(n,"responder=","set_responder"),d(n,'$respond',function(c){var d=this;return c==null&&(c=a),d.$page().$dialog_close(),b(d.responder['$respond_to?']("call"))?d.responder.$call(c):a},-1),d(n,'$top',l("top")),d(n,'$left',l("left")),d(n,'$right',l("right")),d(n,'$bottom',l("bottom")),d(n,'$width',function(){var a=this;return e(a.right,a.left)}),d(n,'$height',function(){var a=this;return e(a.bottom,a.top)}),d(n,'$position',function(){var a=this;return new Map([["x",a.left],["y",a.top]])}),d(n,'$layer',l("layer")),d(n,'$initialize',function n(o,d,m){var p=n.$$p||a,g=this,k=a,l=a,j=a;return n.$$p=null,m==null&&(m=new Map),g.special_state=a,g.content=a,k=a,b(d['$[]']("width")['$is_a?'](c('String')))||b(d['$[]']("width").$to_s()['$include?']("."))?b(d['$[]']("width")['$is_a?'](c('String')))?k=i(window.innerWidth.$to_f(),f(d['$[]']("width").$gsub("%","").$to_f(),100)):k=i(window.innerWidth.$to_f(),f(d['$[]']("width"),100)):b(d['$[]']("width")['$is_a?'](c('Numeric')))&&(k=d['$[]']("width").$to_f()),b(k)&&(g.left=e(f(window.innerWidth.$to_f(),2),f(k,2)),g.right=h(f(window.innerWidth.$to_f(),2),f(k,2))),l=a,b(d['$[]']("height")['$is_a?'](c('String')))||b(d['$[]']("height").$to_s()['$include?']("."))?b(d['$[]']("height")['$is_a?'](c('String')))?l=i(window.innerHeight.$to_f(),f(d['$[]']("height").$gsub("%","").$to_f(),100)):l=i(window.innerHeight.$to_f(),f(d['$[]']("height"),100)):b(d['$[]']("height")['$is_a?'](c('Numeric')))&&(l=d['$[]']("height").$to_f()),b(l)&&(g.top=e(f(window.innerHeight.$to_f(),2),f(l,2)),g.bottom=h(f(window.innerHeight.$to_f(),2),f(l,2))),b(d['$[]']("top")['$is_a?'](c('String')))||b(d['$[]']("top").$to_s()['$include?']("."))?b(d['$[]']("top")['$is_a?'](c('String')))?g.top=i(window.innerHeight.$to_f(),f(d['$[]']("top").$gsub("%","").$to_f(),100)):g.top=i(window.innerHeight.$to_f(),f(d['$[]']("top"),100)):b(l)||(g.top=b(j=d['$[]']("top"))?j:e(f(window.innerHeight.$to_i(),2),150)),b(d['$[]']("left")['$is_a?'](c('String')))||b(d['$[]']("left").$to_s()['$include?']("."))?b(d['$[]']("left")['$is_a?'](c('String')))?g.left=i(window.innerWidth.$to_f(),f(d['$[]']("left").$gsub("%","").$to_f(),100)):g.left=i(window.innerWidth.$to_f(),f(d['$[]']("left"),100)):b(k)||(g.left=b(j=d['$[]']("left"))?j:e(f(window.innerWidth.$to_i(),2),300)),b(d['$[]']("right")['$is_a?'](c('String')))||b(d['$[]']("right").$to_s()['$include?']("."))?b(d['$[]']("right")['$is_a?'](c('String')))?g.right=i(window.innerWidth.$to_f(),f(d['$[]']("right").$gsub("%","").$to_f(),100)):g.right=i(window.innerWidth.$to_f(),f(d['$[]']("right"),100)):b(k)||(g.right=b(j=d['$[]']("right"))?j:h(f(window.innerWidth.$to_i(),2),300)),b(d['$[]']("bottom")['$is_a?'](c('String')))||b(d['$[]']("bottom").$to_s()['$include?']("."))?b(d['$[]']("bottom")['$is_a?'](c('String')))?g.bottom=i(window.innerHeight.$to_f(),f(d['$[]']("bottom").$gsub("%","").$to_f(),100)):g.bottom=i(window.innerHeight.$to_f(),f(d['$[]']("bottom"),100)):b(l)||(g.bottom=b(j=d['$[]']("bottom"))?j:h(f(window.innerHeight.$to_i(),2),150)),g.window_title=b(j=d['$[]']("window_title"))?j:"Untitled",g.title_object=a,g.opacity=b(j=d['$[]']("opacity"))?j:.8,g.background_color=b(j=d['$[]']("background-color"))?j:"rgba(0,0,0,"+g.opacity.$to_s()+")",g.layer=2e3,g.tracking=new Map,g.responder=a,g.data=new Map,s(g,t(g,'initialize',n,!1,!0),'initialize',[o,d,m],null),g.$set_attribute("draggable",!1),g},-3),m(n,"original_add_child","add_child"),d(n,'$add_child',function(c){var a=this;return b(a.content)?a.content.$add_child(c):a.$original_add_child(c)}),m(n,"original_children","children"),d(n,'$children',function(){var a=this;return b(a.content)?a.content.$children():new Map}),d(n,'$find_child',function(f,h){var j=this,e=a,i=a,d=a,c=a;for(f==null&&(f=a),h==null&&(h=!1),e=a,b(w('GxG')['$valid_uuid?'](f))?i=!0:i=!1,k(h,!0)?d=j.$original_children().$values():d=j.$children().$values();b(o(d.$size(),0));)if(c=d.$shift(),b(c)){if(b(i)){if(k(c.$uuid(),f)){e=c;break}}else if(k(c.$title(),f)){e=c;break}b(e)||g(c.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(n,'$cascade',function(){var d=this,q=a,p=a,g=a,k=a,l=a,n=a,j=a,m=a,o=a;return d.$merge_style(new Map([["position","absolute"],["top","0px"],["left","0px"],["width","100%"],["height","100%"],["background-color",d.background_color],["z-index",d.layer]])),q="\n on(:mouseup,true) do |event|\n end\n on(:mousedown,true) do |event|\n end\n on(:mousemove,true) do |event|\n end\n on(:mouseenter,true) do |event|\n end\n on(:mouseleave,true) do |event|\n end\n ",d.$set_script(q),p=[],g=c(c(c('GxG'),'Database'),'DetachedHash').$new(),g['$title=']("modal_frame "+d.uuid.$to_s()),g['$[]=']("component","org.gxg.gui.block.table"),g['$[]=']("settings",new Map),g['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["overflow","hidden"],["position","absolute"],["top",""+d.top+"px"],["left",""+d.left+"px"],["width",""+d.$width()+"px"],["height",""+d.$height()+"px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 5px 5px"],["z-index",h(d.layer,100)]])],["states",new Map([["default-background-color",!0]])]])),g['$[]=']("script",""),g['$[]=']("content",[]),k=c(c(c('GxG'),'Database'),'DetachedHash').$new(),k['$title=']("title "+d.uuid.$to_s()),k['$[]=']("component","org.gxg.gui.label"),k['$[]=']("settings",new Map),k['$[]=']("options",new Map([["content",d.window_title],["style",new Map([["opacity",1],["width","100%"],["font-size","16px"],["text-align","center"]])]])),k['$[]=']("script",""),k['$[]=']("content",[]),l=c(c(c('GxG'),'Database'),'DetachedHash').$new(),l['$[]=']("component","org.gxg.gui.block.table.cell"),l['$[]=']("settings",new Map),l['$[]=']("options",new Map([["style",new Map([["opacity",1],["width","100%"],["padding","0px 0px 0px "+e(f(d.$width(),2),i(f(d.window_title.$size(),2),8))+"px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),l['$[]=']("script",""),l['$[]=']("content",[k]),n=c(c(c('GxG'),'Database'),'DetachedHash').$new(),n['$[]=']("component","org.gxg.gui.block.table.row"),n['$[]=']("settings",new Map),n['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["width","100%"],["height","24px"],["margin","0px"],["vertical-align","middle"],["background-color","#ffffff"],["border-bottom","1px solid #c2c2c2"]])]])),n['$[]=']("script",""),n['$[]=']("content",[l]),j=c(c(c('GxG'),'Database'),'DetachedHash').$new(),j['$title=']("content "+d.uuid.$to_s()),j['$[]=']("component","org.gxg.gui.block.table.cell"),j['$[]=']("settings",new Map),j['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+d.$width()+"px"],["height",""+d.$height()+"px"]])],["states",new Map([["default-background-color",!0]])]])),j['$[]=']("script",""),j['$[]=']("content",[]),m=c(c(c('GxG'),'Database'),'DetachedHash').$new(),m['$[]=']("component","org.gxg.gui.block.table.row"),m['$[]=']("settings",new Map),m['$[]=']("options",new Map([["style",new Map([["opacity",1],["width",""+d.$width()+"px"],["height",""+e(d.$height(),24)+"px"],["padding","0px"],["margin","0px"],["border","0px"]])]])),m['$[]=']("script",""),m['$[]=']("content",[j]),g['$[]=']("content",[n,m]),p['$<<'](g),d.content=a,d.$page().$build_components(d,p),o=d.$page().$find_object_by("content "+d.uuid.$to_s()),b(o)&&(d.content=o),o=d.$page().$find_object_by("title "+d.uuid.$to_s()),b(o)?d.title_object=o:a}),d(n,'$open',function(b){return b==null&&(b=new Map),a},-1),d(n,'$close',function(b){return b==null&&(b=new Map),a},-1)}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement'),w),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.window.dialog",c(c(c('GxG'),'Gui'),'DialogBox')),function(m,n){var q=v(m,'Vdom'),f=[q].concat(n);return function(v,q,s){var f=p(v,q,'Page'),t=[f].concat(s),m=j.$r(t),n=f.$$prototype;return n.dialog=n.dialog_queue=n.window_registry=a,d(f,'$window_open',function(f,g){var e=this,d=a,h=a;return f==null&&(f=a),g==null&&(g=a),!!b(f['$is_a?'](c(c(m('GxG'),'Database'),'DetachedHash')))&&(e.$build_components(e,[f],new Map([["application",g]])),d=e.$find_object_by(f.$uuid()),b(d)?(b(d.$menu_reference())&&(h=g.$search_content(d.$menu_reference()),b(h['$is_a?'](c(c(m('GxG'),'Database'),'DetachedHash')))?d.$set_menu(h):e.$log_warn("Invalid Menu Resource referenced: "+d.$menu_reference().$inspect())),e.$window_register(d.$uuid(),d),d.$before_open(),d.$open(),d.$show(),d.$after_open(),!0):(e.$log_warn("Unable to locate newly created window object."),!1))},-1),d(f,'$window_close',function(e,f){var g=this,d=a;return e==null&&(e=a),f==null&&(f=new Map),!!b(e['$is_any?'](c('String'),c('Symbol')))&&(!!(d=g.$get_window_registration(e),b(d))&&(d['$[]']("window").$before_close(),d['$[]']("window").$close(),d['$[]']("window").$hide(),d['$[]']("window").$after_close(),b(d['$[]']("window").$application())&&(d['$[]']("window").$application().$unlink_window(e),d['$[]']("window").$set_application(a)),g.$window_unregister(e),d['$[]']("window").$destroy(),!0))},-1),d(f,'$dialog_open',function j(e,f,g){var i=j.$$p||a,h=this,d=a;return j.$$p=null,e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),b(e['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))?b(h.dialog['$is_a?'](c(c(c('GxG'),'Gui'),'DialogBox')))?(h.dialog_queue['$<<'](new Map([["source",e],["application",f],["details",g],["responder",i]])),!0):!!(h.$page().$build_components(h,[e],new Map([["application",f]])),d=h.$page().$find_object_by(e.$uuid()),b(d))&&(d.$set_title(e.$title()),b(f['$is_a?'](c(c('GxG'),'Application')))&&(d.$set_application(f),b(f.$get_window(e.$uuid()))||f.$link_window(d)),b(g)&&d.$set_data(g),b(i['$respond_to?']("call"))&&d.$set_responder(i),d.$before_open(),d.$open(),d.$show(new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])),d.$after_open(),!0):a},-1),d(f,'$dialog_close',function(d){var e=this,f=a;return d==null&&(d=new Map),b(e.dialog['$is_a?'](c(c(c('GxG'),'Gui'),'DialogBox')))&&(e.dialog.$before_close(),f=g(m('Proc'),'new',[],function f(){var d=f.$$s==null?this:f.$$s,e=a;return d.dialog==null&&(d.dialog=a),d.dialog_queue==null&&(d.dialog_queue=a),d.dialog.$close(),d.dialog.$after_close(),g(d.dialog,'every_child',[],function(d){var e=a;return d==null&&(d=a),b(d['$is_a?'](c(c(c('GxG'),'Gui'),'ApplicationViewport')))&&(e=d.$application(),b(e))?e.$unlink_viewport(d.$title()):a}),d.dialog.$destroy(),d.dialog=a,b(o(d.dialog_queue.$size(),0))?(e=d.dialog_queue.$shift(),g(d.$page(),'dialog_open',[e['$[]']("source"),e['$[]']("application"),e['$[]']("details")],e['$[]']("responder").$to_proc())):a},{$$s:e}),b(d['$[]']("origin"))&&b(d['$[]']("destination"))?g(e.dialog,'hide',[d],f.$to_proc()):g(e.dialog,'hide',[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])],["options",new Map([["duration",500]])]])],f.$to_proc())),!0},-1),d(f,'$window_is_in_back?',function(c){var e=this,d=a,f=a,h=a;return c==null&&(c=a),d=e.$get_window_registration(c),!!b(d)&&(!!(f=b(h=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?h:0,k(d['$[]']("layer"),f)))},-1),d(f,'$window_is_in_front?',function(c){var e=this,d=a,f=a,h=a;return c==null&&(c=a),d=e.$get_window_registration(c),!!b(d)&&(!!(f=b(h=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?h:0,k(d['$[]']("layer"),f)))},-1),d(f,'$window_send_to_back',function(c){var d,f=this,e=a,i=a;return c==null&&(c=a),e=f.$get_window_registration(c),!!b(e)&&(b(f['$window_is_in_back?'](c))?a:(i=f.$window_back_layer(),e['$[]']("window").$gxg_merge_style("z-index",h(200,i)),(d=["layer",i],g(e,'[]=',d),d[d.length-1])))},-1),d(f,'$window_bring_to_front',function(d,g){var e=this,c=a,f=a;return!!(d==null&&(d=a),g==null&&(g=new Map),c=e.$get_window_registration(d),b(c))&&(k(c['$[]']("layer"),e.$window_top_layer())||(f=e.$window_next_layer(),c['$[]']("window").$gxg_merge_style("z-index",h(200,f)),c['$[]=']("layer",f)),!0)},-1),d(f,'$next_minimize_slot',function(){var q=this,f=a,l=a,d=a,p=a,o=a,n=a;return f=200,l=24,d=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),p=j.Range.$new(0,e(d['$[]']("right"),d['$[]']("left")).$step(f).$size(),!1),o=j.Range.$new(0,e(d['$[]']("bottom"),d['$[]']("top")).$step(l).$size(),!1),n=a,function(){try{var c=u('break');return g(j.Range.$new(0,e(o,1),!1),'each',[],function o(m){var q=o.$$s==null?this:o.$$s;if(m==null&&(m=a),function(){try{var c=u('break');return g(j.Range.$new(0,e(p,1),!1),'each',[],function o(j){var p=o.$$s==null?this:o.$$s,q=a,e=a;if(p.window_registry==null&&(p.window_registry=a),j==null&&(j=a),q=!1,e=new Map([["top",h(d['$[]']("top"),i(m,l))],["left",h(d['$[]']("left"),i(j,f))],["right",h(h(d['$[]']("left"),i(j,f)),f)],["bottom",h(h(d['$[]']("top"),i(m,l)),l)]]),function(){try{var b=u('break');return g(p.window_registry.$values(),'each',[],function f(d){var c=a;if(d==null&&(d=a),c=new Map([["top",0],["left",0],["right",0],["bottom",0]]),c['$[]=']("top",d['$[]']("window").$element().getBoundingClientRect().top.$to_i()),c['$[]=']("left",d['$[]']("window").$element().getBoundingClientRect().left.$to_i()),c['$[]=']("right",d['$[]']("window").$element().getBoundingClientRect().right.$to_i()),c['$[]=']("bottom",d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),k(c['$[]']("top"),e['$[]']("top"))&&k(c['$[]']("left"),e['$[]']("left"))&&k(c['$[]']("right"),e['$[]']("right"))&&k(c['$[]']("bottom"),e['$[]']("bottom")))q=!0,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),b(q))return a;n=e,c.$throw(a,o.$$is_lambda)},{$$s:q})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),b(n))c.$throw(a,o.$$is_lambda);else return a},{$$s:q})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),n}),d(f,'$minimize_effect',function t(c){var n=t.$$p||a,r=this,i=a,f=a,l=a,k=a,d=a,o=a,p=a,q=a,j=a,s=a,h=a;return t.$$p=null,c==null&&(c=a),i=r.$get_window_switcher(),b(i)?(f=new Map([["opacity",1]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),l=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),k=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(l,f['$[]']("left"))),f['$[]=']("height",e(k,f['$[]']("top"))),d=new Map([["opacity",0]]),d['$[]=']("top",i.$element().getBoundingClientRect().top.$to_i()),d['$[]=']("left",i.$element().getBoundingClientRect().right.$to_i()),o=i.$element().getBoundingClientRect().right.$to_i(),p=i.$element().getBoundingClientRect().top.$to_i(),d['$[]=']("width",e(o,d['$[]']("left"))),d['$[]=']("height",e(p,d['$[]']("top"))),q=g(m('Proc'),'new',[],function(){return b(n['$respond_to?']("call"))?n.$call(!0):a})):(j=r.$next_minimize_slot(),f=new Map([["opacity",1]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),l=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),k=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(l,f['$[]']("left"))),f['$[]=']("height",e(k,f['$[]']("top"))),d=new Map([["opacity",.5]]),d['$[]=']("top",j['$[]']("top")),d['$[]=']("left",j['$[]']("left")),o=j['$[]']("right"),p=j['$[]']("bottom"),d['$[]=']("width",e(o,d['$[]']("left"))),d['$[]=']("height",e(p,d['$[]']("top"))),q=g(m('Proc'),'new',[],function d(){var e=d.$$s==null?this:d.$$s;return e.$window_send_to_back(c['$[]']("window").$uuid()),b(n['$respond_to?']("call"))?n.$call(!0):a},{$$s:r})),s=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",s],["animationend",q]])]])),h=new Map([["action","minimize"],["top",0],["left",0],["right",0],["bottom",0]]),h['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),h['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),h['$[]=']("right",c['$[]']("window").$element().getBoundingClientRect().right.$to_i()),h['$[]=']("bottom",c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),h},-1),d(f,'$unminimize_effect',function l(c){var p=l.$$p||a,r=this,n=a,f=a,k=a,h=a,d=a,j=a,i=a,o=a,q=a;return l.$$p=null,c==null&&(c=a),n=r.$get_window_switcher(),b(n)?(f=new Map([["opacity",0]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),k=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),h=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(k,f['$[]']("left"))),f['$[]=']("height",e(h,f['$[]']("top"))),d=new Map([["opacity",1]]),d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),j=c['$[]']("restore")['$[]']("settings")['$[]']("right"),i=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(j,d['$[]']("left"))),d['$[]=']("height",e(i,d['$[]']("top")))):(f=new Map([["opacity",.5]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),k=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),h=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(k,f['$[]']("left"))),f['$[]=']("height",e(h,f['$[]']("top"))),d=new Map([["opacity",1]]),d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),j=c['$[]']("restore")['$[]']("settings")['$[]']("right"),i=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(j,d['$[]']("left"))),d['$[]=']("height",e(i,d['$[]']("top")))),o=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),q=g(m('Proc'),'new',[],function(){return b(p['$respond_to?']("call"))?p.$call(!0):a}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",o],["animationend",q]])]])),!0},-1),d(f,'$maximize_effect',function k(d){var l=k.$$p||a,f=a,h=a,n=a,o=a,i=a,p=a,q=a,j=a;return k.$$p=null,d==null&&(d=a),f=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),h=new Map,h['$[]=']("top",d['$[]']("window").$element().getBoundingClientRect().top.$to_i()),h['$[]=']("left",d['$[]']("window").$element().getBoundingClientRect().left.$to_i()),n=d['$[]']("window").$element().getBoundingClientRect().right.$to_i(),o=d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),h['$[]=']("width",e(n,h['$[]']("left"))),h['$[]=']("height",e(o,h['$[]']("top"))),i=new Map,i['$[]=']("top",f['$[]']("top")),i['$[]=']("left",f['$[]']("left")),i['$[]=']("width",e(f['$[]']("right"),i['$[]']("left"))),i['$[]=']("height",e(f['$[]']("bottom"),i['$[]']("top"))),p=g(m('Proc'),'new',[],function(){var b=a,c=a,e=a,f=a;return b=d['$[]']("window").$element().getBoundingClientRect().top.$to_i(),c=d['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=d['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),d['$[]']("window").$set_frame(new Map([["top",b],["left",c],["right",e],["bottom",f]]))}),q=g(m('Proc'),'new',[],function(){return b(l['$respond_to?']("call"))?l.$call(!0):a}),d['$[]']("window").$animate(new Map([["origin",h],["destination",i],["options",new Map([["duration",500],["animationiteration",p],["animationend",q]])]])),j=new Map([["action","maximize"],["top",0],["left",0],["right",0],["bottom",0]]),j['$[]=']("top",f['$[]']("top")),j['$[]=']("left",f['$[]']("left")),j['$[]=']("right",f['$[]']("right")),j['$[]=']("bottom",f['$[]']("bottom")),j},-1),d(f,'$unmaximize_effect',function k(c){var h=k.$$p||a,f=a,i=a,j=a,d=a,l=a,n=a,o=a,p=a;return k.$$p=null,c==null&&(c=a),f=new Map,f['$[]=']("top",c['$[]']("window").$top()),f['$[]=']("left",c['$[]']("window").$left()),i=c['$[]']("window").$right(),j=c['$[]']("window").$bottom(),f['$[]=']("width",e(i,f['$[]']("left"))),f['$[]=']("height",e(j,f['$[]']("top"))),d=new Map,d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),l=c['$[]']("restore")['$[]']("settings")['$[]']("right"),n=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(l,d['$[]']("left"))),d['$[]=']("height",e(n,d['$[]']("top"))),o=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),p=g(m('Proc'),'new',[],function(){return b(h['$respond_to?']("call"))?h.$call(!0):a}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",o],["animationend",p]])]])),!0},-1),d(f,'$rollup_effect',function j(c){var i=j.$$p||a,f=a,k=a,h=a,e=a,d=a;return j.$$p=null,c==null&&(c=a),f=new Map,k=c['$[]']("window").$top(),f['$[]=']("height",c['$[]']("window").$height()),h=new Map,h['$[]=']("height",24),e=c['$[]']("window").$find_child("window_body",!0),b(e)&&g(e,'hide',[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])]])],function(){return c['$[]']("window").$animate(new Map([["origin",f],["destination",h]])),b(i['$respond_to?']("call"))?i.$call(!0):a}),d=new Map([["action","rollup"],["top",0],["left",0],["right",0],["bottom",0]]),d['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),d['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),d['$[]=']("right",c['$[]']("window").$element().getBoundingClientRect().right.$to_i()),d['$[]=']("bottom",c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),d},-1),d(f,'$rolldown_effect',function h(c){var i=h.$$p||a,d=a,f=a,j=a;return h.$$p=null,c==null&&(c=a),d=new Map,d['$[]=']("height",24),f=new Map,f['$[]=']("height",e(c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),c['$[]']("restore")['$[]']("settings")['$[]']("top"))),j=g(m('Proc'),'new',[],function(){var d=a;return d=c['$[]']("window").$find_child("window_body",!0),b(d)?g(d,'show',[new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])],function(){return c['$[]']("window").$commit_settings(),b(i['$respond_to?']("call"))?i.$call(!0):a}):a}),c['$[]']("window").$animate(new Map([["origin",d],["destination",f],["options",new Map([["duration",500],["animationend",j]])]])),!0},-1),d(f,'$window_restoreable?',function(d){var f=this,e=a;return d==null&&(d=a),e=f.$get_window_registration(d),!!b(e)&&(!!b(e['$[]']("restore")['$is_a?'](c('Hash'))))},-1),d(f,'$window_restore',function i(h,j){var e=i.$$p||a,f=this,d=a;if(i.$$p=null,h==null&&(h=a),j==null&&(j=new Map),d=f.$get_window_registration(h),b(d)){if(b(d['$[]']("restore")['$is_a?'](c('Hash')))){switch(d['$[]']("restore")['$[]']("action").valueOf()){case"minimize":g(f,'unminimize_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;case"maximize":g(f,'unmaximize_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;case"rollup":g(f,'rolldown_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;default:a}return!0}return!1}else return!1},-1),d(f,'$window_minimize',function(d,e){var f=this,c=a;return!!(d==null&&(d=a),e==null&&(e=new Map),c=f.$get_window_registration(d),b(c))&&(b(f['$window_restoreable?'](d))?g(f,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return e=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","minimize"],["settings",e]])),c['$[]']("window").$set_special_state(b.$minimize_effect(c))},{$$s:f}):(c['$[]=']("restore",new Map([["action","minimize"],["settings",e]])),c['$[]']("window").$set_special_state(f.$minimize_effect(c))),!0)},-1),d(f,'$window_maximize',function(d,f){var e=this,c=a;return!!(d==null&&(d=a),f==null&&(f=new Map),c=e.$get_window_registration(d),b(c))&&(b(e['$window_restoreable?'](d))?g(e,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return f=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","maximize"],["settings",f]])),c['$[]']("window").$set_special_state(b.$maximize_effect(c)),b.$window_bring_to_front(d)},{$$s:e}):(c['$[]=']("restore",new Map([["action","maximize"],["settings",f]])),c['$[]']("window").$set_special_state(e.$maximize_effect(c)),e.$window_bring_to_front(d)),!0)},-1),d(f,'$window_rollup',function(d,e){var f=this,c=a;return!!(d==null&&(d=a),e==null&&(e=new Map),c=f.$get_window_registration(d),b(c))&&(b(f['$window_restoreable?'](d))?g(f,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return e=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","rollup"],["settings",e]])),c['$[]']("window").$set_special_state(b.$rollup_effect(c))},{$$s:f}):(c['$[]=']("restore",new Map([["action","rollup"],["settings",e]])),c['$[]']("window").$set_special_state(f.$rollup_effect(c))),!0)},-1),d(f,'$get_window_registration',function(d){var e=this;return d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol')))?e.window_registry['$[]'](d):a},-1),d(f,'$get_window',function(d){var f=this,e=a;return d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol')))&&(e=f.$get_window_registration(d),b(e))?e['$[]']("window"):a},-1),d(f,'$window_list',function(){var c=this,b=a;return b=[],g(c.window_registry.$keys(),'each',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.window_registry==null&&(d.window_registry=a),c==null&&(c=a),b['$<<'](new Map([["uuid",c],["title",d.window_registry['$[]'](c)['$[]']("window").$title()]]))},{$$s:c}),b}),d(f,'$window_repack_layers',function(){var b=this;return b.window_registry=g(b.window_registry,'sort_by',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$to_h(),g(b.window_registry.$values(),'each_with_index',[],function(b,c){var d;return b==null&&(b=a),c==null&&(c=a),b['$[]']("window").$gxg_merge_style("z-index",h(200,c)),(d=["layer",c],g(b,'[]=',d),d[d.length-1])}),!0}),d(f,'$window_top_layer',function(){var d=this,c=a;return b(c=g(d.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?c:0}),d(f,'$window_back_layer',function(){var f=this,c=a,d=a;return c=e(b(d=g(f.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?d:0,1),b(r(c,100))&&(f.$window_repack_layers(),c=e(b(d=g(f.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?d:0,1)),c}),d(f,'$window_next_layer',function(){var e=this,c=a,d=a;return c=h(b(d=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?d:0,1),b(o(c,99))&&(e.$window_repack_layers(),c=h(b(d=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?d:0,1)),c}),d(f,'$window_register',function(e,d){var g=this,f=a;return e==null&&(e=a),d==null&&(d=a),!!b(e['$is_any?'](c('String'),c('Symbol')))&&(!!b(d)&&(f=g.$window_next_layer(),d.$gxg_merge_style("z-index",h(200,f)),g.window_registry['$[]='](e,new Map([["window",d],["layer",f],["restore",a]])),!0))},-1),d(f,'$window_unregister',function(d){var e=this;return!!(d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol'))))&&(e.window_registry.$delete(d),!0)},-1),d(f,'$set_window_switcher',function(c){var d=this;return c==null&&(c=a),b(c)?d.window_switcher=c:a},-1),d(f,'$get_window_switcher',l("window_switcher"))}(f[0],null,f)}(w[0],w)}(w[0],w)}(w[0],w)},Opal.modules["web/gxg_gui"]=function(e){var r=e.module,m=e.klass,o=e.send2,p=e.find_super,d=e.def,w=e.assign_ivar,n=e.return_ivar,c=e.truthy,i=e.rb_gt,g=e.send,h=e.eqeq,t=e.thrower,q=e.alias,f=e.rb_plus,s=e.neqeq,k=e.rb_times,j=e.rb_minus,l=e.rb_divide,v=e.range,u=[],a=e.nil,b=e.$$$;return e.add_stubs('>,size,shift,valid_uuid?,[],children,uuid,object_source,each_child,<<,==,title,register_component_class,add_child,is_a?,original_add_child,values,original_children,each,new_component,title=,to_s,[]=,build_components,page,find_object_by,respond_to?,include?,to_sym,log_warn,inspect,clone,node_path,nodes,split,node_at_path,+,join,gxg_get_state,expand,post_event,expand_path,to_proc,call,!=,unhighlight,highlight,parent,unshift,is_any?,update_appearance,find_parent_type,theme_icon,theme_widget,new,merge_style,show,set_state,set_attribute,tree,hide,collapse,unpersist,each_pair,animate,layout_refresh,to_i,*,to_f,layout_content_area,-,round,/,dialog_open,log_error,basename,reverse'),function(x,y){var z=r(x,'GxG'),u=[z].concat(y);return function(x,y){var z=r(x,'Gui'),u=[z].concat(y);return function(f,j,k){var b=m(f,j,'ApplicationViewport'),l=[b].concat(k),q=e.$r(l);return d(b,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c.domtype="div",o(c,p(c,'_before_create',b,!1,!0),'_before_create',[],null)}),d(b,'$set_application',w("application")),d(b,'$application',n("application")),d(b,'$find_child',function(d){var j=this,f=a,e=a,b=a;if(d==null&&(d=a),f=a,c(d))for(e=[j];c(i(e.$size(),0));)if(b=e.$shift(),c(b))if(c(q('GxG')['$valid_uuid?'](d))){if(c(b.$children()['$[]'](j.$object_source().$uuid()))){f=b.$children()['$[]'](j.$object_source().$uuid());break}g(b,'each_child',[],function(b){return b==null&&(b=a),e['$<<'](b)})}else(function(){try{var c=t('break');return g(b,'each_child',[],function g(b){if(b==null&&(b=a),h(b.$title(),d))f=b,c.$throw(a,g.$$is_lambda);else return e['$<<'](b)})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})();return f},-1)}(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),u),b(b('GxG'),'Gui').$register_component_class("org.gxg.gui.application.viewport",b(b(b('GxG'),'Gui'),'ApplicationViewport')),function(w,r,u){var j=m(w,r,'Tree'),v=[j].concat(u),k=e.$r(v),l=j.$$prototype;return l.content=l.uuid=l.processors=l.selection=a,q(j,"original_add_child","add_child"),d(j,'$add_child',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?c(e.content)?e.content.$add_child(d):e.$original_add_child(d):a},-1),q(j,"original_children","children"),d(j,'$children',function(){var a=this;return c(a.content)?a.content.$children():new Map}),d(j,'$find_child',function(f,j){var m=this,e=a,l=a,d=a,b=a;for(f==null&&(f=a),j==null&&(j=!1),e=a,c(k('GxG')['$valid_uuid?'](f))?l=!0:l=!1,h(j,!0)?d=m.$original_children().$values():d=m.$children().$values();c(i(d.$size(),0));)if(b=d.$shift(),c(b)){if(c(l)){if(h(b.$uuid(),f)){e=b;break}}else if(h(b.$title(),f)){e=b;break}c(e)||g(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(j,'$initialize',function c(d,e){var f=c.$$p||a,b=this;return c.$$p=null,b.content=a,b.selection=a,b.processors=new Map,o(b,p(b,'initialize',c,!1,!0),'initialize',[d,e],null),b}),d(j,'$cascade',function(){var b=this,d=a,e=a;return d=b.$new_component("org.gxg.gui.list"),d['$title=']("content "+b.uuid.$to_s()),d['$[]=']("options",new Map([["style",new Map([["white-space","nowrap"],["width","auto"],["height","auto"],["list-style","none"],["margin","0px"],["padding","0px"]])]])),b.content=a,b.$page().$build_components(b,[d]),e=b.$page().$find_object_by("content "+b.uuid.$to_s()),c(e)?b.content=e:a}),d(j,'$update_appearance',function(b){return b==null&&(b=a),a},-1),d(j,'$set_processor',function e(b){var f=e.$$p||a,d,h=this;return e.$$p=null,b==null&&(b=a),c(f['$respond_to?']("call"))?c(["select","expand","collapse"]['$include?'](b.$to_s().$to_sym()))?(d=[b.$to_s().$to_sym(),f],g(h.processors,'[]=',d),d[d.length-1]):h.$log_warn("Unsupported processor type: "+b.$to_s().$to_sym().$inspect()):a},-1),d(j,'$node_at_path',function(f){var l=this,j=a,e=a,d=a;for(f==null&&(f=a),j=a,e=l.$children().$values().$clone();c(i(e.$size(),0));)if(d=e.$shift(),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))){if(h(d.$node_path(),f)){j=d;break}g(d.$nodes().$values(),'each',[],function(b){return b==null&&(b=a),e['$<<'](b)})}return j},-1),d(j,'$expand_path',function l(d){var e=l.$$p||a,n=this,j=a,m=a;return l.$$p=null,d==null&&(d=a),c(d['$is_a?'](b('String')))&&(j=[],m=d.$split("/"),function(){try{var l=t('break');return g(m,'each',[],function n(o){var p=n.$$s==null?this:n.$$s,m=a;if(o==null&&(o=a),c(i(o.$size(),0)))if(j['$<<'](o),m=p.$node_at_path(f("/",j.$join("/"))),c(m['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode'))))return h(m.$gxg_get_state("expanded"),!1)&&(m.$expand(),g(b(k('GxG'),'DISPATCHER'),'post_event',["display"],function a(){var b=a.$$s==null?this:a.$$s;return g(b,'expand_path',[d],e.$to_proc())},{$$s:p}),l.$throw(a,n.$$is_lambda)),h(m.$node_path(),d)&&c(e['$respond_to?']("call"))?e.$call():a;else g(b(k('GxG'),'DISPATCHER'),'post_event',["display"],function a(){var b=a.$$s==null?this:a.$$s;return g(b,'expand_path',[d],e.$to_proc())},{$$s:p}),l.$throw(a,n.$$is_lambda);else return a},{$$s:n})}catch(a){if(a===l)return a.$v;throw a}finally{l.is_orphan=!0}}()),!0},-1),d(j,'$selection',n("selection")),d(j,'$select',function(e){var d=this;return e==null&&(e=a),c(e['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&s(d.selection,e)?(c(d.selection)&&d.selection.$unhighlight(),d.selection=e,d.selection.$highlight(),c(d.processors['$[]']("select")['$respond_to?']("call")))?d.processors['$[]']("select").$call(d.selection):a:a},-1),d(j,'$expand',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&c(e.processors['$[]']("expand")['$respond_to?']("call"))?e.processors['$[]']("expand").$call(d):a},-1),d(j,'$collapse',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&c(e.processors['$[]']("collapse")['$respond_to?']("call"))?e.processors['$[]']("collapse").$call(d):a},-1)}(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),u),b(b('GxG'),'Gui').$register_component_class("tree",b(b(b('GxG'),'Gui'),'Tree')),function(v,r,t){var j=m(v,r,'TreeNode'),u=[j].concat(t),l=e.$r(u),k=j.$$prototype;return k.data=k.content=k.appearance=k.uuid=k.label=k.expander=a,d(j,'$_before_create',function e(){var f=e.$$p||a,d=this;return e.$$p=null,c(d.data['$is_a?'](b('Hash')))&&c(d.data['$[]']("title"))&&(d.title=d.data['$[]']("title")),o(d,p(d,'_before_create',e,!1,!0),'_before_create',[],null)}),q(j,"original_add_child","add_child"),d(j,'$add_child',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?c(e.content)?e.content.$add_child(d):e.$original_add_child(d):a},-1),d(j,'$nodes',function(){var a=this;return c(a.content)?a.content.$children():new Map}),d(j,'$node_path',function(){var i=this,e=a,h=a,d=a;for(e="",h=[i],d=i.$parent();s(d,a);)c(d['$is_a?'](b(b(l('GxG'),'Gui'),'TreeNode')))&&h.$unshift(d),d=d.$parent(),c(d['$is_a?'](b(b(l('GxG'),'Gui'),'Tree')))&&(d=a);return g(h,'each',[],function(b){return b==null&&(b=a),e=f(e,"/"+b.$title())}),e}),d(j,'$find_child',function(d){var k=this,e=a,j=a,f=a,b=a;for(d==null&&(d=a),e=a,c(l('GxG')['$valid_uuid?'](d))?j=!0:j=!1,f=k.$children().$values();c(i(f.$size(),0));)if(b=f.$shift(),c(b)){if(c(j)){if(h(b.$uuid(),d)){e=b;break}}else if(h(b.$title(),d)){e=b;break}c(e)||g(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),f['$<<'](b)})}return e},-1),d(j,'$update_appearance',function(d){var e=this;return!!(d==null&&(d=a),c(e.appearance['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'))))},-1),d(j,'$data',n("data")),d(j,'$appearance',n("appearance")),d(j,'$set_appearance',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(e.appearance=d,e.$update_appearance()):a},-1),d(j,'$tree_node',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'TreeNode'))}),d(j,'$tree',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Tree'))}),d(j,'$initialize',function g(h,f){var i=g.$$p||a,d=this,e=a;return g.$$p=null,d.content=a,d.appearance=new Map([["icon",d.$theme_icon("folder.svg")],["label","Untitled"]]),c(f['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.data=c(e=f['$[]']("data"))?e:new Map([["title","Untitled"],["type","virtual_directory"],["content",new Map]]),d.appearance['$[]=']("icon",(c(e=f['$[]']("icon"))?e:d.$theme_icon("folder.svg")).$to_s()),d.appearance['$[]=']("label",(c(e=f['$[]']("label"))?e:d.data['$[]']("title")).$to_s())),o(d,p(d,'initialize',g,!1,!0),'initialize',[h,f],null),d}),d(j,'$cascade',function(){var d=this,h=a,f=a,i=a,j=a,k=a,l=a,g=a,m=a,n=a,o=a,p=a,e=a;return h=d.$new_component("org.gxg.gui.block.table"),h['$[]']("settings")['$[]=']("nodepath",d.$node_path()),f=d.$new_component("org.gxg.gui.block.table"),i=d.$new_component("org.gxg.gui.image"),i['$title=']("expander "+d.uuid.$to_s()),i['$[]=']("options",new Map([["src",d.$theme_widget("collapse.svg")],["width",32],["height",32],["style",new Map([["clear","both"],["vertical-align","middle"]])]])),i['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n unless the_node.get_state(:disabled) == true\n if self.get_state(:expanded) == true\n self.set_attribute(:src, theme_widget('collapse.svg'))\n self.set_state(:expanded,false)\n the_node.collapse()\n else\n self.set_attribute(:src, theme_widget('expand.svg'))\n self.set_state(:expanded,true)\n the_node.expand()\n end\n end\n end\n end\n "),j=b(b(b('GxG'),'Database'),'DetachedHash').$new(),j=d.$new_component("org.gxg.gui.block.table.cell"),j['$[]=']("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),j['$[]']("content")['$<<'](i),k=d.$new_component("org.gxg.gui.block.table.cell"),k['$title=']("icon "+d.uuid.$to_s()),k['$[]=']("options",new Map([["src",d.appearance['$[]']("icon")],["style",new Map([["clear","both"],["width","32px"],["height","32px"],["vertical-align","middle"]])]])),k['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),l=b(b(b('GxG'),'Database'),'DetachedHash').$new(),l=d.$new_component("org.gxg.gui.block.table.cell"),l['$[]=']("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),l['$[]']("content")['$<<'](k),g=d.$new_component("org.gxg.gui.label"),g['$title=']("title "+d.uuid.$to_s()),g['$[]=']("options",new Map([["content",d.appearance['$[]']("label")],["style",new Map([["float","left"],["font-size","16px"],["vertical-align","middle"],["text-align","left"],["margin","2px"],["padding","2px"]])]])),g['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),m=d.$new_component("org.gxg.gui.block.table.cell"),m['$[]=']("options",new Map([["style",new Map([["float","left"],["vertical-align","middle"]])]])),m['$[]']("content")['$<<'](g),f=d.$new_component("org.gxg.gui.block.table.row"),f['$[]=']("script","\n on(:mouseenter) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.highlight()\n end\n end\n on(:mouseleave) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.unhighlight()\n end\n end\n "),f['$[]']("content")['$<<'](j),f['$[]']("content")['$<<'](l),f['$[]']("content")['$<<'](m),n=d.$new_component("org.gxg.gui.list"),n['$title=']("content "+d.uuid.$to_s()),n['$[]=']("options",new Map([["width","100%"],["height","100%"],["style",new Map([["list-style","none"]])]])),o=d.$new_component("org.gxg.gui.block.table.cell"),o['$[]']("content")['$<<'](n),p=d.$new_component("org.gxg.gui.block.table.row"),p['$[]']("content")['$<<'](o),h['$[]']("content")['$<<'](f),h['$[]']("content")['$<<'](p),d.content=a,d.$page().$build_components(d,[h]),e=d.$page().$find_object_by("content "+d.uuid.$to_s()),c(e)&&(d.content=e),e=d.$page().$find_object_by("expander "+d.uuid.$to_s()),c(e)&&(d.expander=e),e=d.$page().$find_object_by("icon "+d.uuid.$to_s()),c(e)&&(d.icon=e),e=d.$page().$find_object_by("title "+d.uuid.$to_s()),c(e)?d.label=e:a}),d(j,'$highlight',function(b){var d=this;return b==null&&(b=a),c(d.label)?d.label.$merge_style(new Map([["background-color","#87acd5"]])):a},-1),d(j,'$unhighlight',function(b){var d=this;return b==null&&(b=a),c(d.label)?d.label.$merge_style(new Map([["background-color","#f2f2f2"]])):a},-1),d(j,'$expand',function(d){var b=this,e=a;return d==null&&(d=a),b.content.$show(d),b.$set_state("expanded",!0),c(b.expander)&&b.expander.$set_attribute("src",b.$page().$theme_widget("expand.svg")),e=b.$tree(),c(e)?e.$expand(b):a},-1),d(j,'$collapse',function(d){var b=this,e=a;return d==null&&(d=a),b.content.$hide(d),b.$set_state("expanded",!1),c(b.expander)&&b.expander.$set_attribute("src",b.$page().$theme_widget("collapse.svg")),e=b.$tree(),c(e)?e.$collapse(b):a},-1),d(j,'$enable',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()):d=new Map([["origin",new Map([["opacity",.5]])],["destination",new Map([["opacity",1]])]]),g(e.$children(),'each_pair',[],function f(c,b){var e=f.$$s==null?this:f.$$s;return e.uuid==null&&(e.uuid=a),c==null&&(c=a),b==null&&(b=a),h(c,("content "+e.uuid.$to_s()).$to_sym())?a:(b.$set_state("disabled",!1),b.$animate(d))},{$$s:e})},-1),d(j,'$disable',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()):d=new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",.5]])]]),g(e.$children(),'each_pair',[],function f(c,b){var e=f.$$s==null?this:f.$$s;return e.uuid==null&&(e.uuid=a),c==null&&(c=a),b==null&&(b=a),h(c,("content "+e.uuid.$to_s()).$to_sym())?a:(b.$animate(d),b.$set_state("disabled",!0))},{$$s:e})},-1)}(u[0],b(b(b('GxG'),'Gui'),'ListItem'),u),b(b('GxG'),'Gui').$register_component_class("tree_node",b(b(b('GxG'),'Gui'),'TreeNode')),m(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),'Panel'),b(b('GxG'),'Gui').$register_component_class("panel",b(b(b('GxG'),'Gui'),'Panel')),function(n,o){var p=r(n,'Vdom'),b=[p].concat(o);return function(o,p,q){var n=m(o,p,'Page'),r=[n].concat(q),b=e.$r(r);return d(n,'$upload_dialog',function F(D,m){var L=F.$$p||a,d=this,C=a,n=a,B=a,w=a,H=a,t=a,v=a,K=a,x=a,y=a,G=a,J=a,h=a,r=a,p=a,s=a,E=a,z=a,u=a,A=a,q=a,o=a,I=a;if(F.$$p=null,D==null&&(D=a),m==null&&(m=a),d.$layout_refresh(),C=(c(n=m)?n:new Map([["title","Choose a file:"]]))['$[]']("title").$to_s(),B=(c(n=m)?n:new Map([["banner","Choose a file to upload"]]))['$[]']("banner").$to_s(),w=(c(n=m)?n:new Map([["destination",a]]))['$[]']("destination").$to_s(),H=k(d.$layout_content_area()['$[]']("page_width").$to_f(),.25).$to_i(),t=20,v=5,K=j(H,k(f(t,v),2)),x=k(f(t,v),2),y=16,c(i(B.$to_s().$size(),40))?G=k(l(B.$size().$to_f(),40),y.$to_f()).$round().$to_i():G=y,J=16,c(i(w.$size(),0))){h=d.$new_component("org.gxg.gui.form"),h['$[]']("options")['$[]=']("action","/file_upload"),h['$[]']("options")['$[]=']("method","POST"),h['$[]']("options")['$[]=']("enctype","multipart/form-data"),h['$[]']("options")['$[]=']("style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])),x=330,r=d.$new_component("org.gxg.gui.input.file"),r['$title=']("file"),r['$[]']("options")['$[]=']("name","file"),h['$[]']("content")['$<<'](r),p=d.$new_component("org.gxg.gui.input.hidden"),p['$title=']("destination"),p['$[]']("options")['$[]=']("name","destination"),p['$[]']("options")['$[]=']("value",w),h['$[]']("content")['$<<'](p),s=d.$new_component("org.gxg.gui.grid.container"),E=d.$new_component("org.gxg.gui.grid.x"),z=d.$new_component("org.gxg.gui.grid.x"),u=d.$new_component("org.gxg.gui.input.button"),A=d.$new_component("org.gxg.gui.input.button.submit"),E['$[]']("content")['$<<'](u),z['$[]']("content")['$<<'](A),s['$[]']("content")['$<<'](E),s['$[]']("content")['$<<'](z),h['$[]']("content")['$<<'](s),u['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_window.respond({:action => :cancel})\n end\n end\n "),A['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n page.set_busy true\n ::GxG::CONNECTION.post(form) do |response|\n page.set_busy false\n the_window.respond({:action => :upload, :destination => form.form_data[:destination].to_s})\n end\n end\n end\n "),q=d.$new_component("org.gxg.gui.application.viewport"),q['$title=']("gxg_selection_viewport"),q['$[]']("options")['$[]=']("style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])),q['$[]']("content")['$<<'](h),o=d.$new_component("org.gxg.gui.window.dialog"),o['$title='](C),o['$[]=']("options",new Map([["window_title",C],["states",new Map([["hidden",!0]])],["width",350],["height",x]])),o['$[]']("content")['$<<'](q);try{return g(d,'dialog_open',[o,D,m],L.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){I=a;try{return d.$log_error(new Map([["error",I],["parameters",m]])),!1}finally{e.pop_exception(a)}}else throw a}}else return d.$log_error("You MUST provide a destination path"),!1},-1),d(n,'$choice_dialog',function $(H,q){var ab=$.$$p||a,x=this,L=a,n=a,s=a,E=a,D=a,F=a,_=a,C=a,Z=a,z=a,v=a,u=a,p=a,o=a,A=a,t=a,y=a,V=a,R=a,P=a,N=a,B=a,M=a,K=a,O=a,J=a,Q=a,I=a,S=a,T=a,U=a,m=a,W=a,X=a,Y=a,d=a,r=a,w=a,G=a,aa=a;switch($.$$p=null,H==null&&(H=a),q==null&&(q=a),x.$layout_refresh(),L=(c(n=q)?n:new Map([["title","Choose"]]))['$[]']("title").$to_s(),s=(c(n=q)?n:new Map([["banner","(Please provide some text here)"]]))['$[]']("banner").$to_s(),E=(c(n=q)?n:new Map([["one",""]]))['$[]']("one").$to_s(),D=(c(n=q)?n:new Map([["two",""]]))['$[]']("two").$to_s(),F=(c(n=q)?n:new Map([["three",""]]))['$[]']("three").$to_s(),_=(c(n=q)?n:new Map([["default",""]]))['$[]']("default").$to_s(),C=c(n=(c(Z=q)?Z:new Map([["type","choose"]]))['$[]']("type"))?n:"choose",z=k(x.$layout_content_area()['$[]']("page_width").$to_f(),.25).$to_i(),v=20,u=5,p=j(z,k(f(v,u),2)),o=k(f(v,u),2),A=16,c(i(s.$to_s().$size(),40))?t=k(l(s.$size().$to_f(),40),A.$to_f()).$round().$to_i():t=A,y=16,V=new Map([["component","org.gxg.gui.text"],["options",new Map([["content",s],["style",new Map([["font-size",""+A+"px"],["width","100%"]])]])],["content",[]],["script",""]]),R=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["height",t],["vertical-align","middle"]])]])],["content",[V]],["script",""]]),P=new Map([["component","org.gxg.gui.input.text"],["options",new Map([["title","data"],["content",_],["style",new Map([["background-color","#f2f2f2"],["font-size",""+y+"px"],["width","100%"]])]])],["content",[]],["script",""]]),N=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["vertical-align","middle"]])]])],["content",[P]],["script",""]]),B=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",E],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),B['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :one})\n end\n end\n "),M=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[B]],["script",""]]),K=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",D],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),K['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :two})\n end\n end\n "),O=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[K]],["script",""]]),J=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",F],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),J['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :three})\n end\n end\n "),Q=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[J]],["script",""]]),I=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),I['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),S=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"]])]])],["content",[I]],["script",""]]),T=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[R]],["script",""]]),U=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[N]],["script",""]]),m=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[]],["script",""]]),W=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[T]],["script",""]]),X=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[U]],["script",""]]),Y=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[m]],["script",""]]),d=new Map([["component","org.gxg.gui.form"],["options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding",""+v+"px"],["margin",""+u+"px"]])]])],["content",[]],["script",""]]),c(i(s.$size(),0))&&d['$[]']("content")['$<<'](W),C.valueOf()){case"choose":c(i(E.$size(),0))&&m['$[]']("content")['$<<'](M),c(i(D.$size(),0))&&m['$[]']("content")['$<<'](O),c(i(F.$size(),0))&&m['$[]']("content")['$<<'](Q);break;case"alert":r=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),r['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :ok})\n end\n end\n "),w=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[r]],["script",""]]),m['$[]']("content")['$<<'](w);break;case"input":m['$[]']("content")['$<<'](S),r=new Map([["component","button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),r['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(:form)\n if the_window && form\n the_window.respond({:action => :ok, :form => form.form_data()})\n end\n end\n "),w=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[r]],["script",""]]),m['$[]']("content")['$<<'](w),d['$[]']("content")['$<<'](X);break;default:a}switch(d['$[]']("content")['$<<'](Y),d['$[]']("options")['$[]']("style")['$[]=']("width",""+z+"px"),c(i(s.$to_s().$size(),0))&&(d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("height",""+t+"px"),d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,f(t,20))),h(C,"input")?(d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("height",""+y+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,f(y,20)),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("height","32px"),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,52)):(d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("height","32px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,52)),o=f(o,32),d['$[]']("options")['$[]']("style")['$[]=']("height",""+j(o,k(f(v,u),2))+"px"),m['$[]']("content").$size().valueOf()){case 1:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,2),25)+"px");break;case 2:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,4),12)+"px"),m['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,4),12)+"px");break;case 3:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px"),m['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px"),m['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px");break;default:a}G=new Map([["component","org.gxg.gui.window.dialog"],["options",new Map([["window_title",L],["states",new Map([["hidden",!0]])],["width",z],["height",o]])],["script",""],["content",[d]]]),G['$[]=']("script","\n on(:keyup) do |event|\n if event[:which] == 27\n self.respond({:action => :cancel})\n end\n end\n ");try{return g(x,'dialog_open',[G,H,q],ab.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){aa=a;try{return x.$log_error(new Map([["error",aa],["parameters",new Map]])),!1}finally{e.pop_exception(a)}}else throw a}},-1),d(n,'$vfs_dialog',function R(Q,s){var U=R.$$p||a,d=this,n=a,p=a,o=a,E=a,P=a,k=a,t=a,m=a,O=a,y=a,S=a,i=a,x=a,B=a,C=a,D=a,q=a,F=a,u=a,H=a,I=a,J=a,K=a,L=a,M=a,z=a,A=a,G=a,l=a,N=a,w=a,r=a,T=a;switch(R.$$p=null,Q==null&&(Q=a),s==null&&(s=a),n="Unsupported Dialog Type",p="Unsupported",o=(c(E=s)?E:new Map([["type","folder"]]))['$[]']("type"),o.valueOf()){case"save":case"save":n="Save As ...",p="Save";break;case"folder":case"folder":n="Choose Folder",p="Choose";break;case"object":case"object":n="Select Object",p="Select";break;default:a}switch(P="\n def select(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:data] = @settings[:data]\n menu_bar_header = page.find_object_by('gxg_path_menu_header')\n if menu_bar_header\n menu_bar_header.set_label(File.basename(@settings[:data]))\n menu_bar_header.set_data(@settings[:data])\n end\n menu = page.find_object_by('gxg_path_menu')\n if menu\n menu.update_menu(@settings[:data])\n end\n sublist = page.find_object_by('gxg_path_subitems')\n if sublist\n sublist.update_appearance()\n end\n end\n end\n ",k=d.$new_component("org.gxg.gui.menu.bar"),k['$title=']("gxg_path_menu_bar"),k['$[]=']("settings",new Map([["path",c(E=s['$[]']("path"))?E:"/"]])),t=d.$new_component("org.gxg.gui.menu.item"),t['$title=']("gxg_path_menu_header"),t['$[]=']("settings",new Map([["label",b('File').$basename(k['$[]']("settings")['$[]']("path"))],["data",a]])),m=d.$new_component("org.gxg.gui.menu"),m['$title=']("gxg_path_menu"),m['$[]=']("settings",new Map([["item_script",P]])),m['$[]=']("script","\n def update_menu(the_path=nil)\n if the_path.is_a?(::String)\n build_list = []\n menu[:content] = []\n #\n menu_manifest = []\n (0..(the_path.split('/').size - 1)).each do |the_index|\n menu_manifest << (the_path.split('/')[0..(the_index)].join('/'))\n end\n menu_manifest.reverse.[1..-1].each do |the_subpath|\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'menu_item'\n the_item[:settings] = {:label => File.basename(the_subpath), :data => the_subpath}\n the_item[:options] = {}\n the_item[:script] = @settings[:item_script].to_s\n the_item[:content] = []\n build_list << the_item\n end\n children.values.reverse.each do |the_child|\n the_child.destroy\n end\n if build_list.size > 0\n page.build_components(self, build_list)\n end\n #\n end\n end\n "),O=[],g(e.Range.$new(0,j(k['$[]']("settings")['$[]']("path").$split("/").$size(),1),!1),'each',[],function(b){return b==null&&(b=a),O['$<<'](k['$[]']("settings")['$[]']("path").$split("/")['$[]'](e.Range.$new(0,b,!1)).$join("/"))}),g(O.$reverse()['$[]'](v(1,-1,!1)),'each',[],function e(c){var f=e.$$s==null?this:e.$$s,d=a;return c==null&&(c=a),d=f.$new_component("org.gxg.gui.menu.item"),d['$[]=']("settings",new Map([["label",b('File').$basename(c)],["data",c]])),d['$[]=']("script",P),m['$[]']("content")['$<<'](d)},{$$s:d}),t['$[]']("content")['$<<'](m),k['$[]']("content")['$<<'](t),y=d.$new_component("org.gxg.gui.block.table.cell"),y['$[]=']("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),y['$[]=']("content",[k]),S="\n def highlight()\n self.merge_style({:'background-color' => '#c2c2c2'})\n end\n def unhighlight()\n self.merge_style({:'background-color' => '#ffffff'})\n end\n def select()\n # unhighlight all others\n parent.children.values.each do |the_child|\n the_child.unhighlight()\n end\n # set selection\n self.highlight()\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:selection] = self\n end\n end\n on(:mouseup) do |the_event|\n self.select()\n end\n ",i=d.$new_component("org.gxg.gui.list"),i['$title=']("gxg_path_subitems"),i['$[]=']("settings",new Map([["list_item_script",S]])),i['$[]=']("options",new Map([["style",new Map([["clear","both"],["list-style","none"],["padding","0px"],["margin","0px"]])]])),i['$[]=']("script","\n def add_list_item(the_icon=nil, the_path=nil, the_profile=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n #\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'list_tiem'\n the_item[:settings] = {:label => File.basename(the_path), :data => the_path}\n the_item[:options] = {}\n the_item[:script] = @settings[:list_item_script].to_s\n the_item[:content] = []\n #\n the_window.settings[:manifest][(the_item.uuid.to_s.to_sym)] = {:path => the_path, :profile => the_profile}\n #\n icon_item = ::GxG::Database::DetachedHash.new\n icon_item[:component] = 'image'\n icon_item[:settings] = {}\n icon_item[:options] = {src => the_icon.to_s, :style => {:width => '16px', :height => '16px'}}\n icon_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n icon_item[:content] = []\n #\n label_item = ::GxG::Database::DetachedHash.new\n label_item[:component] = 'label'\n label_item[:settings] = {}\n label_item[:options] = {:content => File.basename(the_path)}\n label_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n label_item[:content] = []\n #\n the_item[:content] << icon_item\n the_item[:content] << label_item\n page.build_components(self, [(the_item)])\n true\n else\n false\n end\n end\n #\n def update_appearance(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n dialog_type = (the_window.settings[:type] || :folder)\n the_path = the_window.settings[:data]\n if the_path.is_a?(::String)\n"+" #\n"+" the_window.settings[:selection] = nil\n"+" the_window.settings[:manifest] = {}\n"+" # Clear List\n"+" self.children.values.each do |the_child|\n"+" the_child.destroy\n"+" end\n"+" # Rebuild List\n"+" GxG::CONNECTION.entries({:location => (the_path)}) do |response|\n"+" if response.is_a?(::Hash)\n"+" response[:result].each do |the_profile|\n"+" # add list item\n"+" item_path = (the_path + '/' + the_profile[:title].to_s)\n"+" if dialog_type == :folder\n"+" if [:virtual_directory, :directory, :persisted_array].include?(the_profile[:type].to_s.to_sym)\n"+" self.add_list_item(self.theme_icon('folder.svg'), item_path, the_profile)\n"+" end\n"+" else\n"+" case (the_profile[:type].to_s.to_sym)\n"+" when :virtual_directory, :directory, :persisted_array\n"+" the_icon_path = self.theme_icon('folder.svg')\n"+" when :persisted_hash\n"+" the_icon_path = self.theme_icon('object.svg')\n"+" else\n"+" # Review: further qualify file type icons ??\n"+" the_icon_path = self.theme_icon('file.svg')\n"+" end\n"+" self.add_list_item(the_icon_path, item_path, the_profile)\n"+" end\n"+" #\n"+" end\n"+" #\n"+" end\n"+" end\n"+" #\n"+" end\n"+" end\n"+" end\n"+" "),o.valueOf()){case"save":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # nothing\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]\n end\n end\n end\n end\n end\n end\n "));break;case"folder":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # nothing\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]\n end\n end\n end\n end\n end\n end\n "));break;case"object":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # if object selected enable Select button else disable it.\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n action_button = the_window.find_child('action_button')\n if action_button\n if [:file, :persisted_hash].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n action_button.enable()\n else\n action_button.disable()\n end\n end\n end\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n # first, disable Select button\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:profile][:path]\n end\n end\n end\n end\n end\n end\n "));break;default:a}x=d.$new_component("org.gxg.gui.block"),x['$[]=']("options",new Map([["style",new Map([["width","100%"],["height","192px"],["overflow-y","scroll"]])]])),x['$[]=']("content",[i]),B=d.$new_component("org.gxg.gui.block.table.cell"),B['$[]=']("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),B['$[]=']("content",[x]),C=d.$new_component("org.gxg.gui.input.text"),C['$title=']("gxg_save_name"),C['$[]=']("options",new Map([["style",new Map([["background-color","#f2f2f2"],["font-size","16px"],["width","100%"]])]])),D=d.$new_component("org.gxg.gui.block.table.cell"),D['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),D['$[]=']("content",[C]),q=d.$new_component("org.gxg.gui.input.button.submit"),q['$title=']("gxg_action_button"),q['$[]=']("options",new Map([["content",p],["style",new Map([["padding","0px"],["width","80px"],["height","32px"]])]])),q['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_action = the_window.settings[:type].to_s.to_sym\n the_path = the_window.settings[:data].to_s\n if the_action == :save\n the_path = (the_path + '/' + (form.form_data()[:gxg_save_name] || 'Untitled.data').to_s)\n end\n the_window.respond({:action => the_action, :path => the_path})\n end\n end\n "),F=d.$new_component("org.gxg.gui.block.table.cell"),F['$[]=']("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),F['$[]=']("content",[q]),u=d.$new_component("org.gxg.gui.input.button.submit"),u['$title=']("gxg_cancel_button"),u['$[]=']("options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])),u['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),H=d.$new_component("org.gxg.gui.block.table.cell"),H['$[]=']("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),H['$[]=']("content",[u]),I=d.$new_component("org.gxg.gui.block.table.row"),I['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),I['$[]=']("content",[y]),J=d.$new_component("org.gxg.gui.block.table.row"),J['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),J['$[]=']("content",[B]),K=d.$new_component("org.gxg.gui.block.table.row"),K['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),K['$[]=']("content",[D]),L=d.$new_component("org.gxg.gui.block.table.row"),L['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),L['$[]=']("content",[H,F]),M=d.$new_component("org.gxg.gui.block.table"),M['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),M['$[]=']("content",[I]),z=d.$new_component("org.gxg.gui.block.table"),z['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","192px"]])]])),z['$[]=']("content",[J]),A=d.$new_component("org.gxg.gui.block.table"),A['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),A['$[]=']("content",[K]),G=d.$new_component("org.gxg.gui.block.table"),G['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),G['$[]=']("content",[L]),l=d.$new_component("org.gxg.gui.form"),l['$[]=']("options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])]])),l['$[]=']("content",[]),N=330,l['$[]']("content")['$<<'](M),l['$[]']("content")['$<<'](z),(h(o,"save")||h(o,"save"))&&(l['$[]']("content")['$<<'](A),N=f(N,32)),l['$[]']("content")['$<<'](G),w=d.$new_component("org.gxg.gui.application.viewport"),w['$title=']("gxg_selection_viewport"),w['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])]])),w['$[]=']("content",[l]),r=d.$new_component("org.gxg.gui.window.dialog"),r['$title='](n),r['$[]=']("options",new Map([["window_title",n],["states",new Map([["hidden",!0]])],["width",350],["height",N]])),r['$[]=']("content",[w]);try{return g(d,'dialog_open',[r,Q,s],U.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){T=a;try{return d.$log_error(new Map([["error",T],["parameters",new Map]])),!1}finally{e.pop_exception(a)}}else throw a}},-1)}(b[0],null,b)}(u[0],u)}(u[0],u)}(u[0],u)},Opal.modules["web/gxg_comm"]=function(f){var l=f.module,k=f.klass,e=f.def,b=f.truthy,d=f.send,j=f.return_ivar,g=f.rb_gt,m=f.rb_lt,i=f.rb_plus,h=f.eqeq,o=f.rb_minus,n=[],a=f.nil,c=f.$$$;return f.add_stubs('is_any?,respond_to?,[]=,to_sym,downcase,to_s,next_message,[],is_a?,keys,call,<<,parse,decode64,log_error,new,shift,encode64,generate,export,include?,to_json,valid_uuid?,uuid_generate,new_message,pull,cancel_timer,get_attribute,>,size,to_i,<,log_info,inspect,element,open?,on,to_proc,body,fail,succeed,+,==,pull_data,base64?,json?,process_detached_import,push,uuid,format,search,constraint,each,clone,gxg_export,push_data,set_busy,encrypt,id,send,socket,basename,split,index,join,-,post_event,sleep,navigate_to,open,gsub,create_channel,import,decrypt,fetch_channel,write,add_periodic_timer,follow_up,heartbeat'),function(p,q){var r=l(p,'GxG'),n=[r].concat(q);return function(h,i){var m=l(h,'Networking'),g=[m].concat(i);return function(h,i,j){var g=k(h,i,'SocketMonitor'),l=[g].concat(j),m=f.$r(l),n=g.$$prototype;return n.event_handlers=a,e(g,'$initialize',function(){var a=this;return a.event_handlers=new Map,a}),e(g,'$on',function g(e){var h=g.$$p||a,f,i=this;return g.$$p=null,e==null&&(e=a),b(e['$is_any?'](c('String'),c('Symbol')))&&b(h['$respond_to?']("call"))?(f=[e.$to_s().$downcase().$to_sym(),h],d(i.event_handlers,'[]=',f),f[f.length-1]):a},-1),e(g,'$follow_up',function(f){var g=this,d=a,e=a;return f==null&&(f=new Map),d=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$next_message(),b(d['$is_a?'](c('Hash')))&&(e=d.$keys()['$[]'](0),b(g.event_handlers['$[]'](e)['$respond_to?']("call")))?g.event_handlers['$[]'](e).$call(d['$[]'](e)):a},-1)}(g[0],null,g),function(o,l,m){var g=k(o,l,'Socket'),n=[g].concat(m),h=f.$r(n),i=g.$$prototype;return i.inbox=i.socket=a,e(g,'$inbox',j("inbox")),e(g,'$add_to_inbox',function(b){var d=this,e=a;b==null&&(b="");try{return d.inbox['$<<'](c('JSON').$parse(b.$decode64(),new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[h('Exception')])){e=a;try{return d.$log_error(new Map([["error",e],["parameters",b.$decode64()]]))}finally{f.pop_exception(a)}}else throw a}},-1),e(g,'$error_message',function(a){var b=this;return b.$log_error(new Map([["error",h('Exception').$new(a)]]))}),e(g,'$next_message',function(){var a=this;return a.inbox.$shift()}),e(g,'$write',function(d){var f=this,e=a;return!!(d==null&&(d=""),b(d['$is_any?'](c('Hash'),c(c(c('GxG'),'Database'),'DetachedHash')))&&(b(d['$is_a?'](c('Hash')))?d=h('JSON').$generate(d).$to_s().$encode64():d=h('JSON').$generate(d.$export()).$to_s().$encode64()),e=f.socket,b(e))&&(e.send(d),!0)},-1),e(g,'$close',function(){var d=this,c=a;return!!(c=d.socket,b(c))&&(c.close,d.socket=a,!0)}),e(g,'$open?',function(){var a=this;return!!b(a.socket)}),e(g,'$open',function(k){var i,g=this,j=a,l=a,e=a,m=a;g.socket=a,b(window.location.href['$include?']("https://"))?j="wss://"+k:j="ws://"+k;try{l=new Map([["attach_display",!0]]).$to_json().$encode64(),e=new WebSocket(j),e.onopen=function(a){e.send(l)},e.onmessage=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].add_to_inbox('"+a.data+"')")},e.onclose=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].close")},e.onerror=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].error_message('"+a.message+"')")},g.socket=e}catch(a){if(f.rescue(a,[h('Exception')])){m=a;try{g.$log_error(new Map([["error",m],["parameters",new Map([["url",j.$to_s()]])]]))}finally{f.pop_exception(a)}}else throw a}return b(g.socket)?(i=["socket",g],d(c(c('GxG'),'DISPLAY_DETAILS'),'[]=',i),i[i.length-1]):a}),e(g,'$set_remote_uuid',function(c){var d=this;return!!(c==null&&(c=a),b(h('GxG')['$valid_uuid?'](c)))&&(d.remote_uuid=c.$to_sym(),!0)},-1),e(g,'$initialize',function(){var b=this;return b.uuid=h('GxG').$uuid_generate().$to_sym(),b.remote_uuid=a,b.inbox=[],b})}(g[0],null,g)}(n[0],n),function(p,q){var r=l(p,'Networking'),n=[r].concat(q);return function(t,q,r){var l=k(t,q,'Connector'),s=[l].concat(r),n=f.$r(s),p=l.$$prototype;return p.uuid=p.remote_uuid=p.heart_beat_timer=p.active=p.relative_url=p.host_prefix=p.display_path=p.csrf=a,e(l,'$remote_uuid',j("remote_uuid")),e(l,'$open?',j("active")),e(l,'$close',function(){var d=this,e=a;return e=d.$new_message(new Map([["close",!0]])),e['$[]=']("sender",d.uuid),e['$[]=']("to",d.remote_uuid),d.$pull(e,new Map([["synchronous",!0]])),d.active=!1,d.csrf=a,b(d.heart_beat_timer['$is_a?'](c('Hash')))&&c(n('GxG'),'DISPATCHER').$cancel_timer(d.heart_beat_timer),!0}),e(l,'$post',function p(k,o){var r=p.$$p||a,h=this,l=a,i=a,e=a,q=a,j=a,s=a;return p.$$p=null,k==null&&(k=""),o==null&&(o=new Map),b(h.active)?!!b(k['$is_a?'](c(c(c('GxG'),'Gui'),'Form')))&&(l=k.$get_attribute("action").$to_s(),b(g(l.$size(),0))?b(g(h.relative_url.$to_s().$size(),0))?i=""+h.host_prefix+h.relative_url.$to_s()+l.$to_s()+"?display="+h.display_path.$to_s():i=""+h.host_prefix+l.$to_s()+"?display="+h.display_path.$to_s():b(g(h.relative_url.$to_s().$size(),0))?i=""+h.host_prefix+h.relative_url.$to_s()+"?display="+h.display_path.$to_s():i=""+h.host_prefix+"?display="+h.display_path.$to_s(),e=new XMLHttpRequest,e.open('POST',i,!0),e.timeout=b(q=o['$[]']("timeout"))?q:5e3,e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),e.setRequestHeader('X-CSRF-Token',h.csrf),e.setRequestHeader('Content-Type','multipart/form-data'),j=d(n('Proc'),'new',[],function b(a){var c=b.$$s==null?this:b.$$s;return a==null&&(a=new Map([["error","unknown"]])),c.$log_error(a)},{$$arity:-1,$$s:h}),s=d(n('Proc'),'new',[],function i(){var g=i.$$s==null?this:i.$$s,k=a,h=a,d=a;if(k=e.status.$to_i(),b(m(k,300)))try{return h=c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])),g.$log_info(h.$inspect()),b(r['$respond_to?']("call"))?r.$call(h):a}catch(a){if(f.rescue(a,[n('Exception')])){d=a;try{return g.$log_error(new Map([["error",d],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else try{return j.$call(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){d=a;try{return g.$log_error(new Map([["error",d],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}},{$$s:h}),e.addEventListener('load',s),e.addEventListener('error',j),e.addEventListener('timeout',j),e.addEventListener('abort',j),e.send(k.$element()),!0):a},-1),e(l,'$download_file',function j(f,g){var i=j.$$p||a,h=this,e=a;return j.$$p=null,f==null&&(f=""),g==null&&(g=a),b(h['$open?']())?!!(b(f['$is_a?'](c('String')))&&b(i))&&(e=h.$new_message(new Map([["download_file",new Map([["path",f]])]])),e['$[]=']("sender",h.uuid),e['$[]=']("to",h.remote_uuid),b(g['$respond_to?']("call"))&&d(e,'on',["fail"],g.$to_proc()),d(e,'on',["success"],function(d){var e=a,f=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash')))){e=d['$[]']("result")['$[]']("file_name").$to_s(),f=d['$[]']("result")['$[]']("file_data").$decode64();const b=window.streamSaver,c=b.createWriteStream(e,{}),a=c.getWriter(),g=(new TextEncoder).encode(f);return a.write(g),a.close(),i.$call(!0)}return i.$call(!1)}),c(n('GxG'),'CONNECTION').$pull(e),!0):a},-1),e(l,'$push',function(i,l){var h=this,k=a,o=a,e=a,p=a,j=a,q=a;return i==null&&(i=a),l==null&&(l=new Map),b(h.active)?!!b(i['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(b(g(h.relative_url.$to_s().$size(),0))?k=""+h.host_prefix+h.relative_url.$to_s()+"?display="+h.display_path.$to_s():k=""+h.host_prefix+"?display="+h.display_path.$to_s(),o=i.$body().$to_json().$to_s(),e=new XMLHttpRequest,e.open('PUT',k,!0),e.timeout=b(p=l['$[]']("timeout"))?p:5e3,e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),e.setRequestHeader('X-CSRF-Token',h.csrf),e.setRequestHeader('Content-Type','application/json'),j=d(n('Proc'),'new',[],function(b){return b==null&&(b=a),i.$fail(b)},-1),q=d(n('Proc'),'new',[],function g(){var k=g.$$s==null?this:g.$$s,d=a,h=a;if(d=e.status.$to_i(),b(m(d,300)))try{return i.$succeed(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){h=a;try{return k.$log_error(new Map([["error",h],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else return j.$call(d)},{$$s:h}),e.addEventListener('load',q),e.addEventListener('error',j),e.addEventListener('timeout',j),e.addEventListener('abort',j),e.send(o),!0):a},-1),e(l,'$pull',function(k,p){var j=this,q=a,o=a,e=a,r=a,l=a,s=a;return k==null&&(k=a),p==null&&(p=new Map([["synchronous",!1]])),b(j.active)?!!b(k['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(q="display="+j.display_path.$to_s()+"&details="+k.$body().$to_json().$encode64(),b(g(j.relative_url.$to_s().$size(),0))?o=i(i(i(j.host_prefix.$to_s(),j.relative_url.$to_s()),"?"),q):o=i(i(j.host_prefix.$to_s(),"?"),q),e=new XMLHttpRequest,h(p['$[]']("synchronous"),!0)?e.open('GET',o.$to_s(),!1):(e.open('GET',o.$to_s(),!0),e.timeout=b(r=p['$[]']("timeout"))?r:6e5),e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),l=d(n('Proc'),'new',[],function(b){return b==null&&(b=a),k.$fail(b)},-1),s=d(n('Proc'),'new',[],function g(){var i=g.$$s==null?this:g.$$s,d=a,h=a;if(d=e.status.$to_i(),b(m(d,300)))try{return k.$succeed(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){h=a;try{return i.$log_error(new Map([["error",h],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else return l.$call(d)},{$$s:j}),e.addEventListener('load',s),e.addEventListener('error',l),e.addEventListener('timeout',l),e.addEventListener('abort',l),e.send(null),!0):a},-1),e(l,'$push_message',function(b){return b==null&&(b=a),a},-1),e(l,'$pull_message',function(b){return b==null&&(b=new Map),a},-1),e(l,'$process_pending',function(b){return b==null&&(b=new Map),a},-1),e(l,'$push_object_portions',function b(c,d){var e=b.$$p||a;return b.$$p=null,c==null&&(c=new Map),d==null&&(d=a),a},-1),e(l,'$search_database',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["search_database",new Map([["criteria",e]])]]),f],h.$to_proc()),!0)},-1),e(l,'$search_pull',function h(g,e){var i=h.$$p||a,j=this;return!!(h.$$p=null,g==null&&(g=new Map),e==null&&(e=a),b(g['$is_a?'](c('Hash')))&&b(i))&&(d(j,'pull_data',[new Map([["search_pull",new Map([["criteria",g]])]]),e],function g(d){var h=g.$$s==null?this:g.$$s,j=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash'))))if(b(d['$[]']("result")))if(b(d['$[]']("result")['$is_a?'](c('String'))))if(b(d['$[]']("result").$to_s()['$base64?']())&&(d=d['$[]']("result").$decode64()),b(d.$to_s()['$json?']()))try{return d=c('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])),i.$call(c(c('GxG'),'Database').$process_detached_import(d))}catch(a){if(f.rescue(a,[n('Exception')])){j=a;try{return h.$log_error(new Map([["error",j],["parameters",new Map([["data",d]])]]))}finally{f.pop_exception(a)}}else throw a}else return a;else return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]));else return b(d['$[]']("error"))&&b(e['$respond_to?']("call"))?e.$call(d):a;else return a},{$$s:j}),!0)},-1),e(l,'$destroy_object',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(h))&&(d(i,'pull_data',[new Map([["destroy_object",new Map([["path",e]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$push_data',function i(f,g){var j=i.$$p||a,h=this,e=a;return!!(i.$$p=null,f==null&&(f=new Map),g==null&&(g=a),b(f['$is_a?'](c('Hash')))&&b(j))&&(e=h.$new_message(f),e['$[]=']("sender",h.uuid),e['$[]=']("to",h.remote_uuid),b(g['$respond_to?']("call"))&&d(e,'on',["fail"],g.$to_proc()),d(e,'on',["success"],function(b){return b==null&&(b=a),j.$call(b)}),c(n('GxG'),'CONNECTION').$push(e),!0)},-1),e(l,'$push_object',function m(e,h){var l=m.$$p||a,o=this,i=a,f=a,j=a,k=a;return m.$$p=null,e==null&&(e=new Map),h==null&&(h=a),!!(b(e['$is_a?'](c('Hash')))&&b(l))&&(i=a,f=new Map,b(e['$[]']("object")['$is_any?'](c(c('GxG'),'BinaryArray'),c('String')))?b(g(e['$[]']("path").$to_s().$size(),0))?(f['$[]=']("path",e['$[]']("path")),f['$[]=']("object",e['$[]']("object").$to_s().$encode64())):i="You MUST specify a :path to store the data into.":b(e['$[]']("object")['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))?(b(g(e['$[]']("path").$to_s().$size(),0))&&f['$[]=']("path",e['$[]']("path")),f['$[]=']("uuid",e['$[]']("object").$uuid().$to_s()),j=[],k=new Map([["formats",new Map],["records",[]]]),b(g(e['$[]']("object").$format().$to_s().$size(),0))&&j['$<<'](e['$[]']("object").$format()),d(e['$[]']("object"),'search',[],function(d,e,f){return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),b(d['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))&&b(g(d.$format().$to_s().$size(),0))&&j['$<<'](d.$format()),b(d['$is_a?'](c(c(c('GxG'),'Database'),'PersistedArray')))&&b(g(d.$constraint().$to_s().$size(),0))?j['$<<'](d.$constraint()):a}),d(j,'each',[],function(f){var g,e=a;return f==null&&(f=a),e=c(n('GxG'),'DB')['$[]']("formats")['$[]'](f.$to_s().$to_sym()).$clone(),b(e['$is_a?'](c('Hash')))?(e['$[]=']("content",e['$[]']("content").$gxg_export()),(g=[f.$to_s().$to_sym(),e],d(k['$[]']("formats"),'[]=',g),g[g.length-1])):a}),k['$[]']("records")['$<<'](e['$[]']("object").$export()),f['$[]=']("object",k)):i="Invalid Data Type",b(i)?(b(h['$respond_to?']("call"))&&h.$call(new Map([["result",a],["error",i]])),!1):(d(o,'push_data',[new Map([["put_object",f]]),h],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?l.$call(d):a}),!0))},-1),e(l,'$pull_data',function j(g,h){var k=j.$$p||a,i=this,e=a;return j.$$p=null,g==null&&(g=new Map),h==null&&(h=a),b(g)&&b(k)?(e=i.$new_message(g),e['$[]=']("sender",i.uuid),e['$[]=']("to",i.remote_uuid),b(h['$respond_to?']("call"))&&d(e,'on',["fail"],h.$to_proc()),d(e,'on',["success"],function g(d){var h=g.$$s==null?this:g.$$s,e=a,i=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash')))){if(e=a,b(d['$[]']("result")['$is_a?'](c('String')))){if(b(d['$[]']("result").$to_s()['$base64?']())&&(e=d['$[]']("result").$decode64()),b(e.$to_s()['$json?']()))try{e=c('JSON').$parse(e.$to_s(),new Map([["symbolize_names",!0]]))}catch(a){if(f.rescue(a,[n('Exception')])){i=a;try{h.$log_error(new Map([["error",i],["parameters",new Map([["data",e]])]]))}finally{f.pop_exception(a)}}else throw a}return k.$call(e)}return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]))}else return a},{$$s:i}),c(n('GxG'),'CONNECTION').$pull(e)):a},-1),e(l,'$pull_object',function h(e,f){var i=h.$$p||a,j=this,g=a;return!!(h.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(i))&&(b(n('GxG')['$valid_uuid?'](e.$to_s()))?g=new Map([["get_object",new Map([["uuid",e]])]]):g=new Map([["get_object",new Map([["path",e]])]]),d(j,'pull_data',[g,f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?i.$call(c(c('GxG'),'Database').$process_detached_import(d)):a}),!0)},-1),e(l,'$load_format',function h(g,e){var i=h.$$p||a,j=this;return!!(h.$$p=null,g==null&&(g=new Map),e==null&&(e=a),b(g)&&b(i))&&(d(j,'pull_data',[new Map([["get_format",g]]),e],function g(d){var h=g.$$s==null?this:g.$$s,j=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash'))))if(b(d['$[]']("result")))if(b(d['$[]']("result")['$is_a?'](c('String'))))if(b(d['$[]']("result").$to_s()['$base64?']())&&(d=d['$[]']("result").$decode64()),b(d.$to_s()['$json?']()))try{return d=c('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])),c(c('GxG'),'Database').$process_detached_import(d),i.$call(new Map([["result",!0]]))}catch(a){if(f.rescue(a,[n('Exception')])){j=a;try{return h.$log_error(new Map([["error",j],["parameters",new Map([["data",d]])]]))}finally{f.pop_exception(a)}}else throw a}else return a;else return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]));else return b(d['$[]']("error"))&&b(e['$respond_to?']("call"))?e.$call(d):a;else return a},{$$s:j}),!0)},-1),e(l,'$store_format',function l(e,j){var k=l.$$p||a,m=this,f=a,i=a;return!!(l.$$p=null,e==null&&(e=new Map),j==null&&(j=a),b(e)&&b(k))&&(h(e.$keys().$size(),0)?f=c(c('GxG'),'DB')['$[]']("formats").$keys():(f=[],d(c(c('GxG'),'DB')['$[]']("formats").$keys(),'each',[],function(d){return d==null&&(d=a),b(g(e['$[]']("uuid").$to_s().$size(),0))&&h(d,e['$[]']("uuid"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("type").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("type"),e['$[]']("type"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("ufs").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("ufs"),e['$[]']("ufs"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("title").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("title"),e['$[]']("title"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("version").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("version"),e['$[]']("version"))?b(f['$include?'](d))?a:f['$<<'](d):a})),i=new Map([["formats",new Map],["records",[]]]),d(f,'each',[],function(b){var e,f=a;return b==null&&(b=a),f=c(c('GxG'),'DB')['$[]']("formats")['$[]'](b.$to_s().$to_sym()).$clone(),f['$[]=']("content",f['$[]']("content").$gxg_export()),(e=[b.$to_s().$to_sym(),f],d(i['$[]']("formats"),'[]=',e),e[e.length-1])}),d(m,'push_data',[new Map([["put_format",i]]),j],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?k.$call(d):a}),!0)},-1),e(l,'$get_permissions',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(h))&&(d(i,'pull_data',[new Map([["get_permissions",new Map([["path",e]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$call_event',function h(f,e,g){var i=h.$$p||a,j=this;return h.$$p=null,f==null&&(f="core"),e==null&&(e=new Map([["interface",!0]])),g==null&&(g=a),b(j['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(i))&&(d(j,'pull_data',[new Map([["call_event",new Map([["service",f.$to_s()],["op_frame",e]])]]),g],i.$to_proc()),!0):a},-1),e(l,'$library_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["get_library",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_any?'](c('Array'),c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["format_pull",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_push',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'push_data',[new Map([["format_push",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_list',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["format_list",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$admin',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["admin",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$vfs',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),!!b(i['$open?']())&&(!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(!!b(["vfs_mkfile","vfs_mkdir","vfs_rename","vfs_destroy","vfs_copy","vfs_move","set_permissions"]['$include?'](e.$keys()['$[]'](0)))&&(d(i,'pull_data',[e,f],function(b){return b==null&&(b=a),h.$call(b)}),!0)))},-1),e(l,'$app_state_push',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'push_data',[new Map([["app_state_push",new Map([["application",e['$[]']("application")],["data",e['$[]']("data")]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$app_state_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["app_state_pull",new Map([["application",e['$[]']("application")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_open',function j(e,f){var h=j.$$p||a,i=this,g=a;return j.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(b(e['$[]']("name"))?d(i,'pull_data',[new Map([["application_open",new Map([["restore",b(g=e['$[]']("restore"))&&g],["name",e['$[]']("name")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}):d(i,'pull_data',[new Map([["application_open",new Map([["restore",b(g=e['$[]']("restore"))&&g],["path",e['$[]']("path")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_close',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["application_close",new Map([["application",e['$[]']("application")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_list',function e(c){var f=e.$$p||a,g=this;return e.$$p=null,c==null&&(c=a),b(g['$open?']())?!!b(f)&&(d(g,'pull_data',[new Map([["application_list",!0]]),c],function(b){return b==null&&(b=a),f.$call(b)}),!0):a},-1),e(l,'$application_menu',function e(c){var f=e.$$p||a,g=this;return e.$$p=null,c==null&&(c=a),b(g['$open?']())?!!b(f)&&(d(g,'pull_data',[new Map([["application_menu",!0]]),c],function(b){return b==null&&(b=a),f.$call(b)}),!0):a},-1),e(l,'$entries',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(c(n('GxG'),'DISPLAY_DETAILS')['$[]']("object").$set_busy(!0),d(i,'pull_data',[new Map([["entries",new Map([["path",e['$[]']("path")]])]]),f],function(b){return b==null&&(b=a),h.$call(b),c(n('GxG'),'DISPLAY_DETAILS')['$[]']("object").$set_busy(!1)}),!0):a},-1),e(l,'$heartbeat',function(){var f=this,e=a;return b(f.active)?(e=f.$new_message(new Map([["heartbeat",!0]])),e['$[]=']("sender",f.uuid.$to_s()),e['$[]=']("to",f.remote_uuid.$to_s()),d(e,'on',["success"],function(e){var f;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))?(h(e['$[]']("result")['$[]']("status"),"credentialed"),(f=["server_status",e['$[]']("result")['$[]']("server").$to_s().$to_sym()],d(c(n('GxG'),'DISPLAY_DETAILS'),'[]=',f),f[f.length-1])):a}),c(n('GxG'),'CONNECTION').$pull(e)):a}),e(l,'$update_credential',function l(g,i){var j=l.$$p||a,f=this,k=a,e=a;return l.$$p=null,g==null&&(g=new Map),i==null&&(i=a),b(f['$open?']())&&b(g['$is_a?'](c('Hash')))&&b(j)?(k=g.$to_json().$to_s().$encrypt(f.csrf.$to_s()).$encode64(),e=f.$new_message(new Map([["update_credential",k]])),e['$[]=']("sender",f.uuid),e['$[]=']("to",f.remote_uuid),e['$[]']("body")['$[]=']("thread",e.$id().$to_s()),d(e,'on',["success"],function f(e){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))&&h(e['$[]']("status"),"credentialed")&&(c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!0),d(n('GXG_FEDERATION')['$[]']("connections").$keys(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$socket().$send(new Map([["open_channel",b.$to_s()]]).$to_json().$encode64(),"text")},{$$s:g})),j.$call(e)},{$$s:f}),b(i)&&d(e,'on',["fail"],function(b){return b==null&&(b=a),i.$call(b)}),c(n('GxG'),'CONNECTION').$push(e)):a},-1),e(l,'$downgrade_credential',function g(){var i=g.$$p||a,e=this,f=a;return g.$$p=null,b(e.active)?(f=e.$new_message(new Map([["downgrade_credential",!0]])),f['$[]=']("sender",e.uuid.$to_s()),f['$[]=']("to",e.remote_uuid.$to_s()),d(f,'on',["success"],function f(e){var j=f.$$s==null?this:f.$$s,g=a;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))&&h(e['$[]']("status"),"uncredentialed")?(d(n('GXG_FEDERATION')['$[]']("connections").$keys(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$socket().$send(new Map([["close_channel",b.$to_s()]]).$to_json().$encode64(),"text")},{$$s:j}),c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!1),b(i['$respond_to?']("call"))&&i.$call(e),g=new CustomEvent('credentialchanged',{detail:e['$[]']("status").$to_s()}),window.dispatchEvent(g)):a},{$$s:e}),c(n('GxG'),'CONNECTION').$pull(f)):a}),e(l,'$action',function b(c,d){var e=b.$$p||a;return b.$$p=null,c==null&&(c=new Map),d==null&&(d=a),a},-1),e(l,'$relative_url',j("relative_url")),e(l,'$query',j("query")),e(l,'$article',j("article")),e(l,'$display_path',j("display_path")),e(l,'$secret',j("csrf")),e(l,'$initialize',function(){var e=this,q=a,p=a,l=a,j=a,m=a,k=a;return b(window.location.href['$include?']("https://"))?e.host_prefix=i("https://",window.location.host):e.host_prefix=i("http://",window.location.host),e.relative_url="",q=n('File').$basename(window.location.pathname),p=window.location.pathname.$split("/"),l=p.$index(q),b(l['$is_a?'](c('Numeric')))&&b(g(l,1))&&(e.relative_url=p['$[]'](f.Range.$new(0,o(l,1),!1)).$join("/")),e.article=a,e.query=new Map,j=window.location.href.$split("?")['$[]'](1),b(j)?(e.article=j.$split("#")['$[]'](1),j=j.$split("#")['$[]'](0),b(j['$include?']("&"))?m=j.$split("&"):m=j.$split("&"),d(m,'each',[],function g(c){var b,e=g.$$s==null?this:g.$$s,f=a;return e.query==null&&(e.query=a),c==null&&(c=a),f=c.$split("="),(b=[f['$[]'](0).$to_s().$to_sym(),f['$[]'](1)],d(e.query,'[]=',b),b[b.length-1])},{$$s:e})):e.article=window.location.href.$split("#")['$[]'](1),e.uuid=n('GxG').$uuid_generate().$to_sym(),e.remote_uuid=a,e.active=!0,e.display_path=a,e.in_busy=!1,e.out_busy=!1,e.pending=new Map,e.channels=new Map,e.buffers=new Map,e.csrf=a,e.the_connector=e,k=e.$new_message(new Map([["introduction",e.uuid.$to_s()]])),k['$[]=']("sender",e.uuid.$to_s()),k['$[]=']("to",e.host_prefix.$to_s()),d(k,'on',["success"],function j(e){var g=j.$$s==null?this:j.$$s;return e==null&&(e=a),h(e['$[]']("result"),"OK")?(b(e['$[]']("csrf"))&&(g.csrf=e['$[]']("csrf")),h(e['$[]']("status"),"credentialed")?c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!0):c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!1),b(e['$[]']("relative_url"))&&(g.relative_url=e['$[]']("relative_url")),h(e['$[]']("display"),"unavailable"))?alert('Display Resource Unavailable'):(g.display_path=e['$[]']("display"),g.active=!0,d(c(n('GxG'),'DISPATCHER'),'post_event',["display"],function j(){var e=j.$$s==null?this:j.$$s,g;for(e.query==null&&(e.query=a),e.article==null&&(e.article=a),e.relative_url==null&&(e.relative_url=a);!h(document.readyState.$to_s(),"complete");)e.$sleep(.5);return c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("query",e.query),c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("article",e.article),g=function(a){f.GxG.$eval("GxG::DISPLAY_DETAILS[:socket].close"),a&&(a.returnValue="closing...");for(var b=0;b<5e8;b++);return"closing..."},window.addEventListener('unload',g,!1),window.addEventListener('onunload',g,!1),window.addEventListener('beforeunload',g,!1),window.addEventListener('onbeforeunload',g,!1),window.onbeforeunload=g,window.beforeunload=g,d(c(n('GxG'),'DISPATCHER'),'post_event',["display"],function(){return c(c(c('GxG'),'Gui'),'Vdom').$navigate_to(window.location.pathname)}),c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("socket",c(c(c('GxG'),'Networking'),'Socket').$new()),c(c('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$open(i(i(i(window.location.host,"/"),e.relative_url),"/ws").$gsub("//","/")),d(c(c('GxG'),'SOCKET_MONITOR'),'on',["attach_socket"],function h(g){var e=h.$$s==null?this:h.$$s,f=a;return e.uuid==null&&(e.uuid=a),e.remote_uuid==null&&(e.remote_uuid=a),g==null&&(g=a),b(c('GxG')['$valid_uuid?'](g))?(f=e.$new_message(new Map([["attach_socket",g.$to_s()]])),f['$[]=']("sender",e.uuid),f['$[]=']("to",e.remote_uuid),d(f,'on',["success"],function d(e){var b=d.$$s==null?this:d.$$s;return b.uuid==null&&(b.uuid=a),e==null&&(e=a),c(c('GxG'),'CHANNELS').$create_channel(b.uuid)},{$$s:e}),c(n('GxG'),'CONNECTION').$push(f)):a},{$$s:e}),d(c(c('GxG'),'SOCKET_MONITOR'),'on',["payload"],function h(f){var g=h.$$s==null?this:h.$$s,d=a,e=a;return g.csrf==null&&(g.csrf=a),f==null&&(f=a),d=c(c(c('GxG'),'Events'),'Message').$import(f.$to_s().$decode64().$decrypt(g.csrf)),b(d['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(e=c(c('GxG'),'CHANNELS').$fetch_channel(d['$[]']("to")),b(e)||(c(c('GxG'),'CHANNELS').$create_channel(d['$[]']("to")),e=c(c('GxG'),'CHANNELS').$fetch_channel(d['$[]']("to"))),b(e))?e.$write(d):a},{$$s:e}),d(c(c('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",.333]])],function(){return c(c('GxG'),'SOCKET_MONITOR').$follow_up()})},{$$s:g})):a},{$$s:e}),d(k,'on',["fail"],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.active=!1,d.$log_error(new Map([["error",n('Exception').$new("Communication Error")],["parameters",new Map([["response",b]])]]))},{$$s:e}),d(c(n('GxG'),'DISPATCHER'),'post_event',["communications"],function a(){var b=a.$$s==null?this:a.$$s;return c(n('GxG'),'CONNECTION').$pull(k),b.heart_beat_timer=d(c(n('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",60]])],function(){return c(n('GxG'),'CONNECTION').$heartbeat()})},{$$s:e}),e})}(n[0],null,n)}(n[0],n)}(n[0],n)},Opal.queue(function(d){var i=d.module,c=d.const_set,h=d.klass,e=d.def,a=d.top,g=[],f=d.nil,b=d.$$$;return d.add_stubs('require,to_i,new,private,[]'),a.$require("opal"),a.$require("opal/paths"),a.$require("bigdecimal"),a.$require("buffer"),a.$require("base64"),a.$require("console"),a.$require("date"),a.$require("delegate"),a.$require("enumerator"),a.$require("forwardable"),a.$require("iconv"),a.$require("json"),a.$require("js"),a.$require("observer"),a.$require("opal-parser"),a.$require("opal-platform"),a.$require("pathname"),a.$require("pp"),a.$require("promise"),a.$require("securerandom"),a.$require("singleton"),a.$require("stringio"),a.$require("strscan"),a.$require("thread"),a.$require("time"),a.$require("deps/chronic"),a.$require("web/gxg"),a.$require("web/gxg_augments"),a.$require("web/gxg_elements"),a.$require("web/gxg_events"),a.$require("web/gxg_database"),a.$require("web/gxg_libraries"),a.$require("web/gxg_applications"),a.$require("web/gxg_vdom"),a.$require("web/gxg_foundation"),a.$require("web/gxg_layout"),a.$require("web/gxg_windows"),a.$require("web/gxg_gui"),a.$require("web/gxg_comm"),function(d,e){var g=i(d,'GxG'),a=[g].concat(e);return c(a[0],'DISPLAY_DETAILS',new Map([["server_status","running"],["logged_in",!1],["host_path",""],["use_ssl",!1],["socket",f],["object",f],["theme","default"],["query",new Map],["article",f],["mode","browsing"]])),c(a[0],'LAYOUT',new Map([["top-left",new Map],["top",new Map],["top-right",new Map],["right",new Map],["bottom-right",new Map],["bottom",new Map],["bottom-left",new Map],["left",new Map]])),c(a[0],'LAYOUT_LIMITS',new Map([["top",0],["left",0],["bottom",window.innerHeight.$to_i()],["right",window.innerWidth.$to_i()],["page_width",window.innerWidth.$to_i()],["page_height",window.innerHeight.$to_i()]])),c(a[0],'APPLICATIONS',new Map([["processes",new Map],["libraries",new Map],["viewports",new Map],["prefetching",!1]])),c(a[0],'ANIMATION',new Map([["animations",new Map],["assets",new Map]])),c(a[0],'DB',new Map([["formats",new Map]])),c(a[0],'CONNECTION',b(b(b('GxG'),'Networking'),'Connector').$new()),c(a[0],'SOCKET_MONITOR',b(b(b('GxG'),'Networking'),'SocketMonitor').$new()),c(a[0],'THEMES',new Map),c(a[0],'PAGES',new Map),c(a[0],'DOCUMENTS',new Map)}(g[0],g),function(c,d){var a=h(c,d,'Object');return a.$private(),e(a,'$page',function(){return b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")}),e(a,'$applications',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("processes")}),e(a,'$libraries',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("libraries")}),e(a,'$viewports',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("viewports")}),e(a,'$connector',function(){return b(b('GxG'),'CONNECTION')}),e(a,'$socket',function(){return b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket")}),e(a,'$sockets',function(){return b(b('GxG'),'SOCKET_MONITOR')}),e(a,'$documents',function(){return b(b('GxG'),'DOCUMENTS')})}(g[0],null)}),Opal.queue(function(a){var b=a.Kernel,c=a.nil;return a.add_stubs('exit'),b.$exit()}) \ No newline at end of file +(function(e){"use strict";if(typeof globalThis!="undefined"?e=globalThis:typeof global!="undefined"?e=global:typeof window!="undefined"&&(e=window),e.console==null&&(e.console={}),typeof e.console=="object"?c=e.console:c={},"log"in c||(c.log=function(){}),"warn"in c||(c.warn=c.log),typeof e.Opal!="undefined")return c.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),e.Opal;var o,i,a,c,l,m,f,g,v,j,_,O,E,T,D,I,B,$,Q,J,t=e.Opal={},ee;t.global=e,t.config={missing_require_severity:"error",unsupported_features_severity:"warning",experimental_features_severity:"warning",enable_stack_trace:!0},E=Function.prototype.call,Q=Function.prototype.bind,v=Object.hasOwn||E.bind(Object.prototype.hasOwnProperty),a=Object.setPrototypeOf,_=E.bind(Array.prototype.slice),J=E.bind(Array.prototype.splice),D=4,I=D;function V(){return I+=2,I}t.uid=V,t.id=function(e){return e.$$is_number?e*2+1:(e.$$id==null&&n(e,"$$id",V()),e.$$id)},l=t.gvars={},t.exit=function(e){l.DEBUG&&c.log("Exited with status "+e)},t.exceptions=[],t.pop_exception=function(e){var n=t.exceptions.pop();n===e||(n?l["!"]=n:l["!"]=i)};function s(e,n){if(e||(e=t.Exception||Error),g&&g.$raise)arguments.length>2?g.$raise(e.$new.apply(e,_(arguments,1))):g.$raise(e,n);else throw e.$new?e.$new(n):new e(n)}$={value:void 0,enumerable:!1,configurable:!0,writable:!0};function n(e,t,n){typeof e=="string"?e[t]=n:($.value=n,Object.defineProperty(e,t,$))}t.prop=n,t.defineProperty=t.prop,t.slice=_,f=t.truthy=function(e){return!1!==e&&i!==e&&void 0!==e&&null!==e&&(!(e instanceof Boolean)||!0===e.valueOf())},t.falsy=function(e){return!f(e)},t.type_error=function(e,n,o,i){e=e.$$class,i&&o?(i=i.$$class,s(t.TypeError,"can't convert "+e+" into "+n+" ("+e+"#"+o+" gives "+i+")")):s(t.TypeError,"no implicit conversion of "+e+" into "+n)},t.coerce_to=function(e,n,s,o){var i;return s==="to_int"&&n===t.Integer&&e.$$is_number?e<0?Math.ceil(e):Math.floor(e):s==="to_str"&&n===t.String&&e.$$is_string?e:t.is_a(e,n)?e:e["$respond_to?"].$$pristine&&e.$method_missing.$$pristine?(i=e[u(s)],(i==null||i.$$stub)&&t.type_error(e,n),i.apply(e,o)):(e["$respond_to?"](s)||t.type_error(e,n),o==null&&(o=[]),t.send(e,s,o))},t.respond_to=function(e,n,s){if(e==null||!e.$$class)return!1;s=!!s;var o=e[n];if(e["$respond_to?"].$$pristine){{if(typeof o=="function"&&!o.$$stub)return!0;if(!e["$respond_to_missing?"].$$pristine)return t.send(e,e["$respond_to_missing?"],[n.substr(1),s])}}else return t.send(e,e["$respond_to?"],[n.substr(1),s])},t.trace_class=!1,t.tracers_for_class=[];function Y(e){var n,s,o;for(n=0,o=t.tracers_for_class.length;n=0;t--){n=s[t];for(i in n.$$cvars)o[i]=n.$$cvars[i]}return o},t.class_variable_set=function(e,t,n){var s,o,i=r(e),a=i.length;for(s=a-2;s>=0;s--)if(o=i[s],v(o.$$cvars,t))return o.$$cvars[t]=n,n;return e.$$cvars[t]=n,n},t.class_variable_get=function(e,n,o){if(v(e.$$cvars,n))return e.$$cvars[n];var a,c,l=r(e),d=l.length;for(a=0;a1||(a||o)&&e.length===1)&&(n=t.to_ary(n)),(e.length>1||o&&e.length===1)&&n.$$is_array?i?S(e.apply.bind(e,null),n,e.$$ret):e.apply(null,n):i?S(e,n,e.$$ret):e(n)},t.yieldX=function(e,n){return typeof e!="function"&&s(t.LocalJumpError,"no block given"),e.length>1&&n.length===1&&n[0].$$is_array&&(n=n[0]),e.$$is_lambda&&e.$$ret?S(e.apply.bind(e,null),n,e.$$ret):e.apply(null,n)},t.rescue=function(e,n){for(var s,i,o=0;o=0;l--){if(m=h[l],typeof m.$$refine_modules=="undefined")continue;if(f=m.$$refine_modules,typeof f[d]=="undefined")continue;if(p=f[d],typeof p.$$prototype[u(s)]!="undefined")return v=p.$$prototype[u(s)],t.send2(n,v,s,o,i,a)}}}return t.send(n,s,o,i,a)},t.lambda=function(e,t){return e.$$is_lambda=!0,C(e,t),e},t.def=function(e,n,s,o){return C(s,o),e===t.top?t.defn(t.Object,n,s):!e.$$eval&&e.$$is_a_module?t.defn(e,n,s):t.defs(e,n,s)},t.defn=function(e,s,o){if(y(e),o.displayName=s,o.$$owner=e,r=s.substr(1),a=e.$$prototype,a.hasOwnProperty("$$dummy")&&(a=a.$$define_methods_on),n(a,s,o),e.$$is_module){e.$$module_function&&t.defs(e,s,o);for(var i,a,r,d,c=0,l=e.$$iclasses,u=l.length;c=0,o=0,a=e.length;ot:e["$>"](t)},t.rb_le=function(e,t){return p(e,t)?e<=t:e["$<="](t)},t.rb_ge=function(e,t){return p(e,t)?e>=t:e["$>="](t)};function z(e,t){return typeof e=="number"&&typeof t=="number"||typeof e=="string"&&typeof t=="string"}function le(e,t){return z(e,t)?e===t:f(e["$=="](t))}t.eqeq=le,t.eqeqeq=function(e,t){return z(e,t)?e===t:f(e["$==="](t))},t.neqeq=function(e,t){return z(e,t)?e!==t:f(e["$!="](t))},t.not=function(e){return e==null||!1===e||i===e||!0!==e&&!e["$!"].$$pristine&&f(e["$!"]())};function w(e){return function(){return e}}t.return_val=w,t.return_self=function(){return this},t.return_ivar=function(e){return function(){return this[e]==null?i:this[e]}},t.assign_ivar=function(e){return function(t){return y(this),this[e]=t}},t.assign_ivar_val=function(e,t){return function(){return y(this),this[e]=t}},t.ensure_kwargs=function(e){if(e==null)return new Map;if(e.$$is_hash)return e;s(t.ArgumentError,"expected kwargs")},t.get_kwarg=function(e,n){var o=t.hash_get(e,n);return o===void 0&&s(t.ArgumentError,"missing keyword: "+n),o},t.large_array_unpack=function(e){var t,n=e.split(","),s=n.length;for(t=0;t>>32-t}t.opal32_add=function(e,t){return e^=t,e=ue(e,1),e},t.BasicObject=j=h("BasicObject",null),t.Object=o=h("Object",t.BasicObject),t.Module=O=h("Module",t.Object),t.Class=m=h("Class",t.Module),t.Opal=T=k("Opal"),t.Kernel=g=k("Kernel"),a(t.BasicObject,t.Class.$$prototype),a(t.Object,t.Class.$$prototype),a(t.Module,t.Class.$$prototype),a(t.Class,t.Class.$$prototype),j.$$const.BasicObject=j,d(o,"BasicObject",j),d(o,"Object",o),d(o,"Module",O),d(o,"Class",m),d(o,"Opal",T),d(o,"Kernel",g),j.$$class=m,o.$$class=m,O.$$class=m,m.$$class=m,T.$$class=O,g.$$class=O,n(o.$$prototype,"toString",function(){var e=this.$to_s();return e.$$is_string&&typeof e=="object"?e.valueOf():e}),n(o.$$prototype,"$require",t.require),t.top=new o,t.top.$to_s=t.top.$inspect=w("main"),t.top.$define_method=F;function F(){var e=F.$$p;return F.$$p=null,t.send(o,"define_method",arguments,e)}t.NilClass=h("NilClass",t.Object),d(o,"NilClass",t.NilClass),i=t.nil=new t.NilClass,i.$$id=D,i.call=i.apply=function(){s(t.LocalJumpError,"no block given")},i.$$frozen=!0,i.$$comparable=!1,Object.seal(i),t.thrower=function(e){var n={$thrower_type:e,$throw:function(n,o){throw n==null&&(n=i),this.is_orphan&&!o&&s(t.LocalJumpError,"unexpected "+e,n,e.$to_sym()),this.$v=n,this},is_orphan:!1};return n},Object.defineProperty(l,"@",{enumerable:!0,configurable:!0,get:function(){return f(l["!"])?l["!"].$backtrace():i},set:function(e){f(l["!"])?l["!"].$set_backtrace(e):s(t.ArgumentError,"$! not set")}}),t.t_eval_return=t.thrower("return"),TypeError.$$super=Error,t.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(e){var l=e.type_error,d=e.coerce_to,u=e.module,t=e.defs,r=e.slice,c=e.eqeqeq,i=e.Kernel,o=e.truthy,a=e.Opal,n=e.nil,s=e.$$$;return e.add_stubs("===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__"),function(h){var f,m=u(h,"Opal");return t(m,"$bridge",function(n,s){return e.bridge(n,s)}),t(m,"$coerce_to!",function(t,s,o){var u=n,h=r(arguments,3),m=h,u=d(t,s,o,m);return c(s,u)||i.$raise(l(t,s,o,u)),u},-4),t(m,"$coerce_to?",function(t,s,a){var h=n,m=r(arguments,3),f=m;return o(t["$respond_to?"](a))?(h=d(t,s,a,f),o(h["$nil?"]())?n:(c(s,h)||i.$raise(l(t,s,a,h)),h)):n},-4),t(m,"$try_convert",function(t,s,i){return c(s,t)?t:o(t["$respond_to?"](i))?t.$__send__(i):n}),t(m,"$compare",function(t,a){var r=n,r=t["$<=>"](a);return o(r===n)&&i.$raise(s("ArgumentError"),"comparison of "+t.$class()+" with "+a.$class()+" failed"),r}),t(m,"$destructure",function(t){if(t.length==1)return t[0];if(t.$$is_array)return t;for(var s=new Array(t.length),n=0,o=s.length;n=0;a--)l=c[a],i=s.$$prototype[e.jsid(l)],i&&!i.$$stub&&(i.$$pristine=!0);return n},-2),f=[],t(m,"$inspect",function(o){var a=n,i=!1;return function(){try{try{return o===null?"null":o===void 0?"undefined":typeof o.$$class=="undefined"?Object.prototype.toString.apply(o):typeof o.$inspect!="function"||o.$inspect.$$stub?"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">":f.indexOf(o.$__id__())!==-1?"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">":(f.push(o.$__id__()),i=!0,o.$inspect());return n}catch(t){if(e.rescue(t,[s("Exception")])){a=t;try{return"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">"}finally{e.pop_exception(t)}}else throw t}}finally{i&&f.pop()}}()},-1)}("::")},Opal.modules["corelib/module"]=function(e){var i=e.truthy,j=e.coerce_to,y=e.const_set,m=e.Object,C=e.return_ivar,F=e.assign_ivar,_=e.ivar,a=e.deny_frozen_access,T=e.freeze,D=e.prop,d=e.jsid,N=e.each_ivar,x=e.klass,c=e.Opal,o=e.Kernel,g=e.defs,l=e.send,t=e.def,u=e.eqeqeq,f=e.Module,b=e.rb_lt,M=e.rb_gt,r=e.slice,p=e.to_a,h=e.return_val,E=e.eqeq,k=e.not,A=e.rb_le,S=e.range,O=e.send2,w=e.find_super,v=e.alias,z=[],n=e.nil,s=e.$$$;return e.add_stubs("try_convert,raise,class,module_eval,to_proc,===,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,pristine,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,owner,!,<=,frozen?,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,copy_singleton_methods,class_exec,module_exec,inspect"),function(z,L,R){var P=x(z,L,"Module"),B=[P].concat(R),H=e.$r(B);function I(e){if(e.$$is_string)return e;var t=c.$try_convert(e,s("String"),"to_str");if(t.$$is_string)return t;t===n?o.$raise(s("TypeError"),""+e+" is not a symbol nor a string"):o.$raise(s("TypeError"),"can't convert "+e.$class()+" to String ("+e.$class()+"#to_str gives "+t.$class())}g(P,"$allocate",function(){var s=this,o=e.allocate_module(n,function(){});return s!==e.Module&&Object.setPrototypeOf(o,s.$$prototype),o}),t(P,"$initialize",function e(){var t=e.$$p||n,s=this;return e.$$p=null,t!==n?l(s,"module_eval",[],t.$to_proc()):n}),t(P,"$===",function(n){var s=this;return!i(n==null)&&e.is_a(n,s)}),t(P,"$<",function(i){var a,r,c,d,l=this;if(u(f,i)||o.$raise(s("TypeError"),"compared with non class/module"),d=l,d===i)return!1;for(a=0,r=e.ancestors(l),c=r.length;a",function(t){var n=this;return u(f,t)||o.$raise(s("TypeError"),"compared with non class/module"),b(t,n)}),t(P,"$>=",function(t){var s=this,o=n;return i(o=s["$equal?"](t))?o:M(s,t)}),t(P,"$<=>",function(t){var o=this,s=n;return o===t?0:u(f,t)?(s=b(o,t),i(s["$nil?"]())?n:i(s)?-1:1):n}),t(P,"$alias_method",function(n,o){var i=this;return a(i),n=j(n,s("String"),"to_str"),o=j(o,s("String"),"to_str"),e.alias(i,n,o),i}),t(P,"$alias_native",function(n,s){var o=this;return s==null&&(s=n),a(o),e.alias_native(o,n,s),o},-2),t(P,"$ancestors",function(){var n=this;return e.ancestors(n)}),t(P,"$append_features",function(n){var s=this;return a(n),e.append_features(s,n),s}),t(P,"$attr_accessor",function(){var s=this,o=r(arguments),n=o;return l(s,"attr_reader",p(n)),l(s,"attr_writer",p(n))},-1),t(P,"$attr",function(){var o=this,i=r(arguments),s=i;return s.length==2&&(s[1]===!0||s[1]===!1)?(o.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),s[1]?o.$attr_accessor(s[0]):o.$attr_reader(s[0]),n):l(o,"attr_reader",p(s))},-1),t(P,"$attr_reader",function(){o=this,u=r(arguments),l=u,a(o);for(h=o.$$prototype,i=l.length-1;i>=0;i--){var o,i,l,u,h,m=l[i],p=d(m),f=_(m),c=C(f);e.prop(h,f,n),c.$$parameters=[],c.$$arity=0,e.defn(o,p,c)}return n},-1),t(P,"$attr_writer",function(){o=this,u=r(arguments),l=u,a(o);for(h=o.$$prototype,i=l.length-1;i>=0;i--){var o,i,l,u,h,m=l[i],p=d(m+"="),f=_(m),c=F(f);c.$$parameters=[["req"]],c.$$arity=1,e.prop(h,f,n),e.defn(o,p,c)}return n},-1),t(P,"$autoload",function(i,r){var c=this;return a(c),H("Opal")["$const_name?"](i)||o.$raise(s("NameError"),"autoload must be constant name: "+i),r==""&&o.$raise(s("ArgumentError"),"empty file name"),c.$$const.hasOwnProperty(i)||(c.$$autoload||(c.$$autoload={}),e.const_cache_version++,c.$$autoload[i]={path:r,loaded:!1,required:!1,success:!1,exception:!1},c.$const_added&&!c.$const_added.$$pristine&&c.$const_added(i)),n}),t(P,"$autoload?",function(t){if(s=this,s.$$autoload&&s.$$autoload[t]&&!s.$$autoload[t].required&&!s.$$autoload[t].success)return s.$$autoload[t].path;for(var s,i=s.$ancestors(),o=0,a=i.length;o=0;a--)n=c[a],n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$append_features(i),n.$included(i);return i},-1),t(P,"$included_modules",function(){var n=this;return e.included_modules(n)}),t(P,"$include?",function(n){var i,a,r,l,c=this;n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),r=e.ancestors(c);for(i=0,l=r.length;i=0;i--)n=a[i],n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$prepend_features(c),n.$prepended(c);return c},-1),t(P,"$prepend_features",function(n){var i=this;return a(n),i.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),e.prepend_features(i,n),i}),t(P,"$prepended",h(n)),t(P,"$remove_const",function(n){var s=this;return a(s),e.const_remove(s,n)}),t(P,"$to_s",function(){var s=this,o=n;return i(o=e.Module.$name.call(s))?o:"#<"+(s.$$is_module?"Module":"Class")+":0x"+s.$__id__().$to_s(16)+">"}),t(P,"$undef_method",function(){for(var c,s=this,l=r(arguments),i=l,o=0;o=0;s--)e.append_features(o[s],n)}function W(t,n){for(var o=t.$$own_prepended_modules,s=o.length-1;s>=0;s--)e.prepend_features(o[s],n)}return t(P,"$initialize_copy",function(t){var n=this;return V(t,n),$(t,n),W(t,n),n.$$cloned_from=t.$$cloned_from.concat(t),n.$copy_class_variables(t),n.$copy_constants(t)}),t(P,"$initialize_dup",function e(t){var o=e.$$p||n,s=this;return e.$$p=null,O(s,w(s,"initialize_dup",e,!1,!0),"initialize_dup",[t],o),s.$copy_singleton_methods(t)}),t(P,"$copy_class_variables",function(t){var n,s=this;for(n in t.$$cvars)s.$$cvars[n]=t.$$cvars[n]}),t(P,"$copy_constants",function(t){var n,o=this,s=t.$$const;for(n in s)y(o,n,s[n])}),t(P,"$refine",function t(o){var r,u=t.$$p||n,a=this,d=n,i=n,c=n;return t.$$p=null,r=[a,n,n],d=r[0],i=r[1],c=r[2],r,c=e.id(o),typeof a.$$refine_modules=="undefined"&&(a.$$refine_modules=Object.create(null)),typeof a.$$refine_modules[c]=="undefined"?i=a.$$refine_modules[c]=s("Refinement").$new():i=a.$$refine_modules[c],i.refinement_module=d,i.refined_class=o,l(i,"class_exec",[],u.$to_proc()),i}),t(P,"$refinements",function(){var s,o=this,t=o.$$refine_modules,n=new Map;if(typeof t=="undefined")return n;for(s in t)n["$[]="](t[s].refined_class,t[s]);return n}),t(P,"$using",function(){return o.$raise("Module#using is not permitted in methods")}),v(P,"class_eval","module_eval"),v(P,"class_exec","module_exec"),v(P,"inspect","to_s")}("::",null,z),function(e,s){var o=x(e,s,"Refinement"),a=o.$$prototype;return a.refinement_module=a.refined_class=n,o.$attr_reader("refined_class"),t(o,"$inspect",function e(){var s=e.$$p||n,t=this;return e.$$p=null,i(t.refinement_module)?"#":O(t,w(t,"inspect",e,!1,!0),"inspect",[],s)})}("::",f)},Opal.modules["corelib/class"]=function(e){var l=e.klass,i=e.send,b=e.defs,n=e.def,c=e.ensure_kwargs,m=e.hash_get,s=e.eqeq,o=e.truthy,a=e.rb_plus,d=e.return_val,u=e.slice,h=e.send2,r=e.find_super,f=e.Kernel,p=e.alias,g=e.top,v=[],t=e.nil,j=e.$$$;return e.add_stubs("require,class_eval,to_proc,==,nil?,raise,class,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_dup,+,subclasses,flatten,map,allocate,name,to_s"),g.$require("corelib/module"),function(g,v,y){var _=l(g,v,"Class"),O=[_].concat(y),w=e.$r(O);return b(_,"$new",function n(s){var o,a=n.$$p||t;if(n.$$p=null,s==null&&(s=w("Object")),!s.$$is_class)throw e.TypeError.$new("superclass must be a Class");return o=e.allocate_class(t,s),s.$inherited(o),a!==t?i(o,"class_eval",[],a.$to_proc()):t,o},-1),n(_,"$allocate",function(){var s=this,n=new s.$$constructor;return n.$$id=e.uid(),n}),n(_,"$clone",function(i){var a,r=this,l=t;return i=c(i),a=m(i,"freeze"),a==null&&(a=t),o(a["$nil?"]())||s(a,!0)||s(a,!1)||r.$raise(w("ArgumentError"),"unexpected value for freeze: "+a.$class()),l=e.allocate_class(t,r.$$super),l.$copy_instance_variables(r),l.$copy_singleton_methods(r),l.$initialize_clone(r,new Map([["freeze",a]])),(s(a,!0)||o(a["$nil?"]())&&o(r["$frozen?"]()))&&l.$freeze(),l},-1),n(_,"$dup",function(){var o=this,s=t,s=e.allocate_class(t,o.$$super);return s.$copy_instance_variables(o),s.$initialize_dup(o),s}),n(_,"$descendants",function(){var t=this;return a(t.$subclasses(),i(t.$subclasses(),"map",[],"descendants".$to_proc()).$flatten())}),n(_,"$inherited",d(t)),n(_,"$new",function n(){var o,i,a,r=n.$$p||t,c=this;return n.$$p=null,i=u(arguments),a=i,o=c.$allocate(),e.send(o,o.$initialize,a,r),o},-1),n(_,"$subclasses",function(){var t,s,o,n=this;if(typeof WeakRef!="undefined"){o=[];for(t=0;t":s?"#>":h(o,r(o,"to_s",n,!1,!0),"to_s",[],null)}),n(_,"$attached_object",function(){var t=this;if(t.$$singleton_of!=null)return t.$$singleton_of;f.$raise(j("TypeError"),"`"+t+"' is not a singleton class")}),p(_,"inspect","to_s")}("::",null,v)},Opal.modules["corelib/basic_object"]=function(e){"use strict";var p=e.klass,s=e.slice,n=e.def,c=e.alias,f=e.return_val,r=e.Opal,o=e.truthy,l=e.range,i=e.Kernel,d=e.to_a,u=e.send,h=e.eqeq,m=e.rb_ge,t=e.nil,a=e.$$$;return e.add_stubs("==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller"),function(g,v){var b=p(g,v,"BasicObject");return n(b,"$initialize",function(){var o=s(arguments),i=o;return t},-1),n(b,"$==",function(t){var n=this;return n===t}),n(b,"$eql?",function(t){var n=this;return n["$=="](t)}),c(b,"equal?","=="),n(b,"$__id__",function(){var n=this;return n.$$id!=null?n.$$id:(e.prop(n,"$$id",e.uid()),n.$$id)}),n(b,"$__send__",function n(o){var l,d,u,c=n.$$p||t,r=this;return n.$$p=null,u=s(arguments,1),d=u,o.$$is_string||r.$raise(a("TypeError"),""+r.$inspect()+" is not a symbol nor a string"),l=r[e.jsid(o)],l?(c!==t&&(l.$$p=c),l.apply(r,d)):(c!==t&&(r.$method_missing.$$p=c),r.$method_missing.apply(r,[o].concat(d)))},-2),n(b,"$!",f(!1)),r.$pristine("!"),n(b,"$!=",function(t){var n=this;return n["$=="](t)["$!"]()}),n(b,"$instance_eval",function n(){var g,v,b,C,E,p=n.$$p||t,f=this,y=t,j=t,k=t,_=t,w=t,O=t,x=t;if(n.$$p=null,E=s(arguments),g=E,o(p["$nil?"]())&&o(!!e.compile))o(l(1,3,!1)["$cover?"](g.$size()))||i.$raise(a("ArgumentError"),"wrong number of arguments (0 for 1..3)"),v=[].concat(d(g)),y=v[0]==null?t:v[0],j=v[1]==null?t:v[1],k=v[2]==null?t:v[2],v,_=new Map([["file",o(w=j)?w:"(eval)"],["eval",!0]]),O=new Map([["arity_check",!1]]).$merge(_),x=r.$compile(y,O),p=u(i,"proc",[],function t(){var n=t.$$s==null?this:t.$$s;return new Function("Opal,self","return "+x)(e,n)},{$$s:f});else if(o(p["$nil?"]())&&o(m(g.$length(),1))&&h(g.$first()["$[]"](0),"@"))return f.$instance_variable_get(g.$first());else o(g["$any?"]())&&i.$raise(a("ArgumentError"),"wrong number of arguments ("+g.$size()+" for 0)");if(C=p.$$s,p.$$s=null,f.$$is_a_module){f.$$eval=!0;try{b=p.call(f,f)}finally{f.$$eval=!1}}else b=p.call(f,f);return p.$$s=C,b},-1),n(b,"$instance_exec",function e(){var l,d,u,h,r=e.$$p||t,c=this;if(e.$$p=null,u=s(arguments),l=u,o(r)||i.$raise(a("ArgumentError"),"no block given"),h=r.$$s,r.$$s=null,c.$$is_a_module){c.$$eval=!0;try{d=r.apply(c,l)}finally{c.$$eval=!1}}else d=r.apply(c,l);return r.$$s=h,d},-1),n(b,"$singleton_method_added",function(){var o=s(arguments),i=o;return t},-1),n(b,"$singleton_method_removed",function(){var o=s(arguments),i=o;return t},-1),n(b,"$singleton_method_undefined",function(){var o=s(arguments),i=o;return t},-1),n(b,"$method_missing",function e(n){var c,l,h=e.$$p||t,u=this,d=t;return e.$$p=null,c=s(arguments,1),l=c,d=r.$inspect(u),i.$raise(a("NoMethodError").$new("undefined method `"+n+"' for "+d,n,l),t,i.$caller(1))},-2),r.$pristine(b,"method_missing"),n(b,"$respond_to_missing?",function(t,n){return n==null&&(n=!1),!1},-2)}("::",null)},Opal.modules["corelib/kernel"]=function(e){"use strict";var i=e.truthy,g=e.coerce_to,b=e.respond_to,c=e.Opal,j=e.deny_frozen_access,T=e.freeze,F=e.freeze_props,y=e.jsid,x=e.each_ivar,A=e.module,p=e.return_val,n=e.def,a=e.Kernel,o=e.gvars,l=e.slice,r=e.send,d=e.to_a,m=e.ensure_kwargs,h=e.hash_get,f=e.eqeq,_=e.rb_plus,w=e.extract_kwargs,k=e.eqeqeq,v=e.return_self,C=e.rb_le,E=e.rb_lt,O=e.Object,u=e.alias,S=e.klass,M=[],t=e.nil,s=e.$$$;return e.add_stubs("!,=~,==,object_id,raise,new,class,coerce_to?,<<,map,caller,nil?,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,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,to_i,Integer,coerce_to!,===,enum_for,result,shift,write,format,puts,<=,length,[],print,readline,<,first,split,to_str,exception,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,is_a?,__send__,yield_self,include"),function(S,M){var N,z=A(S,"Kernel"),L=[z].concat(M),D=e.$r(L);return n(z,"$=~",p(!1)),n(z,"$!~",function(t){var n=this;return n["$=~"](t)["$!"]()}),n(z,"$===",function(n){var s=this,o=t;return i(o=s.$object_id()["$=="](n.$object_id()))?o:s["$=="](n)}),n(z,"$<=>",function(n){var s,o=this;return o.$$comparable=!0,s=o["$=="](n),s&&s!==t?0:t}),n(z,"$method",function(t){var n=this,o=n[y(t)];return(!o||o.$$stub)&&a.$raise(s("NameError").$new("undefined method `"+t+"' for class `"+n.$class()+"'",t)),s("Method").$new(n,o.$$owner||n.$class(),o,t)}),n(z,"$methods",function(n){var s=this;return n==null&&(n=!0),i(n)?e.methods(s):e.own_methods(s)},-1),n(z,"$public_methods",function(n){var s=this;return n==null&&(n=!0),i(n)?e.methods(s):e.receiver_methods(s)},-1),n(z,"$Array",function(n){var o;return n===t?[]:n.$$is_array?n:(o=c["$coerce_to?"](n,s("Array"),"to_ary"),o!==t?o:(o=c["$coerce_to?"](n,s("Array"),"to_a"),o!==t?o:[n]))}),n(z,"$at_exit",function e(){var n=e.$$p||t,s=t;return o.__at_exit__==null&&(o.__at_exit__=t),e.$$p=null,o.__at_exit__=i(s=o.__at_exit__)?s:[],o.__at_exit__["$<<"](n),n}),n(z,"$caller",function(n,s){n==null&&(n=1),s==null&&(s=t);for(var a=(new Error).$backtrace(),o=[],i=n+1,r=a.length;i0&&(a=i.shift()),a==null&&(a="each"),c=i,r(s("Enumerator"),"for",[h,a].concat(d(c)),u.$to_proc())},-1),n(z,"$equal?",function(t){var n=this;return n===t}),n(z,"$exit",function(a){var r=t,c=t;for(o.__at_exit__==null&&(o.__at_exit__=t),a==null&&(a=!0),o.__at_exit__=i(r=o.__at_exit__)?r:[];!i(o.__at_exit__["$empty?"]());)c=o.__at_exit__.$pop(),c.$call();return a.$$is_boolean?a=a?0:1:a=g(a,s("Integer"),"to_int"),e.exit(a),t},-1),n(z,"$extend",function(){var o,i,c,n=this,d=l(arguments),r=d;r.length==0&&n.$raise(s("ArgumentError"),"wrong number of arguments (given 0, expected 1+)"),j(n);for(c=n.$singleton_class(),i=r.length-1;i>=0;i--)o=r[i],o.$$is_module||a.$raise(s("TypeError"),"wrong argument type "+o.$class()+" (expected Module)"),o.$append_features(c),o.$extend_object(n),o.$extended(n);return n},-1),n(z,"$freeze",function(){var t=this;return i(t["$frozen?"]())?t:typeof t=="object"?(F(t),T(t)):t}),n(z,"$frozen?",function(){var t=this;switch(typeof t){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return t.$$frozen||!1;default:return!1}}),n(z,"$gets",function(){var s,i;return o.stdin==null&&(o.stdin=t),s=l(arguments),i=s,r(o.stdin,"gets",d(i))},-1),n(z,"$hash",function(){var t=this;return t.$__id__()}),n(z,"$initialize_copy",p(t)),N=[],n(z,"$inspect",function(){var s=this,o=t,a=t,c=t,l=t;return function(){try{try{return o="",a=s.$__id__(),i(N["$include?"](a))?o=" ...":(N["$<<"](a),c=!0,r(s.$instance_variables(),"each",[],function e(n){var a=e.$$s==null?this:e.$$s,s=t,i=t;return n==null&&(n=t),s=a.$instance_variable_get(n),i=D("Opal").$inspect(s),o=_(o," "+n+"="+i)},{$$s:s})),"#<"+s.$class()+":0x"+a.$to_s(16)+o+">"}catch(t){if(e.rescue(t,[D("StandardError")])){l=t;try{return"#<"+s.$class()+":0x"+a.$to_s(16)+">"}finally{e.pop_exception(t)}}else throw t}}finally{i(c)?N.$pop():t}}()}),n(z,"$instance_of?",function(t){var n=this;return!t.$$is_class&&!t.$$is_module&&a.$raise(s("TypeError"),"class or module required"),n.$$class===t}),n(z,"$instance_variable_defined?",function(n){var s=this;return n=c["$instance_variable_name!"](n),e.hasOwnProperty.call(s,n.substr(1))}),n(z,"$instance_variable_get",function(s){var o,i=this;return s=c["$instance_variable_name!"](s),o=i[e.ivar(s.substr(1))],o??t}),n(z,"$instance_variable_set",function(n,s){var o=this;return j(o),n=c["$instance_variable_name!"](n),o[e.ivar(n.substr(1))]=s}),n(z,"$remove_instance_variable",function(n){var o,r,i=this;return n=c["$instance_variable_name!"](n),o=e.ivar(n.substr(1)),i.hasOwnProperty(o)?(r=i[o],delete i[o],r):a.$raise(s("NameError"),"instance variable "+n+" not defined")}),n(z,"$instance_variables",function(){var s,n=this,t=[];return x(n,function(e){e.substr(-1)==="$"&&(e=e.slice(0,e.length-1)),t.push("@"+e)}),t}),n(z,"$Integer",function(o){var d,u,f,p,j,v=l(arguments,1),b=w(v),b=m(b);if(v.length>0&&(d=v.shift()),u=h(b,"exception"),u==null&&(u=!0),u=i(u),!o.$$is_string){if(d!==void 0)if(u)a.$raise(s("ArgumentError"),"base specified for non string value");else return t;if(o===t)if(u)a.$raise(s("TypeError"),"can't convert nil into Integer");else return t;if(o.$$is_number){if(o===1/0||o===-(1/0)||isNaN(o))if(u)a.$raise(s("FloatDomainError"),o);else return t;return Math.floor(o)}if(o["$respond_to?"]("to_int")&&(f=o.$to_int(),e.is_a(f,s("Integer"))))return f;if(o["$respond_to?"]("to_i")&&(f=o.$to_i(),e.is_a(f,s("Integer"))))return f;if(u)a.$raise(s("TypeError"),"can't convert "+o.$class()+" into Integer");else return t}if(o==="0")return 0;if(d===void 0)d=0;else if(d=g(d,s("Integer"),"to_int"),d===1||d<0||d>36)if(u)a.$raise(s("ArgumentError"),"invalid radix "+d);else return t;if(p=o.toLowerCase(),p=p.replace(/(\d)_(?=\d)/g,"$1"),p=p.replace(/^(\s*[+-]?)(0[bodx]?)/,function(e,n,i){switch(i){case"0b":if(d===0||d===2)return d=2,n;case"0":case"0o":if(d===0||d===8)return d=8,n;case"0d":if(d===0||d===10)return d=10,n;case"0x":if(d===0||d===16)return d=16,n}if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t}),d=d===0?10:d,j="0-"+(d<=10?d-1:"9a-"+String.fromCharCode(97+(d-11))),!new RegExp("^\\s*[+-]?["+j+"]+\\s*$").test(p))if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t;if(f=parseInt(p,d),isNaN(f))if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t;return f},-2),n(z,"$Float",function(n,o){var r,l;if(o=m(o),r=h(o,"exception"),r==null&&(r=!0),r=i(r),n===t)if(r)a.$raise(s("TypeError"),"can't convert nil into Float");else return t;if(n.$$is_string){if(l=n.toString(),l=l.replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(l))return a.$Integer(l);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(l))if(r)a.$raise(s("ArgumentError"),'invalid value for Float(): "'+n+'"');else return t;return parseFloat(l)}return r?c["$coerce_to!"](n,s("Float"),"to_f"):g(n,s("Float"),"to_f")},-2),n(z,"$Hash",function(t){return i(t["$nil?"]())||f(t,[])?new Map:k(s("Hash"),t)?t:c["$coerce_to!"](t,s("Hash"),"to_hash")}),n(z,"$is_a?",function(n){var o=this;return!n.$$is_class&&!n.$$is_module&&a.$raise(s("TypeError"),"class or module required"),e.is_a(o,n)}),n(z,"$itself",v),n(z,"$lambda",function n(){var s=n.$$p||t;return n.$$p=null,e.lambda(s)}),n(z,"$load",function(n){return n=c["$coerce_to!"](n,s("String"),"to_str"),e.load(n)}),n(z,"$loop",function n(){var o=n.$$p||t,a=this,c=t;if(n.$$p=null,o===t)return r(a,"enum_for",["loop"],function(){return s(s("Float"),"INFINITY")});for(;i(!0);)try{e.yieldX(o,[])}catch(t){if(e.rescue(t,[s("StopIteration")])){c=t;try{return c.$result()}finally{e.pop_exception(t)}}else throw t}return a}),n(z,"$nil?",p(!1)),n(z,"$printf",function(){var s,a,u=this,c=t;return o.stdout==null&&(o.stdout=t),a=l(arguments),s=a,i(s["$empty?"]())?t:(c=i(s[0].$$is_string)?o.stdout:s.$shift(),c.$write(r(u,"format",d(s))),t)},-1),n(z,"$proc",function e(){var n=e.$$p||t;return e.$$p=null,i(n)||a.$raise(s("ArgumentError"),"tried to create Proc object without a block"),n.$$is_lambda=!1,n}),n(z,"$puts",function(){var s,i;return o.stdout==null&&(o.stdout=t),s=l(arguments),i=s,r(o.stdout,"puts",d(i))},-1),n(z,"$p",function(){var a=l(arguments),s=a;return r(s,"each",[],function(n){return o.stdout==null&&(o.stdout=t),n==null&&(n=t),o.stdout.$puts(n.$inspect())}),i(C(s.$length(),1))?s["$[]"](0):s},-1),n(z,"$print",function(){var s,i;return o.stdout==null&&(o.stdout=t),s=l(arguments),i=s,r(o.stdout,"print",d(i))},-1),n(z,"$readline",function(){var s,i;return o.stdin==null&&(o.stdin=t),s=l(arguments),i=s,r(o.stdin,"readline",d(i))},-1),n(z,"$warn",function(){var f,p,v,b,j,y,O=this,g=t;return o.VERBOSE==null&&(o.VERBOSE=t),o.stderr==null&&(o.stderr=t),y=l(arguments),v=w(y),v=m(v),p=y,f=h(v,"uplevel"),f==null&&(f=t),i(f)&&(f=c["$coerce_to!"](f,s("Integer"),"to_str"),i(E(f,0))&&a.$raise(s("ArgumentError"),"negative level ("+f+")"),g=(b=(j=O.$caller(_(f,1),1).$first(),j===t||j==null?t:j.$split(":in `")),b===t||b==null?t:b.$first()),i(g)&&(g=""+g+": "),p=r(p,"map",[],function(n){return n==null&&(n=t),""+g+"warning: "+n})),i(o.VERBOSE["$nil?"]())||i(p["$empty?"]())?t:r(o.stderr,"puts",d(p))},-1),n(z,"$raise",function(i,a,r){throw o["!"]==null&&(o["!"]=t),a==null&&(a=t),r==null&&(r=t),i==null&&o["!"]!==t?o["!"]:(i==null?i=s("RuntimeError").$new(""):b(i,"$to_str")?i=s("RuntimeError").$new(i.$to_str()):i.$$is_class&&b(i,"$exception")?i=i.$exception(a):i.$$is_exception||(i=s("TypeError").$new("exception class/object expected")),r!==t&&i.$set_backtrace(r),o["!"]!==t&&e.exceptions.push(o["!"]),o["!"]=i,i)},-1),n(z,"$rand",function(t){return t===void 0?s(s("Random"),"DEFAULT").$rand():(t.$$is_number&&(t<0&&(t=Math.abs(t)),t%1!==0&&(t=t.$to_i()),t===0&&(t=void 0)),s(s("Random"),"DEFAULT").$rand(t))},-1),n(z,"$respond_to?",function(t,n){var o,s=this;return n==null&&(n=!1),o=s[y(t)],typeof o=="function"&&!o.$$stub||s["$respond_to_missing?"].$$pristine!==!0&&s["$respond_to_missing?"](t,n)},-2),n(z,"$respond_to_missing?",function(t,n){return n==null&&(n=!1),!1},-2),c.$pristine(z,"respond_to?","respond_to_missing?"),n(z,"$require",function(n){return typeof n!="string"&&e.String&&e.Array&&(n=c["$coerce_to!"](n,s("String"),"to_str")),e.require(n)}),n(z,"$require_relative",function(n){return c["$try_convert!"](n,s("String"),"to_str"),n=s("File").$expand_path(s("File").$join(e.current_file,"..",n)),e.require(n)}),n(z,"$require_tree",function(n,o){o=m(o),i=h(o,"autoload"),i==null&&(i=!1);var i,a,r=[];n=s("File").$expand_path(n),n=e.normalize(n),n==="."&&(n="");for(a in e.modules)a["$start_with?"](n)&&(i?r.push([a,!0]):r.push([a,e.require(a)]));return r},-2),n(z,"$singleton_class",function(){var n=this;return e.get_singleton_class(n)}),n(z,"$sleep",function(o){o==null&&(o=t),o===t&&a.$raise(s("TypeError"),"can't convert NilClass into time interval"),o.$$is_number||a.$raise(s("TypeError"),"can't convert "+o.$class()+" into time interval"),o<0&&a.$raise(s("ArgumentError"),"time interval must be positive");for(var i=e.global.performance?function(){return performance.now()}:function(){return new Date},r=i();i()-r<=o*1e3;);return Math.round(o)},-1),n(z,"$srand",function(t){return t==null&&(t=D("Random").$new_seed()),s("Random").$srand(t)},-1),n(z,"$String",function(n){var o=t;return i(o=c["$coerce_to?"](n,s("String"),"to_str"))?o:c["$coerce_to!"](n,s("String"),"to_s")}),n(z,"$tap",function n(){var o=n.$$p||t,s=this;return n.$$p=null,e.yield1(o,s),s}),n(z,"$to_proc",v),n(z,"$to_s",function(){var t=this;return"#<"+t.$class()+":0x"+t.$__id__().$to_s(16)+">"}),n(z,"$catch",function n(o){var l=n.$$p||t,c=t,r=t;n.$$p=null,o==null&&(o=t);try{return o=i(c=o)?c:O.$new(),e.yield1(l,o)}catch(t){if(e.rescue(t,[s("UncaughtThrowError")])){r=t;try{return f(r.$tag(),o)?r.$value():a.$raise()}finally{e.pop_exception(t)}}else throw t}},-1),n(z,"$throw",function(n,o){return o==null&&(o=t),a.$raise(s("UncaughtThrowError").$new(n,o))},-2),n(z,"$open",function e(){var o,i,a=e.$$p||t;return e.$$p=null,o=l(arguments),i=o,r(s("File"),"open",d(i),a.$to_proc())},-1),n(z,"$yield_self",function n(){var s=n.$$p||t,o=this;return n.$$p=null,s!==t?e.yield1(s,o):r(o,"enum_for",["yield_self"],p(1))}),u(z,"fail","raise"),u(z,"kind_of?","is_a?"),u(z,"object_id","__id__"),u(z,"public_send","__send__"),u(z,"send","__send__"),u(z,"then","yield_self"),u(z,"to_enum","enum_for")}("::",M),function(e,t){var n=S(e,t,"Object");return delete O.$$prototype.$require,n.$include(a)}("::",null)},Opal.modules["corelib/main"]=function(e){var n=e.return_val,t=e.def,s=e.Object,o=e.slice,i=e.Kernel,a=e.top,r=[],c=e.nil;return e.add_stubs("include,raise"),function(a){return t(a,"$to_s",n("main")),t(a,"$include",function(t){return s.$include(t)}),t(a,"$autoload",function(){var s=o(arguments),i=s;return e.Object.$autoload.apply(e.Object,i)},-1),t(a,"$using",function(){return i.$raise("main.using is permitted only at toplevel")})}(e.get_singleton_class(a),r)},Opal.modules["corelib/error/errno"]=function(e){var o=e.module,i=e.truthy,a=e.rb_plus,r=e.send2,c=e.find_super,n=e.def,l=e.klass,s=[],t=e.nil,d=e.$$$;return e.add_stubs("+,errno,class,attr_reader"),function(s,l){var d,m=o(s,"Errno"),f=[m].concat(l),u=t,h=t,u=[["EINVAL","Invalid argument",22],["EEXIST","File exists",17],["EISDIR","Is a directory",21],["EMFILE","Too many open files",24],["ESPIPE","Illegal seek",29],["EACCES","Permission denied",13],["EPERM","Operation not permitted",1],["ENOENT","No such file or directory",2],["ENAMETOOLONG","File name too long",36]],h=t;for(d=0;d0?i[0]:t,o=new l.$$constructor(a),o.name=l.$$name,o.message=a,o.cause=c["!"],e.send(o,o.$initialize,i),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(o,y),o},-1),y=v.$new,g(v,"$exception",function(){var o=this,n=h(arguments),s=n;return u(o,"new",_(s))},-1),o(v,"$initialize",function(){var i=this,o=h(arguments),s=o;return i.message=s.length>0?s[0]:t},-1),o(v,"$copy_instance_variables",function e(n){var o=e.$$p||t,s=this;e.$$p=null,a(s,r(s,"copy_instance_variables",e,!1,!0),"copy_instance_variables",[n],o),s.message=n.message,s.cause=n.cause,s.stack=n.stack});function w(e){for(var t,n,s=[],o=0;o"}),o(v,"$set_backtrace",function(s){var a,r,o=this,i=!0;if(s===t)o.backtrace=t,o.stack="";else if(s.$$is_string)o.backtrace=[s],o.stack=" from "+s;else{if(s.$$is_array){for(a=0,r=s.length;a,length,Rational,to_i"),function(h,p,g){var v=r(h,p,"NilClass"),b=[v].concat(g);return v.$$prototype.$$meta=v,function(n){return t(n,"$allocate",function(){var t=this;return o.$raise(i("TypeError"),"allocator undefined for "+t.$name())}),e.udef(n,"$new"),s}(e.get_singleton_class(v),b),t(v,"$!",n(!0)),t(v,"$&",n(!1)),t(v,"$|",function(t){return t!==!1&&t!==s}),t(v,"$^",function(t){return t!==!1&&t!==s}),t(v,"$==",function(t){return t===s}),t(v,"$dup",n(s)),t(v,"$clone",function(t){var n;return t=f(t),n=m(t,"freeze"),n==null&&(n=!0),s},-1),t(v,"$inspect",n("nil")),t(v,"$nil?",n(!0)),t(v,"$singleton_class",function(){return a}),t(v,"$to_a",function(){return[]}),t(v,"$to_h",function(){return new Map}),t(v,"$to_i",n(0)),t(v,"$to_s",n("")),t(v,"$to_c",function(){return i("Complex").$new(0,0)}),t(v,"$rationalize",function(){var n=c(arguments),s=n;return l(d(s.$length(),1))&&o.$raise(i("ArgumentError")),o.$Rational(0,1)},-1),t(v,"$to_r",function(){return o.$Rational(0,1)}),t(v,"$instance_variables",function(){return[]}),u(v,"to_f","to_i")}("::",null,h)},Opal.modules["corelib/boolean"]=function(e){"use strict";var o=e.klass,p=e.Kernel,t=e.def,f=e.return_self,h=e.ensure_kwargs,r=e.hash_get,a=e.slice,c=e.truthy,l=e.send2,d=e.find_super,u=e.to_a,s=e.alias,m=[],n=e.nil,i=e.$$$;return e.add_stubs("raise,name,==,to_s,__id__"),function(m,g,v){var j,y,b=o(m,g,"Boolean"),_=[b].concat(v);e.prop(b.$$prototype,"$$is_boolean",!0);for(y=["$$class","$$meta"],j=0;j,<,===,raise,class,<=>,equal?"),function(d){var u=l(d,"Comparable"),m=t;function f(t){return e.is_a(t,e.Integer)?t:r(t,0)?1:c(t,0)?-1:0}function p(e,n){var o;i(t,m=n)||i(!0,m)||i(!1,m)||i(s("Integer"),m)||i(s("Float"),m)?o=n.$inspect():o=n.$$class,a.$raise(s("ArgumentError"),"comparison of "+e.$class()+" with "+o+" failed")}function h(e,t){var n=e["$<=>"](t);return o(n)||p(e,t),f(n)}return n(u,"$==",function(s){var i=this,a=t;return!!o(i["$equal?"](s))||i["$<=>"]!=e.Kernel["$<=>"]&&(i.$$comparable?(i.$$comparable=!1,!1):!!o(a=i["$<=>"](s))&&f(a)==0)}),n(u,"$>",function(t){var n=this;return h(n,t)>0}),n(u,"$>=",function(t){var n=this;return h(n,t)>=0}),n(u,"$<",function(t){var n=this;return h(n,t)<0}),n(u,"$<=",function(t){var n=this;return h(n,t)<=0}),n(u,"$between?",function(t,n){var s=this;return!o(c(s,t))&&!o(r(s,n))}),n(u,"$clamp",function(o,i){var r,l,c=this;if(i==null&&(i=t),i===t&&(e.is_a(o,e.Range)||a.$raise(s("TypeError"),"wrong argument type "+o.$class()+" (expected Range)"),l=o.excl,i=o.end,o=o.begin,i!==t&&l&&a.$raise(s("ArgumentError"),"cannot clamp with an exclusive range")),o!==t&&i!==t&&h(o,i)>0&&a.$raise(s("ArgumentError"),"min argument must be smaller than max argument"),o!==t){if(r=h(c,o),r==0)return c;if(r<0)return o}return i!==t&&(r=h(c,i),r>0)?i:c},-2)}("::")},Opal.modules["corelib/regexp"]=function(e){var c=e.coerce_to,p=e.prop,k=e.freeze,f=e.klass,d=e.const_set,E=e.send2,v=e.find_super,n=e.def,i=e.truthy,s=e.gvars,u=e.slice,a=e.Kernel,m=e.Opal,l=e.alias,r=e.send,g=e.regexp,C=e.rb_plus,b=e.ensure_kwargs,j=e.hash_get,y=e.rb_ge,_=e.to_a,w=e.eqeqeq,O=e.rb_minus,x=e.return_ivar,h=[],t=e.nil,o=e.$$$;return e.add_stubs("nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,frozen?,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"),f("::",o("StandardError"),"RegexpError"),function(h,b,j){var y=f(h,b,"Regexp"),_=[y].concat(j),w=e.$r(_);return d(y,"IGNORECASE",1),d(y,"EXTENDED",2),d(y,"MULTILINE",4),e.prop(y.$$prototype,"$$is_regexp",!0),function(r,d){var f=[r].concat(d),h=e.$r(f);return n(r,"$allocate",function e(){var o=e.$$p||t,s=this,n=t;return e.$$p=null,n=E(s,v(s,"allocate",e,!1,!0),"allocate",[],o),n.uninitialized=!0,n}),n(r,"$escape",function(n){return n=c(n,o("String"),"to_str"),e.escape_regexp(n)}),n(r,"$last_match",function(n){return s["~"]==null&&(s["~"]=t),n==null&&(n=t),i(n["$nil?"]())?s["~"]:i(s["~"])?s["~"]["$[]"](n):t},-1),n(r,"$union",function(){var s,i,r,c,d,h,l=this,m=u(arguments),n=m;if(n.length==0)return/(?!)/;if(n.length==1&&n[0].$$is_regexp)return n[0];d=n[0].$$is_array,n.length>1&&d&&a.$raise(o("TypeError"),"no implicit conversion of Array into String"),d&&(n=n[0]);for(r=void 0,i=[],c=0;c=r)return s["~"]=o("MatchData").$new(h,l),d===t?s["~"]:e.yield1(d,s["~"]);h.lastIndex=l.index+1}},-2),n(y,"$match?",function(s,i){var l,d,r=this;return r.uninitialized&&a.$raise(o("TypeError"),"uninitialized Regexp"),i===void 0?s!==t&&r.test(c(s,o("String"),"to_str")):(i=c(i,o("Integer"),"to_int"),s!==t&&(s=c(s,o("String"),"to_str"),!(i<0&&(i+=s.length,i<0))&&(d=e.global_regexp(r),l=d.exec(s),!(l===null||l.index"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$uniq()}),n(y,"$named_captures",function(){var n=this;return r(r(r(n.$source().$scan(g(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],function(n){return n==null&&(n=t),r(n,"map",[],function(n){return n==null&&(n=t),C(n.$last(),1)})})}),n(y,"$~",function(){var n=this;return s._==null&&(s._=t),n["$=~"](s._)}),n(y,"$source",function(){var t=this;return t.source}),n(y,"$options",function(){var t,n=this;return n.uninitialized&&a.$raise(o("TypeError"),"uninitialized Regexp"),t=0,n.multiline&&(t|=w("MULTILINE")),n.ignoreCase&&(t|=w("IGNORECASE")),t}),n(y,"$casefold?",function(){var t=this;return t.ignoreCase}),l(y,"eql?","=="),l(y,"to_s","source")}("::",RegExp,h),function(c,d,h){var p=f(c,d,"MatchData"),g=[p].concat(h),v=e.$r(g),C=p.$$prototype;return C.matches=t,p.$attr_reader("post_match","pre_match","regexp","string"),n(p,"$initialize",function(n,o,a){r=this,a=b(a),c=j(a,"no_matchdata"),c==null&&(c=!1),i(c)||(s["~"]=r),r.regexp=n,r.begin=o.index,r.string=o.input,r.pre_match=o.input.slice(0,o.index),r.post_match=o.input.slice(o.index+o[0].length),r.matches=[];for(var r,c,d,l=0,u=o.length;l"}),n(p,"$length",function(){var t=this;return t.matches.length}),n(p,"$to_a",x("matches")),n(p,"$to_s",function(){var t=this;return t.matches[0]}),n(p,"$values_at",function(){var s,a,l,c=this,d=u(arguments),i=d,r=[];for(s=0;s,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,nil?,class,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,length,each_line,to_proc,to_a,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,dup,__id__,next,intern,pristine"),x.$require("corelib/comparable"),x.$require("corelib/regexp"),function(v,x,A){var z,M=C(v,x,"String"),L=[M].concat(A),D=e.$r(L);M.$include(t("Comparable")),e.prop(M.$$prototype,"$$is_string",!0),z=new Map,function(){"use strict";n(M,"$__id__",function t(){var o,i=t.$$p||s,n=this;return t.$$p=null,typeof n=="object"?E(n,S(n,"__id__",t,!1,!0),"__id__",[],i):z.has(n)?z.get(n):(o=e.uid(),z.set(n,o),o)}),n(M,"$hash",function(){var n,s=this,t=k(),o=s.length,t=_(t,5),t=_(t,o);for(n=0;n0&&(c=i.shift()),a=h(o,"encoding"),a==null&&(a=s),r=h(o,"capacity"),r==null&&(r=s),s},-1),n(M,"$%",function(n){var s=this;return f(t("Array"),n)?u(s,"format",[s].concat(b(n))):s.$format(s,n)}),n(M,"$*",function(n){if(i=this,n=o(n,t("Integer"),"to_int"),n<0&&a.$raise(t("ArgumentError"),"negative argument"),n===0)return"";var i,r="",s=i.toString();for(s.length*n>=1<<28&&a.$raise(t("RangeError"),"multiply count must not overflow maximum string size");;){if((n&1)===1&&(r+=s),n>>>=1,n===0)break;s+=s}return r}),n(M,"$+",function(s){var a,i=this;return s=o(s,t("String"),"to_str"),s==""&&i.$$class===e.String?i:i==""&&s.$$class===e.String?s:(a=i+s,i.encoding===a.encoding&&s.encoding===a.encoding?a:i.encoding.name==="UTF-8"||s.encoding.name==="UTF-8"?a:e.enc(a,i.encoding))}),n(M,"$<=>",function(t){var n,o=this;return r(t["$respond_to?"]("to_str"))?(t=t.$to_str().$to_s(),o>t?1:o"](o),n===s?s:n>0?-1:n<0?1:0)}),n(M,"$==",function(t){var n=this;return t.$$is_string?n.toString()===t.toString():!!T(t,"$to_str")&&t["$=="](n)}),n(M,"$=~",function(n){var s=this;return n.$$is_string&&a.$raise(t("TypeError"),"type mismatch: String given"),n["$=~"](s)}),n(M,"$[]",function(n,r){var c,u,h,l=this,d=l.length;return n.$$is_range?(u=n.excl,h=n,r=n.end===s?-1:o(n.end,t("Integer"),"to_int"),n=n.begin===s?0:o(n.begin,t("Integer"),"to_int"),Math.abs(n)>d?s:(n<0&&(n+=d),r<0&&(r+=d),(!u||h.end===s)&&(r+=1),r=r-n,r<0&&(r=0),l.substr(n,r))):n.$$is_string?(r!=null&&a.$raise(t("TypeError")),l.indexOf(n)!==-1?n:s):n.$$is_regexp?(c=l.match(n),c===null?(i["~"]=s,s):(i["~"]=t("MatchData").$new(n,c),r==null?c[0]:(r=o(r,t("Integer"),"to_int"),r<0&&-r=0&&r=d||n<0?s:l.substr(n,1):(r=o(r,t("Integer"),"to_int"),r<0?s:n>d||n<0?s:l.substr(n,r)))},-2),n(M,"$b",function(){var t=this;return new String(t).$force_encoding("binary")}),n(M,"$capitalize",function(){var t=this;return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}),n(M,"$casecmp",function(n){var a,i=this;return r(n["$respond_to?"]("to_str"))?(n=o(n,t("String"),"to_str").$to_s(),a=/^[\x00-\x7F]*$/,a.test(i)&&a.test(n)&&(i=i.toLowerCase(),n=n.toLowerCase()),i["$<=>"](n)):s}),n(M,"$casecmp?",function(t){var o=this,n=o.$casecmp(t);return n===s?s:n===0}),n(M,"$center",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,c=i.$ljust(w(O(n,i.length),2).$ceil(),s),l=i.$rjust(w(O(n,i.length),2).$floor(),s);return l+c.slice(i.length)},-2),n(M,"$chomp",function(n){var a,c,o=this;return i["/"]==null&&(i["/"]=s),n==null&&(n=i["/"]),r(n===s||o.length===0)?o:(n=p["$coerce_to!"](n,t("String"),"to_str").$to_s(),n===` +`?a=o.replace(/\r?\n?$/,""):n===""?a=o.replace(/(\r?\n)+$/,""):o.length>=n.length&&(c=o.substr(o.length-n.length,n.length),c===n&&(a=o.substr(0,o.length-n.length))),a??o)},-1),n(M,"$chop",function(){var s,t=this,n=t.length;return n<=1?s="":t.charAt(n-1)===` +`&&t.charAt(n-2)===` `?s=t.substr(0,n-2):s=t.substr(0,n-1),s}),n(M,"$chr",function(){var t=this;return t.charAt(0)}),n(M,"$clone",function(t){var n,i=this,o=s;return t=m(t),n=h(t,"freeze"),n==null&&(n=s),r(n["$nil?"]())||g(n,!0)||g(n,!1)||i.$raise(D("ArgumentError"),"unexpected value for freeze: "+n.$class()),o=new String(i),o.$copy_singleton_methods(i),o.$initialize_clone(i,new Map([["freeze",n]])),g(n,!0)?o.$$frozen||(o.$$frozen=!0):r(n["$nil?"]())&&i.$$frozen&&(o.$$frozen=!0),o},-1),n(M,"$dup",function(){var n=this,t=s,t=new String(n);return t.$initialize_dup(n),t}),n(M,"$count",function(){var s,i=this,r=l(arguments),o=r;return o.length===0&&a.$raise(t("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)"),s=N(o),s===null?0:i.length-i.replace(new RegExp(s,"g"),"").length},-1),n(M,"$delete",function(){var s,i=this,r=l(arguments),o=r;return o.length===0&&a.$raise(t("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)"),s=N(o),s===null?i:i.replace(new RegExp(s,"g"),"")},-1),n(M,"$delete_prefix",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.slice(0,n.length)===n?s.slice(n.length):s}),n(M,"$delete_suffix",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.slice(s.length-n.length)===n?s.slice(0,s.length-n.length):s}),n(M,"$downcase",function(){var t=this;return t.toLowerCase()}),n(M,"$each_line",function n(){var c,d,u,p,g,b,j,_,w,O,x,C,v=n.$$p||s,f=this;if(i["/"]==null&&(i["/"]=s),n.$$p=null,j=l(arguments),b=y(j),b=m(b),j.length>0&&(d=j.shift()),d==null&&(d=i["/"]),g=h(b,"chomp"),g==null&&(g=!1),v===s)return f.$enum_for("each_line",d,new Map([["chomp",g]]));if(d===s)return e.yield1(v,f),f;if(d=o(d,t("String"),"to_str"),d.length===0){for(p=f.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/),c=0,x=p.length;c=s.length&&i.substr(i.length-s.length,s.length)==s)return!0;return!1},-1),n(M,"$gsub",function e(n,a){var p,m=e.$$p||s,c=this;if(e.$$p=null,a===void 0&&m===s)return c.$enum_for("gsub",n);var r,l,u="",f=s,h=0;for(n.$$is_regexp?n=d(n):(n=o(n,t("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));!0;){if(r=n.exec(c),r===null){i["~"]=s,u+=c.slice(h);break}f=t("MatchData").$new(n,r),a===void 0?(p=n.lastIndex,l=m(r[0]),n.lastIndex=p):a.$$is_hash?l=a["$[]"](r[0]).$to_s():(a.$$is_string||(a=o(a,t("String"),"to_str")),l=a.replace(/([\\]+)([0-9+&`'])/g,function(e,t,n){if(t.length%2===0)return e;switch(n){case"+":for(var s=r.length-1;s>0;s--)if(r[s]!==void 0)return t.slice(1)+r[s];return"";case"&":return t.slice(1)+r[0];case"`":return t.slice(1)+c.slice(0,r.index);case"'":return t.slice(1)+c.slice(r.index+r[0].length);default:return t.slice(1)+(r[n]||"")}}).replace(/\\\\/g,"\\")),n.lastIndex===r.index?(u+=c.slice(h,r.index)+l+(c[r.index]||""),n.lastIndex+=1):u+=c.slice(h,r.index)+l,h=n.lastIndex}return i["~"]=f,u},-2),n(M,"$hex",function(){var t=this;return t.$to_i(16)}),n(M,"$include?",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.indexOf(n)!==-1}),n(M,"$index",function(n,a){var r,c,u,l=this;if(a===void 0)a=0;else if(a=o(a,t("Integer"),"to_int"),a<0&&(a+=l.length,a<0))return s;if(n.$$is_regexp)for(u=d(n);!0;){if(c=u.exec(l),c===null){i["~"]=s,r=-1;break}if(c.index>=a){i["~"]=t("MatchData").$new(u,c),r=c.index;break}u.lastIndex=c.index+1}else n=o(n,t("String"),"to_str"),n.length===0&&a>l.length?r=-1:r=l.indexOf(n,a);return r===-1?s:r},-2),n(M,"$inspect",function(){var t=this,s=/[\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n={"":"\\a","":"\\e","":"\\b"," ":"\\t","\n":`\\n`," ":"\\f","\r":`\\r`," ":"\\v",'"':'\\"',"\\":"\\\\"},o=t.replace(s,function(e){return n[e]?n[e]:(e=e.charCodeAt(0),e<=255&&(t.encoding["$binary?"]()||t.internal_encoding["$binary?"]())?"\\x"+("00"+e.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+e.toString(16).toUpperCase()).slice(-4))});return'"'+o.replace(/#[$@{]/g,"\\$&")+'"'}),n(M,"$intern",function(){var t=this;return t.toString()}),n(M,"$length",function(){var t=this;return t.length}),c(M,"size","length"),n(M,"$lines",function e(){var o,a,c,d,f=e.$$p||s,p=this,g=s;return i["/"]==null&&(i["/"]=s),e.$$p=null,o=l(arguments),a=y(o),a=m(a),o.length>0&&(c=o.shift()),c==null&&(c=i["/"]),d=h(a,"chomp"),d==null&&(d=!1),g=u(p,"each_line",[c,new Map([["chomp",d]])],f.$to_proc()),r(f)?p:g.$to_a()},-1),n(M,"$ljust",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,l=-1,c="";for(n-=i.length;++l=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122)switch(t){case 57:n=!0,t=48;break;case 90:n=!0,t=65;break;case 122:n=!0,t=97;break;default:n=!1,t+=1}else a===-1?t===255?(n=!0,t=0):(n=!1,t+=1):n=!0;if(o=o.slice(0,s)+String.fromCharCode(t)+o.slice(s+1),n&&(s===0||s===a)){switch(t){case 65:break;case 97:break;default:t+=1}s===0?o=String.fromCharCode(t)+o:o=o.slice(0,s)+String.fromCharCode(t)+o.slice(s),n=!1}if(!n)break}return o}),n(M,"$oct",function(){var s,o=this,n=o,t=8;return/^\s*_/.test(n)?0:(n=n.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(e,n,s,o){switch(o.charAt(0)){case"+":case"-":return e;case"0":if(o.charAt(1)==="x"&&s==="0x")return e}switch(s){case"0b":t=2;break;case"0":case"0o":t=8;break;case"0d":t=10;break;case"0x":t=16;break}return n+o}),s=parseInt(n.replace(/_(?!_)/g,""),t),isNaN(s)?0:s)}),n(M,"$ord",function(){var t=this;return typeof t.codePointAt=="function"?t.codePointAt(0):t.charCodeAt(0)}),n(M,"$partition",function(n){var s,a,i=this;return n.$$is_regexp?(a=n.exec(i),a===null?s=-1:(t("MatchData").$new(n,a),n=a[0],s=a.index)):(n=o(n,t("String"),"to_str"),s=i.indexOf(n)),s===-1?[i,"",""]:[i.slice(0,s),i.slice(s,s+n.length),i.slice(s+n.length)]}),n(M,"$reverse",function(){var t=this;return t.split("").reverse().join("")}),n(M,"$rindex",function(n,a){var r,c,u,h,l=this;if(a===void 0)a=l.length;else if(a=o(a,t("Integer"),"to_int"),a<0&&(a+=l.length,a<0))return s;if(n.$$is_regexp){for(r=null,u=d(n);!0;){if(h=u.exec(l),h===null||h.index>a)break;r=h,u.lastIndex=r.index+1}r===null?(i["~"]=s,c=-1):(t("MatchData").$new(u,r),c=r.index)}else n=o(n,t("String"),"to_str"),c=l.lastIndexOf(n,a);return c===-1?s:c},-2),n(M,"$rjust",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,c=Math.floor(n-i.length),d=Math.floor(c/s.length),l=Array(d+1).join(s),u=c-l.length;return l+s.slice(0,u)+i},-2),n(M,"$rpartition",function(n){var s,i,r,c,a=this;if(n.$$is_regexp){for(i=null,r=d(n);!0;){if(c=r.exec(a),c===null)break;i=c,r.lastIndex=i.index+1}i===null?s=-1:(t("MatchData").$new(r,i),n=i[0],s=i.index)}else n=o(n,t("String"),"to_str"),s=a.lastIndexOf(n);return s===-1?["","",a]:[a.slice(0,s),a.slice(s,s+n.length),a.slice(s+n.length)]}),n(M,"$rstrip",function(){var t=this;return t.replace(/[\x00\x09\x0a-\x0d\x20]*$/,"")}),n(M,"$scan",function n(a,r){var c,l,u,p,f=n.$$p||s,g=this;for(n.$$p=null,r=m(r),l=h(r,"no_matchdata"),l==null&&(l=!1),p=[],u=s,a.$$is_regexp?a=d(a):(a=o(a,t("String"),"to_str"),a=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));(c=a.exec(g))!=null;)u=t("MatchData").$new(a,c,new Map([["no_matchdata",l]])),f===s?c.length==1?p.push(c[0]):p.push(u.$captures()):c.length==1?e.yield1(f,c[0]):e.yield1(f,u.$captures()),a.lastIndex===c.index&&(a.lastIndex+=1);return l||(i["~"]=u),f!==s?g:p},-2),n(M,"$singleton_class",function(){var n=this;return e.get_singleton_class(n)}),n(M,"$split",function(a,c){var g=this,v=s;if(i[";"]==null&&(i[";"]=s),g.length===0)return[];if(c===void 0)c=0;else if(c=p["$coerce_to!"](c,t("Integer"),"to_int"),c===1)return[g];(a===void 0||a===s)&&(a=r(v=i[";"])?v:" ");var u,f,y,l=[],h=g.toString(),b=0,j=0,m=0;if(a.$$is_regexp?a=d(a):(a=o(a,t("String"),"to_str").$to_s(),a===" "&&(a=/\s+/gm,h=h.replace(/^\s+/,""))),l=h.split(a),l.length===1&&l[0]===h)return[l[0]];for(;(f=l.indexOf(void 0))!==-1;)l.splice(f,1);if(c===0){for(;l[l.length-1]==="";)l.pop();return l}if(a.$$is_regexp||(a=e.escape_regexp(a),a=new RegExp(a,"gm")),u=a.exec(h),c<0){if(u!==null&&u[0]===""&&a.source.indexOf("(?=")===-1)for(f=0,y=u.length;f=l.length)return l;for(;u!==null;){if(j++,b=a.lastIndex,m+=u.length,j+1===c)break;u=a.exec(h)}return l.splice(m,l.length-1,h.slice(b)),l},-1),n(M,"$squeeze",function(){var s,n=this,i=l(arguments),o=i;return o.length===0?n.replace(/(.)\1+/g,"$1"):(s=N(o),s===null?n:n.replace(new RegExp("("+s+")\\1+","g"),"$1"))},-1),n(M,"$start_with?",function(){for(var r,c,u,h,m,d=this,m=l(arguments),r=m,a=0,f=r.length;a=h.length&&d.startsWith(h))return!0;return!1},-1),n(M,"$strip",function(){var t=this;return t.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,"")}),n(M,"$sub",function e(n,r){var c,d,u=e.$$p||s,l=this;return e.$$p=null,n.$$is_regexp||(n=o(n,t("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))),c=n.exec(l),c===null?(i["~"]=s,d=l.toString()):(t("MatchData").$new(n,c),r===void 0?(u===s&&a.$raise(t("ArgumentError"),"wrong number of arguments (1 for 2)"),d=l.slice(0,c.index)+u(c[0])+l.slice(c.index+c[0].length)):r.$$is_hash?d=l.slice(0,c.index)+r["$[]"](c[0]).$to_s()+l.slice(c.index+c[0].length):(r=o(r,t("String"),"to_str"),r=r.replace(/([\\]+)([0-9+&`'])/g,function(e,t,n){if(t.length%2===0)return e;switch(n){case"+":for(var s=c.length-1;s>0;s--)if(c[s]!==void 0)return t.slice(1)+c[s];return"";case"&":return t.slice(1)+c[0];case"`":return t.slice(1)+l.slice(0,c.index);case"'":return t.slice(1)+l.slice(c.index+c[0].length);default:return t.slice(1)+(c[n]||"")}}).replace(/\\\\/g,"\\"),d=l.slice(0,c.index)+r+l.slice(c.index+c[0].length))),d},-2),n(M,"$sum",function(n){s=this,n==null&&(n=16),n=o(n,t("Integer"),"to_int");for(var s,i=0,r=s.length,a=0;a36)&&a.$raise(t("ArgumentError"),"invalid radix "+s),/^\s*_/.test(i)?0:(i=i.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(e,t,n,o){switch(o.charAt(0)){case"+":case"-":return e;case"0":if(o.charAt(1)==="x"&&n==="0x"&&(s===0||s===16))return e}switch(n){case"0b":if(s===0||s===2)return s=2,t+o;break;case"0":case"0o":if(s===0||s===8)return s=8,t+o;break;case"0d":if(s===0||s===10)return s=10,t+o;break;case"0x":if(s===0||s===16)return s=16,t+o;break}return e}),r=parseInt(i.replace(/_(?!_)/g,""),s),isNaN(r)?0:r)},-1),n(M,"$to_proc",function n(){var d=n.$$p||s,c=this,o=s,r=s,i=s;return n.$$p=null,o=c.valueOf(),r=e.jsid(o),i=u(a,"proc",[],function e(){var i,c,d,h,u=e.$$p||s;return e.$$p=null,h=l(arguments),i=h,i.length===0&&a.$raise(t("ArgumentError"),"no receiver given"),c=i[0],c==null&&(c=s),d=c[r],d?i=i.slice(1):(d=c.$method_missing,i[0]=o),typeof u=="function"&&(d.$$p=u),i.length===0?d.call(c):d.apply(c,i)},-1),i.$$source_location=s,i}),n(M,"$to_s",function(){var t=this;return t.toString()}),n(M,"$tr",function(n,s){var i,r,c,l,d,u,h,m,f,p,g,v,b,j,y,_,w,O,C,E,k,A,x=this;if(n=o(n,t("String"),"to_str").$to_s(),s=o(s,t("String"),"to_str").$to_s(),n.length==0||n===s)return x;_={},c=n.split(""),g=c.length,h=s.split(""),u=h.length,y=!1,C=null,c[0]==="^"&&c.length>1&&(y=!0,c.shift(),C=h[u-1],g-=1),d=[],b=null,f=!1;for(i=0;iv&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(m)+"-"+String.fromCharCode(v)+'" in string transliteration');for(p=m+1;p0){l=[],j=null,f=!1;for(i=0;iv&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(m)+"-"+String.fromCharCode(v)+'" in string transliteration');for(p=m+1;p0){A=u>0?h[u-1]:"";for(i=0;i1&&(O=!0,c.shift(),E=m[h-1],p-=1),u=[],l=null,j=!1;for(i=0;if&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(v)+"-"+String.fromCharCode(f)+'" in string transliteration');for(b=v+1;b0){d=[],A=null,j=!1;for(i=0;if&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(v)+"-"+String.fromCharCode(f)+'" in string transliteration');for(b=v+1;b0){k=h>0?m[h-1]:"";for(i=0;i0&&ni&&a.$raise(t("ArgumentError"),'invalid range "'+o+"-"+i+'" in string transliteration');for(r=o+1;r1,s=m(l?s.slice(1):s),l?r=h(r,s):i=h(i,s);if(i.length>0&&r.length>0){u="";for(n=0,c=i.length;n0?"["+t("Regexp").$escape(i)+"]":r.length>0?"[^"+t("Regexp").$escape(r)+"]":null}return n(M,"$instance_variables",function(){return[]}),j(M,"$_load",function(){var o=this,n=l(arguments),s=n;return u(o,"new",b(s))},-1),n(M,"$unicode_normalize",function(n){var s=this;return n==null&&(n="nfc"),r(["nfc","nfd","nfkc","nfkd"]["$include?"](n))||a.$raise(t("ArgumentError"),"Invalid normalization form "+n),s.normalize(n.$upcase())},-1),n(M,"$unicode_normalized?",function(t){var n=this;return t==null&&(t="nfc"),n.$unicode_normalize(t)["$=="](n)},-1),n(M,"$unpack",function(){return a.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")}),n(M,"$unpack1",function(){return a.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")}),n(M,"$freeze",function(){var t=this;return typeof t=="string"?t:(F(t,"$$frozen",!0),t)}),n(M,"$-@",function(){var t=this;return typeof t=="string"?t:t.$$frozen?t:t.encoding.name=="UTF-8"&&t.internal_encoding.name=="UTF-8"?t.toString():t.$dup().$freeze()}),n(M,"$frozen?",function(){var t=this;return typeof t=="string"||t.$$frozen===!0}),c(M,"+@","dup"),c(M,"===","=="),c(M,"byteslice","[]"),c(M,"eql?","=="),c(M,"equal?","==="),c(M,"object_id","__id__"),c(M,"slice","[]"),c(M,"succ","next"),c(M,"to_str","to_s"),c(M,"to_sym","intern"),p.$pristine(M,"initialize")}("::",String,v),A(v[0],"Symbol",M("String"))},Opal.modules["corelib/enumerable"]=function(e){var s=e.truthy,v=e.coerce_to,d=e.yield1,p=e.yieldX,C=e.deny_frozen_access,w=e.module,n=e.send,r=e.slice,l=e.to_a,i=e.Opal,u=e.thrower,o=e.def,c=e.Kernel,_=e.return_val,f=e.rb_gt,A=e.rb_times,k=e.rb_lt,b=e.eqeq,m=e.rb_plus,g=e.rb_minus,y=e.rb_divide,j=e.rb_le,O=e.lambda,x=e.not,h=e.alias,E=[],t=e.nil,a=e.$$$;return e.add_stubs("each,public_send,destructure,to_enum,enumerator_size,new,yield,raise,slice_when,!,enum_for,flatten,map,to_proc,compact,to_a,warn,proc,==,nil?,respond_to?,coerce_to!,>,*,try_convert,<,+,-,ceil,/,size,select,__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,detect,find_all,collect_concat,collect,inject,entries"),function(E,S){var M=w(E,"Enumerable"),T=[M].concat(S),z=e.$r(T);function F(e){return e.length===0&&(e=[t]),e.length>1&&(e=[e]),e}return o(M,"$all?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))return t;c.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))return t;c.$throw(!1,n.$$is_lambda)},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=r(arguments),a=o;if(s(i.$destructure(a)))return t;c.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:c}),!0}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$any?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))c.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))c.$throw(!0,n.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=r(arguments),a=o;if(s(i.$destructure(a)))c.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}),!1}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$chunk",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(a("Enumerator"),"new",[],function e(n){a=e.$$s==null?this:e.$$s,n==null&&(n=t);var a,s=t,i=[];function r(){i.length>0&&n.$yield(s,i)}a.$each.$$p=function(e){var n=d(o,e);n===t?(r(),i=[],s=t):(s===t||s===n?i.push(e):(r(),i=[e]),s=n)},a.$each(),r()},{$$s:s}):n(s,"to_enum",["chunk"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$chunk_while",function s(){var o=s.$$p||t,i=this;return s.$$p=null,o!==t||c.$raise(a("ArgumentError"),"no block given"),n(i,"slice_when",[],function(s,i){return s==null&&(s=t),i==null&&(i=t),e.yieldX(o,[s,i])["$!"]()})}),o(M,"$collect",function e(){var o,i=e.$$p||t,s=this;return e.$$p=null,i!==t?(o=[],s.$each.$$p=function(){var e=p(i,arguments);o.push(e)},s.$each(),o):n(s,"enum_for",["collect"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$collect_concat",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(s,"map",[],o.$to_proc()).$flatten(1):n(s,"enum_for",["collect_concat"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$compact",function(){var t=this;return t.$to_a().$compact()}),o(M,"$count",function e(o){var a=e.$$p||t,d=this,l=t;return e.$$p=null,l=0,o!=null&&a!==t&&d.$warn("warning: given block not used"),s(o!=null)?a=n(c,"proc",[],function(){var n=r(arguments),s=n;return i.$destructure(s)["$=="](o)},-1):s(a["$nil?"]())&&(a=n(c,"proc",[],_(!0))),n(d,"each",[],function(){var o=r(arguments),i=o;return s(p(a,i))?l++:t},-1),l},-1),o(M,"$cycle",function e(o){var r,c,h,m,l=e.$$p||t,u=this;if(e.$$p=null,o==null&&(o=t),l===t)return n(u,"enum_for",["cycle",o],function e(){var n=e.$$s==null?this:e.$$s;return s(o["$nil?"]())?s(n["$respond_to?"]("size"))?a(a("Float"),"INFINITY"):t:(o=i["$coerce_to!"](o,a("Integer"),"to_int"),s(f(o,0))?A(n.$enumerator_size(),o):0)},{$$s:u});if(!s(o["$nil?"]())&&(o=i["$coerce_to!"](o,a("Integer"),"to_int"),s(o<=0)))return t;if(c=[],u.$each.$$p=function(){var e=i.$destructure(arguments),t=d(l,e);c.push(e)},u.$each(),c.length===0)return t;if(o===t)for(;!0;)for(r=0,h=c.length;r1;){for(r=0,h=c.length;ro&&r.shift(),r.length==o&&d(u,r.slice(0,o))},l.$each(),l):n(l,"enum_for",["each_cons",o],function e(){var i=e.$$s==null?this:e.$$s,n=t,n=i.$enumerator_size();return s(n["$nil?"]())?t:b(n,0)||s(k(n,o))?0:m(g(n,o),1)},{$$s:l})}),o(M,"$each_entry",function e(){var a,u,c=e.$$p||t,o=this;return e.$$p=null,u=r(arguments),a=u,c!==t?(o.$each.$$p=function(){var e=i.$destructure(arguments);d(c,e)},o.$each.apply(o,a),o):n(o,"to_enum",["each_entry"].concat(l(a)),function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})},-1),o(M,"$each_slice",function e(o){var r,u=e.$$p||t,l=this;return e.$$p=null,o=v(o,a("Integer"),"to_int"),s(o<=0)&&c.$raise(a("ArgumentError"),"invalid slice size"),u!==t?(r=[],l.$each.$$p=function(){var e=i.$destructure(arguments);r.push(e),r.length===o&&(d(u,r),r=[])},l.$each(),r.length>0&&d(u,r),l):n(l,"enum_for",["each_slice",o],function e(){var n=e.$$s==null?this:e.$$s;return s(n["$respond_to?"]("size"))?y(n.$size(),o).$ceil():t},{$$s:l})}),o(M,"$each_with_index",function e(){var a,c,u,d=e.$$p||t,o=this;return e.$$p=null,u=r(arguments),a=u,d!==t?(c=0,o.$each.$$p=function(){var e=i.$destructure(arguments);d(e,c),c++},o.$each.apply(o,a),o):n(o,"enum_for",["each_with_index"].concat(l(a)),function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})},-1),o(M,"$each_with_object",function e(s){var a=e.$$p||t,o=this;return e.$$p=null,a!==t?(o.$each.$$p=function(){var e=i.$destructure(arguments);a(e,s)},o.$each(),s):n(o,"enum_for",["each_with_object",s],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$entries",function(){var n=this,o=r(arguments),a=o,s=[];return n.$each.$$p=function(){s.push(i.$destructure(arguments))},n.$each.apply(n,a),s},-1),o(M,"$filter_map",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(n(s,"map",[],o.$to_proc()),"select",[],"itself".$to_proc()):n(s,"enum_for",["filter_map"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$find_all",function e(){var a,r=e.$$p||t,o=this;return e.$$p=null,r!==t?(a=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)&&a.push(e)},o.$each(),a):n(o,"enum_for",["find_all"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$find_index",function o(a){try{var c=u("return"),m=o.$$p||t,h=this,d=t;return o.$$p=null,s(a===void 0&&m===t)?h.$enum_for("find_index"):(a!=null&&m!==t&&h.$warn("warning: given block not used"),d=0,s(a!=null)?n(h,"each",[],function e(){var n=r(arguments),s=n;return b(i.$destructure(s),a)&&c.$throw(d,e.$$is_lambda),d+=1},{$$arity:-1,$$ret:c}):n(h,"each",[],function t(){var o=r(arguments),i=o;return s(e.yieldX(m,l(i)))&&c.$throw(d,t.$$is_lambda),d+=1},{$$arity:-1,$$ret:c}),t)}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$first",function(o){try{var l=u("return"),h=this,d=t,m=t;return s(o===void 0)?n(h,"each",[],function e(n){n==null&&(n=t),l.$throw(n,e.$$is_lambda)},{$$ret:l}):(d=[],o=v(o,a("Integer"),"to_int"),s(o<0)&&c.$raise(a("ArgumentError"),"attempt to take negative size"),s(o==0)?[]:(m=0,n(h,"each",[],function e(){var a=r(arguments),c=a;if(d.push(i.$destructure(c)),s(o<=++m))l.$throw(d,e.$$is_lambda);else return t},{$$arity:-1,$$ret:l}),d))}catch(e){if(e===l)return e.$v;throw e}finally{l.is_orphan=!0}},-1),o(M,"$grep",function o(i){var c=o.$$p||t,d=this,a=t;return o.$$p=null,a=[],n(d,"each",[],function(){var h=t,m=r(arguments),u=m,h=F(u);return s(n(i,"__send__",["==="].concat(l(h))))?(c!==t?(s(f(u.$length(),1))&&(u=[u]),u=e.yieldX(c,l(u))):s(j(u.$length(),1))&&(u=u["$[]"](0)),a.$push(u)):t},-1),a}),o(M,"$grep_v",function o(i){var c=o.$$p||t,d=this,a=t;return o.$$p=null,a=[],n(d,"each",[],function(){var h=t,m=r(arguments),u=m,h=F(u);return s(n(i,"__send__",["==="].concat(l(h))))?t:(c!==t?(s(f(u.$length(),1))&&(u=[u]),u=e.yieldX(c,l(u))):s(j(u.$length(),1))&&(u=u["$[]"](0)),a.$push(u))},-1),a}),o(M,"$group_by",function e(){var o,u,c=e.$$p||t,a=this,r=t,l=t;return e.$$p=null,c!==t?(r=new Map,a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);(s(l=r["$[]"](t))?l:(o=[t,[]],n(r,"[]=",o),o[o.length-1]))["$<<"](e)},a.$each(),u!==void 0?u:r):n(a,"enum_for",["group_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})}),o(M,"$include?",function(s){try{var o=u("return"),a=this;return n(a,"each",[],function e(){var a=r(arguments),c=a;if(b(i.$destructure(c),s))o.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:o}),!1}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),o(M,"$inject",function e(n,s){var o,l=e.$$p||t,r=this;return e.$$p=null,o=n,l!==t&&s===void 0?r.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}e=p(l,[o,e]),o=e}:(s===void 0&&(a("Symbol")["$==="](n)||c.$raise(a("TypeError"),""+n.$inspect()+" is not a Symbol"),s=n,o=void 0),r.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}o=o.$__send__(s,e)}),r.$each(),o??t},-1),o(M,"$lazy",function(){var s=this;return n(a(a("Enumerator"),"Lazy"),"new",[s,s.$enumerator_size()],function(s){var i,a;return s==null&&(s=t),i=r(arguments,1),a=i,n(s,"yield",l(a))},-2)}),o(M,"$enumerator_size",function(){var n=this;return s(n["$respond_to?"]("size"))?n.$size():t}),o(M,"$max",function e(s){var o,r,l=e.$$p||t,d=this;return e.$$p=null,s===void 0||s===t?(d.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}l!==t?r=p(l,[e,o]):r=e["$<=>"](o),r===t&&c.$raise(a("ArgumentError"),"comparison failed"),r>0&&(o=e)},d.$each(),o===void 0?t:o):(s=v(s,a("Integer"),"to_int"),n(d,"sort",[],l.$to_proc()).$reverse().$first(s))},-1),o(M,"$max_by",function e(o){var r,l,c=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(c)?s(o["$nil?"]())?(a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);if(r===void 0){r=e,l=t;return}t["$<=>"](l)>0&&(r=e,l=t)},a.$each(),r===void 0?t:r):n(a,"sort_by",[],c.$to_proc()).$reverse().$take(o):n(a,"enum_for",["max_by",o],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})},-1),o(M,"$min",function o(r){var l,u=o.$$p||t,d=this;return o.$$p=null,r==null&&(r=t),s(r["$nil?"]())?(u!==t?d.$each.$$p=function(){var n,e=i.$destructure(arguments);if(l===void 0){l=e;return}n=u(e,l),n===t&&c.$raise(a("ArgumentError"),"comparison failed"),n<0&&(l=e)}:d.$each.$$p=function(){var e=i.$destructure(arguments);if(l===void 0){l=e;return}i.$compare(e,l)<0&&(l=e)},d.$each(),l===void 0?t:l):u!==t?n(d,"sort",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),e.yieldX(u,[s,o])}).$take(r):d.$sort().$take(r)},-1),o(M,"$min_by",function e(o){var r,l,c=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(c)?s(o["$nil?"]())?(a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);if(r===void 0){r=e,l=t;return}t["$<=>"](l)<0&&(r=e,l=t)},a.$each(),r===void 0?t:r):n(a,"sort_by",[],c.$to_proc()).$take(o):n(a,"enum_for",["min_by",o],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})},-1),o(M,"$minmax",function e(){var o=e.$$p||t,d=this,u=t;e.$$p=null;var o=s(u=o)?u:n(c,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$<=>"](s)}),r=t,l=t,h=!0;return d.$each.$$p=function(){var n,s,e=i.$destructure(arguments);h?(r=l=e,h=!1):(n=o.$call(r,e),n===t?c.$raise(a("ArgumentError"),"comparison failed"):n>0&&(r=e),s=o.$call(l,e),s===t?c.$raise(a("ArgumentError"),"comparison failed"):s<0&&(l=e))},d.$each(),[r,l]}),o(M,"$minmax_by",function e(){var a,r,c,l,u=e.$$p||t,o=this;return e.$$p=null,s(u)?(a=t,r=t,o.$each.$$p=function(){var t=i.$destructure(arguments),e=d(u,t);(c===void 0||e["$<=>"](c)<0)&&(a=t,c=e),(l===void 0||e["$<=>"](l)>0)&&(r=t,l=e)},o.$each(),[a,r]):n(o,"enum_for",["minmax_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$none?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))c.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))c.$throw(!1,n.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=t,a=r(arguments),l=a,o=i.$destructure(l);if(s(o))c.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}),!0}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$one?",function o(a){try{var d=u("return"),p=o.$$p||t,h=this,c=t;return o.$$p=null,c=0,s(a!==void 0)?n(h,"each",[],function e(){var i=t,u=r(arguments),h=u,i=F(h);if(s(n(a,"public_send",["==="].concat(l(i)))))if(c=m(c,1),s(f(c,1)))d.$throw(!1,e.$$is_lambda);else return t;else return t},{$$arity:-1,$$ret:d}):p!==t?n(h,"each",[],function n(){var i=r(arguments),a=i;if(!s(e.yieldX(p,l(a))))return t;if(c=m(c,1),s(f(c,1)))d.$throw(!1,n.$$is_lambda);else return t},{$$arity:-1,$$ret:d}):n(h,"each",[],function e(){var o=r(arguments),a=o;if(!s(i.$destructure(a)))return t;if(c=m(c,1),s(f(c,1)))d.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:d}),c["$=="](1)}catch(e){if(e===d)return e.$v;throw e}finally{d.is_orphan=!0}},-1),o(M,"$partition",function e(){var a,r,l,c=e.$$p||t,o=this;return e.$$p=null,c!==t?(a=[],r=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);s(t)?a.push(e):r.push(e)},o.$each(),[a,r]):n(o,"enum_for",["partition"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$reject",function e(){var a,r=e.$$p||t,o=this;return e.$$p=null,r!==t?(a=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)||a.push(e)},o.$each(),a):n(o,"enum_for",["reject"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$reverse_each",function e(){var s,i,a=e.$$p||t,o=this;if(e.$$p=null,a===t)return n(o,"enum_for",["reverse_each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o});s=[],o.$each.$$p=function(){s.push(arguments)},o.$each();for(i=s.length-1;i>=0;i--)p(a,s[i]);return s}),o(M,"$slice_before",function e(o){var r=e.$$p||t,l=this;return e.$$p=null,s(o===void 0&&r===t)&&c.$raise(a("ArgumentError"),"both pattern and block are given"),s(o!==void 0&&r!==t||arguments.length>1)&&c.$raise(a("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),n(a("Enumerator"),"new",[],function e(n){var a,c=e.$$s==null?this:e.$$s;n==null&&(n=t),a=[],r!==t?o===void 0?c.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)}:c.$each.$$p=function(){var e=i.$destructure(arguments),t=r(e,o.$dup());s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)}:c.$each.$$p=function(){var e=i.$destructure(arguments),t=o["$==="](e);s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)},c.$each(),a.length>0&&n["$<<"](a)},{$$s:l})},-1),o(M,"$slice_after",function e(o){var r=e.$$p||t,l=this;return e.$$p=null,s(o===void 0&&r===t)&&c.$raise(a("ArgumentError"),"both pattern and block are given"),s(o!==void 0&&r!==t||arguments.length>1)&&c.$raise(a("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),s(o!==void 0)&&(r=n(c,"proc",[],function(n){return n==null&&(n=t),o["$==="](n)})),n(a("Enumerator"),"new",[],function e(n){var o,a=e.$$s==null?this:e.$$s;n==null&&(n=t),a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);o==null&&(o=[]),s(t)?(o.push(e),n.$yield(o),o=null):o.push(e)},a.$each(),o!=null&&n.$yield(o)},{$$s:l})},-1),o(M,"$slice_when",function e(){var o=e.$$p||t,r=this;return e.$$p=null,o!==t||c.$raise(a("ArgumentError"),"wrong number of arguments (0 for 1)"),n(a("Enumerator"),"new",[],function e(n){r=e.$$s==null?this:e.$$s,n==null&&(n=t);var r,a=t,c=t;r.$each_cons.$$p=function(){var r=i.$destructure(arguments),e=r[0],l=r[1],d=p(o,[e,l]);c=l,a===t&&(a=[]),s(d)?(a.push(e),n.$yield(a),a=[]):a.push(e)},r.$each_cons(2),a!==t&&(a.push(c),n.$yield(a))},{$$s:r})}),o(M,"$sort",function e(){var s=e.$$p||t,i=this,o=t;return e.$$p=null,o=i.$to_a(),s!==t||(s=O(function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$<=>"](s)})),n(o,"sort",[],s.$to_proc())}),o(M,"$sort_by",function s(){var r=s.$$p||t,o=this,a=t;return s.$$p=null,r!==t?(a=n(o,"map",[],function(){var s=t,s=i.$destructure(arguments);return[e.yield1(r,s),s]}),n(a,"sort!",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n[0]["$<=>"](s[0])}),n(a,"map!",[],function(n){return n==null&&(n=t),n[1]})):n(o,"enum_for",["sort_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$sum",function o(c){var h=o.$$p||t,f=this,d=t,u=t;return o.$$p=null,c==null&&(c=0),d=c,u=0,n(f,"each",[],function(){var c=t,f=t,p=t,b=r(arguments),v=b,c=h!==t?e.yieldX(h,l(v)):i.$destructure(v);return x([a(a("Float"),"INFINITY"),a(a("Float"),"INFINITY")["$-@"]()]["$include?"](c))&&s(c["$respond_to?"]("-"))?(f=g(c,u),p=m(d,f),u=g(g(p,d),f),d=p):d=m(d,c)},-1),d},-1),o(M,"$take",function(t){var n=this;return n.$first(t)}),o(M,"$take_while",function o(){try{var a=u("return"),l=o.$$p||t,d=this,c=t;return o.$$p=null,s(l)?(c=[],n(d,"each",[],function n(){var d=t,u=r(arguments),h=u,d=i.$destructure(h);return s(e.yield1(l,d))||a.$throw(c,n.$$is_lambda),c.push(d)},{$$arity:-1,$$ret:a})):d.$enum_for("take_while")}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),o(M,"$uniq",function o(){var c=o.$$p||t,l=this,a=t;return o.$$p=null,a=new Map,n(l,"each",[],function(){var d,u=t,h=t,m=r(arguments),f=m,u=i.$destructure(f),h=c!==t?e.yield1(c,u):u;return s(a["$key?"](h))?t:(d=[h,u],n(a,"[]=",d),d[d.length-1])},-1),a.$values()}),o(M,"$tally",function(o){var a=this,i=t;return o&&o!==t&&C(o),i=n(n(a,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc()),s(o)?(n(i,"each",[],function(s,i){var a;return s==null&&(s=t),i==null&&(i=t),(a=[s,m(o.$fetch(s,0),i)],n(o,"[]=",a),a[a.length-1])}),o):i},-1),o(M,"$to_h",function s(){var u,h,f,m=s.$$p||t,d=this;return s.$$p=null,f=r(arguments),u=f,m!==t?n(n(d,"map",[],m.$to_proc()),"to_h",l(u)):(h=new Map,d.$each.$$p=function(){var s,o,n=i.$destructure(arguments),t=i["$coerce_to?"](n,a("Array"),"to_ary");t.$$is_array||c.$raise(a("TypeError"),"wrong element type "+n.$class()+" (expected array)"),t.length!==2&&c.$raise(a("ArgumentError"),"element has wrong array length (expected 2, was "+t.$length()+")"),s=t[0],o=t[1],e.hash_put(h,s,o)},d.$each.apply(d,u),h)},-1),o(M,"$to_set",function e(){var i,a,c,d=e.$$p||t,u=this;return e.$$p=null,i=r(arguments),i.length>0&&(a=i.shift()),a==null&&(a=z("Set")),c=i,n(a,"new",[u].concat(l(c)),d.$to_proc())},-1),o(M,"$zip",function e(){var o,i,c=e.$$p||t,a=this;return e.$$p=null,o=r(arguments),i=o,n(a.$to_a(),"zip",l(i))},-1),h(M,"find","detect"),h(M,"filter","find_all"),h(M,"flat_map","collect_concat"),h(M,"map","collect"),h(M,"member?","include?"),h(M,"reduce","inject"),h(M,"select","find_all"),h(M,"to_a","entries")}("::",E)},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(e){var d=e.klass,n=e.truthy,y=e.to_a,g=e.eqeq,a=e.Kernel,s=e.def,i=e.rb_gt,u=e.rb_lt,f=e.rb_le,p=e.rb_ge,c=e.rb_plus,o=e.rb_minus,r=e.eqeqeq,v=e.not,h=e.rb_times,b=e.rb_divide,m=e.alias,j=[],t=e.nil,l=e.$$$;return e.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(j,_,w){var O=d(j,_,"Enumerator"),x=[O].concat(w);return function(j,_,w){var x,O=d(j,_,"ArithmeticSequence"),k=[O].concat(w),E=e.$r(k),C=O.$$prototype;return C.step_arg2=C.receiver_num=C.step_arg1=C.step=C.range=C.topfx=C.bypfx=C.creation_method=C.skipped_arg=t,e.prop(O.$$prototype,"$$is_arithmetic_seq",!0),x=1/0,s(O,"$initialize",function(o,i,r){var d,c=this,u=t;return r==null&&(r="step"),c.creation_method=r,n(o["$is_a?"](l("Array")))?(d=[].concat(y(o)),c.step_arg1=d[0]==null?t:d[0],c.step_arg2=d[1]==null?t:d[1],c.topfx=d[2]==null?t:d[2],c.bypfx=d[3]==null?t:d[3],d,c.receiver_num=i,c.step=1,c.range=n(c.step_arg2)?(c.step=c.step_arg2,e.Range.$new(c.receiver_num,c.step_arg1,!1)):n(c.step_arg1)?e.Range.$new(c.receiver_num,c.step_arg1,!1):e.Range.$new(c.receiver_num,t,!1)):(n(i)||(c.skipped_arg=!0),d=[o,n(u=i)?u:1],c.range=d[0],c.step=d[1],d),c.object=c,g(c.step,0)&&a.$raise(E("ArgumentError"),"step can't be 0"),n(c.step["$respond_to?"]("to_int"))?t:a.$raise(E("ArgumentError"),""+("no implicit conversion of "+c.step.$class()+" ")+"into Integer")},-2),O.$attr_reader("step"),s(O,"$begin",function(){var t=this;return t.range.$begin()}),s(O,"$end",function(){var t=this;return t.range.$end()}),s(O,"$exclude_end?",function(){var t=this;return t.range["$exclude_end?"]()}),s(O,"$_lesser_than_end?",function(s){var a=this,o=t,r=t,o=n(r=a.$end())?r:x;return n(i(a.$step(),0))?n(a["$exclude_end?"]())?u(s,o):f(s,o):n(a["$exclude_end?"]())?i(s,o):p(s,o)}),s(O,"$_greater_than_begin?",function(s){var a=this,o=t,r=t,o=n(r=a.$begin())?r:x["$-@"]();return n(i(a.$step(),0))?i(s,o):u(s,o)}),s(O,"$first",function(s){var r=this,a=t,l=t,d=t,a=n(l=r.$begin())?l:x["$-@"]();if(!n(s))return n(r["$_lesser_than_end?"](a))?a:t;for(d=[];n(n(l=r["$_lesser_than_end?"](a))?i(s,0):l);)d["$<<"](a),a=c(a,r.$step()),s=o(s,1);return d},-1),s(O,"$each",function s(){var d=s.$$p||t,o=this,l=t,i=t;if(s.$$p=null,d===t)return o;for(r(t,l=o.$begin())?a.$raise(E("TypeError"),"nil can't be coerced into Integer"):t,i=n(l=o.$begin())?l:x["$-@"]();n(o["$_lesser_than_end?"](i));)e.yield1(d,i),i=c(i,o.$step());return o}),s(O,"$last",function(s){var c=this,u=t,d=t,h=t;if(r(x,u=c.$end())||r(x["$-@"](),u)?a.$raise(l("FloatDomainError"),c.$end()):r(t,u)?a.$raise(l("RangeError"),"cannot get the last element of endless arithmetic sequence"):t,d=o(c.$end(),o(c.$end(),c.$begin())["$%"](c.$step())),n(c["$_lesser_than_end?"](d))||(d=o(d,c.$step())),!n(s))return n(c["$_greater_than_begin?"](d))?d:t;for(h=[];n(n(u=c["$_greater_than_begin?"](d))?i(s,0):u);)h["$<<"](d),d=o(d,c.$step()),s=o(s,1);return h.$reverse()},-1),s(O,"$size",function(){var s=this,r=t,a=t,r=n(i(s.$step(),0))?1:-1;return v(s["$_lesser_than_end?"](s.$begin()))?0:n([x["$-@"](),x]["$include?"](s.$step()))?1:n([h(x["$-@"](),r),t]["$include?"](s.$begin()))||n([h(x,r),t]["$include?"](s.$end()))?x:(a=o(s.$end(),o(s.$end(),s.$begin())["$%"](s.$step())),n(s["$_lesser_than_end?"](a))||(a=o(a,s.$step())),c(b(o(a,s.$begin()),s.$step()).$abs().$to_i(),1))}),s(O,"$==",function(s){var o=this,i=t,a=t,r=t,c=t;return n(i=n(a=n(r=n(c=o.$class()["$=="](s.$class()))?o.$begin()["$=="](s.$begin()):c)?o.$end()["$=="](s.$end()):r)?o.$step()["$=="](s.$step()):a)?o["$exclude_end?"]()["$=="](s["$exclude_end?"]()):i}),s(O,"$hash",function(){var t=this;return[E("ArithmeticSequence"),t.$begin(),t.$end(),t.$step(),t["$exclude_end?"]()].$hash()}),s(O,"$inspect",function(){var s=this,o=t;return n(s.receiver_num)?(o=n(s.step_arg2)?"("+s.topfx+s.step_arg1.$inspect()+", "+s.bypfx+s.step_arg2.$inspect()+")":n(s.step_arg1)?"("+s.topfx+s.step_arg1.$inspect()+")":t,"("+s.receiver_num.$inspect()+"."+s.creation_method+o+")"):(o=n(s.skipped_arg)?t:"("+s.step+")","(("+s.range.$inspect()+")."+s.creation_method+o+")")}),m(O,"===","=="),m(O,"eql?","==")}(O,O,x)}("::",null,j)},Opal.modules["corelib/enumerator/chain"]=function(e){var l=e.deny_frozen_access,a=e.klass,o=e.slice,s=e.def,n=e.send,i=e.to_a,r=e.truthy,d=e.rb_plus,u=e.thrower,t=e.nil,c=e.$$$;return e.add_stubs("to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect"),function(e,h){var m=a(e,h,"Enumerator");return function(e,h){var m=a(e,h,"Chain"),f=m.$$prototype;return f.enums=f.iterated=t,s(m,"$initialize",function(){var n=this,s=o(arguments),i=s;return l(n),n.enums=i,n.iterated=[],n.object=n},-1),s(m,"$each",function e(){var r,l,c=e.$$p||t,a=this;return e.$$p=null,l=o(arguments),r=l,c!==t?(n(a.enums,"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.iterated==null&&(o.iterated=t),s==null&&(s=t),o.iterated["$<<"](s),n(s,"each",i(r),c.$to_proc())},{$$s:a}),a):n(a,"to_enum",["each"].concat(i(r)),function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:a})},-1),s(m,"$size",function(){try{var a=u("return"),f=this,l=t,h=o(arguments),m=h,l=0;return n(f.enums,"each",[],function e(s){var o=t;return s==null&&(s=t),o=n(s,"size",i(m)),r([t,c(c("Float"),"INFINITY")]["$include?"](o))&&a.$throw(o,e.$$is_lambda),l=d(l,o)},{$$ret:a}),l}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}},-1),s(m,"$rewind",function(){var s=this;return n(s.iterated,"reverse_each",[],function(n){return n==null&&(n=t),r(n["$respond_to?"]("rewind"))?n.$rewind():t}),s.iterated=[],s}),s(m,"$inspect",function(){var t=this;return"#"})}(m,m)}("::",null)},Opal.modules["corelib/enumerator/generator"]=function(e){var a=e.deny_frozen_access,n=e.klass,r=e.truthy,c=e.Kernel,s=e.def,l=e.slice,d=e.send,o=[],t=e.nil,i=e.$$$;return e.add_stubs("include,raise,new,to_proc"),function(o,u,h){var f=n(o,u,"Enumerator"),m=[f].concat(h);return function(o,u,h){var m=n(o,u,"Generator"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.block=t,m.$include(i("Enumerable")),s(m,"$initialize",function e(){var n=e.$$p||t,s=this;return e.$$p=null,a(s),r(n)||c.$raise(i("LocalJumpError"),"no block given"),s.block=n}),s(m,"$each",function n(){var o,i,c=n.$$p||t,a=this,r=t;n.$$p=null,i=l(arguments),o=i,r=d(p("Yielder"),"new",[],c.$to_proc());try{o.unshift(r),e.yieldX(a.block,o)}catch(e){if(e&&e.$thrower_type=="breaker")return e.$v;throw e}return a},-1)}(m[0],null,m)}(o[0],null,o)},Opal.modules["corelib/enumerator/lazy"]=function(e){var s=e.truthy,j=e.coerce_to,b=e.yield1,l=e.yieldX,w=e.deny_frozen_access,m=e.klass,i=e.slice,p=e.send2,f=e.find_super,c=e.to_a,y=e.defs,r=e.Kernel,n=e.send,a=e.def,_=e.return_self,h=e.Opal,u=e.rb_lt,g=e.eqeqeq,v=e.rb_plus,d=e.alias,O=[],t=e.nil,o=e.$$$;return e.add_stubs("raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect,to_a,find_all,collect_concat,collect,enum_for"),function(O,x,C){var E=m(O,x,"Enumerator"),k=[E].concat(C);return function(O,x,C){var E=m(O,x,"Lazy"),A=[E].concat(C),k=e.$r(A),S=E.$$prototype;return S.enumerator=t,m(E,o("Exception"),"StopLazyError"),y(E,"$for",function e(n){var a,r,d=e.$$p||t,l=this,o=t;return e.$$p=null,a=i(arguments,1),r=a,o=p(l,f(l,"for",e,!1,!0),"for",[n].concat(c(r)),d),o.enumerator=n,o},-2),a(E,"$initialize",function s(a,d){var h=s.$$p||t,u=this;return s.$$p=null,d==null&&(d=t),w(u),h!==t||r.$raise(o("ArgumentError"),"tried to call lazy new without a block"),u.enumerator=a,p(u,f(u,"initialize",s,!1,!0),"initialize",[d],function(o){var d,u;o==null&&(o=t),d=i(arguments,1),u=d;try{return n(a,"each",c(u),function(){var s=i(arguments),n=s;n.unshift(o),l(h,n)},-1)}catch(n){if(e.rescue(n,[k("StopLazyError")]))try{return t}finally{e.pop_exception(n)}else throw n}},-2)},-2),a(E,"$lazy",_),a(E,"$collect",function e(){var a=e.$$p||t,c=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy map without a block"),n(k("Lazy"),"new",[c,c.$enumerator_size()],function(n){n==null&&(n=t);var o=i(arguments,1),r=o,c=l(a,r);n.$yield(c)},-2)}),a(E,"$collect_concat",function e(){var a=e.$$p||t,c=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy map without a block"),n(k("Lazy"),"new",[c,t],function(s){s==null&&(s=t);var d,u=i(arguments,1),m=u,c=l(a,m);c["$respond_to?"]("force")&&c["$respond_to?"]("each")?n(c,"each",[],function(n){return n==null&&(n=t),s.$yield(n)}):(d=h.$try_convert(c,o("Array"),"to_ary"),d===t?s.$yield(c):n(c,"each",[],function(n){return n==null&&(n=t),s.$yield(n)}))},-2)}),a(E,"$drop",function(a){var h=this,l=t,m=t,d=t;return a=j(a,o("Integer"),"to_int"),s(u(a,0))&&r.$raise(o("ArgumentError"),"attempt to drop negative size"),l=h.$enumerator_size(),m=g(o("Integer"),l)?s(u(a,l))?a:l:l,d=0,n(k("Lazy"),"new",[h,m],function(o){var l,h;return o==null&&(o=t),l=i(arguments,1),h=l,s(u(d,a))?d=v(d,1):n(o,"yield",c(h))},-2)}),a(E,"$drop_while",function e(){var d=e.$$p||t,u=this,a=t;return e.$$p=null,s(d)||r.$raise(o("ArgumentError"),"tried to call lazy drop_while without a block"),a=!0,n(k("Lazy"),"new",[u,t],function(o){if(o==null&&(o=t),h=i(arguments,1),u=h,s(a)){var u,h,m=l(d,u);s(m)||(a=!1,n(o,"yield",c(u)))}else return n(o,"yield",c(u))},-2)}),a(E,"$enum_for",function e(){var a,r,l,u=e.$$p||t,d=this;return e.$$p=null,a=i(arguments),a.length>0&&(r=a.shift()),r==null&&(r="each"),l=a,n(d.$class(),"for",[d,r].concat(c(l)),u.$to_proc())},-1),a(E,"$find_all",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy select without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var u=i(arguments,1),d=u,h=l(a,d);s(h)&&n(o,"yield",c(d))},-2)}),a(E,"$grep",function e(o){var a=e.$$p||t,r=this;return e.$$p=null,s(a)?n(k("Lazy"),"new",[r,t],function(n){n==null&&(n=t);var d=i(arguments,1),u=d,c=h.$destructure(u),l=o["$==="](c);s(l)&&(l=b(a,c),n.$yield(b(a,c)))},-2):n(k("Lazy"),"new",[r,t],function(n){n==null&&(n=t);var c=i(arguments,1),l=c,r=h.$destructure(l),d=o["$==="](r);s(d)&&n.$yield(r)},-2)}),a(E,"$reject",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy reject without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var u=i(arguments,1),d=u,h=l(a,d);s(h)||n(o,"yield",c(d))},-2)}),a(E,"$take",function(a){var h=this,l=t,m=t,d=t;return a=j(a,o("Integer"),"to_int"),s(u(a,0))&&r.$raise(o("ArgumentError"),"attempt to take negative size"),l=h.$enumerator_size(),m=g(o("Integer"),l)?s(u(a,l))?a:l:l,d=0,n(k("Lazy"),"new",[h,m],function(o){var h,m;return o==null&&(o=t),h=i(arguments,1),m=h,s(u(d,a))?(n(o,"yield",c(m)),d=v(d,1)):r.$raise(k("StopLazyError"))},-2)}),a(E,"$take_while",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy take_while without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var h=i(arguments,1),u=h,m=l(a,u);s(m)?n(o,"yield",c(u)):r.$raise(k("StopLazyError"))},-2)}),a(E,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.enumerator.$inspect()+">"}),d(E,"force","to_a"),d(E,"filter","find_all"),d(E,"flat_map","collect_concat"),d(E,"map","collect"),d(E,"select","find_all"),d(E,"to_enum","enum_for")}(E,E,k)}("::",null,O)},Opal.modules["corelib/enumerator/yielder"]=function(e){var n=e.klass,t=e.def,s=e.slice,o=e.send,r=e.to_a,i=[],a=e.nil;return e.add_stubs("yield,proc"),function(i,c,l){var d=n(i,c,"Enumerator"),u=[d].concat(l);return function(i,c){var l=n(i,c,"Yielder"),d=l.$$prototype;return d.block=a,t(l,"$initialize",function e(){var n=e.$$p||a,t=this;return e.$$p=null,t.block=n,t}),t(l,"$yield",function(){var r=this,i=s(arguments),a=i,o=e.yieldX(r.block,a);if(o&&o.$thrower_type=="break")throw o;return o},-1),t(l,"$<<",function(t){var n=this;return n.$yield(t),n}),t(l,"$to_proc",function(){var t=this;return o(t,"proc",[],function e(){var a=e.$$s==null?this:e.$$s,n=s(arguments),i=n;return o(a,"yield",r(i))},{$$arity:-1,$$s:t})})}(u[0],null)}(i[0],null,i)},Opal.modules["corelib/enumerator"]=function(e){var a=e.slice,d=e.coerce_to,_=e.deny_frozen_access,v=e.klass,w=e.defs,s=e.truthy,i=e.send,p=e.not,n=e.def,r=e.rb_plus,c=e.to_a,h=e.Opal,m=e.send2,f=e.find_super,u=e.rb_ge,g=e.Kernel,l=e.rb_le,b=e.alias,j=e.top,y=[],t=e.nil,o=e.$$$;return e.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?,each_with_object,autoload"),j.$require("corelib/enumerable"),function(j,y,O){var x=v(j,y,"Enumerator"),k=[x].concat(O),E=e.$r(k),C=x.$$prototype;return C.size=C.args=C.object=C.method=C.values=C.cursor=t,x.$include(o("Enumerable")),x.$$prototype.$$is_enumerator=!0,w(x,"$for",function e(n){var i,r,c,l,d=e.$$p||t,u=this;return e.$$p=null,r=a(arguments,1),r.length>0&&(c=r.shift()),c==null&&(c="each"),l=r,i=u.$allocate(),i.object=n,i.size=d,i.method=c,i.args=l,i.cursor=0,i},-2),n(x,"$initialize",function e(){var l,u,c=e.$$p||t,r=this;return e.$$p=null,l=a(arguments),u=l,_(r),r.cursor=0,s(c)?(r.object=i(E("Generator"),"new",[],c.$to_proc()),r.method="each",r.args=[],r.size=arguments[0]||t,s(r.size)&&p(r.size["$respond_to?"]("call"))?r.size=d(r.size,o("Integer"),"to_int"):t):(r.object=arguments[0],r.method=arguments[1]||"each",r.args=a(arguments,2),r.size=t)},-1),n(x,"$each",function e(){var l,u,d=e.$$p||t,o=this;return e.$$p=null,u=a(arguments),l=u,s(d["$nil?"]())&&s(l["$empty?"]())?o:(l=r(o.args,l),s(d["$nil?"]())?i(o.$class(),"new",[o.object,o.method].concat(c(l))):i(o.object,"__send__",[o.method].concat(c(l)),d.$to_proc()))},-1),n(x,"$size",function(){var t=this;return s(t.size["$respond_to?"]("call"))?i(t.size,"call",c(t.args)):t.size}),n(x,"$with_index",function e(n){var r,l,c=e.$$p||t,a=this;return e.$$p=null,n==null&&(n=0),n=s(n)?d(n,o("Integer"),"to_int"):0,s(c)?(r=n,a.$each.$$p=function(){var e=h.$destructure(arguments),t=c(e,r);return r++,t},a.$each()):i(a,"enum_for",["with_index",n],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:a})},-1),n(x,"$each_with_index",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(m(n,f(n,"each_with_index",e,!1,!0),"each_with_index",[],s),n.object):i(n,"enum_for",["each_with_index"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(x,"$rewind",function(){var t=this;return t.cursor=0,t}),n(x,"$peek_values",function(){var n=this,r=t;return n.values=s(r=n.values)?r:i(n,"map",[],function(){var n=a(arguments),s=n;return s},-1),s(u(n.cursor,n.values.$length()))&&g.$raise(o("StopIteration"),"iteration reached an end"),n.values["$[]"](n.cursor)}),n(x,"$peek",function(){var o=this,n=t,n=o.$peek_values();return s(l(n.$length(),1))?n["$[]"](0):n}),n(x,"$next_values",function(){var n=this,s=t,s=n.$peek_values();return n.cursor=r(n.cursor,1),s}),n(x,"$next",function(){var o=this,n=t,n=o.$next_values();return s(l(n.$length(),1))?n["$[]"](0):n}),n(x,"$feed",function(){var n=this;return n.$raise(E("NotImplementedError"),"Opal doesn't support Enumerator#feed")}),n(x,"$+",function(t){var n=this;return o(o("Enumerator"),"Chain").$new(n,t)}),n(x,"$inspect",function(){var n=this,i=t,i="#<"+n.$class()+": "+n.object.$inspect()+":"+n.method;return s(n.args["$any?"]())&&(i=r(i,"("+n.args.$inspect()["$[]"](o("Range").$new(1,-2))+")")),r(i,">")}),b(x,"with_object","each_with_object"),x.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),x.$autoload("Chain","corelib/enumerator/chain"),x.$autoload("Generator","corelib/enumerator/generator"),x.$autoload("Lazy","corelib/enumerator/lazy"),x.$autoload("Yielder","corelib/enumerator/yielder")}("::",null,y)},Opal.modules["corelib/numeric"]=function(e){var j=e.klass,i=e.truthy,o=e.Kernel,t=e.def,k=e.to_ary,c=e.return_self,f=e.rb_minus,p=e.rb_times,l=e.rb_lt,b=e.eqeq,u=e.rb_divide,r=e.return_val,h=e.Opal,E=e.slice,x=e.extract_kwargs,g=e.ensure_kwargs,d=e.hash_get,m=e.not,v=e.send,y=e.rb_ge,_=e.rb_le,w=e.rb_plus,O=e.rb_gt,a=e.alias,C=e.top,s=e.nil,n=e.$$$;return e.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,>,angle,conj,imag,rect"),C.$require("corelib/comparable"),function(C,A){var S=j(C,A,"Numeric");return S.$include(n("Comparable")),t(S,"$coerce",function(t){var n=this;return i(t["$instance_of?"](n.$class()))?[t,n]:[o.$Float(t),o.$Float(n)]}),t(S,"$__coerced__",function(t,a){var r,c,l=this,d=s,u=s;if(i(a["$respond_to?"]("coerce")))return c=a.$coerce(l),r=k(c),d=r[0]==null?s:r[0],u=r[1]==null?s:r[1],c,d.$__send__(t,u);switch(t.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return o.$raise(n("TypeError"),""+a.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return o.$raise(n("ArgumentError"),"comparison of "+l.$class()+" with "+a.$class()+" failed");default:return s}}),t(S,"$<=>",function(t){var n=this;return i(n["$equal?"](t))?0:s}),t(S,"$+@",c),t(S,"$-@",function(){var t=this;return f(0,t)}),t(S,"$%",function(t){var n=this;return f(n,p(t,n.$div(t)))}),t(S,"$abs",function(){var t=this;return i(l(t,0))?t["$-@"]():t}),t(S,"$abs2",function(){var t=this;return p(t,t)}),t(S,"$angle",function(){var t=this;return i(l(t,0))?n(n("Math"),"PI"):0}),t(S,"$ceil",function(t){var n=this;return t==null&&(t=0),n.$to_f().$ceil(t)},-1),t(S,"$conj",c),t(S,"$denominator",function(){var t=this;return t.$to_r().$denominator()}),t(S,"$div",function(t){var s=this;return b(t,0)&&o.$raise(n("ZeroDivisionError"),"divided by o"),u(s,t).$floor()}),t(S,"$divmod",function(t){var n=this;return[n.$div(t),n["$%"](t)]}),t(S,"$fdiv",function(t){var n=this;return u(n.$to_f(),t)}),t(S,"$floor",function(t){var n=this;return t==null&&(t=0),n.$to_f().$floor(t)},-1),t(S,"$i",function(){var t=this;return o.$Complex(0,t)}),t(S,"$imag",r(0)),t(S,"$integer?",r(!1)),t(S,"$nonzero?",function(){var t=this;return i(t["$zero?"]())?s:t}),t(S,"$numerator",function(){var t=this;return t.$to_r().$numerator()}),t(S,"$polar",function(){var t=this;return[t.$abs(),t.$arg()]}),t(S,"$quo",function(t){var s=this;return u(h["$coerce_to!"](s,n("Rational"),"to_r"),t)}),t(S,"$real",c),t(S,"$real?",r(!0)),t(S,"$rect",function(){var t=this;return[t,0]}),t(S,"$round",function(t){var n=this;return n.$to_f().$round(t)},-1),t(S,"$step",function t(){var l,u,p,O,C,k,A,S,M,F,T,z,D,b=t.$$p||s,f=this,j=s;t.$$p=null,O=E(arguments),k=x(O),k=g(k),O.length>0&&(u=O.shift()),O.length>0&&(l=O.shift()),C=d(k,"to"),S=d(k,"by"),u!==void 0&&C!==void 0&&o.$raise(n("ArgumentError"),"to is given twice"),l!==void 0&&S!==void 0&&o.$raise(n("ArgumentError"),"step is given twice"),C!==void 0&&(u=C),S!==void 0&&(l=S),u===void 0&&(u=s);function L(){l===s&&o.$raise(n("TypeError"),"step must be numeric"),l!=null&&l["$=="](0)&&o.$raise(n("ArgumentError"),"step can't be 0"),(l===s||l==null)&&(l=1);var e=l["$<=>"](0);e===s&&o.$raise(n("ArgumentError"),"0 can't be coerced into "+l.$class()),(u===s||u==null)&&(u=e>0?n(n("Float"),"INFINITY"):n(n("Float"),"INFINITY")["$-@"]()),h.$compare(f,u)}function N(){if(l>0&&f>u||l<0&&f.5&&(e=.5),s((u-f)/l+e)+1)}function R(){if(L(),l===0)return 1/0;if(l%1!==0)return N();if(l>0&&f>u||l<0&&f=u;p+=l)b(p);else for(;p<=u;p+=l)b(p);return f}if(T=f.$to_f().valueOf(),l=l.$to_f().valueOf(),u=u.$to_f().valueOf(),D=N(),isFinite(l))if(l===0)for(;!0;)b(T);else for(F=0;F=0?uA)&&(A=u),b(A);else D!==0&&b(T);return f}for(j=f;i(M?y(j,u):_(j,u));)e.yield1(b,j),j=w(j,l)},-1),t(S,"$to_c",function(){var t=this;return o.$Complex(t,0)}),t(S,"$to_int",function(){var t=this;return t.$to_i()}),t(S,"$truncate",function(t){var n=this;return t==null&&(t=0),n.$to_f().$truncate(t)},-1),t(S,"$zero?",function(){var t=this;return t["$=="](0)}),t(S,"$positive?",function(){var t=this;return O(t,0)}),t(S,"$negative?",function(){var t=this;return l(t,0)}),t(S,"$dup",c),t(S,"$clone",function(t){var n,s=this;return t=g(t),n=d(t,"freeze"),n==null&&(n=!0),s},-1),t(S,"$finite?",r(!0)),t(S,"$infinite?",r(s)),a(S,"arg","angle"),a(S,"conjugate","conj"),a(S,"imaginary","imag"),a(S,"magnitude","abs"),a(S,"modulo","%"),a(S,"phase","arg"),a(S,"rectangular","rect")}("::",null)},Opal.modules["corelib/array"]=function(e){var o=e.truthy,H=e.falsy,u=e.yield1,p=e.hash_get,m=e.hash_put,P=e.hash_delete,a=e.coerce_to,g=e.respond_to,c=e.deny_frozen_access,N=e.freeze,S=e.opal32_init,f=e.opal32_add,O=e.klass,d=e.slice,y=e.defs,i=e.Kernel,n=e.def,l=e.Opal,_=e.eqeqeq,v=e.send2,b=e.find_super,r=e.send,E=e.rb_gt,L=e.rb_times,C=e.eqeq,F=e.rb_minus,A=e.to_a,w=e.to_ary,j=e.gvars,M=e.rb_ge,k=e.assign_ivar,T=e.rb_lt,z=e.return_self,D=e.neqeq,h=e.alias,x=e.top,R=[],t=e.nil,s=e.$$$;return e.add_stubs("require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,join,to_str,===,<=>,==,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,frozen?,__id__,sort_by,&,to_s,new,item,max,min,!,>=,**,delete_if,rotate,rand,at,keep_if,shuffle!,<,sort,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,push,select,select!,collect,collect!,unshift,pristine,singleton_class"),x.$require("corelib/enumerable"),x.$require("corelib/numeric"),function(x,R,I){var $,K,B=O(x,R,"Array"),ee=[B].concat(I),W=e.$r(ee);B.$include(s("Enumerable")),e.prop(B.$$prototype,"$$is_array",!0);function X(e){for(var n=e[0],t=1,s=e.length;t6&&s<32767)e.push.apply(e,t);else for(n=0;ns(s("Integer"),"MAX")&&i.$raise(s("ArgumentError"),"array size too big"),arguments.length>2&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),arguments.length===0)return r.length>0&&r.splice(0,r.length),r;if(arguments.length===1){if(n.$$is_array)return r.$replace(n.$to_a()),r;if(n["$respond_to?"]("to_ary"))return r.$replace(n.$to_ary()),r}if(n=a(n,s("Integer"),"to_int"),n<0&&i.$raise(s("ArgumentError"),"negative array size"),r.splice(0,r.length),d===t)for(l=0;l",function(n){var i,r,c,a=this;if(_(s("Array"),n))n=n.$to_a();else if(o(n["$respond_to?"]("to_ary")))n=n.$to_ary().$to_a();else return t;if(a===n)return 0;for(c=Math.min(a.length,n.length),i=0;i"](n[i]),r!==0)return r;return a.length["$<=>"](n.length)}),n(B,"$==",function(t){var o=this,n={};function s(e,t){var o,i,a,r;if(e===t)return!0;if(!t.$$is_array)return!!g(t,"$to_ary")&&t["$=="](e);if(e.$$constructor!==Array&&(e=e.$to_a()),t.$$constructor!==Array&&(t=t.$to_a()),e.length!==t.length)return!1;n[e.$object_id()]=!0;for(i=0,r=e.length;ir?t:i<0&&(i+=r,i<0)?[]:((!l||s.end===t)&&(i+=1),c=n.slice(o,i),c))}function Z(e,t){var n,i,o=[],s=0;for(t.step<0?(i={begin:t.range.end,end:t.range.begin,excl:!1,excl_rev:t.range.excl},n=Y(e,i).$reverse()):n=Y(e,t.range);s=i||s<0?t:n[s]:(o=a(o,e.Integer,"to_int"),o<0||s>i||s<0?t:(r=n.slice(s,s+o),r))}n(B,"$[]",function(t,n){var s=this;return t.$$is_range?Y(s,t):t.$$is_arithmetic_seq?Z(s,t):Q(s,t,n)},-2),n(B,"$[]=",function(o,r,l){var h,m,v,d=this,u=t,p=t;if(c(d),u=t,m=d.length,o.$$is_range){r.$$is_array?u=r.$to_a():r["$respond_to?"]("to_ary")?u=r.$to_ary().$to_a():u=[r];var b=o.excl,f=o.begin===t?0:a(o.begin,e.Integer,"to_int"),g=o.end===t?-1:a(o.end,e.Integer,"to_int");if(f<0&&(f+=m,f<0&&i.$raise(s("RangeError"),""+o.$inspect()+" out of range")),g<0&&(g+=m),(!b||o.end===t)&&(g+=1),f>m)for(h=m;hm)for(h=m;h=o.length?t:o[n]}),n(B,"$bsearch_index",function e(){var d=e.$$p||t,c=this;if(e.$$p=null,d===t)return c.$enum_for("bsearch_index");for(var n,o,h,a=0,l=c.length,r=!1,m=t;a0;){for(a=0,c=i.length;a0&&e>t?U(e-1,t-1)+U(e-1,t):0}n(B,"$combination",function n(o){var i,d,u,m,f,p,g,h=n.$$p||t,a=this,c=t;if(n.$$p=null,c=l["$coerce_to!"](o,s("Integer"),"to_int"),h===t)return r(a,"enum_for",["combination",c],function e(){var t=e.$$s==null?this:e.$$s;return U(t.length,c)},{$$s:a});if(c===0)e.yield1(h,[]);else if(c===1)for(u=0,p=a.length;u=0&&c=0&&d(i,0,[],a),a}),n(B,"$compact",function(){for(var i,s=this,o=[],n=0,a=s.length;n=o.length?t:(i=o[n],o.splice(n,1),i)}),n(B,"$delete_if",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(c(n),G(n,H,s),n):r(n,"enum_for",["delete_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$difference",function(){var i=this,s=d(arguments),o=s;return r(o,"reduce",[i.$to_a().$dup()],function(n,s){return n==null&&(n=t),s==null&&(s=t),F(n,s)})},-1),n(B,"$dig",function(n){var h=this,c=t,u=d(arguments,1),l=u,c=h["$[]"](n);return c===t||l.length===0?c:(o(c["$respond_to?"]("dig"))||i.$raise(s("TypeError"),""+c.$class()+" does not have #dig method"),r(c,"dig",A(l)))},-2),n(B,"$drop",function(t){var n=this;return t=a(t,s("Integer"),"to_int"),t<0&&i.$raise(s("ArgumentError")),n.slice(t)}),n(B,"$dup",function n(){var o=n.$$p||t,s=this;return n.$$p=null,s.$$class===e.Array&&s.$$class.$allocate.$$pristine&&s.$copy_instance_variables.$$pristine&&s.$initialize_dup.$$pristine?s.slice(0):v(s,b(s,"dup",n,!1,!0),"dup",[],o)}),n(B,"$each",function e(){var s,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(s=0;s=0&&n2)&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+m.$length()+" for 0..2)"),p=m,u=w(p),h=u[0]==null?t:u[0],g=u[1]==null?t:u[1],p):(o(m.length==0)?i.$raise(s("ArgumentError"),"wrong number of arguments (0 for 1..3)"):o(m.length>3)&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+m.$length()+" for 1..3)"),p=m,u=w(p),j=u[0]==null?t:u[0],h=u[1]==null?t:u[1],g=u[2]==null?t:u[2],p),_(s("Range"),h)){if(o(g)&&i.$raise(s("TypeError"),"length invalid with range"),r=h.begin===t?0:a(h.begin,s("Integer"),"to_int"),o(r<0)&&(r+=this.length),o(r<0)&&i.$raise(s("RangeError"),""+h.$inspect()+" out of range"),l=h.end===t?-1:a(h.end,s("Integer"),"to_int"),o(l<0)&&(l+=this.length),o(h["$exclude_end?"]())||(l+=1),o(l<=r))return f}else if(o(h))if(r=a(h,s("Integer"),"to_int"),o(r<0)&&(r+=this.length),o(r<0)&&(r=0),o(g)){if(l=a(g,s("Integer"),"to_int"),o(l==0))return f;l+=r}else l=this.length;else r=0,l=this.length;if(o(r>this.length))for(v=this.length;vthis.length)&&(this.length=l),o(b))for(O=this.length;r0){if(n<0&&(n+=r.length+1,n<0&&i.$raise(s("IndexError"),""+n+" is out of bounds")),n>r.length)for(l=r.length;lo.length&&(n=o.length),o.slice(o.length-n,o.length))},-1),n(B,"$length",function(){var t=this;return t.length}),n(B,"$max",function e(n){var s=e.$$p||t,o=this;return e.$$p=null,r(o.$each(),"max",[n],s.$to_proc())},-1),n(B,"$min",function e(){var n=e.$$p||t,s=this;return e.$$p=null,r(s.$each(),"min",[],n.$to_proc())});function te(e,t){for(var n=t>=0?1:0;t;)n*=e,e--,t--;return n}return n(B,"$permutation",function n(o){var l,d,f,p,c=n.$$p||t,i=this,h=t,m=t;if(n.$$p=null,c===t)return r(i,"enum_for",["permutation",o],function e(){var t=e.$$s==null?this:e.$$s;return te(t.length,o===void 0?t.length:o)},{$$s:i});if(o===void 0?o=i.length:o=a(o,s("Integer"),"to_int"),o<0||i.lengthr.length)?r.splice(0,r.length):r.splice(r.length-n,r.length))},-1),n(B,"$product",function n(){var v=n.$$p||t,g=this;n.$$p=null;var r,l,f,p,_=d(arguments),j=_,h=v!==t?null:[],c=j.length+1,u=new Array(c),b=new Array(c),m=new Array(c),y=1;m[0]=g;for(r=1;r2147483647&&i.$raise(s("RangeError"),"too big to product"),b[r]=p,u[r]=0}outer_loop:for(;;){f=[];for(r=0;r0&&n.splice(0,n.length),q(n,t),n}),n(B,"$reverse",function(){var t=this;return t.slice(0).reverse()}),n(B,"$reverse!",function(){var t=this;return c(t),t.reverse()}),n(B,"$reverse_each",function e(){var s,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["reverse_each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(s=n.length-1;s>=0;s--)u(o,n[s]);return n}),n(B,"$rindex",function e(n){var s,a,i=e.$$p||t,o=this;if(e.$$p=null,n!=null&&i!==t&&o.$warn("warning: given block not used"),n!=null){for(s=o.length-1;s>=0;s--){if(s>=o.length)break;if(o[s]["$=="](n))return s}}else if(i!==t){for(s=o.length-1;s>=0;s--){if(s>=o.length)break;if(a=i(o[s]),a!==!1&&a!==t)return s}}else if(n==null)return o.$enum_for("rindex");return t},-1),n(B,"$rotate",function(t){var o,i,r,c,n=this;return t==null&&(t=1),t=a(t,s("Integer"),"to_int"),n.length===1?n.slice():n.length===0?[]:(o=n.slice(),i=t%o.length,r=o.slice(i),c=o.slice(0,i),r.concat(c))},-1),n(B,"$rotate!",function(n){var o=this,i=t;return n==null&&(n=1),c(o),o.length===0||o.length===1?o:(n=a(n,s("Integer"),"to_int"),i=o.$rotate(n),o.$replace(i))},-1),function(e,r){var c=O(e,r,"SampleRandom"),l=c.$$prototype;return l.rng=t,n(c,"$initialize",k("rng")),n(c,"$rand",function(n){var c=this,r=t,r=a(c.rng.$rand(n),s("Integer"),"to_int");return o(r<0)&&i.$raise(s("RangeError"),"random value must be >= 0"),o(rc.length&&(n=c.length),n){case 0:return[];break;case 1:return[c[u.$rand(c.length)]];break;case 2:return h=u.$rand(c.length),m=u.$rand(c.length-1),h<=m&&m++,[c[h],c[m]];break;default:if(c.length/n>3){for(p=!1,v=0,d=W("Array").$new(n),h=1,d[0]=u.$rand(c.length);h100){p=!0;break}g=u.$rand(c.length)}if(p)break;m++}if(p)break;d[h]=g,h++}if(!p){for(h=0;h=r&&i.$raise(s("RangeError"),"random number too big "+a)):a=o.$rand(r),u=o[--r],o[r]=o[a],o[a]=u;return o},-1),n(B,"$slice!",function(n,i){var f,p,r=this,m=t,u=t,h=t,d=t,l=t;if(c(r),m=t,o(i===void 0))if(_(s("Range"),n))u=n,m=r["$[]"](u),h=u.begin===t?0:a(u.begin,s("Integer"),"to_int"),d=u.end===t?-1:a(u.end,s("Integer"),"to_int"),h<0&&(h+=r.length),d<0?d+=r.length:d>=r.length&&(d=r.length-1,u.excl&&(d+=1)),f=d-h,u.excl&&u.end!==t?d-=1:f+=1,h=0&&d=0&&f>0&&r.splice(h,f);else{if(l=a(n,s("Integer"),"to_int"),l<0&&(l+=r.length),l<0||l>=r.length)return t;m=r[l],l===0?r.shift():r.splice(l,1)}else{if(l=a(n,s("Integer"),"to_int"),i=a(i,s("Integer"),"to_int"),i<0)return t;p=l+i,m=r["$[]"](l,i),l<0&&(l+=r.length),l+i>r.length&&(i=r.length-l),l=0&&r.splice(l,i)}return m},-2),n(B,"$sort",function e(){var n=e.$$p||t,a=this;return e.$$p=null,o(a.length>1)?(n===t&&(n=function(e,t){return e["$<=>"](t)}),a.slice().sort(function(e,o){var a=n(e,o);return a===t&&i.$raise(s("ArgumentError"),"comparison of "+e.$inspect()+" with "+o.$inspect()+" failed"),E(a,0)?1:T(a,0)?-1:0})):a}),n(B,"$sort!",function e(){var s,o,a,i=e.$$p||t,n=this;e.$$p=null,c(n),i!==t?s=r(n.slice(),"sort",[],i.$to_proc()):s=n.slice().$sort(),n.length=0;for(o=0,a=s.length;o=0;n--)s.splice(o[n],1);return o.length===0?t:s}),n(B,"$unshift",function(){var s,o,i,a,r,u,n=this,h=d(arguments),l=h;if(c(n),r=n.length,s=l.length,s==0)return n;for(u=r-s,a=0;a=0;)n[o]=n[o-s],o--;for(i=0;i=,>,==,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,map,to_proc,flatten,frozen?,eql?,default,default_proc,default_proc=,default=,to_h,proc,!,select,select!,has_key?,indexes,index,length,[]=,has_value?"),C.$require("corelib/enumerable"),function(C,E,S){var F,T,M=x(C,E,"Hash"),D=[M].concat(S),z=e.$r(D);return M.$include(i("Enumerable")),M.$$prototype.$$is_hash=!0,b(M,"$[]",function(){var o,a,r,l=this,u=m(arguments),s=u,c=s.length;if(c===1){if(o=d["$coerce_to?"](s["$[]"](0),i("Hash"),"to_hash"),o!==t)return l.$allocate()["$merge!"](o);s=d["$coerce_to?"](s["$[]"](0),i("Array"),"to_ary"),s===t&&h.$raise(i("ArgumentError"),"odd number of arguments for Hash"),c=s.length,o=l.$allocate();for(r=0;r=",function(n){var a=this,s=t;return n=d["$coerce_to!"](n,i("Hash"),"to_hash"),!(a.size",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),!(n.size<=t.size)&&y(n,t)}),n(M,"$<",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),O(t,n)}),n(M,"$<=",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),y(t,n)}),n(M,"$[]",function(t){var n=this,s=u(n,t);return s!==void 0?s:n.$default(t)}),n(M,"$[]=",function(t,n){var s=this;return a(s),r(s,t,n),n}),n(M,"$assoc",function(n){var o=this;return s(o,t,function(e,s){return e["$=="](n)?[!0,[e,s]]:[!1,t]})}),n(M,"$clear",function(){var t=this;return a(t),t.clear(),t.$$keys&&t.$$keys.clear(),t}),n(M,"$clone",function(){var t=this,n=t.$class().$new();return j(t,n),t["$frozen?"]()?n.$freeze():n}),n(M,"$compact",function(){var o=this,n=new Map;return s(o,n,function(e,s){return s!==t&&r(n,e,s),[!1,n]})}),n(M,"$compact!",function(){var o,n=this;return a(n),o=t,s(n,o,function(e,s){return s===t&&(f(n,e),o=n),[!1,o]})}),n(M,"$compare_by_identity",function(){var n=this;return a(n),n.$$by_identity||(n.$$by_identity=!0,n.size!==0&&e.hash_rehash(n)),n}),n(M,"$compare_by_identity?",function(){var t=this;return t.$$by_identity===!0}),n(M,"$default",function(n){var s=this;return n!==void 0&&s.$$proc!==t&&s.$$proc!==void 0?s.$$proc.$call(s,n):s.$$none===void 0?t:s.$$none},-1),n(M,"$default=",function(n){var s=this;return a(s),s.$$proc=t,s.$$none=n,n}),n(M,"$default_proc",function(){var n=this;return n.$$proc!==void 0?n.$$proc:t}),n(M,"$default_proc=",function(n){var s,o=this;return a(o),s=n,s!==t&&(s=d["$coerce_to!"](s,i("Proc"),"to_proc"),s["$lambda?"]()&&s.$arity().$abs()!==2&&h.$raise(i("TypeError"),"default_proc takes two arguments")),o.$$none=t,o.$$proc=s,n}),n(M,"$delete",function n(s){var o,i=n.$$p||t,r=this;return n.$$p=null,a(r),o=f(r,s),o!==void 0?o:i!==t?e.yield1(i,s):t}),n(M,"$delete_if",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?(a(n),s(n,n,function(e,s){var o=i(e,s);return o!==!1&&o!==t&&f(n,e),[!1,n]})):o(n,"enum_for",["delete_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$dig",function(n){var d=this,a=t,c=m(arguments,1),r=c,a=d["$[]"](n);return a===t||r.length===0?a:(l(a["$respond_to?"]("dig"))||h.$raise(i("TypeError"),""+a.$class()+" does not have #dig method"),o(a,"dig",v(r)))},-2),n(M,"$dup",function(){var t=this;return j(t,t.$class().$new())}),n(M,"$each",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e,t){return A(i,[e,t]),[!1,n]}):o(n,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$each_key",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e){return i(e),[!1,n]}):o(n,"enum_for",["each_key"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$each_value",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e,t){return i(t),[!1,n]}):o(n,"enum_for",["each_value"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$empty?",function(){var t=this;return t.size===0}),n(M,"$except",function(){var i=this,n=m(arguments),s=n;return o(i.$dup(),"except!",v(s))},-1),n(M,"$except!",function(){var s=this,i=m(arguments),a=i;return o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$delete(n)},{$$s:s}),s},-1),n(M,"$fetch",function e(n,s){var o,a=e.$$p||t,r=this;return e.$$p=null,o=u(r,n),o!==void 0?o:a!==t?a(n):s!==void 0?s:h.$raise(i("KeyError").$new("key not found: "+n.$inspect(),new Map([["key",n],["receiver",r]])))},-2),n(M,"$fetch_values",function e(){var s,i,a=e.$$p||t,r=this;return e.$$p=null,s=m(arguments),i=s,o(i,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"fetch",[n],a.$to_proc())},{$$s:r})},-1),n(M,"$flatten",function(t){var n,o=this;return t==null&&(t=1),t=d["$coerce_to!"](t,i("Integer"),"to_int"),n=[],s(o,n,function(e,s){return n.push(e),s.$$is_array?t===1?(n.push(s),[!1,n]):(n=n.concat(s.$flatten(t-2)),[!1,n]):(n.push(s),[!1,n])})},-1),n(M,"$freeze",function(){var t=this;return l(t["$frozen?"]())?t:_(t)}),n(M,"$has_key?",function(t){var n=this;return u(n,t)!==void 0}),n(M,"$has_value?",function(t){var n=this;return s(n,!1,function(e,n){return n["$=="](t)?[!0,!0]:[!1,!1]})}),n(M,"$hash",function(){var n,c,l,o=this,a=F===void 0,r=o.$object_id(),t=k(),d=o.size,i=new Int32Array(d),t=p(t,4),t=p(t,d);if(a)F=Object.create(null);else if(F[r])return p(t,16843009);try{for(c in F)if(l=F[c],o["$eql?"](l))return p(t,16843009);F[r]=o,n=0,s(o,!1,function(e,t){return i[n]=[1883326802,e,t].$hash(),n++,[!1,!1]}),i=i.sort();for(n=0;n"+t),[!1,!1]}),"{"+a.join(", ")+"}");return t}finally{o&&(T=void 0)}}()}),n(M,"$invert",function(){var n=this,t=new Map;return s(n,t,function(e,n){return r(t,n,e),[!1,t]})}),n(M,"$keep_if",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?(a(n),s(n,n,function(e,s){var o=i(e,s);return(o===!1||o===t)&&f(n,e),[!1,n]})):o(n,"enum_for",["keep_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$keys",function(){var t=this;return Array.from(t.keys())}),n(M,"$length",function(){var t=this;return t.size}),n(M,"$merge",function e(){var s,i,a=e.$$p||t,r=this;return e.$$p=null,s=m(arguments),i=s,o(r.$dup(),"merge!",v(i),a.$to_proc())},-1),n(M,"$merge!",function e(){var c,l,h,p,g,f=e.$$p||t,o=this;e.$$p=null,p=m(arguments),l=p,a(o);for(c=0;c,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,angle,to_s,is_a?,abs,next,coerce_to?"),E.$require("corelib/numeric"),function(l,_,E){var M,F,S=w(l,_,"Number"),L=[S].concat(E);r.$bridge(Number,S),e.prop(S.$$prototype,"$$is_number",!0),S.$$is_number_class=!0,M=new Map,function(s){return n(s,"$allocate",function(){var n=this;return o.$raise(t("TypeError"),"allocator undefined for "+n.$name())}),e.udef(s,"$new"),i}(e.get_singleton_class(S),L),n(S,"$coerce",function(n){var s=this;if(n===i)o.$raise(t("TypeError"),"can't convert "+n.$class()+" into Float");else if(n.$$is_string)return[o.$Float(n),s];else if(n["$respond_to?"]("to_f"))return[r["$coerce_to!"](n,t("Float"),"to_f"),s];else if(n.$$is_number)return[n,s];else o.$raise(t("TypeError"),"can't convert "+n.$class()+" into Float")}),n(S,"$__id__",function(){var s,n=this;return n|0===n?n*2+1:M.has(n)?M.get(n):(s=e.uid(),M.set(n,s),s)}),n(S,"$hash",function(){var t=this;return t|0===t?t.$__id__():t.toString().$hash()}),n(S,"$+",function(t){var n=this;return t.$$is_number?n+t:n.$__coerced__("+",t)}),n(S,"$-",function(t){var n=this;return t.$$is_number?n-t:n.$__coerced__("-",t)}),n(S,"$*",function(t){var n=this;return t.$$is_number?n*t:n.$__coerced__("*",t)}),n(S,"$/",function(t){var n=this;return t.$$is_number?n/t:n.$__coerced__("/",t)}),n(S,"$%",function(n){var s=this;if(n.$$is_number){if(n==-(1/0))return n;if(n==0)o.$raise(t("ZeroDivisionError"),"divided by 0");else return n<0||s<0?(s%n+n)%n:s%n}else return s.$__coerced__("%",n)}),n(S,"$&",function(t){var n=this;return t.$$is_number?n&t:n.$__coerced__("&",t)}),n(S,"$|",function(t){var n=this;return t.$$is_number?n|t:n.$__coerced__("|",t)}),n(S,"$^",function(t){var n=this;return t.$$is_number?n^t:n.$__coerced__("^",t)}),n(S,"$<",function(t){var n=this;return t.$$is_number?n",function(t){var n=this;return t.$$is_number?n>t:n.$__coerced__(">",t)}),n(S,"$>=",function(t){var n=this;return t.$$is_number?n>=t:n.$__coerced__(">=",t)}),F=function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?i:e>t?1:e",t)},n(S,"$<=>",function(s){var o=this;try{return F(o,s)}catch(n){if(e.rescue(n,[t("ArgumentError")]))try{return i}finally{e.pop_exception(n)}else throw n}}),n(S,"$<<",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n>0?s<>-n}),n(S,"$>>",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n>0?s>>n:s<<-n}),n(S,"$[]",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n<0?0:n>=32?s<0?1:0:s>>n&1}),n(S,"$+@",function(){var t=this;return+t}),n(S,"$-@",function(){var t=this;return-t}),n(S,"$~",function(){var t=this;return~t}),n(S,"$**",function(n){var o=this;return a(t("Integer"),n)?A(t("Integer")["$==="](o))||s(p(n,0))?Math.pow(o,n):t("Rational").$new(o,1)["$**"](n):s(h(o,0))&&(a(t("Float"),n)||a(t("Rational"),n))?t("Complex").$new(o,0)["$**"](n.$to_f()):s(n.$$is_number!=null)?Math.pow(o,n):o.$__coerced__("**",n)}),n(S,"$==",function(t){var n=this;return t.$$is_number?n.valueOf()===t.valueOf():!!t["$respond_to?"]("==")&&t["$=="](n)}),c(S,"===","=="),n(S,"$abs",function(){var t=this;return Math.abs(t)}),n(S,"$abs2",function(){var t=this;return Math.abs(t*t)}),n(S,"$allbits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)==n}),n(S,"$anybits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)!==0}),n(S,"$angle",function(){var t=this;return s(t["$nan?"]())?t:t==0?1/t>0?0:Math.PI:t<0?Math.PI:0}),n(S,"$bit_length",function(){if(n=this,a(t("Integer"),n)||o.$raise(t("NoMethodError").$new("undefined method `bit_length` for "+n+":Float","bit_length")),n===0||n===-1)return 0;for(var n,s=0,i=n<0?~n:n;i!=0;)s+=1,i>>>=1;return s}),n(S,"$ceil",function(t){if(o=this,t==null&&(t=0),n=o.$to_f(),n%1===0&&t>=0)return n;var n,o,i=Math.pow(10,t),s=Math.ceil(n*i)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$chr",function(n){var s=this;return e.enc(String.fromCharCode(s),n||"BINARY")},-1),n(S,"$denominator",function e(){var n=e.$$p||i,t=this;return e.$$p=null,s(t["$nan?"]())||s(t["$infinite?"]())?1:m(t,f(t,"denominator",e,!1,!0),"denominator",[],n)}),n(S,"$downto",function e(n){var c,l=e.$$p||i,r=this;if(e.$$p=null,l===i)return b(r,"enum_for",["downto",n],function e(){var i=e.$$s==null?this:e.$$s;return a(t("Numeric"),n)||o.$raise(t("ArgumentError"),"comparison of "+i.$class()+" with "+n.$class()+" failed"),s(p(n,i))?0:v(u(i,n),1)},{$$s:r});n.$$is_number||o.$raise(t("ArgumentError"),"comparison of "+r.$class()+" with "+n.$class()+" failed");for(c=r;c>=n;c--)l(c);return r}),n(S,"$equal?",function(t){var n=this,o=i;return s(o=n["$=="](t))?o:isNaN(n)&&isNaN(t)}),n(S,"$even?",function(){var t=this;return t%2===0}),n(S,"$floor",function(t){if(o=this,t==null&&(t=0),n=o.$to_f(),n%1===0&&t>=0)return n;var n,o,i=Math.pow(10,t),s=Math.floor(n*i)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$gcd",function(n){r=this,a(t("Integer"),n)||o.$raise(t("TypeError"),"not an integer");for(var r,c,s=Math.abs(r),i=Math.abs(n);s>0;)c=s,s=i%s,i=c;return i}),n(S,"$gcdlcm",function(t){var n=this;return[n.$gcd(t),n.$lcm(t)]}),n(S,"$integer?",function(){var t=this;return t%1===0}),n(S,"$is_a?",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Float"))&&a(t("Float"),s))||m(s,f(s,"is_a?",e,!1,!0),"is_a?",[n],o)}),n(S,"$instance_of?",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Float"))&&a(t("Float"),s))||m(s,f(s,"instance_of?",e,!1,!0),"instance_of?",[n],o)}),n(S,"$lcm",function(n){var s=this;return a(t("Integer"),n)||o.$raise(t("TypeError"),"not an integer"),s==0||n==0?0:Math.abs(s*n/s.$gcd(n))}),n(S,"$next",function(){var t=this;return t+1}),n(S,"$nobits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)==0}),n(S,"$nonzero?",function(){var t=this;return t==0?i:t}),n(S,"$numerator",function e(){var n=e.$$p||i,t=this;return e.$$p=null,s(t["$nan?"]())||s(t["$infinite?"]())?t:m(t,f(t,"numerator",e,!1,!0),"numerator",[],n)}),n(S,"$odd?",function(){var t=this;return t%2!==0}),n(S,"$ord",x),n(S,"$pow",function(n,s){var i=this;return i==0&&o.$raise(t("ZeroDivisionError"),"divided by 0"),s===void 0?i["$**"](n):(t("Integer")["$==="](n)||o.$raise(t("TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),n<0&&o.$raise(t("TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),t("Integer")["$==="](s)||o.$raise(t("TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),s===0&&o.$raise(t("ZeroDivisionError"),"divided by 0"),i["$**"](n)["$%"](s))},-2),n(S,"$pred",function(){var t=this;return t-1}),n(S,"$quo",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,a(t("Integer"),s)?m(s,f(s,"quo",e,!1,!0),"quo",[n],o):g(s,n)}),n(S,"$rationalize",function(n){var c,h,r=this,d=i,l=i;return arguments.length>1&&o.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),a(t("Integer"),r)?t("Rational").$new(r,1):s(r["$infinite?"]())?o.$raise(t("FloatDomainError"),"Infinity"):s(r["$nan?"]())?o.$raise(t("FloatDomainError"),"NaN"):s(n==null)?(h=t("Math").$frexp(r),c=j(h),d=c[0]==null?i:c[0],l=c[1]==null?i:c[1],h,d=t("Math").$ldexp(d,t(t("Float"),"MANT_DIG")).$to_i(),l=u(l,t(t("Float"),"MANT_DIG")),t("Rational").$new(y(2,d),1["$<<"](u(1,l))).$rationalize(t("Rational").$new(1,1["$<<"](u(1,l))))):r.$to_r().$rationalize(n)},-1),n(S,"$remainder",function(t){var n=this;return u(n,y(t,g(n,t).$truncate()))}),n(S,"$round",function(n){var m,f,b,y,c=this,_=i,l=i;if(a(t("Integer"),c))return s(n==null)?c:(a(t("Float"),n)&&s(n["$infinite?"]())&&o.$raise(t("RangeError"),"Infinity"),n=r["$coerce_to!"](n,t("Integer"),"to_int"),s(h(n,t(t("Integer"),"MIN")))&&o.$raise(t("RangeError"),"out of bounds"),s(n>=0)?c:(n=n["$-@"](),.415241*n-.125>c.$size()?0:(f=Math.pow(10,n),y=Math.floor((Math.abs(c)+f/2)/f)*f,c<0?-y:y)));else{if(s(c["$nan?"]())&&s(n==null)&&o.$raise(t("FloatDomainError"),"NaN"),n=r["$coerce_to!"](n||0,t("Integer"),"to_int"),s(k(n,0)))s(c["$nan?"]())?o.$raise(t("RangeError"),"NaN"):s(c["$infinite?"]())&&o.$raise(t("FloatDomainError"),"Infinity");else if(d(n,0))return Math.round(c);else if(s(c["$nan?"]())||s(c["$infinite?"]()))return c;return b=t("Math").$frexp(c),m=j(b),_=m[0]==null?i:m[0],l=m[1]==null?i:m[1],b,s(O(n,u(v(t(t("Float"),"DIG"),2),s(p(l,0))?g(l,4):u(g(l,3),1))))?c:s(h(n,(s(p(l,0))?v(g(l,3),1):g(l,4))["$-@"]()))?0:Math.round(c*Math.pow(10,n))/Math.pow(10,n)}},-1),n(S,"$times",function e(){var n,o=e.$$p||i,t=this;if(e.$$p=null,!s(o))return b(t,"enum_for",["times"],function e(){var t=e.$$s==null?this:e.$$s;return t},{$$s:t});for(n=0;n=0)return n;var n,o,i=Math.pow(10,t),s=parseInt(n*i,10)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$digits",function(n){i=this,n==null&&(n=10),s(h(i,0))&&o.$raise(t(t("Math"),"DomainError"),"out of domain"),n=r["$coerce_to!"](n,t("Integer"),"to_int"),s(h(n,2))&&o.$raise(t("ArgumentError"),"invalid radix "+n),i!=parseInt(i)&&o.$raise(t("NoMethodError"),"undefined method `digits' for "+i.$inspect());var i,a=i,c=[];if(i==0)return[0];for(;a!=0;)c.push(a%n),a=parseInt(a/n,10);return c},-1),n(S,"$divmod",function e(n){var r=e.$$p||i,a=this;return e.$$p=null,s(a["$nan?"]())||s(n["$nan?"]())?o.$raise(t("FloatDomainError"),"NaN"):s(a["$infinite?"]())?o.$raise(t("FloatDomainError"),"Infinity"):m(a,f(a,"divmod",e,!1,!0),"divmod",[n],r)}),n(S,"$upto",function e(n){var c,l=e.$$p||i,r=this;if(e.$$p=null,l===i)return b(r,"enum_for",["upto",n],function e(){var i=e.$$s==null?this:e.$$s;return a(t("Numeric"),n)||o.$raise(t("ArgumentError"),"comparison of "+i.$class()+" with "+n.$class()+" failed"),s(h(n,i))?0:v(u(n,i),1)},{$$s:r});n.$$is_number||o.$raise(t("ArgumentError"),"comparison of "+r.$class()+" with "+n.$class()+" failed");for(c=r;c<=n;c++)l(c);return r}),n(S,"$zero?",function(){var t=this;return t==0}),n(S,"$size",C(4)),n(S,"$nan?",function(){var t=this;return isNaN(t)}),n(S,"$finite?",function(){var t=this;return t!=1/0&&t!=-(1/0)&&!isNaN(t)}),n(S,"$infinite?",function(){var t=this;return t==1/0?+1:t==-(1/0)?-1:i}),n(S,"$positive?",function(){var t=this;return t!=0&&(t==1/0||1/t>0)}),n(S,"$negative?",function(){var t=this;return t==-(1/0)||1/t<0});function T(e){var t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),t}function z(e){return new DataView(e.buffer).getFloat64(0,!0)}function D(e){for(var t=T(e),n=0;n,cover?,!,begin,end,exclude_end?,then,call,>=,>,==,max,<=,<,enum_for,size,upto,to_proc,respond_to?,class,succ,===,eql?,try_convert,is_a?,any?,last,to_a,-,coerce_to!,ceil,/,new,loop,+,*,each_with_index,%,step,bsearch,inspect,[],hash,include?"),x.$require("corelib/enumerable"),function(x,C,A){var S=j(x,C,"Range"),z=[S].concat(A),M=e.$r(z),F=S.$$prototype;F.begin=F.end=F.excl=n,S.$include(s("Enumerable")),S.$$prototype.$$is_range=!0,S.$attr_reader("begin","end"),o(S,"$initialize",function(n,o,a){var r=this;return a==null&&(a=!1),t(r.begin)&&i.$raise(s("NameError"),"'initialize' called twice"),t(n["$<=>"](o))||t(n["$nil?"]())||t(o["$nil?"]())||i.$raise(s("ArgumentError"),"bad value for range"),r.begin=n,r.end=o,r.excl=a},-3),o(S,"$===",function(n){var s=this;return!t(n.$$is_range)&&s["$cover?"](n)});function T(e){return e.begin===n||e.end===n||e.begin===-(1/0)||e.end===1/0||e.begin===1/0||e.end===-(1/0)}return o(S,"$count",function e(){var i=e.$$p||n,o=this;return e.$$p=null,r(i!==n)&&t(T(o))?s(s("Float"),"INFINITY"):c(o,l(o,"count",e,!1,!0),"count",[],i)}),o(S,"$to_a",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(T(o))&&i.$raise(s("TypeError"),"cannot convert endless range to an array"),c(o,l(o,"to_a",e,!1,!0),"to_a",[],a)}),o(S,"$cover?",function(s){var o=this,i=n,c=n,l=n,g=n,p=n,v=n,j=n,b=n,i=k(function(s,o){var i=n;return s==null&&(s=n),o==null&&(o=n),t(i=s["$<=>"](o))?i:1});return t(s.$$is_range)?(c=s.$begin(),l=s.$end(),g=s["$exclude_end?"](),!(t(o.begin)&&t(c["$nil?"]())||t(o.end)&&t(l["$nil?"]())||t(c)&&t(l)&&t(a(i.$call(c,l),"then",[],function(s){return s==null&&(s=n),t(g)?m(s,0):d(s,0)}))||t(c)&&r(o["$cover?"](c)))&&(p=i.$call(o.end,l),u(o.excl,g)?m(p,0):t(o.excl)?d(p,0):!!t(m(p,0))||(v=s.$max(),t(j=v["$nil?"]()["$!"]())?h(i.$call(v,o.end),0):j))):!(t(o.begin)&&t(d(i.$call(o.begin,s),0)))&&(!!t(o.end["$nil?"]())||(b=i.$call(s,o.end),t(o.excl)?f(b,0):h(b,0)))}),o(S,"$each",function o(){var h,g,d=o.$$p||n,c=this,l=n,m=n,p=n;if(o.$$p=null,d===n)return a(c,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:c});if(c.begin.$$is_number&&c.end.$$is_number){(c.begin%1!==0||c.end%1!==0)&&i.$raise(s("TypeError"),"can't iterate from Float");for(h=c.begin,g=c.end+(t(c.excl)?0:1);h"](m),0));)e.yield1(d,l),l=l.$succ();return r(c.excl)&&u(l,m)&&e.yield1(d,l),c}),o(S,"$eql?",function(o){var i=this,a=n,r=n;return!!E(s("Range"),o)&&(t(a=t(r=i.excl["$==="](o["$exclude_end?"]()))?i.begin["$eql?"](o.$begin()):r)?i.end["$eql?"](o.$end()):a)}),o(S,"$exclude_end?",O("excl")),o(S,"$first",function e(o){var r=e.$$p||n,a=this;return e.$$p=null,t(a.begin["$nil?"]())&&i.$raise(s("RangeError"),"cannot get the minimum of beginless range"),t(o==null)?a.begin:c(a,l(a,"first",e,!1,!0),"first",[o],r)},-1),o(S,"$include?",function e(o){var u=e.$$p||n,i=this,r=n,d=n;if(e.$$p=null,t(i.begin.$$is_number||i.end.$$is_number)||t(i.begin["$is_a?"](s("Time")))||t(i.end["$is_a?"](s("Time")))||t(s("Integer").$try_convert(i.begin))||t(s("Integer").$try_convert(i.end)))return i["$cover?"](o);if(t(i.begin.$$is_string||i.end.$$is_string)){if(t(i.begin.$$is_string&&i.end.$$is_string))return a(i.begin.$upto(i.end,i.excl),"any?",[],function(t){return t==null&&(t=n),t["$=="](o)});if(t(i.begin["$nil?"]()))return r=o["$<=>"](i.end),t(d=r["$nil?"]()["$!"]())?t(i.excl)?f(r,0):h(r,0):d;if(t(i.end["$nil?"]()))return r=i.begin["$<=>"](o),t(d=r["$nil?"]()["$!"]())?h(r,0):d}return c(i,l(i,"include?",e,!1,!0),"include?",[o],u)}),o(S,"$last",function(n){var o=this;return t(o.end["$nil?"]())&&i.$raise(s("RangeError"),"cannot get the maximum of endless range"),t(n==null)?o.end:o.$to_a().$last(n)},-1),o(S,"$max",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(o.end["$nil?"]())?i.$raise(s("RangeError"),"cannot get the maximum of endless range"):a!==n?c(o,l(o,"max",e,!1,!0),"max",[],a):r(o.begin["$nil?"]())&&(t(d(o.begin,o.end))||t(o.excl)&&u(o.begin,o.end))?n:o.excl?o.end-1:o.end}),o(S,"$min",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(o.begin["$nil?"]())?i.$raise(s("RangeError"),"cannot get the minimum of beginless range"):a!==n?c(o,l(o,"min",e,!1,!0),"min",[],a):r(o.end["$nil?"]())&&(t(d(o.begin,o.end))||t(o.excl)&&u(o.begin,o.end))?n:o.begin}),o(S,"$size",function(){var o,i=this.begin,t=this.end;if(s("Numeric")["$==="](i)){{if(s("Numeric")["$==="](t))return o=y(t,i),o<0?0:(this.excl||(o+=1),s("Float")["$==="](i)||s("Float")["$==="](t)?Math.floor(o):o);if(t===n)return 1/0}}else if(i===n&&s("Numeric")["$==="](t))return 1/0;return n}),o(S,"$step",function o(c){var f=o.$$p||n,l=this,g=n,h=n;o.$$p=null;function j(){c==null?c=1:c.$$is_number||(c=b["$coerce_to!"](c,s("Integer"),"to_int")),c<0?i.$raise(s("ArgumentError"),"step can't be negative"):c===0&&i.$raise(s("ArgumentError"),"step can't be 0")}function y(){if(!l.begin["$respond_to?"]("succ"))return n;if(l.begin.$$is_string&&l.end.$$is_string)return n;if(c%1===0)return v(l.$size(),c).$ceil();var o,e=l.begin,t=l.end,i=Math.abs,r=Math.floor,a=(i(e)+i(t)+i(t-e))/i(c)*s(s("Float"),"EPSILON");return a>.5&&(a=.5),l.excl?(o=r((t-e)/c-a),o*c+e>",function e(n){var a=e.$$p||t,s=this;return e.$$p=null,r(o,"proc",[],function e(){var o,a,d=e.$$p||t,u=e.$$s==null?this:e.$$s,c=t;return e.$$p=null,o=i(arguments),a=o,c=r(u,"call",l(a),d.$to_proc()),n.$call(c)},{$$arity:-1,$$s:s})}),n(j,"$<<",function e(n){var a=e.$$p||t,s=this;return e.$$p=null,r(o,"proc",[],function e(){var o,a,d=e.$$p||t,u=e.$$s==null?this:e.$$s,c=t;return e.$$p=null,o=i(arguments),a=o,c=r(n,"call",l(a),d.$to_proc()),u.$call(c)},{$$arity:-1,$$s:s})}),n(j,"$to_proc",d),n(j,"$lambda?",function(){var t=this;return!!t.$$is_lambda}),n(j,"$arity",function(){var t=this;return t.$$is_curried?-1:t.$$arity!=null?t.$$arity:t.length}),n(j,"$source_location",function(){var n=this,s=t;return n.$$is_curried?t:c(s=n.$$source_location)?s:t}),n(j,"$binding",function(){var i,n=this;return n.$$is_curried&&o.$raise(s("ArgumentError"),"Can't create Binding"),c((i=s("::","Binding","skip_raise"))?"constant":t)?s("Binding").$new(t,[],n.$$s,n.$source_location()):t}),n(j,"$parameters",function(t){var s,o,i,a,r,n=this;if(t=u(t),i=h(t,"lambda"),n.$$is_curried)return[["rest"]];if(n.$$parameters){if(i??n.$$is_lambda)return n.$$parameters;a=[];for(o=0,r=n.$$parameters.length;ot&&n.$$is_lambda&&!n.$$is_curried&&o.$raise(s("ArgumentError"),"wrong number of arguments ("+c+" for "+t+")"),c>=t?n.$call.apply(n,r):(e=function(){return a.apply(null,r.concat(i(arguments)))},e.$$is_lambda=n.$$is_lambda,e.$$is_curried=!0,e)}return a.$$is_lambda=n.$$is_lambda,a.$$is_curried=!0,a},-1),n(j,"$dup",function(){var t=this,s=t.$$original_proc||t,n=function(){return s.apply(this,arguments)};return g(t,function(e){n[e]=t[e]}),n}),a(j,"===","call"),a(j,"clone","dup"),a(j,"yield","call"),a(j,"[]","call")}("::",Function)},Opal.modules["corelib/method"]=function(e){var i=e.klass,t=e.def,s=e.truthy,a=e.slice,r=e.alias,c=e.Kernel,l=e.send,d=e.to_a,n=e.nil,o=e.$$$;return e.add_stubs("attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc"),function(e,c){var l=i(e,c,"Method"),d=l.$$prototype;return d.method=d.receiver=d.owner=d.name=n,l.$attr_reader("owner","receiver","name"),t(l,"$initialize",function(t,n,s,o){var i=this;return i.receiver=t,i.owner=n,i.name=o,i.method=s}),t(l,"$arity",function(){var t=this;return t.method.$arity()}),t(l,"$parameters",function(){var t=this;return t.method.$$parameters}),t(l,"$source_location",function(){var o=this,t=n;return s(t=o.method.$$source_location)?t:["(eval)",0]}),t(l,"$comments",function(){var o=this,t=n;return s(t=o.method.$$comments)?t:[]}),t(l,"$call",function e(){var o,i,r=e.$$p||n,s=this;return e.$$p=null,o=a(arguments),i=o,s.method.$$p=r,s.method.apply(s.receiver,i)},-1),t(l,"$curry",function(t){var n=this;return n.method.$curry(t)},-1),t(l,"$>>",function(t){var n=this;return n.method["$>>"](t)}),t(l,"$<<",function(t){var n=this;return n.method["$<<"](t)}),t(l,"$unbind",function(){var t=this;return o("UnboundMethod").$new(t.receiver.$class(),t.owner,t.method,t.name)}),t(l,"$to_proc",function(){var t=this,n=t.$call.bind(t);return n.$$unbound=t.method,n.$$is_lambda=!0,n.$$arity=t.method.$$arity==null?t.method.length:t.method.$$arity,n.$$parameters=t.method.$$parameters,n}),t(l,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.receiver.$class()+"#"+t.name+" (defined in "+t.owner+" in "+t.$source_location().$join(":")+")>"}),r(l,"[]","call"),r(l,"===","call")}("::",null),function(r,u){var h=i(r,u,"UnboundMethod"),m=h.$$prototype;return m.method=m.owner=m.name=m.source=n,h.$attr_reader("source","owner","name"),t(h,"$initialize",function(t,n,s,o){var i=this;return i.source=t,i.owner=n,i.method=s,i.name=o,i.$$method=s}),t(h,"$arity",function(){var t=this;return t.method.$arity()}),t(h,"$parameters",function(){var t=this;return t.method.$$parameters}),t(h,"$source_location",function(){var o=this,t=n;return s(t=o.method.$$source_location)?t:["(eval)",0]}),t(h,"$comments",function(){var o=this,t=n;return s(t=o.method.$$comments)?t:[]}),t(h,"$bind",function(n){var s=this;if(s.owner.$$is_module||e.is_a(n,s.owner))return o("Method").$new(n,s.owner,s.method,s.name);c.$raise(o("TypeError"),"can't bind singleton method to a different class (expected "+n+".kind_of?("+s.owner+" to be true)")}),t(h,"$bind_call",function e(t){var o,i,r=e.$$p||n,c=this;return e.$$p=null,o=a(arguments,1),i=o,l(c.$bind(t),"call",d(i),r.$to_proc())},-2),t(h,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.source+"#"+t.name+" (defined in "+t.owner+" in "+t.$source_location().$join(":")+")>"})}("::",null)},Opal.modules["corelib/variables"]=function(e){var t=e.gvars,n=e.const_set,o=e.Object,s=e.nil;return e.add_stubs("new"),t["&"]=t["~"]=t["`"]=t["'"]=s,t.LOADED_FEATURES=t['"']=e.loaded_features,t.LOAD_PATH=t[":"]=[],t["/"]=` +`,t[","]=s,n("::","ARGV",[]),n("::","ARGF",o.$new()),n("::","ENV",new Map),t.VERBOSE=!1,t.DEBUG=!1,t.SAFE=0},Opal.modules["corelib/io"]=function(e){var f,g,O=e.klass,r=e.const_set,m=e.not,n=e.truthy,s=e.def,x=e.return_ivar,b=e.return_val,u=e.slice,c=e.Kernel,o=e.gvars,d=e.send,h=e.to_a,l=e.rb_plus,p=e.neqeq,w=e.range,i=e.eqeq,_=e.to_ary,y=e.rb_gt,j=e.assign_ivar_val,v=e.alias,t=e.nil,a=e.$$$;return e.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?,each,eof,new,write_proc=,read_proc="),function(f,g){var C=O(f,g,"IO"),E=C.$$prototype;return E.read_buffer=E.closed=t,r(C,"SEEK_SET",0),r(C,"SEEK_CUR",1),r(C,"SEEK_END",2),r(C,"SEEK_DATA",3),r(C,"SEEK_HOLE",4),r(C,"READABLE",1),r(C,"WRITABLE",4),C.$attr_reader("eof"),C.$attr_accessor("read_proc","sync","tty","write_proc"),s(C,"$initialize",function(s,o){var i=this;return o==null&&(o="r"),i.fd=s,i.flags=o,i.eof=!1,n(o["$include?"]("r"))&&m(o["$match?"](/[wa+]/))?i.closed="write":n(o["$match?"](/[wa]/))&&m(o["$match?"](/[r+]/))?i.closed="read":t},-2),s(C,"$fileno",x("fd")),s(C,"$tty?",function(){var t=this;return t.tty==!0}),s(C,"$write",function(t){var n=this;return n.write_proc(t),t.$size()}),s(C,"$flush",b(t)),s(C,"$<<",function(t){var n=this;return n.$write(t),n}),s(C,"$print",function(){a=this,o[","]==null&&(o[","]=t);for(var a,r=u(arguments),s=r,i=0,l=s.length;i0&&d(a,"puts",h(r))):(s[o].$$is_string?i=s[o].valueOf():i=c.$String(s[o]),i.endsWith(` +`)||(i+=` +`),a.$write(i));return t},-1),s(C,"$getc",function(){var s=this,i=t,o=t,a=t;s.read_buffer=n(i=s.read_buffer)?i:"",o="";do if(s.read_buffer=l(s.read_buffer,o),p(s.read_buffer,""))return a=s.read_buffer["$[]"](0),s.read_buffer=s.read_buffer["$[]"](w(1,-1,!1)),a;while(n(o=s.$sysread_noraise(1)))return t}),s(C,"$getbyte",function(){var n,s=this;return n=s.$getc(),n===t||n==null?t:n.$ord()}),s(C,"$readbyte",function(){var t=this;return t.$readchar().$ord()}),s(C,"$readchar",function(){var o=this,s=t;return n(s=o.$getc())?s:c.$raise(a("EOFError"),"end of file reached")}),s(C,"$readline",function(){var l=this,o=t,i=u(arguments),r=i;return n(o=d(l,"gets",h(r)))?o:c.$raise(a("EOFError"),"end of file reached")},-1),s(C,"$gets",function(a,r,c){var d,v,h=this,g=t,f=t,y=t,b=t,u=t,j=t;o["/"]==null&&(o["/"]=t),a==null&&(a=!1),r==null&&(r=t),c==null&&(c=new Map),n(a.$$is_number)&&m(r)&&(d=[!1,a,r],a=d[0],r=d[1],c=d[2],d),n(a.$$is_hash)&&m(r)&&i(c,new Map)?(d=[!1,t,a],a=d[0],r=d[1],c=d[2],d):n(r.$$is_hash)&&i(c,new Map)&&(d=[a,t,r],a=d[0],r=d[1],c=d[2],d),g=a,i(a,!1)&&(a=o["/"]),i(a,"")&&(a=/\r?\n\r?\n/),a=n(f=a)?f:"",i(g,"")||(a=a.$to_str()),y=i(g,"")?2:a.$length(),i(a," ")&&(a=/ /),h.read_buffer=n(f=h.read_buffer)?f:"",b="",u=t;do if(h.read_buffer=l(h.read_buffer,b),p(a,"")&&n(n(a.$$is_regexp)?h.read_buffer["$match?"](a):h.read_buffer["$include?"](a))){j=h.read_buffer,v=h.read_buffer.$split(a,2),d=_(v),u=d[0]==null?t:d[0],h.read_buffer=d[1]==null?t:d[1],v,p(u,j)&&(u=l(u,j["$[]"](u.$length(),y)));break}while(n(b=h.$sysread_noraise(i(a,"")?65536:1)))return n(u)||(d=[n(f=h.read_buffer)?f:"",""],u=d[0],h.read_buffer=d[1],d,i(u,"")&&(u=t)),n(u)&&(n(r)&&(u=u["$[]"](e.Range.$new(0,r,!0)),h.read_buffer=l(u["$[]"](e.Range.$new(r,-1,!1)),h.read_buffer)),n(c["$[]"]("chomp"))&&(u=u.$sub(/\r?\n$/,"")),i(g,"")&&(u=u.$sub(/^[\r\n]+/,""))),i(g,!1)&&(o._=u),u},-1),s(C,"$sysread",function(s){var o=this,i=t;return n(i=o.read_proc(s))?i:(o.eof=!0,c.$raise(a("EOFError"),"end of file reached"))}),s(C,"$sysread_noraise",function(s){var o=this;try{return o.$sysread(s)}catch(n){if(e.rescue(n,[a("EOFError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(C,"$readpartial",function(s){var a,o=this,r=t,d=t,c=t;return o.read_buffer=n(r=o.read_buffer)?r:"",d=o.$sysread(s),a=[l(o.read_buffer,n(r=d)?r:""),""],c=a[0],o.read_buffer=a[1],a,i(c,"")&&(c=t),c}),s(C,"$read",function(o){var a,i=this,c=t,d=t,r=t;o==null&&(o=t),i.read_buffer=n(c=i.read_buffer)?c:"",d="",r=t;do if(i.read_buffer=l(i.read_buffer,d),n(o)&&n(y(i.read_buffer.$length(),o)))return a=[i.read_buffer["$[]"](e.Range.$new(0,o,!0)),i.read_buffer["$[]"](e.Range.$new(o,-1,!1))],r=a[0],i.read_buffer=a[1],a,r;while(n(d=i.$sysread_noraise(n(c=o)?c:65536)))return a=[i.read_buffer,""],r=a[0],i.read_buffer=a[1],a,r},-1),s(C,"$readlines",function(n){var s=this;return o["/"]==null&&(o["/"]=t),n==null&&(n=o["/"]),s.$each_line(n).$to_a()},-1),s(C,"$each",function s(){var r,c,l,f=s.$$p||t,m=this,p=t;if(o["/"]==null&&(o["/"]=t),s.$$p=null,c=u(arguments),c.length>0&&(r=c.shift()),r==null&&(r=o["/"]),l=c,f===t)return d(m,"enum_for",["each",r].concat(h(l)));for(;n(p=d(m,"gets",[r].concat(h(l))));)e.yield1(f,p);return m},-1),s(C,"$each_byte",function s(){var i=s.$$p||t,o=this,a=t;if(s.$$p=null,i===t)return o.$enum_for("each_byte");for(;n(a=o.$getbyte());)e.yield1(i,a);return o}),s(C,"$each_char",function s(){var i=s.$$p||t,o=this,a=t;if(s.$$p=null,i===t)return o.$enum_for("each_char");for(;n(a=o.$getc());)e.yield1(i,a);return o}),s(C,"$close",j("closed","both")),s(C,"$close_read",function(){var t=this;return i(t.closed,"write")?t.closed="both":t.closed="read"}),s(C,"$close_write",function(){var t=this;return i(t.closed,"read")?t.closed="both":t.closed="write"}),s(C,"$closed?",function(){var t=this;return t.closed["$=="]("both")}),s(C,"$closed_read?",function(){var s=this,o=t;return n(o=s.closed["$=="]("read"))?o:s.closed["$=="]("both")}),s(C,"$closed_write?",function(){var s=this,o=t;return n(o=s.closed["$=="]("write"))?o:s.closed["$=="]("both")}),s(C,"$check_writable",function(){var s=this;return n(s["$closed_write?"]())?c.$raise(a("IOError"),"not opened for writing"):t}),s(C,"$check_readable",function(){var s=this;return n(s["$closed_read?"]())?c.$raise(a("IOError"),"not opened for reading"):t}),v(C,"each_line","each"),v(C,"eof?","eof")}("::",null),r("::","STDIN",o.stdin=a("IO").$new(0,"r")),r("::","STDOUT",o.stdout=a("IO").$new(1,"w")),r("::","STDERR",o.stderr=a("IO").$new(2,"w")),g=e.global.console,a("STDOUT")["$write_proc="](typeof process=="object"&&typeof process.stdout=="object"?function(e){process.stdout.write(e)}:function(e){g.log(e)}),a("STDERR")["$write_proc="](typeof process=="object"&&typeof process.stderr=="object"?function(e){process.stderr.write(e)}:function(e){g.warn(e)}),(f=[function(){var n=prompt();return n!==null?n+` +`:t}],d(a("STDIN"),"read_proc=",f),f[f.length-1])},Opal.modules["opal/regexp_anchors"]=function(e){var o=e.module,t=e.const_set,s=[],i=e.nil,n=e.$$$;return e.add_stubs("new"),function(s,i){var a=o(s,"Opal"),c=[a].concat(i),r=e.$r(c);return t(a,"REGEXP_START","^"),t(a,"REGEXP_END","$"),t(a,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),t(a,"FORBIDDEN_ENDING_IDENTIFIER_CHARS",'\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F'),t(a,"INLINE_IDENTIFIER_REGEXP",r("Regexp").$new("[^"+n(a,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+n(a,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),t(a,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),t(a,"CONST_NAME_REGEXP",r("Regexp").$new(""+n(a,"REGEXP_START")+"(::)?[A-Z][^"+n(a,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+n(a,"REGEXP_END")))}(s[0],s)},Opal.modules["opal/mini"]=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require"),t.$require("opal/base"),t.$require("corelib/nil"),t.$require("corelib/boolean"),t.$require("corelib/string"),t.$require("corelib/comparable"),t.$require("corelib/enumerable"),t.$require("corelib/enumerator"),t.$require("corelib/array"),t.$require("corelib/hash"),t.$require("corelib/number"),t.$require("corelib/range"),t.$require("corelib/proc"),t.$require("corelib/method"),t.$require("corelib/regexp"),t.$require("corelib/variables"),t.$require("corelib/io"),t.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(e){var a=e.coerce_to,r=e.module,c=e.slice,o=e.truthy,l=e.eqeq,d=e.Opal,t=e.Kernel,s=e.gvars,u=e.def,h=e.alias,i=e.nil,n=e.$$$;return e.add_stubs("respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s,format"),function(e){var m=r(e,"Kernel");return u(m,"$format",function(r){H=i,s.DEBUG==null&&(s.DEBUG=i),X=c(arguments,1),x=X,l(x.$length(),1)&&o(x["$[]"](0)["$respond_to?"]("to_ary"))&&(H=d["$coerce_to?"](x["$[]"](0),n("Array"),"to_ary"),o(H["$nil?"]())||(x=H.$to_a()));var h,m,f,p,g,v,y,x,E,k,S,M,T,z,R,H,V,U,X,$="",P=0,L=r.length,N=1,O=0,Z=0,j=1,w=2,b=4,C=8,_=16,I=32,W=64,D=128;function F(){m&I&&t.$raise(n("ArgumentError"),"flag after width"),m&D&&t.$raise(n("ArgumentError"),"flag after precision")}function K(){m&I&&t.$raise(n("ArgumentError"),"width given twice"),m&D&&t.$raise(n("ArgumentError"),"width after precision")}function q(e){return e>=x.length&&t.$raise(n("ArgumentError"),"too few arguments"),x[e]}function Y(){switch(O){case-1:t.$raise(n("ArgumentError"),"unnumbered("+N+") mixed with numbered");case-2:t.$raise(n("ArgumentError"),"unnumbered("+N+") mixed with named")}return O=N++,q(O-1)}function G(e){return O>0&&t.$raise(n("ArgumentError"),"numbered("+e+") after unnumbered("+O+")"),O===-2&&t.$raise(n("ArgumentError"),"numbered("+e+") after named"),e<1&&t.$raise(n("ArgumentError"),"invalid index - "+e+"$"),O=-1,q(e-1)}function A(){return E===void 0?Y():E}function B(e){for(var s,o="";;f++){if(f===L&&t.$raise(n("ArgumentError"),"malformed format string - %*[0-9]"),r.charCodeAt(f)<48||r.charCodeAt(f)>57)return f--,s=parseInt(o,10)||0,s>2147483647&&t.$raise(n("ArgumentError"),""+e+" too big"),s;o+=r.charAt(f)}}function Q(e){var t,n=B(e);return r.charAt(f+1)==="$"?(f++,t=G(n)):t=Y(),t.$to_int()}for(f=r.indexOf("%");f!==-1;f=r.indexOf("%",f)){switch(h=void 0,m=Z,v=-1,g=-1,E=void 0,U=f,f++,r.charAt(f)){case"%":P=f;case"":case` +`:case"\0":f++;continue}format_sequence:for(;f":"}",T="",f++;;f++){if(f===L&&t.$raise(n("ArgumentError"),"malformed name - unmatched parenthesis"),r.charAt(f)===V){if(O>0&&t.$raise(n("ArgumentError"),"named "+T+" after unnumbered("+O+")"),O===-1&&t.$raise(n("ArgumentError"),"named "+T+" after numbered"),O=-2,(x[0]===void 0||!x[0].$$is_hash)&&t.$raise(n("ArgumentError"),"one hash required"),E=x[0].$fetch(T),V===">")continue format_sequence;if(h=E.toString(),g!==-1&&(h=h.slice(0,g)),m&w)for(;h.length=0){for(h=p.toString();h.length=0){for(h=p.toString(S);h.length>>0).toString(S).replace(R,M);h.length=0||isNaN(p)){if(p===1/0)h="Inf";else switch(r.charAt(f)){case"f":h=p.toFixed(g===-1?6:g);break;case"e":case"E":h=p.toExponential(g===-1?6:g);break;case"g":case"G":h=p.toExponential(),k=parseInt(h.split("e")[1],10),k<-4||k>=(g===-1?6:g)||(h=p.toPrecision(g===-1?m&j?6:void 0:g));break}if(m&w)for((m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length=(g===-1?6:g)||(h=(-p).toPrecision(g===-1?m&j?6:void 0:g));break}if(m&w)for(h="-"+h;h.length=0&&N"}),t(p,"$charsize",function(t){for(var s,o=0,n=0,i=t.length;n=55296&&s<=56319||o++;return o}),t(p,"$each_char",function t(s){r=t.$$p||n,t.$$p=null;for(var o,i,r,c="",a=0,l=s.length;a=56320&&i<=57343){c=o;continue}i>=55296&&i<=56319&&(o=c+o),s.encoding.name!="UTF-8"&&(o=new String(o),o.encoding=s.encoding),e.yield1(r,o)}}),t(p,"$each_byte",function(){var n=f(arguments),o=n;return m.$raise(s("NotImplementedError"))},-1),t(p,"$bytesize",function(){var n=f(arguments),o=n;return m.$raise(s("NotImplementedError"))},-1),r("::",s("StandardError"),"EncodingError"),r("::",s("EncodingError"),"CompatibilityError"),(r(v[0],s("EncodingError"),"UndefinedConversionError"),n)}("::",null,p),o(s("Encoding"),"register",["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){var o,a,r,c,l,i=t.$$p||n;t.$$p=null;for(a=1/0,l=s.length,r=null,c=0;c55295&&o<57344){if(!r){if(o>56319){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));continue}if(c+1===l){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));continue}r=o;continue}if(o<56320){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189)),r=o;continue}o=(r-55296<<10|o-56320)+65536}else r&&(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));if(r=null,o<128){if((a-=1)<0)break;e.yield1(i,o)}else if(o<2048){if((a-=2)<0)break;e.yield1(i,o>>6|192),e.yield1(i,o&63|128)}else if(o<65536){if((a-=3)<0)break;e.yield1(i,o>>12|224),e.yield1(i,o>>6&63|128),e.yield1(i,o&63|128)}else if(o<1114112){if((a-=4)<0)break;e.yield1(i,o>>18|240),e.yield1(i,o>>12&63|128),e.yield1(i,o>>6&63|128),e.yield1(i,o&63|128)}}}),t(o,"$bytesize",function(t){return t.$bytes().$length()})},{$$s:a}),o(s("Encoding"),"register",["UTF-16LE"],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i>8)}),t(o,"$bytesize",function(t){return t.length*2})},{$$s:a}),o(s("Encoding"),"register",["UTF-16BE",new Map([["inherits",s(s("Encoding"),"UTF_16LE")]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i>8),e.yield1(o,a&255)})},{$$s:a}),o(s("Encoding"),"register",["UTF-32LE"],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i>8),e.yield1(o,0),e.yield1(o,0)}),t(o,"$bytesize",function(t){return t.length*4})},{$$s:a}),o(s("Encoding"),"register",["UTF-32BE",new Map([["inherits",s(s("Encoding"),"UTF_32LE")]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i>8),e.yield1(o,a&255)})},{$$s:a}),o(s("Encoding"),"register",["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_char",function t(s){a=t.$$p||n,t.$$p=null;for(var i,a,o=0,r=s.length;o171)return 1/0;for(a=s-2,i=s-1;a>1;)i*=a,a--;return i==0&&(i=1),i}if(s<.5)return Math.PI/(Math.sin(Math.PI*s)*t("Math").$gamma(h(1,s)));if(s>=171.35)return 1/0;if(s>85)return l=s*s,d=l*s,u=d*s,m=u*s,Math.sqrt(2*Math.PI/s)*Math.pow(s/Math.E,s)*(1+1/(12*s)+1/(288*l)-139/(51840*d)-571/(2488320*u)+163879/(209018880*m)+5246819/(75246796800*m*s));s-=1,c=f[0];for(o=1;o,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,hash,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational,rect,angle"),g.$require("corelib/numeric"),g.$require("corelib/complex/base"),function(g,_,w){var O=y(g,_,"Complex"),x=[O].concat(w),E=e.$r(x),C=O.$$prototype;return C.real=C.imag=o,f(O,"$rect",function(n,o){var r=this;return o==null&&(o=0),i(t("Numeric"),n)&&a(n["$real?"]())&&i(t("Numeric"),o)&&a(o["$real?"]())||s.$raise(t("TypeError"),"not a real"),r.$new(n,o)},-2),f(O,"$polar",function(n,o){var c=this;return o==null&&(o=0),i(t("Numeric"),n)&&a(n["$real?"]())&&i(t("Numeric"),o)&&a(o["$real?"]())||s.$raise(t("TypeError"),"not a real"),c.$new(r(n,t("Math").$cos(o)),r(n,t("Math").$sin(o)))},-2),O.$attr_reader("real","imag"),n(O,"$initialize",function(t,n){var s=this;return n==null&&(n=0),s.real=t,s.imag=n,s.$freeze()},-2),n(O,"$coerce",function(n){var o=this;return i(t("Complex"),n)?[n,o]:i(t("Numeric"),n)&&a(n["$real?"]())?[t("Complex").$new(n,0),o]:s.$raise(t("TypeError"),""+n.$class()+" can't be coerced into Complex")}),n(O,"$==",function(n){var s=this,r=o;return i(t("Complex"),n)?a(r=s.real["$=="](n.$real()))?s.imag["$=="](n.$imag()):r:i(t("Numeric"),n)&&a(n["$real?"]())?a(r=s.real["$=="](n))?s.imag["$=="](0):r:n["$=="](s)}),n(O,"$-@",function(){var t=this;return s.$Complex(t.real["$-@"](),t.imag["$-@"]())}),n(O,"$+",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(c(o.real,n.$real()),c(o.imag,n.$imag())):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(c(o.real,n),o.imag):o.$__coerced__("+",n)}),n(O,"$-",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(d(o.real,n.$real()),d(o.imag,n.$imag())):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(d(o.real,n),o.imag):o.$__coerced__("-",n)}),n(O,"$*",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(d(r(o.real,n.$real()),r(o.imag,n.$imag())),c(r(o.real,n.$imag()),r(o.imag,n.$real()))):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(r(o.real,n),r(o.imag,n)):o.$__coerced__("*",n)}),n(O,"$/",function(n){var o=this;return i(t("Complex"),n)?i(t("Number"),o.real)&&a(o.real["$nan?"]())||i(t("Number"),o.imag)&&a(o.imag["$nan?"]())||i(t("Number"),n.$real())&&a(n.$real()["$nan?"]())||i(t("Number"),n.$imag())&&a(n.$imag()["$nan?"]())?t("Complex").$new(t(t("Float"),"NAN"),t(t("Float"),"NAN")):h(r(o,n.$conj()),n.$abs2()):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(o.real.$quo(n),o.imag.$quo(n)):o.$__coerced__("/",n)}),n(O,"$**",function(n){var l,f,_=this,j=o,y=o,O=o,x=o,k=o,A=o,g=o,w=o,b=o,C=o,E=o;if(u(n,0))return t("Complex").$new(1,0);if(i(t("Complex"),n))return f=_.$polar(),l=m(f),j=l[0]==null?o:l[0],y=l[1]==null?o:l[1],f,O=n.$real(),x=n.$imag(),k=t("Math").$exp(d(r(O,t("Math").$log(j)),r(x,y))),A=c(r(y,O),r(x,t("Math").$log(j))),t("Complex").$polar(k,A);if(i(t("Integer"),n)){if(a(v(n,0))){for(g=_,w=g,b=d(n,1);p(b,0);){for(f=b.$divmod(2),l=m(f),C=l[0]==null?o:l[0],E=l[1]==null?o:l[1],f;u(E,0);)g=s.$Complex(d(r(g.$real(),g.$real()),r(g.$imag(),g.$imag())),r(r(2,g.$real()),g.$imag())),b=C,f=b.$divmod(2),l=m(f),C=l[0]==null?o:l[0],E=l[1]==null?o:l[1],f;w=r(w,g),b=d(b,1)}return w}return h(t("Rational").$new(1,1),_)["$**"](n["$-@"]())}else return i(t("Float"),n)||i(t("Rational"),n)?(f=_.$polar(),l=m(f),j=l[0]==null?o:l[0],y=l[1]==null?o:l[1],f,t("Complex").$polar(j["$**"](n),r(y,n))):_.$__coerced__("**",n)}),n(O,"$abs",function(){var n=this;return t("Math").$hypot(n.real,n.imag)}),n(O,"$abs2",function(){var t=this;return c(r(t.real,t.real),r(t.imag,t.imag))}),n(O,"$angle",function(){var n=this;return t("Math").$atan2(n.imag,n.real)}),n(O,"$conj",function(){var t=this;return s.$Complex(t.real,t.imag["$-@"]())}),n(O,"$denominator",function(){var t=this;return t.real.$denominator().$lcm(t.imag.$denominator())}),n(O,"$eql?",function(t){var n=this,s=o,i=o;return a(s=a(i=E("Complex")["$==="](t))?n.real.$class()["$=="](n.imag.$class()):i)?n["$=="](t):s}),n(O,"$fdiv",function(n){var o=this;return i(t("Numeric"),n)||s.$raise(t("TypeError"),""+n.$class()+" can't be coerced into Complex"),h(o,n)}),n(O,"$finite?",function(){var t=this,n=o;return a(n=t.real["$finite?"]())?t.imag["$finite?"]():n}),n(O,"$hash",function(){var n=this;return[t("Complex"),n.real,n.imag].$hash()}),n(O,"$infinite?",function(){var t=this,n=o;return a(n=t.real["$infinite?"]())?n:t.imag["$infinite?"]()}),n(O,"$inspect",function(){var t=this;return"("+t+")"}),n(O,"$numerator",function(){var t=this,n=o,n=t.$denominator();return s.$Complex(r(t.real.$numerator(),h(n,t.real.$denominator())),r(t.imag.$numerator(),h(n,t.imag.$denominator())))}),n(O,"$polar",function(){var t=this;return[t.$abs(),t.$arg()]}),n(O,"$rationalize",function(n){var o=this;return arguments.length>1&&s.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(o.imag,0)&&s.$raise(t("RangeError"),"can't convert "+o+" into Rational"),o.$real().$rationalize(n)},-1),n(O,"$real?",b(!1)),n(O,"$rect",function(){var t=this;return[t.real,t.imag]}),n(O,"$to_f",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Float"),n.real.$to_f()}),n(O,"$to_i",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Integer"),n.real.$to_i()}),n(O,"$to_r",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Rational"),n.real.$to_r()}),n(O,"$to_s",function(){var n=this,s=o,s=n.real.$inspect(),s=c(s,i(t("Number"),n.imag)&&a(n.imag["$nan?"]())||a(n.imag["$positive?"]())||a(n.imag["$zero?"]())?"+":"-"),s=c(s,n.imag.$abs().$inspect());return i(t("Number"),n.imag)&&(a(n.imag["$nan?"]())||a(n.imag["$infinite?"]()))&&(s=c(s,"*")),c(s,"i")}),j(x[0],"I",O.$new(0,1)),f(O,"$from_string",function(t){var n,i,d,o=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/,l=t.match(o);function a(){return o.test(t)}function r(){var n=t.match(o),e=n[0];return t=t.slice(e.length),e.replace(/_/g,"")}function c(){if(a()){var n,e=parseFloat(r());return t[0]==="/"?(t=t.slice(1),a()?(n=parseFloat(r()),s.$Rational(e,n)):(t="/"+t,e)):e}else return null}return n=c(),n?(i=c(),i?s.$Complex(n,i):t[0]==="i"?s.$Complex(0,n):s.$Complex(n,0)):t[0]==="i"?s.$Complex(0,1):t[0]==="-"&&t[1]==="i"?s.$Complex(0,-1):t[0]==="+"&&t[1]==="i"?s.$Complex(0,1):s.$Complex(0,0)}),function(e){return l(e,"rectangular","rect")}(e.get_singleton_class(O),x),l(O,"arg","angle"),l(O,"conjugate","conj"),l(O,"divide","/"),l(O,"imaginary","imag"),l(O,"magnitude","abs"),l(O,"phase","arg"),l(O,"quo","/"),l(O,"rectangular","rect"),e.udef(O,"$negative?"),e.udef(O,"$positive?"),e.udef(O,"$step"),o}("::",t("Numeric"),_)},Opal.modules["corelib/rational/base"]=function(e){var s=e.module,t=e.def,o=e.klass,i=e.nil,n=e.$$$;return e.add_stubs("convert,from_string"),function(e){var o=s(e,"Kernel");return t(o,"$Rational",function(t,s){return s==null&&(s=1),n("Rational").$convert(t,s)},-2)}("::"),function(e,s){var i=o(e,s,"String");return t(i,"$to_r",function(){var t=this;return n("Rational").$from_string(t)})}("::",null)},Opal.modules["corelib/rational"]=function(e){var _=e.klass,c=e.eqeq,s=e.Kernel,r=e.truthy,d=e.rb_lt,l=e.rb_divide,m=e.defs,n=e.eqeqeq,w=e.not,y=e.Opal,i=e.def,p=e.return_ivar,u=e.rb_minus,a=e.rb_times,h=e.rb_plus,v=e.rb_gt,b=e.rb_le,j=e.return_self,f=e.alias,g=e.top,o=e.nil,t=e.$$$;return e.add_stubs("require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,freeze,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,hash,<=,truncate,send"),g.$require("corelib/numeric"),g.$require("corelib/rational/base"),function(e,g){var O=_(e,g,"Rational"),x=O.$$prototype;return x.num=x.den=o,m(O,"$reduce",function(n,i){var u=this,a=o;if(n=n.$to_i(),i=i.$to_i(),c(i,0))s.$raise(t("ZeroDivisionError"),"divided by 0");else if(r(d(i,0)))n=n["$-@"](),i=i["$-@"]();else if(c(i,1))return u.$new(n,i);return a=n.$gcd(i),u.$new(l(n,a),l(i,a))}),m(O,"$convert",function(o,i){var a=this;return(r(o["$nil?"]())||r(i["$nil?"]()))&&s.$raise(t("TypeError"),"cannot convert nil into Rational"),n(t("Integer"),o)&&n(t("Integer"),i)?a.$reduce(o,i):((n(t("Float"),o)||n(t("String"),o)||n(t("Complex"),o))&&(o=o.$to_r()),(n(t("Float"),i)||n(t("String"),i)||n(t("Complex"),i))&&(i=i.$to_r()),r(i["$equal?"](1))&&w(t("Integer")["$==="](o))?y["$coerce_to!"](o,t("Rational"),"to_r"):n(t("Numeric"),o)&&n(t("Numeric"),i)?l(o,i):a.$reduce(o,i))}),i(O,"$initialize",function(t,n){var s=this;return s.num=t,s.den=n,s.$freeze()}),i(O,"$numerator",p("num")),i(O,"$denominator",p("den")),i(O,"$coerce",function(s){var i=this,a=o;return n(t("Rational"),a=s)?[s,i]:n(t("Integer"),a)?[s.$to_r(),i]:n(t("Float"),a)?[s,i.$to_f()]:o}),i(O,"$==",function(s){var i=this,c=o,a=o;return n(t("Rational"),c=s)?r(a=i.num["$=="](s.$numerator()))?i.den["$=="](s.$denominator()):a:n(t("Integer"),c)?r(a=i.num["$=="](s))?i.den["$=="](1):a:n(t("Float"),c)?i.$to_f()["$=="](s):s["$=="](i)}),i(O,"$<=>",function(s){var i=this,r=o;return n(t("Rational"),r=s)?u(a(i.num,s.$denominator()),a(i.den,s.$numerator()))["$<=>"](0):n(t("Integer"),r)?u(i.num,a(i.den,s))["$<=>"](0):n(t("Float"),r)?i.$to_f()["$<=>"](s):i.$__coerced__("<=>",s)}),i(O,"$+",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=h(a(r.num,i.$denominator()),a(r.den,i.$numerator())),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(h(r.num,a(i,r.den)),r.den):n(t("Float"),c)?h(r.$to_f(),i):r.$__coerced__("+",i)}),i(O,"$-",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=u(a(r.num,i.$denominator()),a(r.den,i.$numerator())),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(u(r.num,a(i,r.den)),r.den):n(t("Float"),c)?u(r.$to_f(),i):r.$__coerced__("-",i)}),i(O,"$*",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=a(r.num,i.$numerator()),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(a(r.num,i),r.den):n(t("Float"),c)?a(r.$to_f(),i):r.$__coerced__("*",i)}),i(O,"$/",function(i){var r=this,d=o,u=o,h=o;return n(t("Rational"),d=i)?(u=a(r.num,i.$denominator()),h=a(r.den,i.$numerator()),s.$Rational(u,h)):n(t("Integer"),d)?c(i,0)?l(r.$to_f(),0):s.$Rational(r.num,a(r.den,i)):n(t("Float"),d)?l(r.$to_f(),i):r.$__coerced__("/",i)}),i(O,"$**",function(i){var a=this,l=o;return n(t("Integer"),l=i)?c(a,0)&&r(d(i,0))?t(t("Float"),"INFINITY"):r(v(i,0))?s.$Rational(a.num["$**"](i),a.den["$**"](i)):r(d(i,0))?s.$Rational(a.den["$**"](i["$-@"]()),a.num["$**"](i["$-@"]())):s.$Rational(1,1):n(t("Float"),l)?a.$to_f()["$**"](i):n(t("Rational"),l)?c(i,0)?s.$Rational(1,1):c(i.$denominator(),1)?r(d(i,0))?s.$Rational(a.den["$**"](i.$numerator().$abs()),a.num["$**"](i.$numerator().$abs())):s.$Rational(a.num["$**"](i.$numerator()),a.den["$**"](i.$numerator())):c(a,0)&&r(d(i,0))?s.$raise(t("ZeroDivisionError"),"divided by 0"):a.$to_f()["$**"](i):a.$__coerced__("**",i)}),i(O,"$abs",function(){var t=this;return s.$Rational(t.num.$abs(),t.den.$abs())}),i(O,"$ceil",function(t){var n=this;return t==null&&(t=0),c(t,0)?l(n.num["$-@"](),n.den)["$-@"]().$ceil():n.$with_precision("ceil",t)},-1),i(O,"$floor",function(t){var n=this;return t==null&&(t=0),c(t,0)?l(n.num["$-@"](),n.den)["$-@"]().$floor():n.$with_precision("floor",t)},-1),i(O,"$hash",function(){var n=this;return[t("Rational"),n.num,n.den].$hash()}),i(O,"$inspect",function(){var t=this;return"("+t+")"}),i(O,"$rationalize",function(n){if(c=this,arguments.length>1&&s.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),n==null)return c;for(var o,i,c,g,v,y,j=n.$abs(),p=u(c,j),f=h(c,j),m=0,a=1,d=1,r=0;!0;){if(i=p.$ceil(),b(i,f))break;o=i-1,g=o*a+m,v=o*r+d,y=l(1,u(f,o)),f=l(1,u(p,o)),p=y,m=a,d=r,a=g,r=v}return s.$Rational(i*a+m,i*r+d)},-1),i(O,"$round",function(t){var n=this,i=o,u=o,s=o;return t==null&&(t=0),c(t,0)?c(n.num,0)?0:c(n.den,1)?n.num:(i=h(a(n.num.$abs(),2),n.den),u=a(n.den,2),s=l(i,u).$truncate(),r(d(n.num,0))?s["$-@"]():s):n.$with_precision("round",t)},-1),i(O,"$to_f",function(){var t=this;return l(t.num,t.den)}),i(O,"$to_i",function(){var t=this;return t.$truncate()}),i(O,"$to_r",j),i(O,"$to_s",function(){var t=this;return""+t.num+"/"+t.den}),i(O,"$truncate",function(t){var n=this;return t==null&&(t=0),c(t,0)?r(d(n.num,0))?n.$ceil():n.$floor():n.$with_precision("truncate",t)},-1),i(O,"$with_precision",function(i,c){var m=this,u=o,h=o;return n(t("Integer"),c)||s.$raise(t("TypeError"),"not an Integer"),u=10["$**"](c),h=a(m,u),r(d(c,1))?l(h.$send(i),u).$to_i():s.$Rational(h.$send(i),u)}),m(O,"$from_string",function(t){var o,a,n=t.trimLeft(),i=/^[+-]?[\d_]+(\.[\d_]+)?/,l=n.match(i);function r(){return i.test(n)}function c(){var t=n.match(i),e=t[0];return n=n.slice(e.length),e.replace(/_/g,"")}return r()?(o=parseFloat(c()),n[0]==="/"?(n=n.slice(1),r()?(a=parseFloat(c()),s.$Rational(o,a)):s.$Rational(o,1)):s.$Rational(o,1)):s.$Rational(0,1)}),f(O,"divide","/"),f(O,"quo","/")}("::",t("Numeric"))},Opal.modules["corelib/time"]=function(e){var f=e.slice,x=e.deny_frozen_access,O=e.klass,a=e.Kernel,i=e.Opal,c=e.defs,m=e.eqeqeq,s=e.def,r=e.truthy,b=e.rb_gt,y=e.rb_lt,d=e.send,u=e.rb_plus,p=e.rb_divide,l=e.rb_minus,j=e.range,v=e.neqeq,h=e.rb_le,g=e.eqeq,o=e.alias,_=e.top,w=[],t=e.nil,n=e.$$$;return e.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,hash,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil,local,gm,asctime,getgm,gmt_offset,inspect,usec,gmtime,gmt?"),_.$require("corelib/comparable"),function(_,w,C){var E=O(_,w,"Time"),A=[E].concat(C),S=e.$r(A);E.$include(n("Comparable"));var M=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],F=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z=["January","February","March","April","May","June","July","August","September","October","November","December"];c(E,"$at",function(t,s){var o;return n("Time")["$==="](t)?(s!==void 0&&a.$raise(n("TypeError"),"can't convert Time into an exact number"),o=new Date(t.getTime()),o.timezone=t.timezone,o):(t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),s===void 0?new Date(t*1e3):(s.$$is_number||(s=i["$coerce_to!"](s,n("Integer"),"to_int")),new Date(t*1e3+s/1e3)))},-2);function k(e,s,o,r,c,l){if(e.$$is_string?e=parseInt(e,10):e=i["$coerce_to!"](e,n("Integer"),"to_int"),s===t)s=1;else if(!s.$$is_number)if(s["$respond_to?"]("to_str"))switch(s=s.$to_str(),s.toLowerCase()){case"jan":s=1;break;case"feb":s=2;break;case"mar":s=3;break;case"apr":s=4;break;case"may":s=5;break;case"jun":s=6;break;case"jul":s=7;break;case"aug":s=8;break;case"sep":s=9;break;case"oct":s=10;break;case"nov":s=11;break;case"dec":s=12;break;default:s=s.$to_i()}else s=i["$coerce_to!"](s,n("Integer"),"to_int");return(s<1||s>12)&&a.$raise(n("ArgumentError"),"month out of range: "+s),s=s-1,o===t?o=1:o.$$is_string?o=parseInt(o,10):o=i["$coerce_to!"](o,n("Integer"),"to_int"),(o<1||o>31)&&a.$raise(n("ArgumentError"),"day out of range: "+o),r===t?r=0:r.$$is_string?r=parseInt(r,10):r=i["$coerce_to!"](r,n("Integer"),"to_int"),(r<0||r>24)&&a.$raise(n("ArgumentError"),"hour out of range: "+r),c===t?c=0:c.$$is_string?c=parseInt(c,10):c=i["$coerce_to!"](c,n("Integer"),"to_int"),(c<0||c>59)&&a.$raise(n("ArgumentError"),"min out of range: "+c),l===t?l=0:l.$$is_number||(l.$$is_string?l=parseInt(l,10):l=i["$coerce_to!"](l,n("Integer"),"to_int")),(l<0||l>60)&&a.$raise(n("ArgumentError"),"sec out of range: "+l),[e,s,o,r,c,l]}return c(E,"$new",function(n,s,o,i,a,r,c){var l,d,u,h,m=this;return s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),n===void 0?new Date:(l=k(n,s,o,i,a,r),n=l[0],s=l[1],o=l[2],i=l[3],a=l[4],r=l[5],c===t?(d=new Date(n,s,o,i,a,0,r*1e3),n<100&&d.setFullYear(n),d):(u=m.$_parse_offset(c),h=new Date(Date.UTC(n,s,o,i,a,0,r*1e3)),n<100&&h.setUTCFullYear(n),d=new Date(h.getTime()-u*36e5),d.timezone=u,d))},-1),c(E,"$_parse_offset",function(t){var s,o,i,r;return t.$$is_string?t=="UTC"?s=0:/^[+-]\d\d:[0-5]\d$/.test(t)?(o=t[0],i=+(t[1]+t[2]),r=+(t[4]+t[5]),s=(o=="-"?-1:1)*(i+r/60)):a.$raise(n("ArgumentError"),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+t):t.$$is_number?s=t/3600:a.$raise(n("ArgumentError"),"Opal doesn't support other types for a timezone argument than Integer and String"),s}),c(E,"$local",function(n,s,o,i,a,r,c,l,d,u){s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),u==null&&(u=t);var h,m;return arguments.length===10&&(h=f(arguments),n=h[5],s=h[4],o=h[3],i=h[2],a=h[1],r=h[0]),h=k(n,s,o,i,a,r),n=h[0],s=h[1],o=h[2],i=h[3],a=h[4],r=h[5],m=new Date(n,s,o,i,a,0,r*1e3),n<100&&m.setFullYear(n),m},-2),c(E,"$gm",function(n,s,o,i,a,r,c,l,d,u){s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),u==null&&(u=t);var h,m;return arguments.length===10&&(h=f(arguments),n=h[5],s=h[4],o=h[3],i=h[2],a=h[1],r=h[0]),h=k(n,s,o,i,a,r),n=h[0],s=h[1],o=h[2],i=h[3],a=h[4],r=h[5],m=new Date(Date.UTC(n,s,o,i,a,0,r*1e3)),n<100&&m.setUTCFullYear(n),m.timezone=0,m},-2),c(E,"$now",function(){var t=this;return t.$new()}),s(E,"$+",function(t){var s,o=this;return m(n("Time"),t)&&a.$raise(n("TypeError"),"time + time?"),t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),s=new Date(o.getTime()+t*1e3),s.timezone=o.timezone,s}),s(E,"$-",function(t){var o,s=this;return m(n("Time"),t)?(s.getTime()-t.getTime())/1e3:(t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),o=new Date(s.getTime()-t*1e3),o.timezone=s.timezone,o)}),s(E,"$<=>",function(s){var i=this,o=t;return m(n("Time"),s)?i.$to_f()["$<=>"](s.$to_f()):(o=s["$<=>"](i),r(o["$nil?"]())?t:r(b(o,0))?-1:r(y(o,0))?1:0)}),s(E,"$==",function(s){var i=this,o=t;return r(o=n("Time")["$==="](s))?i.$to_f()===s.$to_f():o}),s(E,"$asctime",function(){var t=this;return t.$strftime("%a %b %e %H:%M:%S %Y")}),d([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],"each",[],function e(n,s,o,i){var a=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o==null&&(o=t),i==null&&(i=0),d(a,"define_method",[n],function e(){var t=e.$$s==null?this:e.$$s;return i+(t.timezone!=null?new Date(t.getTime()+t.timezone*36e5)[o]():t[s]())},{$$s:a})},{$$arity:-4,$$s:E}),s(E,"$yday",function(){var n=this,s=t,o=t,i=t,s=S("Time").$new(n.$year()).$to_i(),o=S("Time").$new(n.$year(),n.$month(),n.$day()).$to_i(),i=86400;return u(p(l(o,s),i).$round(),1)}),s(E,"$isdst",function(){var t=this,n=new Date(t.getFullYear(),0,1),s=new Date(t.getFullYear(),6,1);return t.getTimezoneOffset()"](s)["$zero?"]():o}),d([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],"each",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),d(o,"define_method",[n],function e(){var t=e.$$s==null?this:e.$$s;return t.$wday()===s},{$$s:o})},{$$s:E}),s(E,"$hash",function(){var t=this;return[n("Time"),t.getTime()].$hash()}),s(E,"$inspect",function(){var t=this;return r(t["$utc?"]())?t.$strftime("%Y-%m-%d %H:%M:%S UTC"):t.$strftime("%Y-%m-%d %H:%M:%S %z")}),s(E,"$succ",function(){var t=this,n=new Date(t.getTime()+1e3);return n.timezone=t.timezone,n}),s(E,"$usec",function(){var t=this;return t.getMilliseconds()*1e3}),s(E,"$zone",function(){var n,s,o=this;return o.timezone===0?"UTC":o.timezone!=null?t:(n=o.toString(),n.indexOf("(")==-1?s=n.match(/[A-Z]{3,4}/)[0]:s=n.match(/\((.+)\)(?:\s|$)/)[1],s=="GMT"&&/(GMT\W*\d{4})/.test(n)?RegExp.$1:s)}),s(E,"$getgm",function(){var n=this,t=new Date(n.getTime());return t.timezone=0,t}),s(E,"$gmtime",function(){var t=this;return t.timezone!==0&&(x(t),t.timezone=0),t}),s(E,"$gmt?",function(){var t=this;return t.timezone===0}),s(E,"$gmt_offset",function(){var t=this;return t.timezone!=null?t.timezone*60:-t.getTimezoneOffset()*60}),s(E,"$strftime",function(t){var n=this;return t.replace(/%([-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(e,t,s,o,i){var d,u,h,a="",c=t.indexOf("0")!==-1,v=t.indexOf("-")===-1,r=t.indexOf("_")!==-1,b=t.indexOf("^")!==-1,y=t.indexOf("#")!==-1,f=(t.match(":")||[]).length;switch(s=parseInt(s,10),c&&r&&(t.indexOf("0")=12?"pm":"am";break;case"p":a+=n.$hour()>=12?"PM":"AM";break;case"M":c=!r,a+=n.$min();break;case"S":c=!r,a+=n.$sec();break;case"L":c=!r,s=isNaN(s)?3:s,a+=n.getMilliseconds();break;case"N":s=isNaN(s)?9:s,a+=n.getMilliseconds().toString().$rjust(3,"0"),a=a.$ljust(s,"0");break;case"z":var m=n.timezone==null?n.getTimezoneOffset():-n.timezone*60,p=Math.floor(Math.abs(m)/60),g=Math.abs(m)%60;a+=m<0?"+":"-",a+=p<10?"0":"",a+=p,f>0&&(a+=":"),a+=g<10?"0":"",a+=g,f>1&&(a+=":00");break;case"Z":a+=n.$zone();break;case"A":a+=M[n.$wday()];break;case"a":a+=F[n.$wday()];break;case"u":a+=n.$wday()+1;break;case"w":a+=n.$wday();break;case"V":a+=n.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":a+=n.$cweek_cyear()["$[]"](1);break;case"g":a+=n.$cweek_cyear()["$[]"](1)["$[]"](j(-2,-1,!1));break;case"s":a+=n.$to_i();break;case"n":a+=` +`;break;case"t":a+=" ";break;case"%":a+="%";break;case"c":a+=n.$strftime("%a %b %e %T %Y");break;case"D":case"x":a+=n.$strftime("%m/%d/%y");break;case"F":a+=n.$strftime("%Y-%m-%d");break;case"v":a+=n.$strftime("%e-%^b-%4Y");break;case"r":a+=n.$strftime("%I:%M:%S %p");break;case"R":a+=n.$strftime("%H:%M");break;case"T":case"X":a+=n.$strftime("%H:%M:%S");break;case"J":if(h=n.$to_date().$jd(),h<2405160){a+=n.$strftime("%Y-%m-%d");break}h<2419614?(u="M",d=1867):h<2424875?(u="T",d=1911):h<2447535?(u="S",d=1925):h<2458605?(u="H",d=1988):(u="R",d=2018),a+=n.$format("%c%02d",u,l(n.$year(),d)),a+=n.$strftime("-%m-%d");break;default:return e}return b&&(a=a.toUpperCase()),y&&(a=a.replace(/[A-Z]/,function(e){e.toLowerCase()}).replace(/[a-z]/,function(e){e.toUpperCase()})),v&&(c||r)&&(a=a.$rjust(isNaN(s)?2:s,r?" ":"0")),a})}),s(E,"$to_a",function(){var t=this;return[t.$sec(),t.$min(),t.$hour(),t.$day(),t.$month(),t.$year(),t.$wday(),t.$yday(),t.$isdst(),t.$zone()]}),s(E,"$to_f",function(){var t=this;return t.getTime()/1e3}),s(E,"$to_i",function(){var t=this;return parseInt(t.getTime()/1e3,10)}),s(E,"$cweek_cyear",function(){var s=this,m=t,o=t,b=t,c=t,i=t,a=t,f=t,d=t,m=n("Time").$new(s.$year(),1,1),o=m.$wday(),b=0,c=s.$year();return r(h(o,4))&&v(o,0)?i=l(o,1):(i=l(l(o,7),1),g(i,-8)&&(i=-1)),a=p(u(s.$yday(),i),7).$ceil(),r(h(a,0))?n("Time").$new(l(s.$year(),1),12,31).$cweek_cyear():(g(a,53)&&(f=n("Time").$new(s.$year(),12,31),d=f.$wday(),r(h(d,3))&&v(d,0)&&(a=1,c=u(c,1))),[a,c])}),function(e){return o(e,"mktime","local"),o(e,"utc","gm")}(e.get_singleton_class(E),A),o(E,"ctime","asctime"),o(E,"dst?","isdst"),o(E,"getutc","getgm"),o(E,"gmtoff","gmt_offset"),o(E,"mday","day"),o(E,"month","mon"),o(E,"to_s","inspect"),o(E,"tv_sec","to_i"),o(E,"tv_usec","usec"),o(E,"utc","gmtime"),o(E,"utc?","gmt?"),o(E,"utc_offset","gmt_offset")}("::",Date,w)},Opal.modules["corelib/struct"]=function(e){var y=e.klass,r=e.slice,E=e.extract_kwargs,C=e.ensure_kwargs,w=e.hash_get,o=e.truthy,_=e.neqeq,m=e.eqeq,u=e.Opal,s=e.send,j=e.Class,f=e.to_a,i=e.def,l=e.defs,a=e.Kernel,g=e.rb_gt,b=e.rb_minus,c=e.eqeqeq,p=e.rb_lt,v=e.rb_ge,d=e.rb_plus,h=e.alias,O=e.top,x=[],t=e.nil,n=e.$$$;return e.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,to_a,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,each_with_object,flatten,respond_to?,dig"),O.$require("corelib/enumerable"),function(O,x,k){var S,A=y(O,x,"Struct"),M=[A].concat(k),F=e.$r(M);return A.$include(n("Enumerable")),l(A,"$new",function a(c){var h,g,v,b,y=a.$$p||t,O=this,p=t;if(a.$$p=null,b=r(arguments,1),g=E(b),g=C(g),h=b,v=w(g,"keyword_init"),v==null&&(v=!1),o(c))if(m(c.$class(),n("String"))&&_(c["$[]"](0).$upcase(),c["$[]"](0)))h.$unshift(c),c=t;else try{c=u["$const_name!"](c)}catch(s){if(e.rescue(s,[n("TypeError"),n("NameError")]))try{h.$unshift(c),c=t}finally{e.pop_exception(s)}else throw s}return s(h,"map",[],function(s){return s==null&&(s=t),u["$coerce_to!"](s,n("String"),"to_str")}),p=s(j,"new",[O],function n(){var o=n.$$s==null?this:n.$$s;return s(h,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_struct_attribute(n)},{$$s:o}),function(e){return i(e,"$new",function(){var c=this,o=t,i=r(arguments),a=i,o=c.$allocate();return o.$$data={},s(o,"initialize",f(a)),o},-1),e.$alias_method("[]","new")}(e.get_singleton_class(o),M)},{$$s:O}),o(y)&&s(p,"module_eval",[],y.$to_proc()),p.$$keyword_init=v,o(c)&&n("Struct").$const_set(c,p),p},-2),l(A,"$define_struct_attribute",function(o){var i=this;return m(i,n("Struct"))&&a.$raise(n("ArgumentError"),"you cannot define attributes to the Struct class"),i.$members()["$<<"](o),s(i,"define_method",[o],function e(){var t=e.$$s==null?this:e.$$s;return t.$$data[o]},{$$s:i}),s(i,"define_method",[""+o+"="],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$$data[o]=n},{$$s:i})}),l(A,"$members",function(){var s=this,i=t;return s.members==null&&(s.members=t),m(s,n("Struct"))&&a.$raise(n("ArgumentError"),"the Struct class has no members"),s.members=o(i=s.members)?i:[]}),l(A,"$inherited",function(n){var o=this,i=t;return o.members==null&&(o.members=t),i=o.members,s(n,"instance_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return t.members=i},{$$s:o})}),i(A,"$initialize",function(){var c=this,d=t,h=t,u=t,m=r(arguments),l=m;return o(c.$class().$$keyword_init)?(d=o(h=l.$last())?h:new Map,(o(g(l.$length(),1))||o(l.length===1&&!d.$$is_hash))&&a.$raise(n("ArgumentError"),"wrong number of arguments (given "+l.$length()+", expected 0)"),u=b(d.$keys(),c.$class().$members()),o(u["$any?"]())&&a.$raise(n("ArgumentError"),"unknown keywords: "+u.$join(", ")),s(c.$class().$members(),"each",[],function e(n){var o,i=e.$$s==null?this:e.$$s;return n==null&&(n=t),(o=[n,d["$[]"](n)],s(i,"[]=",o),o[o.length-1])},{$$s:c})):(o(g(l.$length(),c.$class().$members().$length()))&&a.$raise(n("ArgumentError"),"struct size differs"),s(c.$class().$members(),"each_with_index",[],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[n,l["$[]"](o)],s(a,"[]=",i),i[i.length-1])},{$$s:c}))},-1),i(A,"$initialize_copy",function(t){var n,s,o,a,i=this;i.$$data={},s=Object.keys(t.$$data);for(n=0,a=s.length;n"):(S["$<<"](a.$__id__()),r=!0,c(n("Struct"),a)&&o(a.$class().$name())&&(i=d(i,""+a.$class()+" ")),i=d(i,s(a.$each_pair(),"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+"="+F("Opal").$inspect(s)}).$join(", ")),i=d(i,">"),i)}finally{o(r)?S.pop():t}}()}),i(A,"$to_h",function e(){var a,c,i=e.$$p||t,o=this;return e.$$p=null,a=r(arguments),c=a,i!==t?s(s(o,"map",[],i.$to_proc()),"to_h",f(c)):s(o.$class().$members(),"each_with_object",[new Map],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[n,a["$[]"](n)],s(o,"[]=",i),i[i.length-1])},{$$s:o})},-1),i(A,"$values_at",function(){for(var d,u=this,d=r(arguments),i=d,i=s(i,"map",[],function(n){return n==null&&(n=t),n.$$is_range?n.$to_a():n}).$flatten(),l=[],c=0,h=i.length;c"}),n(j,"$==",function(n){var i=this;return!!o(i["$equal?"](n))||(o(n["$instance_of?"](i.$class()))?i.hash["$=="](n.$instance_variable_get("@hash")):!!(o(n["$is_a?"](a("Set")))&&c(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash["$include?"](n)},{$$s:i}))}),n(j,"$add",function(t){var n=this;return n.hash["$[]="](t,!0),n}),n(j,"$classify",function n(){var r=n.$$p||t,o=this,i=t;return n.$$p=null,r!==t?(i=s(a("Hash"),"new",[],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[o,a.$class().$new()],s(n,"[]=",i),i[i.length-1])},{$$s:o}),s(o,"each",[],function(s){return s==null&&(s=t),i["$[]"](e.yield1(r,s)).$add(s)}),i):o.$enum_for("classify")}),n(j,"$collect!",function n(){var a=n.$$p||t,o=this,i=t;return n.$$p=null,a!==t?(i=o.$class().$new(),s(o,"each",[],function(s){return s==null&&(s=t),i["$<<"](e.yield1(a,s))}),o.$replace(i)):o.$enum_for("collect!")}),n(j,"$compare_by_identity",function(){var t=this;return o(t.hash["$respond_to?"]("compare_by_identity"))?(t.hash.$compare_by_identity(),t):t.$raise(O("NotImplementedError"),""+t.$class().$name()+"#"+"compare_by_identity"+" is not implemented")}),n(j,"$compare_by_identity?",function(){var n=this,s=t;return o(s=n.hash["$respond_to?"]("compare_by_identity?"))?n.hash["$compare_by_identity?"]():s}),n(j,"$delete",function(t){var n=this;return n.hash.$delete(t),n}),n(j,"$delete?",function(n){var s=this;return o(s["$include?"](n))?(s.$delete(n),s):t}),n(j,"$delete_if",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(s(o,"select",[],function(s){return s==null&&(s=t),e.yield1(i,s)}),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash.$delete(n)},{$$s:o}),o):o.$enum_for("delete_if")}),n(j,"$freeze",function(){var t=this;return o(t["$frozen?"]())?t:(t.hash.$freeze(),u(t))}),n(j,"$keep_if",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(s(o,"reject",[],function(s){return s==null&&(s=t),e.yield1(i,s)}),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash.$delete(n)},{$$s:o}),o):o.$enum_for("keep_if")}),n(j,"$reject!",function e(){var o=e.$$p||t,n=this,i=t;return e.$$p=null,o!==t?(i=n.$size(),s(n,"delete_if",[],o.$to_proc()),c(n.$size(),i)?t:n):n.$enum_for("reject!")}),n(j,"$select!",function e(){var o=e.$$p||t,n=this,i=t;return e.$$p=null,o!==t?(i=n.$size(),s(n,"keep_if",[],o.$to_proc()),c(n.$size(),i)?t:n):n.$enum_for("select!")}),n(j,"$add?",function(n){var s=this;return o(s["$include?"](n))?t:s.$add(n)}),n(j,"$each",function e(){var o=e.$$p||t,n=this;return e.$$p=null,o!==t?(s(n.hash,"each_key",[],o.$to_proc()),n):n.$enum_for("each")}),n(j,"$empty?",function(){var t=this;return t.hash["$empty?"]()}),n(j,"$eql?",function(n){var o=this;return o.hash["$eql?"](s(n,"instance_eval",[],function e(){var n=e.$$s==null?this:e.$$s;return n.hash==null&&(n.hash=t),n.hash},{$$s:o}))}),n(j,"$clear",function(){var t=this;return t.hash.$clear(),t}),n(j,"$include?",function(t){var n=this;return n.hash["$include?"](t)}),n(j,"$merge",function(n){var o=this;return s(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$add(n)},{$$s:o}),o}),n(j,"$replace",function(t){var n=this;return n.$clear(),n.$merge(t),n}),n(j,"$size",function(){var t=this;return t.hash.$size()}),n(j,"$subtract",function(n){var o=this;return s(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$delete(n)},{$$s:o}),o}),n(j,"$|",function(t){var n=this;return o(t["$respond_to?"]("each"))||r.$raise(a("ArgumentError"),"value must be enumerable"),n.$dup().$merge(t)});function y(e){o(_=e["$is_a?"](a("Set")))?_:r.$raise(a("ArgumentError"),"value must be a set")}return n(j,"$superset?",function(n){var i=this;return y(n),!o(l(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$proper_superset?",function(n){var i=this;return y(n),!o(d(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$subset?",function(n){var i=this;return y(n),!o(l(n.$size(),i.$size()))&&s(i,"all?",[],function(s){return s==null&&(s=t),n["$include?"](s)})}),n(j,"$proper_subset?",function(n){var i=this;return y(n),!o(d(n.$size(),i.$size()))&&s(i,"all?",[],function(s){return s==null&&(s=t),n["$include?"](s)})}),n(j,"$intersect?",function(n){var i=this;return y(n),o(l(i.$size(),n.$size()))?s(i,"any?",[],function(s){return s==null&&(s=t),n["$include?"](s)}):s(n,"any?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$disjoint?",function(t){var n=this;return n["$intersect?"](t)["$!"]()}),n(j,"$to_a",function(){var t=this;return t.hash.$keys()}),i(j,"+","|"),i(j,"<","proper_subset?"),i(j,"<<","add"),i(j,"<=","subset?"),i(j,">","proper_superset?"),i(j,">=","superset?"),i(j,"difference","-"),i(j,"filter!","select!"),i(j,"length","size"),i(j,"map!","collect!"),i(j,"member?","include?"),i(j,"union","|")}("::",null,p)},Opal.modules["corelib/dir"]=function(e){var s=e.klass,t=e.def,o=e.truthy,i=e.alias,a=[],n=e.nil,r=e.$$$;return e.add_stubs("[],pwd"),function(a,c,l){var d=s(a,c,"Dir"),u=[d].concat(l);return function(s){return t(s,"$chdir",function t(s){var i=t.$$p||n,o=n;return t.$$p=null,function(){try{return o=e.current_dir,e.current_dir=s,e.yieldX(i,[])}finally{e.current_dir=o}}()}),t(s,"$pwd",function(){return e.current_dir||"."}),t(s,"$home",function(){var t=n;return o(t=r("ENV")["$[]"]("HOME"))?t:"."}),i(s,"getwd","pwd")}(e.get_singleton_class(d),u)}("::",null,a)},Opal.modules["corelib/file"]=function(e){var n=e.truthy,b=e.klass,r=e.const_set,u=e.Opal,s=e.regexp,a=e.rb_plus,o=e.def,d=e.Kernel,c=e.eqeq,f=e.rb_lt,h=e.rb_minus,p=e.range,l=e.send,g=e.slice,m=e.alias,v=[],t=e.nil,i=e.$$$;return e.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?,expand_path,exist?"),function(v,j,y){var O=b(v,j,"File"),_=[O].concat(y),w=t;return r(_[0],"Separator",r(_[0],"SEPARATOR","/")),r(_[0],"ALT_SEPARATOR",t),r(_[0],"PATH_SEPARATOR",":"),r(_[0],"FNM_SYSCASE",0),w=/^[a-zA-Z]:(?:\\|\/)/,function(r,v){var _=[r].concat(v),b=e.$r(_);o(r,"$absolute_path",function(o,r){var d,g,x,h=t,l=t,c=t,O=t,_=t,y=t,f=t,v=t,m=t,p=t;r==null&&(r=t),h=b("SEPARATOR"),l=j(),c=[],o=n(o["$respond_to?"]("to_path"))?o.$to_path():o,o=u["$coerce_to!"](o,i("String"),"to_str"),r=n(O=r)?O:i("Dir").$pwd(),_=o.substr(0,h.length)===h||w.test(o),y=r.substr(0,h.length)===h||w.test(r),n(_)?(f=o.$split(s(["[",l,"]"])),v=w.test(o)?"":o.$sub(s(["^([",l,"]+).*$"]),"\\1"),m=!0):(f=a(r.$split(s(["[",l,"]"])),o.$split(s(["[",l,"]"]))),v=w.test(r)?"":r.$sub(s(["^([",l,"]+).*$"]),"\\1"),m=y);for(g=0,x=f.length;g",0]))},Opal.modules["corelib/irb"]=function(e){var m=e.module,s=e.truthy,v=e.Kernel,c=e.defs,n=e.gvars,g=e.lambda,b=e.hash_rehash,i=e.send,l=e.rb_plus,j=e.const_set,h=e.klass,r=e.def,a=e.Opal,f=e.range,p=e.eqeq,u=e.thrower,d=[],t=e.nil,o=e.$$$;e.add_stubs("include?,raise,attr_accessor,singleton_class,output=,browser?,each,dup,write_proc=,proc,+,output,join,last,split,end_with?,call,write_proc,tty=,read_proc,read_proc=,freeze,new,string,ensure_loaded,prepare_console,loop,print,gets,puts,start_with?,[],==,silence,message,empty?,warnings,warn,full_message,eval_and_print,irb"),function(a,d){var f=m(a,"Opal"),u=[f].concat(d);return function(a,d){var u=m(a,"IRB"),f=[u].concat(d),p=e.$r(f);return c(u,"$ensure_loaded",function(o){var i,c,a=t,r=t;return s(e.loaded_features["$include?"](o))?t:(a=s(p("RUBY_ENGINE_VERSION")["$include?"]("dev"))?"master":p("RUBY_ENGINE_VERSION"),r="https://cdn.opalrb.com/opal/"+a+"/"+o+".js",typeof XMLHttpRequest!="undefined"?(i=new XMLHttpRequest,i.open("GET",r,!1),i.send(""),c=i.responseText):v.$raise("You need to provision "+o+" yourself in this environment"),new Function("Opal",c)(e),e.require(o),s(e.loaded_features["$include?"](o))?t:v.$raise("Could not load "+o+" for some reason"))}),u.$singleton_class().$attr_accessor("output"),c(u,"$prepare_console",function o(){var a,u=o.$$p||t,r=this,c=t,d=t;return n.stdout==null&&(n.stdout=t),n.stderr==null&&(n.stderr=t),n.stdin==null&&(n.stdin=t),o.$$p=null,function(){try{return r["$output="](""),c=b(new Map([[n.stdout,g(function(s){return s==null&&(s=t),n.stdout=s})],[n.stderr,g(function(s){return s==null&&(s=t),n.stderr=s})]])),s(r["$browser?"]())&&(i(c,"each",[],function e(n,o){var r=e.$$s==null?this:e.$$s,a=t;return n==null&&(n=t),o==null&&(o=t),a=n.$dup(),a["$write_proc="](i(r,"proc",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i["$output="](l(i.$output(),o)),i["$output="](i.$output().$split(` +`).$last(30).$join(` +`)),s(o["$end_with?"](` +`))&&i["$output="](l(i.$output(),` +`)),n.$write_proc().$call(o)},{$$s:r})),a["$tty="](!1),o.$call(a)},{$$s:r}),d=n.stdin.$read_proc(),n.stdin["$read_proc="](function(){var n=prompt(r.$output());return n!==null?n+` +`:t})),e.yieldX(u,[])}finally{i(c,"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s.$call(n)}),(a=[d],i(n.stdin,"read_proc=",a),a[a.length-1]),(a=[""],i(r,"output=",a),a[a.length-1])}}()}),c(u,"$browser?",function(){return typeof document!="undefined"&&typeof prompt!="undefined"}),j(f[0],"LINEBREAKS",["unexpected token $end","unterminated string meets end of file"].$freeze()),function(s,i){var a=h(s,i,"Silencer"),c=a.$$prototype;return c.collector=c.stderr=t,r(a,"$initialize",function(){var s=this;return n.stderr==null&&(n.stderr=t),s.stderr=n.stderr}),r(a,"$silence",function s(){var a=s.$$p||t,i=this;return s.$$p=null,function(){try{return i.collector=o("StringIO").$new(),n.stderr=i.collector,e.yieldX(a,[])}finally{n.stderr=i.stderr}}()}),r(a,"$warnings",function(){var t=this;return t.collector.$string()})}(f[0],null)}(u[0],u)}(d[0],d),function(n,c,d){var m=h(n,c,"Binding"),g=[m].concat(d),v=e.$r(g);return r(m,"$irb",function(){try{var r=u("return"),d=this,c=t;return o(a,"IRB").$ensure_loaded("opal-replutils"),c=o(o(a,"IRB"),"Silencer").$new(),i(o(a,"IRB"),"prepare_console",[],function n(){var d=n.$$s==null?this:n.$$s;return function(){try{var n=u("break");return i(d,"loop",[],function d(){var h=d.$$s==null?this:d.$$s,u=t,m=t,g=t,b=t,j=t;h.$print(">> "),u=h.$gets(),s(u)||n.$throw(t,d.$$is_lambda),m="",s(o(a,"IRB")["$browser?"]())&&h.$puts(u),s(u["$start_with?"]("ls "))?(m=u["$[]"](f(3,-1,!1)),g="ls"):p(u,`ls +`)?(m="self",g="ls"):s(u["$start_with?"]("show "))?(m=u["$[]"](f(5,-1,!1)),g="show"):(m=u,g="inspect"),b=t;do{try{i(c,"silence",[],function(){return b=e.compile(m,{irb:!0})})}catch(n){if(e.rescue(n,[v("SyntaxError")])){j=n;try{if(s(o(o(a,"IRB"),"LINEBREAKS")["$include?"](j.$message()))){h.$print(".. "),u=h.$gets(),s(u)||r.$throw(t,d.$$is_lambda),s(o(a,"IRB")["$browser?"]())&&h.$puts(u),m=l(m,u);continue}s(c.$warnings()["$empty?"]())?h.$warn(j.$full_message()):h.$warn(c.$warnings())}finally{e.pop_exception(n)}}else throw n}break}while(1)return p(g,"show")&&(h.$puts(b),r.$throw(t,d.$$is_lambda)),h.$puts(o("REPLUtils").$eval_and_print(b,g,!1,h))},{$$s:d,$$ret:r})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}()},{$$s:d})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}})}("::",null,d),e.irb=function(e){o("Binding").$new(e).$irb()},e.load_parser=function(){e.Opal.IRB.$ensure_loaded("opal-parser")},typeof e.eval=="undefined"&&(e.eval=function(t){return e.load_parser(),e.eval(t)}),typeof e.compile=="undefined"&&(e.compile=function(t,n){return e.load_parser(),e.compile(t,n)})},Opal.modules.opal=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require,autoload"),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$autoload("Set","corelib/set"),t.$autoload("Dir","corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported"),t.$require("corelib/binding"),t.$require("corelib/irb")},Opal.load_normalized("opal"),Opal.modules.opal=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require,autoload"),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$autoload("Set","corelib/set"),t.$autoload("Dir","corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported"),t.$require("corelib/binding"),t.$require("corelib/irb")},Opal.modules["opal/paths"]=function(e){var i=e.module,n=e.defs,d=e.slice,a=e.rb_plus,s=e.gvars,o=e.send,u=e.to_a,r=e.def,c=e.truthy,l=[],t=e.nil,h=e.$$$;return e.add_stubs("expand_path,append_paths,concat,gem_dir,[],+,grep,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,name,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!"),function(l,m){var f=i(l,"Opal"),g=[f].concat(m),p=e.$r(g);return n(f,"$gem_dir",function(){return p("File").$expand_path("../..","opal/paths.rb")}),n(f,"$core_dir",function(){return p("File").$expand_path("../../../opal","opal/paths.rb")}),n(f,"$std_dir",function(){return p("File").$expand_path("../../../stdlib","opal/paths.rb")}),n(f,"$append_path",function(t){var n=this;return n.$append_paths(t)}),n(f,"$append_paths",function(){var o,i,s=this;return s.paths==null&&(s.paths=t),o=d(arguments),i=o,s.paths.$concat(i),t},-1),n(f,"$dependent_files",function(){var o=t,n=t;return s.LOADED_FEATURES==null&&(s.LOADED_FEATURES=t),o=p("File").$expand_path("..",p("Opal").$gem_dir()),n=p("Dir")["$[]"](""+o+"/{Gemfile*,*.gemspec,lib/**/*}"),n=a(n,s.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),n}),function(n,s){var l=i(n,"UseGem"),m=[l].concat(s),d=e.$r(m);return r(l,"$use_gem",function(t,n){var s=this;return n==null&&(n=!0),o(s,"append_paths",u(s.$require_paths_for_gem(t,n)))},-2),l.$private(),r(l,"$require_paths_for_gem",function(n,s){var l=this,i=t,r=t,u=t,i=[],r=h(d("Gem"),"Specification").$find_by_name(n);return c(r)||l.$raise(d("GemNotFound"),n),c(s)&&o(r.$runtime_dependencies(),"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),i=a(i,o.$require_paths_for_gem(n.$name(),s))},{$$s:l}),u=r.$gem_dir(),o(r.$require_paths(),"map",[],function(n){return n==null&&(n=t),i["$<<"](d("File").$join(u,n))}),i})}(g[0],g),f.$extend(p("UseGem")),n(f,"$paths",function(){var n=this;return n.paths==null&&(n.paths=t),n.paths.$freeze()}),n(f,"$reset_paths!",function(){var n=this;return n.paths=[n.$core_dir(),n.$std_dir(),n.$gem_dir()],t,t}),f["$reset_paths!"]()}(l[0],l)},Opal.modules.js=function(e){var i=e.module,t=e.def,s=e.truthy,o=e.slice,a=e.alias,r=[],n=e.nil;return e.add_stubs("insert,<<,global,call,extend"),function(r){var c=i(r,"JS");return t(c,"$delete",function(t,n){return delete t[n]}),t(c,"$global",function(){return e.global}),t(c,"$in",function(t,n){return t in n}),t(c,"$instanceof",function(t,n){return t instanceof n}),s(typeof Function.prototype.bind=="function")?t(c,"$new",function e(t){var a,c,r=e.$$p||n;return e.$$p=null,c=o(arguments,1),a=c,a.$insert(0,this),s(r)&&a["$<<"](r),new(t.bind.apply(t,a))},-2):t(c,"$new",function e(t){var a,l,c=e.$$p||n,r=n;return e.$$p=null,l=o(arguments,1),a=l,s(c)&&a["$<<"](c),r=function(){return t.apply(this,a)},r.prototype=t.prototype,new r},-2),t(c,"$typeof",function(t){return typeof t}),t(c,"$void",function(t){}),t(c,"$call",function e(t){var a,l,c=e.$$p||n,d=this,r=n;return e.$$p=null,l=o(arguments,1),a=l,r=d.$global(),s(c)&&a["$<<"](c),r[t].apply(r,a)},-2),t(c,"$[]",function(n){return e.global[n]}),a(c,"method_missing","call"),c.$extend(c)}(r[0])},Opal.modules["bigdecimal/bignumber"]=function(e){var n=e.klass,t=[],s=e.$r(t),o=e.nil;return function(t,s){var i=n(t,s,"BigDecimal"),o=function(t){e.const_set(i,"BigNumber",t())};o.amd=!0,!function(e){"use strict";function p(e){function o(e,n){var s,a,r,c,l,d,i=this;if(!(i instanceof o))return M&&T(26,"constructor call without new",e),new o(e,n);if(n!=null&&A(n,2,64,S,"base")){if(n=0|n,s=e+"",10==n)return i=new o(e instanceof o?e:s),z(i,N+i.e+1,F);if((l="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(d="["+_.slice(0,n)+"]+")+"(?:\\."+d+")?$",37>n?"i":"").test(s))return w(i,s,l,n);l?(i.s=0>1/e?(s=s.slice(1),-1):1,M&&s.replace(/^0\.0*|\./,"").length>15&&T(S,C,e),l=!1):i.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1,s=Y(s,10,n,i.s)}else{if(e instanceof o)return i.s=e.s,i.e=e.e,i.c=(e=e.c)&&e.slice(),void(S=0);if((l="number"==typeof e)&&0*e==0){if(i.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,a=e;a>=10;a/=10,r++);return i.e=r,i.c=[e],void(S=0)}s=e+""}else{if(!E.test(s=e+""))return w(i,s,l);i.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1}}for((r=s.indexOf("."))>-1&&(s=s.replace(".","")),(a=s.search(/e/i))>0?(0>r&&(r=a),r+=+s.slice(a+1),s=s.substring(0,a)):0>r&&(r=s.length),a=0;48===s.charCodeAt(a);a++);for(c=s.length;48===s.charCodeAt(--c););if(s=s.slice(a,c+1))if(c=s.length,l&&M&&c>15&&T(S,C,i.s*e),r=r-a-1,r>L)i.c=i.e=null;else if(B>r)i.c=[i.e=0];else{if(i.e=r,i.c=[],a=(r+1)%t,0>r&&(a+=t),c>a){for(a&&i.c.push(+s.slice(0,a)),c-=t;c>a;)i.c.push(+s.slice(a,a+=t));s=s.slice(a),a=t-s.length}else a-=c;for(;a--;s+="0");i.c.push(+s)}else i.c=[i.e=0];S=0}function Y(e,t,n,s){var i,a,c,l,h,m,p,d=e.indexOf("."),g=N,f=F;for(37>n&&(e=e.toLowerCase()),d>=0&&(l=P,P=0,e=e.replace(".",""),p=new o(n),a=p.pow(e.length-d),P=l,p.c=x(u(r(a.c),a.e),10,t),p.e=p.c.length),i=x(e,n,t),m=l=i.length;0==i[--l];i.pop());if(!i[0])return"0";if(0>d?--m:(a.c=i,a.e=m,a.s=s,a=D(a,p,g,f,t),i=a.c,h=a.r,m=a.e),c=m+g+1,d=i[c],l=t/2,h=h||0>c||null!=i[c+1],h=4>f?(d!=null||h)&&(0==f||f==(a.s<0?3:2)):d>l||d==l&&(4==f||h||6==f&&1&i[c-1]||f==(a.s<0?8:7)),1>c||!i[0])e=h?u("1",-g):"0";else{if(i.length=c,h)for(--t;++i[--c]>t;)i[c]=0,c||(++m,i.unshift(1));for(l=i.length;!i[--l];);for(d=0,e="";l>=d;e+=_.charAt(i[d++]));e=u(e,m)}return e}function $(e,t,n,s){if(n=n!=null&&A(n,0,8,s,j)?0|n:F,!e.c)return e.toString();if(d=e.c[0],l=e.e,t==null)i=r(e.c),i=19==s||24==s&&I>=l?f(i,l):u(i,l);else if(e=z(new o(e),t,n),a=e.e,i=r(e.c),c=i.length,19==s||24==s&&(a>=t||I>=a)){for(var i,a,c,l,d;t>c;i+="0",c++);i=f(i,a)}else if(t-=l,i=u(i,a),a+1>c){if(--t>0)for(i+=".";t--;i+="0");}else if(t+=a-c,t>0)for(a+1==c&&(i+=".");t--;i+="0");return e.s<0&&d?"-"+i:i}function q(e,t){var n,s,i=0;for(v(e[0])&&(e=e[0]),n=new o(e[0]);++ie||e>n||e!=O(e))&&T(s,(o||"decimal places")+(t>e||e>n?" out of range":" not an integer"),e),!0}function K(e,n,s){for(var i=1,o=n.length;!n[--o];n.pop());for(o=n[0];o>=10;o/=10,i++);return(s=i+s*t-1)>L?e.c=e.e=null:B>s?e.c=[e.e=0]:(e.e=s,e.c=n),e}function T(e,t,n){var s=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]+"() "+t+": "+n);throw s.name="BigNumber Error",S=0,s}function z(e,n,s,o){var a,r,d,u,h,m,p,i=e.c,f=y;if(i){e:{for(h=1,d=i[0];d>=10;d/=10,h++);if(r=n-h,0>r)r+=t,a=n,m=i[u=0],p=m/f[h-a-1]%10|0;else if(u=g((r+1)/t),u>=i.length){if(!o)break e;for(;i.length<=u;i.push(0));m=p=0,h=1,r%=t,a=r-t+1}else{for(m=d=i[u],h=1;d>=10;d/=10,h++);r%=t,a=r-t+h,p=0>a?0:m/f[h-a-1]%10|0}if(o=o||0>n||null!=i[u+1]||(0>a?m:m%f[h-a-1]),o=4>s?(p||o)&&(0==s||s==(e.s<0?3:2)):p>5||5==p&&(4==s||o||6==s&&(r>0?a>0?m/f[h-a]:0:i[u-1])%10&1||s==(e.s<0?8:7)),1>n||!i[0])return i.length=0,o?(n-=e.e+1,i[0]=f[(t-n%t)%t],e.e=-n||0):i[0]=e.e=0,e;if(0==r?(i.length=u,d=1,u--):(i.length=u+1,d=f[t-r],i[u]=a>0?l(m/f[h-a]%f[a])*d:0),o)for(;;){if(0==u){for(r=1,a=i[0];a>=10;a/=10,r++);for(a=i[0]+=d,d=1;a>=10;a/=10,d++);r!=d&&(e.e++,i[0]==c&&(i[0]=1));break}if(i[u]+=d,i[u]!=c)break;i[u--]=0,d=1}for(r=i.length;0===i[--r];i.pop());}e.e>L?e.c=e.e=null:e.ec?null!=(e=r[c++]):void 0};return i(t="DECIMAL_PLACES")&&A(e,0,n,2,t)&&(N=0|e),o[t]=N,i(t="ROUNDING_MODE")&&A(e,0,8,2,t)&&(F=0|e),o[t]=F,i(t="EXPONENTIAL_AT")&&(v(e)?A(e[0],-n,0,2,t)&&A(e[1],0,n,2,t)&&(I=0|e[0],V=0|e[1]):A(e,-n,n,2,t)&&(I=-(V=0|(0>e?-e:e)))),o[t]=[I,V],i(t="RANGE")&&(v(e)?A(e[0],-n,-1,2,t)&&A(e[1],1,n,2,t)&&(B=0|e[0],L=0|e[1]):A(e,-n,n,2,t)&&(0|e?B=-(L=0|(0>e?-e:e)):M&&T(2,t+" cannot be zero",e))),o[t]=[B,L],i(t="ERRORS")&&(e===!!e||1===e||0===e?(S=0,A=(M=!!e)?G:k):M&&T(2,t+b,e)),o[t]=M,i(t="CRYPTO")&&(e===!!e||1===e||0===e?(W=!!e&&!!s,e&&!W&&M&&T(2,"crypto unavailable",s)):M&&T(2,t+b,e)),o[t]=W,i(t="MODULO_MODE")&&A(e,0,9,2,t)&&(U=0|e),o[t]=U,i(t="POW_PRECISION")&&A(e,0,n,2,t)&&(P=0|e),o[t]=P,i(t="FORMAT")&&("object"==typeof e?R=e:M&&T(2,t+" not an object",e)),o[t]=R,o},o.max=function(){return q(arguments,i.lt)},o.min=function(){return q(arguments,i.gt)},o.random=function(){var e=9007199254740992,i=Math.random()*e&2097151?function(){return l(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var r,c,u,h,m,a=0,d=[],f=new o(H);if(e=e!=null&&A(e,0,n,14)?0|e:N,u=g(e/t),W)if(s&&s.getRandomValues){for(c=s.getRandomValues(new Uint32Array(u*=2));u>a;)r=131072*c[a]+(c[a+1]>>>11),r>=9e15?(m=s.getRandomValues(new Uint32Array(2)),c[a]=m[0],c[a+1]=m[1]):(d.push(r%1e14),a+=2);a=u/2}else if(s&&s.randomBytes){for(c=s.randomBytes(u*=7);u>a;)r=281474976710656*(31&c[a])+1099511627776*c[a+1]+4294967296*c[a+2]+16777216*c[a+3]+(c[a+4]<<16)+(c[a+5]<<8)+c[a+6],r>=9e15?s.randomBytes(7).copy(c,a):(d.push(r%1e14),a+=7);a=u/7}else M&&T(14,"crypto unavailable",s);if(!a)for(;u>a;)r=i(),9e15>r&&(d[a++]=r%1e14);for(u=d[--a],e%=t,u&&e&&(r=y[t-e],d[a]=l(u/r)*r);0===d[a];d.pop(),a--);if(0>a)d=[h=0];else{for(h=-1;0===d[0];d.shift(),h-=t);for(a=1,r=d[0];r>=10;r/=10,a++);t>a&&(h-=t-a)}return f.e=h,f.c=d,f}}(),D=function(){function e(e,t,n){var i,a,r,c,s=0,o=e.length,l=t%d,u=t/d|0;for(e=e.slice();o--;)r=e[o]%d,c=e[o]/d|0,i=u*r+c*l,a=l*r+i%d*d+s,s=(a/n|0)+(i/d|0)+u*c,e[o]=a%n;return s&&e.unshift(s),e}function n(e,t,n,s){var o,i;if(n!=s)i=n>s?1:-1;else for(o=i=0;n>o;o++)if(e[o]!=t[o]){i=e[o]>t[o]?1:-1;break}return i}function s(e,t,n,s){for(var o=0;n--;)e[n]-=o,o=e[n]1;e.shift());}return function(i,r,d,u,h){var f,p,g,j,y,_,w,O,x,C,E,k,A,S,M,F,T,b=i.s==r.s?1:-1,v=i.c,m=r.c;if(!(v&&v[0]&&m&&m[0]))return new o(i.s&&r.s&&(v?!m||v[0]!=m[0]:m)?v&&0==v[0]||!m?0*b:b/0:NaN);for(w=new o(b),x=w.c=[],E=i.e-r.e,b=d+E+1,h||(h=c,E=a(i.e/t)-a(r.e/t),b=b/t|0),j=0;m[j]==(v[j]||0);j++);if(m[j]>(v[j]||0)&&E--,0>b)x.push(1),M=!0;else{for(F=v.length,y=m.length,j=0,b+=2,p=l(h/(m[0]+1)),p>1&&(m=e(m,p,h),v=e(v,p,h),y=m.length,F=v.length),A=y,f=v.slice(0,y),g=f.length;y>g;f[g++]=0);S=m.slice(),S.unshift(0),T=m[0],m[1]>=h/2&&T++;do{if(p=0,C=n(m,f,y,g),0>C){{if(k=f[0],y!=g&&(k=k*h+(f[1]||0)),p=l(k/T),p>1)for(p>=h&&(p=h-1),_=e(m,p,h),O=_.length,g=f.length;1==n(_,f,O,g);)p--,s(_,O>y?S:m,O,h),O=_.length,C=1;else 0==p&&(C=p=1),_=m.slice(),O=_.length;if(g>O&&_.unshift(0),s(f,_,g,h),g=f.length,-1==C)for(;n(m,f,y,g)<1;)p++,s(f,g>y?S:m,g,h),g=f.length}}else 0===C&&(p++,f=[0]);x[j++]=p,f[0]?f[g++]=v[A]||0:(f=[v[A]],g=1)}while((A++=10;b/=10,j++);z(w,d+(w.e=j+E*t-1)+1,u,M)}else w.e=E,w.r=+M;return w}}(),w=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,s=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(a,r,c,l){var u,d=c?r:r.replace(i,"");if(s.test(d))a.s=isNaN(d)?null:0>d?-1:1;else{if(!c&&(d=d.replace(e,function(e,t,n){return u="x"==(n=n.toLowerCase())?16:"b"==n?2:8,l&&l!=u?e:t}),l&&(u=l,d=d.replace(t,"$1").replace(n,"0.$1")),r!=d))return new o(d,u);M&&T(S,"not a"+(l?" base "+l:"")+" number",r),a.s=null}a.c=a.e=null,S=0}}(),i.absoluteValue=i.abs=function(){var e=new o(this);return e.s<0&&(e.s=1),e},i.ceil=function(){return z(new o(this),this.e+1,2)},i.comparedTo=i.cmp=function(e,t){return S=1,m(this,new o(e,t))},i.decimalPlaces=i.dp=function(){var e,n,s=this.c;if(!s)return null;if(e=((n=s.length-1)-a(this.e/t))*t,n=s[n])for(;n%10==0;n/=10,e--);return 0>e&&(e=0),e},i.dividedBy=i.div=function(e,t){return S=3,D(this,new o(e,t),N,F)},i.dividedToIntegerBy=i.divToInt=function(e,t){return S=4,D(this,new o(e,t),0,1)},i.equals=i.eq=function(e,t){return S=5,0===m(this,new o(e,t))},i.floor=function(){return z(new o(this),this.e+1,3)},i.greaterThan=i.gt=function(e,t){return S=6,m(this,new o(e,t))>0},i.greaterThanOrEqualTo=i.gte=function(e,t){return S=7,1===(t=m(this,new o(e,t)))||0===t},i.isFinite=function(){return!!this.c},i.isInteger=i.isInt=function(){return!!this.c&&a(this.e/t)>this.c.length-2},i.isNaN=function(){return!this.s},i.isNegative=i.isNeg=function(){return this.s<0},i.isZero=function(){return!!this.c&&0==this.c[0]},i.lessThan=i.lt=function(e,t){return S=8,m(this,new o(e,t))<0},i.lessThanOrEqualTo=i.lte=function(e,t){return S=9,-1===(t=m(this,new o(e,t)))||0===t},i.minus=i.sub=function(e,n){var l,d,u,p,m=this,r=m.s;if(S=10,e=new o(e,n),n=e.s,!r||!n)return new o(NaN);if(r!=n)return e.s=-n,m.plus(e);var f=m.e/t,h=e.e/t,s=m.c,i=e.c;if(!f||!h){if(!s||!i)return s?(e.s=-n,e):new o(i?m:NaN);if(!s[0]||!i[0])return i[0]?(e.s=-n,e):new o(s[0]?m:3==F?-0:0)}if(f=a(f),h=a(h),s=s.slice(),r=f-h){for((p=0>r)?(r=-r,u=s):(h=f,u=i),u.reverse(),n=r;n--;u.push(0));u.reverse()}else for(l=(p=(r=s.length)<(n=i.length))?r:n,r=n=0;l>n;n++)if(s[n]!=i[n]){p=s[n]0)for(;n--;s[d++]=0);for(n=c-1;l>r;){if(s[--l]0?(d=h,l=r):(s=-s,l=i),l.reverse();s--;l.push(0));l.reverse()}for(s=i.length,n=r.length,0>s-n&&(l=r,r=i,i=l,n=s),s=0;n;)s=(i[--n]=i[n]+r[n]+s)/c|0,i[n]%=c;return s&&(i.unshift(s),++d),K(e,i,d)},i.precision=i.sd=function(e){var n,s,i=this,o=i.c;if(e!=null&&e!==!!e&&1!==e&&0!==e&&(M&&T(13,"argument"+b,e),e!=!!e&&(e=null)),!o)return null;if(n=o.length-1,s=n*t+1,n=o[n]){for(;n%10==0;n/=10,s--);for(n=o[0];n>=10;n/=10,s++);}return e&&i.e+1>s&&(s=i.e+1),s},i.round=function(e,t){var s=new o(this);return(e==null||A(e,0,n,15))&&z(s,~~e+this.e+1,t!=null&&A(t,0,8,15,j)?0|t:F),s},i.shift=function(e){var t=this;return A(e,-h,h,16,"argument")?t.times("1e"+O(e)):new o(t.c&&t.c[0]&&(-h>e||e>h)?t.s*(0>e?0:1/0):t)},i.squareRoot=i.sqrt=function(){var t,n,i,d,h,c=this,l=c.c,e=c.s,s=c.e,u=N+4,m=new o("0.5");if(1!==e||!l||!l[0])return new o(!e||0>e&&(!l||l[0])?NaN:l?c:1/0);if(e=Math.sqrt(+c),0==e||e==1/0?(t=r(l),(t.length+s)%2==0&&(t+="0"),e=Math.sqrt(t),s=a((s+1)/2)-(0>s||s%2),e==1/0?t="1e"+s:(t=e.toExponential(),t=t.slice(0,t.indexOf("e")+1)+s),n=new o(t)):n=new o(e+""),n.c[0])for(s=n.e,e=s+u,3>e&&(e=0);;)if(i=n,n=m.times(i.plus(D(c,i,u,1))),r(i.c).slice(0,e)===(t=r(n.c)).slice(0,e)){if(n.eh&&(l=i,i=s,s=l,r=h,h=f,f=r),r=h+f,l=[];r--;l.push(0));for(y=c,u=d,r=f;--r>=0;){for(g=0,_=s[r]%u,j=s[r]/u|0,b=h,p=r+b;p>r;)m=i[--b]%u,w=i[b]/u|0,O=j*m+w*_,m=_*m+O%u*u+l[p]+g,g=(m/y|0)+(O/u|0)+j*w,l[p--]=m%y;l[p]=g}return g?++x:l.shift(),K(e,l,x)},i.toDigits=function(e,t){var s=new o(this);return e=e!=null&&A(e,1,n,18,"precision")?0|e:null,t=t!=null&&A(t,0,8,18,j)?0|t:F,e?z(s,e,t):s},i.toExponential=function(e,t){return $(this,e!=null&&A(e,0,n,19)?~~e+1:null,t,19)},i.toFixed=function(e,t){return $(this,e!=null&&A(e,0,n,20)?~~e+this.e+1:null,t,20)},i.toFormat=function(e,t){if(r=$(this,e!=null&&A(e,0,n,21)?~~e+this.e+1:null,t,21),this.c){var s,r,u=r.split("."),i=+R.groupSize,a=+R.secondaryGroupSize,h=R.groupSeparator,o=u[0],d=u[1],m=this.s<0,c=m?o.slice(1):o,l=c.length;if(a&&(s=i,i=a,a=s,l-=s),i>0&&l>0){for(s=l%i||i,o=c.substr(0,s);l>s;s+=i)o+=h+c.substr(s,i);a>0&&(o+=h+c.slice(s)),m&&(o="-"+o)}r=d?o+R.decimalSeparator+((a=+R.fractionGroupSize)?d.replace(new RegExp("\\d{"+a+"}\\B","g"),"$&"+R.fractionGroupSeparator):d):o}return r},i.toFraction=function(e){var n,s,i,a,u,m,p,g,b,f=M,h=this,v=h.c,c=new o(H),d=a=new o(H),l=i=new o(H);if(e!=null&&(M=!1,n=new o(e),M=f,(!(f=n.isInt())||n.lt(H))&&(M&&T(22,"max denominator "+(f?"out of range":"not an integer"),e),e=!f&&n.c&&z(n,n.e+1,1).gte(H)?n:null)),!v)return h.toString();for(g=r(v),u=c.e=g.length-h.e-1,c.c[0]=y[(m=u%t)<0?t+m:m],e=!e||n.cmp(c)>0?u>0?c:d:n,m=L,L=1/0,n=new o(g),i.c[0]=0;p=D(n,c,0,1),s=a.plus(p.times(l)),1!=s.cmp(e);)a=l,l=s,d=i.plus(p.times(s=d)),i=s,c=n.minus(p.times(s=c)),n=s;return s=D(e.minus(a),l,0,1),i=i.plus(s.times(d)),a=a.plus(s.times(l)),i.s=d.s=h.s,u*=2,b=D(d,l,u,F).minus(h).abs().cmp(D(i,a,u,F).minus(h).abs())<1?[d.toString(),l.toString()]:[i.toString(),a.toString()],L=m,b},i.toNumber=function(){return+this},i.toPower=i.pow=function(e){var n,s,a=l(0>e?-e:+e),i=this;if(!A(e,-h,h,23,"exponent")&&(!isFinite(e)||a>h&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new o(Math.pow(+i,e));for(s=P?g(P/t+2):0,n=new o(H);;){if(a%2){if(n=n.times(i),!n.c)break;s&&n.c.length>s&&(n.c.length=s)}if(a=l(a/2),!a)break;i=i.times(i),s&&i.c&&i.c.length>s&&(i.c.length=s)}return 0>e&&(n=H.div(n)),s?z(n,P,F):n},i.toPrecision=function(e,t){return $(this,e!=null&&A(e,1,n,24,"precision")?0|e:null,t,24)},i.toString=function(e){var t,s=this,o=s.s,n=s.e;return null===n?o?(t="Infinity",0>o&&(t="-"+t)):t="NaN":(t=r(s.c),t=e!=null&&A(e,2,64,25,"base")?Y(u(t,n),0|e,10,o):I>=n||n>=V?f(t,n):u(t,n),0>o&&s.c[0]&&(t="-"+t)),t},i.truncated=i.trunc=function(){return z(new o(this),this.e+1,1)},i.valueOf=i.toJSON=function(){var e,n=this,t=n.e;return null===t?n.toString():(e=r(n.c),e=I>=t||t>=V?f(e,t):u(e,t),n.s<0?"-"+e:e)},e!=null&&o.config(e),o}function a(e){var t=0|e;return e>0||e===t?t:t-1}function r(e){for(var n,i,a=1,s=e.length,o=e[0]+"";s>a;){for(n=e[a++]+"",i=t-n.length;i--;n="0"+n);o+=n}for(s=o.length;48===o.charCodeAt(--s););return o.slice(0,s+1||1)}function m(e,t){var s,i,o=e.c,a=t.c,n=e.s,l=t.s,r=e.e,c=t.e;if(!n||!l)return null;if(s=o&&!o[0],i=a&&!a[0],s||i)return s?i?0:-l:n;if(n!=l)return n;if(s=0>n,i=r==c,!o||!a)return i?0:!o^s?1:-1;if(!i)return r>c^s?1:-1;for(l=(r=o.length)<(c=a.length)?r:c,n=0;l>n;n++)if(o[n]!=a[n])return o[n]>a[n]^s?1:-1;return r==c?0:r>c^s?1:-1}function k(e,t,n){return(e=O(e))>=t&&n>=e}function v(e){return"[object Array]"==Object.prototype.toString.call(e)}function x(e,t,n){for(var o,i,s=[0],a=0,r=e.length;r>a;){for(i=s.length;i--;s[i]*=t);for(s[o=0]+=_.indexOf(e.charAt(a++));on-1&&(null==s[o+1]&&(s[o+1]=0),s[o+1]+=s[o]/n|0,s[o]%=n)}return s.reverse()}function f(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>t?"e":"e+")+t}function u(e,t){var n,s;if(0>t){for(n="0.";++t;n+="0");e=n+e}else if(s=e.length,++t>s){for(n="0",t-=s;--t;n+="0");e+=n}else s>t&&(e=e.slice(0,t)+"."+e.slice(t));return e}function O(e){return e=parseFloat(e),0>e?g(e):l(e)}var s,w,E=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,g=Math.ceil,l=Math.floor,b=" not a boolean or binary digit",j="rounding mode",C="number type has more than 15 significant digits",_="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",c=1e14,t=14,h=9007199254740991,y=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,n=1e9;if("undefined"!=typeof crypto&&(s=crypto),"function"==typeof o&&o.amd)o(function(){return p()});else if("undefined"!=typeof module&&module.exports){if(module.exports=p(),!s)try{s=require("crypto")}catch{}}else e||(e="undefined"!=typeof i?i:Function("return this")()),e.BigNumber=p()}(this)}(t[0],s("Numeric"))},Opal.modules.bigdecimal=function(e){var m=e.klass,E=e.module,s=e.def,C=e.slice,x=e.extract_kwargs,O=e.ensure_kwargs,p=e.kwrestargs,w=e.send,v=e.to_a,u=e.defs,o=e.const_set,n=e.truthy,i=e.eqeqeq,l=e.send2,d=e.find_super,g=e.rb_lt,c=e.to_ary,b=e.rb_gt,j=e.rb_ge,y=e.eqeq,_=e.rb_divide,r=e.alias,f=e.top,a=[],h=e.$r(a),t=e.nil;return e.add_stubs("require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?,add,minus,mult,quo,to_s"),m(a[0],h("Numeric"),"BigDecimal"),f.$require("js"),f.$require("bigdecimal/bignumber"),function(n,o){var i=E(n,"Kernel"),a=[i].concat(o),r=e.$r(a);return s(i,"$BigDecimal",function(n,s){var o=t;return s==null&&(s=0),o=r("BigDecimal").$allocate(),o.$initialize(n,s),o},-2)}(a[0],a),u(h("BigDecimal"),"$new",function(){var a=this,i=C(arguments),o=x(i),o=O(o),r=i,c=p(o,{});return a.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",new Map([["uplevel",1]])),w(a,"BigDecimal",v(r).concat([e.to_hash(c)]))},-1),function(a,h,f){var p=m(a,h,"BigDecimal"),w=[p].concat(f),v=e.$r(w);return o(w[0],"VERSION","0"),o(w[0],"ROUND_MODE",256),o(w[0],"ROUND_UP",0),o(w[0],"ROUND_DOWN",1),o(w[0],"ROUND_CEILING",2),o(w[0],"ROUND_FLOOR",3),o(w[0],"ROUND_HALF_UP",4),o(w[0],"ROUND_HALF_DOWN",5),o(w[0],"ROUND_HALF_EVEN",6),o(w[0],"SIGN_NaN",0),o(w[0],"SIGN_POSITIVE_ZERO",1),o(w[0],"SIGN_NEGATIVE_ZERO",-1),o(w[0],"SIGN_POSITIVE_FINITE",2),o(w[0],"SIGN_NEGATIVE_FINITE",-2),o(w[0],"SIGN_POSITIVE_INFINITE",3),o(w[0],"SIGN_NEGATIVE_INFINITE",-3),u(p,"$limit",function(s){var o=this;return o.digits==null&&(o.digits=t),s==null&&(s=t),n(s)&&(o.digits=s),o.digits},-1),u(p,"$mode",function(s,o){var a=this,c=t,r=t;return a.round_mode==null&&(a.round_mode=t),o==null&&(o=t),i(v("ROUND_MODE"),c=s)?(n(o)&&(a.round_mode=o),n(r=a.round_mode)?r:v("ROUND_HALF_UP")):t},-2),p.$attr_reader("bignumber"),s(p,"$initialize",function(t,n){var s=this;return n==null&&(n=0),s.bignumber=v("JS").$new(v("BigNumber"),t)},-2),s(p,"$==",function(n){var s=this,o=t;return i(s.$class(),o=n)?s.$bignumber().equals(n.$bignumber()):!!i(v("Number"),o)&&s.$bignumber().equals(n)}),s(p,"$<=>",function(n){var s=this,o=t,a=t,o=i(s.$class(),a=n)?s.$bignumber().comparedTo(n.$bignumber()):i(v("Number"),a)?s.$bignumber().comparedTo(n):t;return o===null?t:o}),s(p,"$<",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,"<",e,!1,!0),"<",[s],i)}),s(p,"$<=",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,"<=",e,!1,!0),"<=",[s],i)}),s(p,"$>",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,">",e,!1,!0),">",[s],i)}),s(p,"$>=",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,">=",e,!1,!0),">=",[s],i)}),s(p,"$abs",function(){var t=this;return t.$class().$new(t.$bignumber().abs())}),s(p,"$add",function(s,o){var a,l,i=this,d=t,r=t;return o==null&&(o=0),n(o["$nil?"]())&&i.$raise(v("TypeError"),"wrong argument type nil (expected Fixnum)"),n(g(o,0))&&i.$raise(v("ArgumentError"),"argument must be positive"),l=i.$coerce(s),a=c(l),s=a[0]==null?t:a[0],d=a[1]==null?t:a[1],l,r=i.$bignumber().plus(s.$bignumber()),n(b(o,0))&&(r=r.toDigits(o,i.$class().$mode(v("ROUND_MODE")))),i.$class().$new(r)},-2),s(p,"$ceil",function(s){var o=this;return s==null&&(s=t),n(o.$bignumber().isFinite())||o.$raise(v("FloatDomainError"),"Computation results to 'Infinity'"),n(s["$nil?"]())?o.$bignumber().round(0,v("ROUND_CEILING")).toNumber():n(j(s,0))?o.$class().$new(o.$bignumber().round(s,v("ROUND_CEILING"))):o.$class().$new(o.$bignumber().round(0,v("ROUND_CEILING")))},-1),s(p,"$coerce",function(n){var s=this,o=t;return i(s.$class(),o=n)?[n,s]:i(v("Number"),o)?[s.$class().$new(n),s]:s.$raise(v("TypeError"),""+n.$class()+" can't be coerced into "+s.$class())}),s(p,"$div",function(s,o){var a,r,i=this,l=t;return o==null&&(o=t),y(o,0)?_(i,s):(r=i.$coerce(s),a=c(r),s=a[0]==null?t:a[0],l=a[1]==null?t:a[1],r,(n(i["$nan?"]())||n(s["$nan?"]()))&&i.$raise(v("FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),n(o["$nil?"]())?(n(s["$zero?"]())&&i.$raise(v("ZeroDivisionError"),"divided by 0"),n(i["$infinite?"]())&&i.$raise(v("FloatDomainError"),"Computation results to 'Infinity'"),i.$class().$new(i.$bignumber().dividedToIntegerBy(s.$bignumber()))):i.$class().$new(i.$bignumber().dividedBy(s.$bignumber()).round(o,i.$class().$mode(v("ROUND_MODE")))))},-2),s(p,"$finite?",function(){var t=this;return t.$bignumber().isFinite()}),s(p,"$infinite?",function(){var s=this;return n(s["$finite?"]())||n(s["$nan?"]())?t:n(s.$bignumber().isNegative())?-1:1}),s(p,"$minus",function(n){var o=this,a=t,i=o.$coerce(n),s=c(i);return n=s[0]==null?t:s[0],a=s[1]==null?t:s[1],i,o.$class().$new(o.$bignumber().minus(n.$bignumber()))}),s(p,"$mult",function(s,o){var a,r,i=this,l=t;return o==null&&(o=t),r=i.$coerce(s),a=c(r),s=a[0]==null?t:a[0],l=a[1]==null?t:a[1],r,n(o["$nil?"]())?i.$class().$new(i.$bignumber().times(s.$bignumber())):i.$class().$new(i.$bignumber().times(s.$bignumber()).round(o,i.$class().$mode(v("ROUND_MODE"))))},-2),s(p,"$nan?",function(){var t=this;return t.$bignumber().isNaN()}),s(p,"$quo",function(n){var o=this,a=t,i=o.$coerce(n),s=c(i);return n=s[0]==null?t:s[0],a=s[1]==null?t:s[1],i,o.$class().$new(o.$bignumber().dividedBy(n.$bignumber()))}),s(p,"$sign",function(){var s=this;return n(s.$bignumber().isNaN())?v("SIGN_NaN"):n(s.$bignumber().isZero())?n(s.$bignumber().isNegative())?v("SIGN_NEGATIVE_ZERO"):v("SIGN_POSITIVE_ZERO"):t}),s(p,"$sub",function(n){var i=this,r=t,a=i.$coerce(n),o=c(a);return n=o[0]==null?t:o[0],r=o[1]==null?t:o[1],a,i.$class().$new(i.$bignumber().minus(n.$bignumber()))}),s(p,"$to_f",function(){var t=this;return t.$bignumber().toNumber()}),s(p,"$to_s",function(t){var n=this;return t==null&&(t=""),n.$bignumber().toString()},-1),s(p,"$zero?",function(){var t=this;return t.$bignumber().isZero()}),r(p,"===","=="),r(p,"+","add"),r(p,"-","minus"),r(p,"*","mult"),r(p,"/","quo"),r(p,"inspect","to_s")}(a[0],h("Numeric"),a)},Opal.modules.native=function(e){var g=e.hash_put,p=e.module,d=e.defs,r=e.slice,s=e.truthy,o=e.send,m=e.Kernel,_=e.extract_kwargs,S=e.ensure_kwargs,A=e.hash_get,k=e.range,l=e.to_a,n=e.def,b=e.return_ivar,u=e.alias,a=e.klass,f=e.rb_minus,E=e.return_val,x=e.send2,O=e.find_super,v=e.eqeqeq,w=e.rb_ge,y=e.return_self,j=e.gvars,C=e.top,i=[],h=e.$r(i),t=e.nil,c=e.$$$;return e.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,Array,to_a,_Array,method_missing,bind,instance_method,[]=,slice,-,length,has_key?,enum_for,===,>=,<<,each_pair,method_defined?,initialize,_initialize,name,native_module"),function(i,a){var c=p(i,"Native"),u=[c].concat(a),h=e.$r(u);return d(c,"$is_a?",function(t,n){var s=this;try{return t instanceof s.$try_convert(n)}catch{return!1}}),d(c,"$try_convert",function(n,s){var o=this;return s==null&&(s=t),o["$native?"](n)?n:n["$respond_to?"]("to_n")?n.$to_n():s},-2),d(c,"$convert",function(t){var n=this;if(n["$native?"](t))return t;if(t["$respond_to?"]("to_n"))return t.$to_n();n.$raise(h("ArgumentError"),""+t.$inspect()+" isn't native")}),d(c,"$call",function e(n,s){var i,a,c,l,u,h,f,p,m=e.$$p||t,d=this;if(e.$$p=null,f=r(arguments,2),a=f,c=n[s],c instanceof Function){for(l=new Array(a.length),i=0,p=a.length;i0&&(c=m.shift()),c==null&&(c=n),h=A(f,"as"),h==null&&(h=t),s(c["$end_with?"]("="))?o(u,"define_method",[n],function e(n){var s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),n==null&&(n=t),s.native[c["$[]"](k(0,-2,!1))]=d("Native").$convert(n),n},{$$s:u}):s(h)?o(u,"define_method",[n],function e(){var u,m,f=e.$$p||t,i=e.$$s==null?this:e.$$s,a=t;return i.native==null&&(i.native=t),e.$$p=null,u=r(arguments),m=u,a=o(d("Native"),"call",[i.native,c].concat(l(m)),f.$to_proc()),s(a)?h.$new(a.$to_n()):t},{$$arity:-1,$$s:u}):o(u,"define_method",[n],function e(){var i,a,u=e.$$p||t,s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),e.$$p=null,i=r(arguments),a=i,o(d("Native"),"call",[s.native,c].concat(l(a)),u.$to_proc())},{$$arity:-1,$$s:u})},-2),n(c,"$native_reader",function(){var a=this,s=r(arguments),i=s;return o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"define_method",[n],function e(){var s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),s.$Native(s.native[n])},{$$s:s})},{$$s:a})},-1),n(c,"$native_writer",function(){var a=this,s=r(arguments),i=s;return o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"define_method",[""+n+"="],function e(s){var o=e.$$s==null?this:e.$$s;return o.native==null&&(o.native=t),s==null&&(s=t),o.$Native(o.native[n]=s)},{$$s:s})},{$$s:a})},-1),n(c,"$native_accessor",function(){var s=this,i=r(arguments),n=i;return o(s,"native_reader",l(n)),o(s,"native_writer",l(n))},-1)}(u[0],u),function(t,o){var i=p(t,"Wrapper"),r=[i].concat(o),a=e.$r(r);return n(i,"$initialize",function(t){var n=this;return s(m["$native?"](t))||m.$raise(a("ArgumentError"),""+t.$inspect()+" isn't native"),n.native=t}),n(i,"$to_n",b("native")),d(i,"$included",function(t){return t.$extend(a("Helpers"))})}(u[0],u),d(c,"$included",function(t){var n=this;return n.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),t.$include(h("Wrapper"))})}(i[0],i),function(i,a){var d=p(i,"Kernel"),m=[d].concat(a),h=e.$r(m);return n(d,"$native?",function(t){return t==null||!t.$$class}),n(d,"$Native",function e(n){var a=e.$$p||t,i=this;return e.$$p=null,s(n==null)?t:s(i["$native?"](n))?c(h("Native"),"Object").$new(n):s(n["$is_a?"](h("Array")))?o(n,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$Native(n)},{$$s:i}):s(n["$is_a?"](h("Proc")))?o(i,"proc",[],function e(){var i,a,c=e.$$p||t,d=e.$$s==null?this:e.$$s;return e.$$p=null,i=r(arguments),a=i,d.$Native(o(n,"call",l(a),c.$to_proc()))},{$$arity:-1,$$s:i}):n}),u(d,"_Array","Array"),n(d,"$Array",function e(n){var a,d,m=e.$$p||t,u=this;return e.$$p=null,a=r(arguments,1),d=a,s(u["$native?"](n))?o(c(h("Native"),"Array"),"new",[n].concat(l(d)),m.$to_proc()).$to_a():u.$_Array(n)},-2)}(i[0],i),function(i,d){var h=a(i,d,"Object"),p=h.$$prototype;return p.native=t,h.$include(c(c("Native"),"Wrapper")),n(h,"$==",function(t){var n=this;return n.native===c("Native").$try_convert(t)}),n(h,"$has_key?",function(n){var s=this;return e.hasOwnProperty.call(s.native,n)}),n(h,"$each",function n(){var a,c,u,d=n.$$p||t,i=this;if(n.$$p=null,a=r(arguments),c=a,d!==t){for(u in i.native)e.yieldX(d,[u,i.native[u]]);return i}return o(i,"method_missing",["each"].concat(l(c)))},-1),n(h,"$[]",function(t){var n=this,s=n.native[t];return s instanceof Function?s:c("Native").$call(n.native,t)}),n(h,"$[]=",function(n,o){var a=this,i=t,i=c("Native").$try_convert(o);return s(i===t)?a.native[n]=o:a.native[n]=i}),n(h,"$merge!",function(t){var s,n=this;t=c("Native").$convert(t);for(s in t)n.native[s]=t[s];return n}),n(h,"$respond_to?",function(t,n){var s=this;return n==null&&(n=!1),m.$instance_method("respond_to?").$bind(s).$call(t,n)},-2),n(h,"$respond_to_missing?",function(n,s){var o=this;return s==null&&(s=!1),e.hasOwnProperty.call(o.native,n)},-2),n(h,"$method_missing",function e(n){var i,a,d,h=e.$$p||t,u=this;return e.$$p=null,d=r(arguments,1),a=d,n.charAt(n.length-1)==="="?(i=[n.$slice(0,f(n.$length(),1)),a["$[]"](0)],o(u,"[]=",i),i[i.length-1]):o(c("Native"),"call",[u.native,n].concat(l(a)),h.$to_proc())},-2),n(h,"$nil?",E(!1)),n(h,"$is_a?",function(n){var s=this;return e.is_a(s,n)}),n(h,"$instance_of?",function(t){var n=this;return n.$$class===t}),n(h,"$class",function(){var t=this;return t.$$class}),n(h,"$to_a",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=new Map),o(c(c("Native"),"Array"),"new",[i.native,n],s.$to_proc()).$to_a()},-1),n(h,"$inspect",function(){var t=this;return"#"}),u(h,"include?","has_key?"),u(h,"key?","has_key?"),u(h,"kind_of?","is_a?"),u(h,"member?","has_key?")}(h("Native"),h("BasicObject")),function(o,i,r){var l=a(o,i,"Array"),m=[l].concat(r),d=e.$r(m),h=l.$$prototype;return h.named=h.native=h.get=h.block=h.set=h.length=t,l.$include(c(d("Native"),"Wrapper")),l.$include(d("Enumerable")),n(l,"$initialize",function e(n,o){var r=e.$$p||t,i=this,a=t;return e.$$p=null,o==null&&(o=new Map),x(i,O(i,"initialize",e,!1,!0),"initialize",[n],null),i.get=s(a=o["$[]"]("get"))?a:o["$[]"]("access"),i.named=o["$[]"]("named"),i.set=s(a=o["$[]"]("set"))?a:o["$[]"]("access"),i.length=s(a=o["$[]"]("length"))?a:"length",i.block=r,s(i.$length()==null)?i.$raise(d("ArgumentError"),"no length found on the array-like object"):t},-2),n(l,"$each",function n(){var i,r,a=n.$$p||t,o=this;if(n.$$p=null,!s(a))return o.$enum_for("each");for(i=0,r=o.$length();i>8-t%1*8))s=o.charCodeAt(t+=3/4),s>255&&l.$raise(h("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),n=n<<8|s;return a},u=function(e){n=String(e).replace(/=+$/,""),n.length%4==1&&l.$raise(h("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var t,n,o,s=0,a=0,i="";t=n.charAt(a++);~t&&(o=s%4?o*64+t:t,s++%4)?i+=String.fromCharCode(255&o>>(-2*s&6)):0)t=m.indexOf(t);return i};return t(l,"$decode64",function(t){return u(t.replace(/\r?\n/g,""))}),t(l,"$encode64",function(t){return d(t).replace(/(.{60})/g,`$1 +`).replace(/([^\n])$/g,`$1 +`)}),t(l,"$strict_decode64",function(t){return u(t)}),t(l,"$strict_encode64",function(t){return d(t)}),t(l,"$urlsafe_decode64",function(t){return u(t.replace(/-/g,"+").replace(/_/g,"/"))}),t(l,"$urlsafe_encode64",function(t,n){var s,c=r;return n=o(n),s=i(n,"padding"),s==null&&(s=!0),c=d(t).replace(/\+/g,"-").replace(/\//g,"_"),a(s)||(c=c.$delete("=")),c},-2)}(n[0],n)},Opal.modules.console=function(e){var c=e.klass,t=e.def,s=e.slice,o=e.truthy,i=e.eqeq,a=e.send,l=e.gvars,d=e.top,r=[],u=e.$r(r),n=e.nil,h=e.$$$;return e.add_stubs("require,include,raise,==,arity,instance_exec,to_proc,new"),d.$require("native"),function(r,l,d){var u=c(r,l,"Console"),f=[u].concat(d),m=e.$r(f),p=u.$$prototype;return p.native=n,u.$include(h(m("Native"),"Wrapper")),t(u,"$clear",function(){var t=this;return t.native.clear()}),t(u,"$trace",function(){var t=this;return t.native.trace()}),t(u,"$log",function(){var n=this,o=s(arguments),i=o;return n.native.log.apply(n.native,i)},-1),t(u,"$info",function(){var n=this,o=s(arguments),i=o;return n.native.info.apply(n.native,i)},-1),t(u,"$warn",function(){var n=this,o=s(arguments),i=o;return n.native.warn.apply(n.native,i)},-1),t(u,"$error",function(){var n=this,o=s(arguments),i=o;return n.native.error.apply(n.native,i)},-1),t(u,"$time",function t(s){var c=t.$$p||n,r=this;return t.$$p=null,o(c)||r.$raise(m("ArgumentError"),"no block given"),r.native.time(s),function(){try{return i(c.$arity(),0)?a(r,"instance_exec",[],c.$to_proc()):e.yield1(c,r)}finally{r.native.timeEnd()}}()}),t(u,"$group",function t(){var d,u,l=t.$$p||n,c=this;return t.$$p=null,d=s(arguments),u=d,o(l)||c.$raise(m("ArgumentError"),"no block given"),c.native.group.apply(c.native,u),function(){try{return i(l.$arity(),0)?a(c,"instance_exec",[],l.$to_proc()):e.yield1(l,c)}finally{c.native.groupEnd()}}()},-1),t(u,"$group!",function t(){var l,d,c=t.$$p||n,r=this;return t.$$p=null,l=s(arguments),d=l,c!==n?(r.native.groupCollapsed.apply(r.native,d),function(){try{return i(c.$arity(),0)?a(r,"instance_exec",[],c.$to_proc()):e.yield1(c,r)}finally{r.native.groupEnd()}}()):n},-1)}(r[0],null,r),o(typeof e.global.console!="undefined")?l.console=u("Console").$new(e.global.console):n},Opal.modules.forwardable=function(e){var c=e.module,n=e.send,s=e.truthy,o=e.def,i=e.slice,r=e.to_a,a=e.alias,l=[],t=e.nil;return e.add_stubs("each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,instance_delegate,def_instance_delegators,def_single_delegator,define_singleton_method,single_delegate,def_single_delegators"),function(e){var l=c(e,"Forwardable");return o(l,"$instance_delegate",function(o){var i=this;return n(o,"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(o["$respond_to?"]("each"))||(o=[o]),n(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$def_instance_delegator(i,n)},{$$s:a})},{$$s:i})}),o(l,"$def_instance_delegators",function(o){var l=this,r=i(arguments,1),c=r;return n(c,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(["__send__","__id__"]["$include?"](n))?t:i.$def_instance_delegator(o,n)},{$$s:l})},-2),o(l,"$def_instance_delegator",function e(o,a,c){var d=e.$$p||t,l=this;return e.$$p=null,c==null&&(c=a),s(o.$to_s()["$start_with?"]("@"))?n(l,"define_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$instance_variable_get(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l}):n(l,"define_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$__send__(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l})},-3),a(l,"delegate","instance_delegate"),a(l,"def_delegators","def_instance_delegators"),a(l,"def_delegator","def_instance_delegator")}(l[0]),function(e){var l=c(e,"SingleForwardable");return o(l,"$single_delegate",function(o){var i=this;return n(o,"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(o["$respond_to?"]("each"))||(o=[o]),n(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$def_single_delegator(i,n)},{$$s:a})},{$$s:i})}),o(l,"$def_single_delegators",function(o){var l=this,r=i(arguments,1),c=r;return n(c,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(["__send__","__id__"]["$include?"](n))?t:i.$def_single_delegator(o,n)},{$$s:l})},-2),o(l,"$def_single_delegator",function e(o,a,c){var d=e.$$p||t,l=this;return e.$$p=null,c==null&&(c=a),s(o.$to_s()["$start_with?"]("@"))?n(l,"define_singleton_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$instance_variable_get(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l}):n(l,"define_singleton_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$__send__(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l})},-3),a(l,"delegate","single_delegate"),a(l,"def_delegators","def_single_delegators"),a(l,"def_delegator","def_single_delegator")}(l[0])},Opal.modules["date/infinity"]=function(e){var r=e.klass,t=e.def,i=e.return_val,s=e.eqeqeq,m=e.to_ary,h=e.send2,c=e.find_super,u=e.eqeq,l=e.truthy,d=e.rb_gt,o=[],n=e.nil,a=e.$$$;return e.add_stubs("include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>"),function(o,f,p){var v=r(o,f,"Date"),g=[v].concat(p),b=e.$r(g);return function(o,f,p){var g=r(o,f,"Infinity"),b=[g].concat(p),v=e.$r(b),j=g.$$prototype;return j.d=n,g.$include(v("Comparable")),t(g,"$initialize",function(t){var n=this;return t==null&&(t=1),n.d=t["$<=>"](0)},-1),g.$attr_reader("d"),t(g,"$zero?",i(!1)),t(g,"$finite?",i(!1)),t(g,"$infinite?",function(){var t=this;return t.$d()["$nonzero?"]()}),t(g,"$nan?",function(){var t=this;return t.$d()["$zero?"]()}),t(g,"$abs",function(){var t=this;return t.$class().$new()}),t(g,"$-@",function(){var t=this;return t.$class().$new(t.$d()["$-@"]())}),t(g,"$+@",function(){var t=this;return t.$class().$new(t.$d()["$+@"]())}),t(g,"$<=>",function(o){var i,a,r=this,c=n,l=n,d=n;if(s(v("Infinity"),c=o))return r.$d()["$<=>"](o.$d());if(s(v("Numeric"),c))return r.$d();try{return a=o.$coerce(r),i=m(a),l=i[0]==null?n:i[0],d=i[1]==null?n:i[1],a,l["$<=>"](d)}catch(t){if(e.rescue(t,[v("NoMethodError")]))try{return n}finally{e.pop_exception(t)}else throw t}}),t(g,"$coerce",function e(t){var i=e.$$p||n,o=this,a=n;return e.$$p=null,s(v("Numeric"),a=t)?[o.$d()["$-@"](),o.$d()]:h(o,c(o,"coerce",e,!1,!0),"coerce",[t],i)}),t(g,"$to_f",function(){var t=this;return u(t.d,0)?0:l(d(t.d,0))?a(v("Float"),"INFINITY"):a(v("Float"),"INFINITY")["$-@"]()})}(g[0],b("Numeric"),g)}(o[0],null,o)},Opal.modules.time=function(e){var p=e.klass,c=e.defs,g=e.ensure_kwargs,o=e.hash_get,u=e.send,a=e.eqeqeq,n=e.truthy,f=e.rb_gt,r=e.rb_plus,d=e.alias,i=e.def,h=e.return_self,m=e.top,l=[],t=e.nil,s=e.$$$;return e.add_stubs("define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,rfc2822,xmlschema,wrap,require"),function(l,m,v){var b=p(l,m,"Time"),y=[b].concat(v),j=e.$r(y);return c(b,"$parse",function(t){var n=Date.parse(t);return n!==n&&(t=t.replace(/^(\d+)([./])(\d+)([\./])?(\d+)?/,function(e,t,n,s,o,i){return n===o&&i?t+"-"+s+"-"+i:s&&!o?t+"-"+s+"-01":e}),n=Date.parse(t)),new Date(n)}),c(b,"$def_formatter",function(i,c,l){var d,h,m,p,v,b=this;return l=g(l),h=o(l,"on_utc"),h==null&&(h=!1),m=o(l,"utc_tz"),m==null&&(m=t),d=o(l,"tz_format"),d==null&&(d=t),p=o(l,"fractions"),p==null&&(p=!1),v=o(l,"on"),v==null&&(v=b),u(v,"define_method",[i],function e(o){var b,j,i=e.$$s==null?this:e.$$s,g=t,v=t,u=t,l=t;return o==null&&(o=0),a(n(g=(b=s("::","DateTime","skip_raise"))?"constant":t)?s("DateTime"):g,v=i)?u=n(h)?i.$new_offset(0):i:a(n(g=(j=s("::","Date","skip_raise"))?"constant":t)?s("Date"):g,v)?u=s("Time").$utc(i.$year(),i.$month(),i.$day()):a(s("Time"),v)?u=n(h)?i.$getutc():i:t,l=u.$strftime(c),n(p)&&n(f(o,0))&&(l=r(l,u.$strftime(".%"+o+"N"))),n(m)?l=r(l,n(i.$utc())?m:u.$strftime(d)):n(d)&&(l=r(l,u.$strftime(d))),l},{$$arity:-1,$$s:b})},-3),b.$def_formatter("rfc2822","%a, %d %b %Y %T ",new Map([["utc_tz","-00:00"],["tz_format","%z"]])),d(b,"rfc822","rfc2822"),b.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["on_utc",!0]])),b.$def_formatter("xmlschema","%FT%T",new Map([["utc_tz","Z"],["tz_format","%:z"],["fractions",!0]])),d(b,"iso8601","xmlschema"),i(b,"$to_date",function(){var t=this;return j("Date").$wrap(t)}),i(b,"$to_datetime",function(){var t=this;return j("DateTime").$wrap(t)}),i(b,"$to_time",h)}(l[0],null,l),m.$require("date")},Opal.modules["date/date_time"]=function(e){var m=e.klass,t=e.def,o=e.alias,a=e.rb_divide,h=e.rb_times,d=e.rb_plus,r=e.rb_minus,c=e.truthy,l=e.return_self,s=[],u=e.$r(s),i=e.nil,n=e.$$$;return e.add_stubs("wrap,now,parse,new,def_delegators,min,sec,/,usec,sec_fraction,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day"),function(s,u,f){var p=m(s,u,"DateTime"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.date=i,function(n,s){var i=[n].concat(s),o=e.$r(i);return t(n,"$now",function(){var t=this;return t.$wrap(o("Time").$now())}),t(n,"$parse",function(t){var n=this;return n.$wrap(o("Time").$parse(t))})}(e.get_singleton_class(p),v),t(p,"$initialize",function(t,n,s,o,i,a,r,c){var l=this;return t==null&&(t=-4712),n==null&&(n=1),s==null&&(s=1),o==null&&(o=0),i==null&&(i=0),a==null&&(a=0),r==null&&(r=0),c==null&&(c=g("ITALY")),t===1582&&n===10&&s>4&&s<15&&(s=4),l.date=g("Time").$new(t,n,s,o,i,a,r),l.start=c},-1),p.$def_delegators("@date","min","hour","sec"),o(p,"minute","min"),o(p,"second","sec"),t(p,"$sec_fraction",function(){var t=this;return a(t.date.$usec(),n("Rational").$new(1e6,1))}),o(p,"second_fraction","sec_fraction"),t(p,"$offset",function(){var t=this;return a(t.date.$gmt_offset(),h(24,n("Rational").$new(3600,1)))}),t(p,"$+",function(t){var s=this;return n("DateTime").$wrap(d(s.date,t))}),t(p,"$-",function(s){var a=this,o=i;return e.is_a(s,n("Date"))&&(s=s.date),o=r(a.date,s),c(o["$is_a?"](n("Time")))?n("DateTime").$wrap(o):o}),t(p,"$new_offset",function(t){var s=this,n=i,n=s.$clone();return t=g("Time").$_parse_offset(t),n.date.timezone=t,n}),t(p,"$to_datetime",l),t(p,"$to_time",function(){var t=this;return t.date.$dup()}),t(p,"$to_date",function(){var t=this;return g("Date").$new(t.$year(),t.$month(),t.$day())})}(s[0],u("Date"),s)},Opal.modules["date/formatters"]=function(e){var s=e.klass,o=e.slice,i=e.extract_kwargs,a=e.ensure_kwargs,r=e.kwrestargs,c=e.send,l=e.to_a,d=e.defs,t=e.alias,n=[],u=e.$r(n),h=e.nil;return e.add_stubs("def_formatter,asctime,iso8601,rfc2822,xmlschema"),function(n,u,h){var m=s(n,u,"Date"),f=[m].concat(h),p=e.$r(f);return d(m,"$def_formatter",function(){var f=this,u=o(arguments),d=i(u),d=a(d),h=u,m=r(d,{});return c(p("Time"),"def_formatter",l(h).concat([e.to_hash(m).$merge(new Map([["on",f]]))]))},-1),m.$def_formatter("asctime","%c"),t(m,"ctime","asctime"),m.$def_formatter("iso8601","%F"),t(m,"xmlschema","iso8601"),m.$def_formatter("rfc3339","%FT%T%:z"),m.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),t(m,"rfc822","rfc2822"),m.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["utc",!0]])),m.$def_formatter("jisx0301","%J"),t(m,"to_s","iso8601")}(n[0],null,n),function(e,n){var o=s(e,n,"DateTime");return o.$def_formatter("xmlschema","%FT%T",new Map([["fractions",!0],["tz_format","%:z"]])),t(o,"iso8601","xmlschema"),t(o,"rfc3339","xmlschema"),o.$def_formatter("jisx0301","%JT%T",new Map([["fractions",!0],["tz_format","%:z"]])),t(o,"to_s","xmlschema"),o.$def_formatter("zone","%:z")}(n[0],u("Date"))},Opal.modules.date=function(e){var g=e.klass,o=e.const_set,c=e.rb_plus,t=e.def,i=e.send,r=e.alias,l=e.rb_minus,v=e.return_self,m=e.return_ivar,d=e.truthy,u=e.rb_lt,p=e.rb_times,f=e.defs,a=e.top,h=[],n=e.nil,s=e.$$$;return e.add_stubs("require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,day,month,clone,prev_day,next_day,_days_in_month,class,-,year,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each,==,next"),a.$require("forwardable"),a.$require("date/infinity"),a.$require("time"),function(a,h,b){var j=g(a,h,"Date"),y=[j].concat(b),_=e.$r(y),w=j.$$prototype;return w.date=w.start=n,j.$include(_("Comparable")),j.$extend(_("Forwardable")),o(y[0],"JULIAN",_("Infinity").$new()),o(y[0],"GREGORIAN",_("Infinity").$new()["$-@"]()),o(y[0],"ITALY",2299161),o(y[0],"ENGLAND",2361222),o(y[0],"MONTHNAMES",c([n],["January","February","March","April","May","June","July","August","September","October","November","December"])),o(y[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),o(y[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),o(y[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(s,o){var c=[s].concat(o),a=e.$r(c);return t(s,"$wrap",function(t){var o=this,s=n,s=o.$allocate();return s.start=a("ITALY"),s.date=t,s}),t(s,"$parse",function(t,n){w=this,n==null&&(n=!0);var l,d,u,m,f,b,y,_,w,j=new Date,k=j.getDate(),O=j.getMonth(),h=j.getFullYear(),A=j.getDay(),p=a("MONTHNAMES").$compact().$join("|");function o(e){return e[1]}function r(e){return e[2]}function c(e){return e[3]}function x(e){return e[4]}function C(e){return function(t){var n=e(t);return n>=69?n+=1900:n+=2e3,n}}function g(e){return function(t){var n=e(t).toLowerCase();return a("ABBR_MONTHNAMES").indexOf(n)+1}}function s(e){return function(t){var n=e(t);return parseInt(n,10)}}function E(e){return function(t){var s=e(t);return n?s+2e3:s}}function S(e){return function(t){var n=e(t),s=i(a("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(n.$downcase());return k-A+s}}function v(e){return function(t){var n=e(t);return i(a("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(n.$downcase())+1}}_=[{regexp:/^(\d{2})$/,year:h,month:O,day:s(o)},{regexp:/^(\d{3})$/,year:h,month:0,day:s(o)},{regexp:/^(\d{2})(\d{2})$/,year:h,month:s(o),day:s(r)},{regexp:/^(\d{2})(\d{3})$/,year:C(s(o)),month:0,day:s(r)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:C(s(o)),month:s(r),day:s(c)},{regexp:/^(\d{4})(\d{3})$/,year:s(o),month:0,day:s(r)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:s(o),month:s(r),day:s(c)},{regexp:/^([a-z]{3})[\s./-](\d{3,4})$/,year:s(r),month:g(o),day:1},{regexp:/^(\d{1,2})[\s./-]([a-z]{3})[\s./-](\d{3,4})$/i,year:s(c),month:g(r),day:s(o)},{regexp:/^([a-z]{3})[\s./-](\d{1,2})[\s./-](\d{3,4})$/i,year:s(c),month:g(o),day:s(r)},{regexp:/^(\d{3,4})[\s./-]([a-z]{3})[\s./-](\d{1,2})$/i,year:s(o),month:g(r),day:s(c)},{regexp:/^(-?\d{3,4})[\s./-](\d{1,2})[\s./-](\d{1,2})$/,year:s(o),month:s(r),day:s(c)},{regexp:/^(\d{2})[\s./-](\d{1,2})[\s./-](\d{1,2})$/,year:E(s(o)),month:s(r),day:s(c)},{regexp:/^(\d{1,2})[\s./-](\d{1,2})[\s./-](-?\d{3,4})$/,year:s(c),month:s(r),day:s(o)},{regexp:new RegExp("^("+a("DAYNAMES").$join("|")+")$","i"),year:h,month:O,day:S(o)},{regexp:new RegExp("^("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:s(x),month:v(o),day:s(r)},{regexp:new RegExp("^("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:h,month:v(o),day:s(r)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+p+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:s(x),month:v(c),day:s(o)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:s(o),month:v(r),day:s(c)}];for(b=0;b<_.length;b++)if(f=_[b],m=f.regexp.exec(t),m)return l=f.year,typeof l=="function"&&(l=l(m)),u=f.month,typeof u=="function"&&(u=u(m)-1),d=f.day,typeof d=="function"&&(d=d(m)),y=new Date(l,u,d),l>=0&&l<=1970&&y.setFullYear(l),w.$wrap(y);return w.$raise(a("ArgumentError"),"invalid date")},-2),t(s,"$today",function(){var t=this;return t.$wrap(new Date)}),t(s,"$gregorian_leap?",function(t){return new Date(t,1,29).getMonth()-1===0}),r(s,"civil","new")}(e.get_singleton_class(j),y),t(j,"$initialize",function(t,n,s,o){var i=this;return t==null&&(t=-4712),n==null&&(n=1),s==null&&(s=1),o==null&&(o=_("ITALY")),t===1582&&n===10&&s>4&&s<15&&(s=4),i.date=new Date(t,n-1,s),i.start=o},-1),j.$attr_reader("start"),t(j,"$<=>",function(o){if(i=this,o.$$is_number)return i.$jd()["$<=>"](o);if(s("Date")["$==="](o)){var i,a=i.date,r=o.date;return e.is_a(i,s("DateTime"))||a.setHours(0,0,0,0),e.is_a(o,s("DateTime"))||r.setHours(0,0,0,0),ar?1:0}else return n}),t(j,"$>>",function(t){var n=this;return t.$$is_number||n.$raise(s("TypeError")),n["$<<"](t["$-@"]())}),t(j,"$<<",function(t){var n=this;return t.$$is_number||n.$raise(s("TypeError")),n.$prev_month(t)}),t(j,"$clone",function(){var s=this,t=n,t=_("Date").$wrap(s.date.$dup());return t.start=s.start,t}),j.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),r(j,"mday","day"),r(j,"mon","month"),t(j,"$jd",function(){var t,o,c,l,i=this,n=i.date.getMonth()+1,d=i.date.getDate(),s=i.date.getFullYear(),a=12,u=0,h=0,a=a+u/60+h/3600,r=1;return s<=1585&&(r=0),t=-1*Math.floor(7*(Math.floor((n+9)/12)+s)/4),c=1,n-9<0&&(c=-1),l=Math.abs(n-9),o=Math.floor(s+c*Math.floor(l/7)),o=-1*Math.floor((Math.floor(o/100)+1)*3/4),t=t+Math.floor(275*n/9)+d+r*o,t=t+1721027+2*r+367*s-.5,t=t+a/24,t}),t(j,"$julian?",function(){var t=this;return t.date","hash"],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$undef_method(n)},{$$s:n}),s(n.$private_instance_methods(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(/^block_given\?$|^iterator\?$|^__.*__$/["$=~"](n))?t:s.$undef_method(n)},{$$s:n})},{$$s:f}),f.$include(M),m(f,"$const_missing",function(t){return A.$const_get(t)}),n(f,"$initialize",function(t){var n=this;return n.$__setobj__(t)}),f.$ruby2_keywords(n(f,"$method_missing",function e(n){var d,g,h=e.$$p||t,r=this,m=t,f=t;return e.$$p=null,g=p(arguments,1),d=g,m=!0,f=s(r,"__getobj__",[],function(){return m=!1}),o(m)&&o(r["$target_respond_to?"](f,n,!1))?s(f,"__send__",[n].concat(l(d)),h.$to_proc()):o(c["$method_defined?"](n))||o(c["$private_method_defined?"](n))?s(c.$instance_method(n),"bind_call",[r].concat(l(d)),h.$to_proc()):a(r,u(r,"method_missing",e,!1,!0),"method_missing",[n].concat(l(d)),h.$to_proc())},-2)),n(f,"$respond_to_missing?",function(n,i){var r=this,a=t,c=t,l=t,a=!0,c=s(r,"__getobj__",[],function(){return a=!1}),a=o(l=a)?r["$target_respond_to?"](c,n,i):l;return o(a)&&o(i)&&j(r["$target_respond_to?"](c,n,!1))?(r.$warn("delegator does not forward private method #"+n,new Map([["uplevel",3]])),!1):a}),g(b[0],"KERNEL_RESPOND_TO",c.$instance_method("respond_to?")),f.$private_constant("KERNEL_RESPOND_TO"),f.$private(n(f,"$target_respond_to?",function(n,s,i){var a=t;return E(w("Object"),a=n)?n["$respond_to?"](s,i):o(w("KERNEL_RESPOND_TO").$bind_call(n,"respond_to?"))?n["$respond_to?"](s,i):w("KERNEL_RESPOND_TO").$bind_call(n,s,i)})),n(f,"$methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$methods(n)["$|"](a(s,u(s,"methods",e,!1,!0),"methods",[n],o))},-1),n(f,"$public_methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$public_methods(n)["$|"](a(s,u(s,"public_methods",e,!1,!0),"public_methods",[n],o))},-1),n(f,"$protected_methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$protected_methods(n)["$|"](a(s,u(s,"protected_methods",e,!1,!0),"protected_methods",[n],o))},-1),n(f,"$==",function(t){var n=this;return!!o(t["$equal?"](n))||n.$__getobj__()["$=="](t)}),n(f,"$!=",function(t){var n=this;return!o(t["$equal?"](n))&&n.$__getobj__()["$!="](t)}),n(f,"$eql?",function(t){var n=this;return!!o(t["$equal?"](n))||t["$eql?"](n.$__getobj__())}),n(f,"$!",function(){var t=this;return t.$__getobj__()["$!"]()}),n(f,"$__getobj__",function(){var t=this;return t.$__raise__(r("NotImplementedError"),"need to define `__getobj__'")}),n(f,"$__setobj__",function(){var n=this;return n.$__raise__(r("NotImplementedError"),"need to define `__setobj__'")}),n(f,"$marshal_dump",function(){var n=this,o=t,o=s(n.$instance_variables(),"reject",[],function(n){return n==null&&(n=t),/^@delegate_/["$=~"](n)});return["__v2__",o,s(o,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$instance_variable_get(n)},{$$s:n}),n.$__getobj__()]}),n(f,"$marshal_load",function(n){var i=this,r=t,c=t,l=t,d=t,a=n,o=C(a);return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],l=o[2]==null?t:o[2],d=o[3]==null?t:o[3],a,x(r,"__v2__")?(s(c,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$instance_variable_set(n,l["$[]"](s))},{$$s:i}),i.$__setobj__(d)):i.$__setobj__(n)}),n(f,"$initialize_clone",function(n,s){var o,i=this;return s=O(s),o=y(s,"freeze"),o==null&&(o=t),i.$__setobj__(n.$__getobj__().$clone(new Map([["freeze",o]])))},-2),n(f,"$initialize_dup",function(t){var n=this;return n.$__setobj__(t.$__getobj__().$dup())}),f.$private("initialize_clone","initialize_dup"),n(f,"$freeze",function(){var t=this;return t.$__getobj__().$freeze(),S(t),k(t)}),n(f,"$frozen?",function(){var t=this;return t.$$frozen||!1}),f.delegator_api=f.$public_instance_methods(),m(f,"$public_api",_("delegator_api"))}(h[0],i("BasicObject"),h),function(s,i){var a=v(s,i,"SimpleDelegator"),c=a.$$prototype;return c.delegate_sd_obj=t,n(a,"$__getobj__",function n(){var s,a=n.$$p||t,i=this;if(n.$$p=null,!o((s=i.delegate_sd_obj,s!=null&&s!==t?"instance-variable":t))){if(a!==t)return e.yieldX(a,[]);i.$__raise__(r("ArgumentError"),"not delegated")}return i.delegate_sd_obj}),n(a,"$__setobj__",function(t){var n=this;return o(n["$equal?"](t))&&n.$__raise__(r("ArgumentError"),"cannot delegate to self"),n.delegate_sd_obj=t})}(h[0],i("Delegator")),m(i("Delegator"),"$delegating_block",function e(n){var i=e.$$p||t,o=this;return e.$$p=null,w(function e(){var i,a,c=e.$$p||t,d=e.$$s==null?this:e.$$s,r=t;return e.$$p=null,i=p(arguments),a=i,r=d.$__getobj__(),s(r,"__send__",[n].concat(l(a)),c.$to_proc())},{$$arity:-1,$$s:o}).$ruby2_keywords()}),n(b,"$DelegateClass",function c(u){var b=c.$$p||t,m=this,h=t,v=t,p=t,g=t;return c.$$p=null,h=i("Class").$new(i("Delegator")),v=[].concat(l(r("Delegator").$public_api())).concat(["to_s","inspect","=~","!~","==="]),p=u.$protected_instance_methods(),p=f(p,v),g=u.$public_instance_methods(),g=f(g,v),s(h,"module_eval",[],function a(){var c=a.$$s==null?this:a.$$s;return n(c,"$__getobj__",function n(){var i,a=n.$$p||t,s=this;if(s.delegate_dc_obj==null&&(s.delegate_dc_obj=t),n.$$p=null,!o((i=s.delegate_dc_obj,i!=null&&i!==t?"instance-variable":t))){if(a!==t)return e.yieldX(a,[]);s.$__raise__(r("ArgumentError"),"not delegated")}return s.delegate_dc_obj}),n(c,"$__setobj__",function(t){var n=this;return o(n["$equal?"](t))&&n.$__raise__(r("ArgumentError"),"cannot delegate to self"),n.delegate_dc_obj=t}),s(p,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_method(n,i("Delegator").$delegating_block(n)),s.$protected(n)},{$$s:c}),s(g,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_method(n,i("Delegator").$delegating_block(n))},{$$s:c})},{$$s:m}),s(h,"define_singleton_method",["public_instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$public_instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["protected_instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$protected_instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["public_instance_method"],function n(s){var r=n.$$s==null?this:n.$$s;s==null&&(s=t);try{return a(r,d(r,"DelegateClass",n.$$def||c,!1,!1),"DelegateClass",[s],null)}catch(t){if(e.rescue(t,[i("NameError")]))try{return o(r.$public_instance_methods()["$include?"](s))||r.$raise(),u.$public_instance_method(s)}finally{e.pop_exception(t)}else throw t}},{$$s:m}),s(h,"define_singleton_method",["instance_method"],function n(s){var r=n.$$s==null?this:n.$$s;s==null&&(s=t);try{return a(r,d(r,"DelegateClass",n.$$def||c,!1,!1),"DelegateClass",[s],null)}catch(t){if(e.rescue(t,[i("NameError")]))try{return o(r.$instance_methods()["$include?"](s))||r.$raise(),u.$instance_method(s)}finally{e.pop_exception(t)}else throw t}},{$$s:m}),o(b)&&s(h,"module_eval",[],b.$to_proc()),h})},Opal.modules.enumerator=Opal.return_val(Opal.nil),Opal.modules.iconv=Opal.return_val(Opal.nil),Opal.modules.json=function(e){var r=e.module,n=e.klass,c=e.send,l=e.Object,d=e.eqeqeq,o=e.defs,a=e.truthy,s=e.def,u=e.return_val,t=[],i=e.nil,h=e.$$$;return e.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(t,s){var f,v,u=r(t,"JSON"),p=[u].concat(s),m=e.$r(p);n(p[0],m("StandardError"),"JSONError"),n(p[0],m("JSONError"),"ParserError"),v=e.hasOwnProperty;function b(e){try{return JSON.parse(e)}catch(e){u.$raise(h(m("JSON"),"ParserError"),e.message)}}function g(t,n){var s,o,a,r,d,u;switch(typeof t){case"string":return t;case"number":return t;case"boolean":return!!t;case"undefined":return i;case"object":if(!t)return i;if(t.$$is_array){r=e.hash_get(n,"array_class").$new();for(o=0,u=t.length;o","<"];o.eachDirectiveAndCount=function(e,s){function u(){o=null,l=0,c=[],d=!1}u();function h(){if(o==null){u();return}var e=/[sSiIlLqQjJ]/.test(o);!e&&c.length>0&&t.$raise(n("ArgumentError"),"'"+c[0]+"' allowed only after types sSiIlLqQjJ"),c.indexOf("<")!==-1&&c.indexOf(">")!==-1&&t.$raise(n("RangeError"),"Can't use both '<' and '>'"),d||(l=1),c.indexOf(">")!==-1&&(o=o+">"),s(o,l),u()}for(var o,r,c,l,d,m=0;m,length,inspect,[],unpack"),r.$require("base64"),r.$require("corelib/pack_unpack/format_string_parser"),function(r,m,f){var g,C,E,F,D,S=u(r,m,"String"),P=[S].concat(f),G=e.$r(P),z=s,T=s,X=e.PackUnpack.eachDirectiveAndCount;function Q(e){return function(t){var n=e(t);return n.$flatten()}}function y(e){return function(t){var n=e(t);return n.map(function(e){return e.reverse().reduce(function(e,t){return e*256+t},0)})}}function j(e,t){return function(n){for(var s,o=t(n),i=[],r=o.length/e,a=0;a=s/2&&(e-=s),e})}}function x(e){return function(t){var n=e(t);return n.map(function(e){return String.fromCharCode(e)})}}function _(e){return function(t){var n=e(t);return n.join("")}}function k(e){return function(t){var n=e(t);return[n]}}function Y(e){var t=e.map(function(e){return e.charCodeAt(0)});return function(e){return function(n){for(var s=e(n);t.indexOf(s[s.length-1])!==-1;)s=s.slice(0,s.length-1);return s}}}F=Y(["\x00"," "]);function O(e){return function(t){var n=e(t);return n.map(function(e){return e.reverse()})}}function q(e){return function(t){var o,a,r,c,d,u,h,m,s=e(t),f=!1,n=0,l=0,i=[];do if(n45)return"";for(l+=o;o>0;)c=s[n],r=s[n+1],a=s[n+2],d=s[n+3],u=(c-32&63)<<2|(r-32&63)>>4,h=(r-32&63)<<4|(a-32&63)>>2,m=(a-32&63)<<6|d-32&63,i.push(u&255),i.push(h&255),i.push(m&255),n+=4,o-=3;++n}else break;while(!0)return i.slice(0,l)}}function Z(e){return function(t){var n=e(t),s=n.map(function(e){return e.toString(2)});return s}}function N(e){return function(t){for(var n,r,c,l,i=e(t),a=[],s="",o=0;o":y(O(j(2,p))),"L>":y(O(j(4,p))),"Q>":y(O(j(8,p))),c:w(1,p),s:w(2,y(j(2,p))),l:w(4,y(j(4,p))),q:w(8,y(j(8,p))),j:null,"s>":w(2,y(O(j(2,p)))),"l>":w(4,y(O(j(4,p)))),"q>":w(8,y(O(j(8,p)))),n:null,N:null,v:null,V:null,U:p,w:N(p),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:k(_(x(F(p)))),a:k(_(x(p))),Z:_(x(p)),B:_(p),b:_(p),H:_(p),h:_(p),u:_(x(q(p))),M:W(_(x(p))),m:R(_(x(p))),P:null,p:null};function b(e){return function(t){var n=t.slice(0,e);return t=t.slice(e,t.length),{chunk:n,rest:t}}}function H(e){a=0,r=e.length;function c(){var t=e[a++];return r=e.length-a,t}if(s=c(),s>>7==0)return{chunk:[s],rest:e.slice(a)};s>>6==2&&t.$raise(n("ArgumentError"),"malformed UTF-8 character"),s>>5==6?o=1:s>>4==14?o=2:s>>3==30?o=3:s>>2==62?o=4:s>>1==126?o=5:t.$raise("malformed UTF-8 character"),o>r&&(z=o+1,T=r+1,t.$raise(n("ArgumentError"),"malformed UTF-8 character (expected "+z+" bytes, given "+T+" bytes)"));for(var s,o,a,r,d,u,h=(1<<8-o-1)-1,i=s&h,l=0;l>6!=2&&t.$raise("Invalid multibyte sequence"),i=i<<6|s&63;return i<=65535?{chunk:[i],rest:e.slice(a)}:(i-=65536,d=(i>>10&1023)+55296,u=(i&1023)+56320,{chunk:[d,u],rest:e.slice(a)})}function I(e){var t=e.indexOf(32);return t===-1?{chunk:e,rest:[]}:{chunk:e.slice(0,t),rest:e.slice(t,e.length)}}function B(e,t){for(o="";t>0&&e.length>0;){var n,s,o,i=e[0],a=Math.min(t,8),r=Math.ceil(a/8);if(e=e.slice(1,e.length),i!=null)for(n=i.toString(2),n=Array(8-n.length+1).join("0").concat(n).split("").reverse().join(""),s=0;s0&&e.length>0;){var n,s,o,i=e[0],a=Math.min(t,8),r=Math.ceil(a/8);if(e=e.slice(1,e.length),i!=null)for(n=i.toString(2),n=Array(8-n.length+1).join("0").concat(n),s=0;s0&&e.length>0;){var s,o=e[0],n=o.toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),t===1?(s.push(n[0]),t--):(s.push(n[0],n[1]),t-=2)}return{chunk:s,rest:e}}function K(e,t){for(s=[];t>0&&e.length>0;){var s,o=e[0],n=o.toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),t===1?(s.push(n[1]),t--):(s.push(n[1],n[0]),t-=2)}return{chunk:s,rest:e}}function v(e){return function(t,n){var s,i,o=[];if(n===1/0)for(;t.length>0;)s=e(t),t=s.rest,o=o.concat(s.chunk);else for(i=0;i":v(b(2)),"L>":v(b(4)),"Q>":v(b(8)),c:v(b(1)),s:v(b(2)),l:v(b(4)),q:v(b(8)),j:null,"s>":v(b(2)),"l>":v(b(4)),"q>":v(b(8)),n:null,N:null,v:null,V:null,U:v(H),w:v($),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:v(b(1)),a:v(b(1)),Z:L,B:V,b:B,H:U,h:K,u:v(I),M,m:M,P:null,p:null},E={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},D={"C*":g.C,"c*":g.c,"A*":g.A,"a*":g.a,"M*":k(g.M),"m*":k(g.m),"S*":g.S,"s*":g.s,"L*":g.L,"l*":g.l,"Q*":g.Q,"q*":g.q,"S>*":g["S>"],"s>*":g["s>"],"L>*":g["L>"],"l>*":g["l>"],"Q>*":g["Q>"],"q>*":g["q>"]};function A(e,t){C[t]=C[e],g[t]=g[e],E[t]=E[e]}return A("S>","n"),A("L>","N"),A("S","v"),A("L","V"),a(S,"$unpack",function(a,r){var u,m,f,v,b,j,y,p=this;if(r=l(r),u=c(r,"offset"),u==null&&(u=0),i(d(u,0))&&t.$raise(n("ArgumentError"),"offset can't be negative"),a=o["$coerce_to!"](a,n("String"),"to_str").$gsub(/\s/,"").$delete("\x00"),m=[],a=="U*"&&p.internal_encoding.name==="UTF-8"&&typeof p.codePointAt=="function"){b=0,m=new Array(p.length);for(v=u;v65535&&v++;return m.slice(0,b)}if(f=p.$bytes(),i(h(u,f.$length()))?t.$raise(n("ArgumentError"),"offset outside of string"):s,f=f.slice(u),j=D[a],j)return j(f);function _(e,t){for(;e.length=,_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(n,s){var i=g(n,"Racc"),o=[i].concat(s),a=e.$r(o);return v(o[0],a("StandardError"),"ParseError"),t}(l[0],l),n((w=c("::","ParseError","skip_raise"))?"constant":t)||o(l[0],"ParseError",c(O("Racc"),"ParseError")),function(l,w){var E,C=g(l,"Racc"),O=[C].concat(w),k=e.$r(O);return n((E=k("Racc_No_Extensions","skip_raise"))?"constant":t)||o(O[0],"Racc_No_Extensions",!1),function(l,g,w){var O=v(l,g,"Parser"),C=[O].concat(w),E=e.$r(C),k=O.$$prototype;return k.yydebug=k.racc_debug_out=k.racc_error_status=k.racc_t=k.racc_vstack=k.racc_val=k.racc_state=k.racc_tstack=t,o(C[0],"Racc_Runtime_Version","1.4.6"),o(C[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Runtime_Core_Version_R","1.4.6"),o(C[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),o(C[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),o(C[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),o(C[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),o(C[0],"Racc_Runtime_Type","ruby"),x(E("Parser"),"$racc_runtime_type",function(){return E("Racc_Runtime_Type")}),s(O,"$_racc_setup",function(){var i,a,s=this,r=t,o=t;return h.stderr==null&&(h.stderr=t),n(c(s.$class(),"Racc_debug_parser"))||(s.yydebug=!1),n((i=s.yydebug,i!=null&&i!==t?"instance-variable":t))||(s.yydebug=!1),n(s.yydebug)&&(n((a=s.racc_debug_out,a!=null&&a!==t?"instance-variable":t))||(s.racc_debug_out=h.stderr),s.racc_debug_out=n(r=s.racc_debug_out)?r:h.stderr),o=c(s.$class(),"Racc_arg"),n(m(o.$size(),14))&&o["$[]="](13,!0),o}),s(O,"$_racc_init_sysvars",function(){var n=this;return n.racc_state=[0],n.racc_tstack=[],n.racc_vstack=[],n.racc_t=t,n.racc_val=t,n.racc_read_next=!0,n.racc_user_yyerror=!1,n.racc_error_status=0}),s(O,"$do_parse",function(){var t=this;return t.$__send__(E("Racc_Main_Parsing_Routine"),t.$_racc_setup(),!1)}),s(O,"$next_token",function(){var t=this;return t.$raise(E("NotImplementedError"),""+t.$class()+"#next_token is not defined")}),s(O,"$_racc_do_parse_rb",function(s){var p=this,j=t,y=t,g=t,_=t,l=t,w=t,f=t,m=t,h=t,v=s,c=d(v);return j=c[0]==null?t:c[0],y=c[1]==null?t:c[1],g=c[2]==null?t:c[2],_=c[3]==null?t:c[3],l=c[4]==null?t:c[4],l=c[5]==null?t:c[5],l=c[6]==null?t:c[6],l=c[7]==null?t:c[7],l=c[8]==null?t:c[8],l=c[9]==null?t:c[9],w=c[10]==null?t:c[10],l=c[11]==null?t:c[11],l=c[12]==null?t:c[12],l=c[13]==null?t:c[13],v,p.$_racc_init_sysvars(),f=m=h=t,a(p,"catch",["racc_end_parse"],function e(){var a,c,o=e.$$s==null?this:e.$$s,l=t;for(o.racc_state==null&&(o.racc_state=t),o.racc_read_next==null&&(o.racc_read_next=t),o.racc_t==null&&(o.racc_t=t),o.yydebug==null&&(o.yydebug=t),o.racc_val==null&&(o.racc_val=t);n(!0);)for(n(h=_["$[]"](o.racc_state["$[]"](-1)))?(n(o.racc_read_next)&&b(o.racc_t,0)&&(c=o.$next_token(),a=d(c),f=a[0]==null?t:a[0],o.racc_val=a[1]==null?t:a[1],c,n(f)?o.racc_t=n(l=w["$[]"](f))?l:1:o.racc_t=0,n(o.yydebug)&&o.$racc_read_token(o.racc_t,f,o.racc_val),o.racc_read_next=!1),h=r(h,o.racc_t),n(u(h,0))&&n(m=j["$[]"](h))&&i(y["$[]"](h),o.racc_state["$[]"](-1))||(m=g["$[]"](o.racc_state["$[]"](-1)))):m=g["$[]"](o.racc_state["$[]"](-1));n(m=o.$_racc_evalact(m,s)););},{$$s:p})}),s(O,"$yyparse",function(t,n){var s=this;return s.$__send__(E("Racc_YY_Parse_Method"),t,n,s.$_racc_setup(),!0)}),s(O,"$_racc_yyparse_rb",function(s,o,c){var v=this,b=t,j=t,g=t,y=t,p=t,w=t,f=t,m=t,_=c,h=d(_);return b=h[0]==null?t:h[0],j=h[1]==null?t:h[1],g=h[2]==null?t:h[2],y=h[3]==null?t:h[3],p=h[4]==null?t:h[4],p=h[5]==null?t:h[5],p=h[6]==null?t:h[6],p=h[7]==null?t:h[7],p=h[8]==null?t:h[8],p=h[9]==null?t:h[9],w=h[10]==null?t:h[10],p=h[11]==null?t:h[11],p=h[12]==null?t:h[12],p=h[13]==null?t:h[13],_,v.$_racc_init_sysvars(),f=t,m=t,a(v,"catch",["racc_end_parse"],function e(){var l=e.$$s==null?this:e.$$s;for(l.racc_state==null&&(l.racc_state=t);!n(m=y["$[]"](l.racc_state["$[]"](-1)));)for(;n(f=l.$_racc_evalact(g["$[]"](l.racc_state["$[]"](-1)),c)););return a(s,"__send__",[o],function e(s,o){var a=e.$$s==null?this:e.$$s,l=t,d=t;for(a.racc_t==null&&(a.racc_t=t),a.racc_state==null&&(a.racc_state=t),a.racc_read_next==null&&(a.racc_read_next=t),s==null&&(s=t),o==null&&(o=t),n(s)?a.racc_t=n(l=w["$[]"](s))?l:1:a.racc_t=0,a.racc_val=o,a.racc_read_next=!1,m=r(m,a.racc_t),n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););for(;n(n(l=n(d=(m=y["$[]"](a.racc_state["$[]"](-1)))["$!"]())?d:a.racc_read_next["$!"]())?l:a.racc_t["$=="](0));)for(n(m)&&n(m=r(m,a.racc_t))&&n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););},{$$s:l})},{$$s:v})}),s(O,"$_racc_evalact",function(s,o){var c=this,w=t,O=t,h=t,x=t,v=t,b=t,y=t,g=t,_=o,l=d(_);if(w=l[0]==null?t:l[0],O=l[1]==null?t:l[1],h=l[2]==null?t:l[2],x=l[3]==null?t:l[3],h=l[4]==null?t:l[4],h=l[5]==null?t:l[5],h=l[6]==null?t:l[6],h=l[7]==null?t:l[7],h=l[8]==null?t:l[8],h=l[9]==null?t:l[9],h=l[10]==null?t:l[10],v=l[11]==null?t:l[11],b=l[12]==null?t:l[12],h=l[13]==null?t:l[13],h=l[14]==null?t:l[14],_,n(f(s,0))&&n(m(s,v)))n(f(c.racc_error_status,0))&&(i(c.racc_t,1)||(c.racc_error_status=p(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(s),c.racc_read_next=!0,n(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(n(m(s,0))&&n(f(s,b["$-@"]()))){if(y=a(c,"catch",["racc_jump"],function e(){var n=e.$$s==null?this:e.$$s;return n.racc_state==null&&(n.racc_state=t),n.racc_state.$push(n.$_racc_do_reduce(o,s)),!1},{$$s:c}),n(y))switch(y.valueOf()){case 1:return c.racc_user_yyerror=!0,b["$-@"]();case 2:return v;default:c.$raise("[Racc Bug] unknown jump code")}}else if(i(s,v))n(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack["$[]"](0));else if(i(s,b["$-@"]())){switch(c.racc_error_status.valueOf()){case 0:n(o["$[]"](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:i(c.racc_t,0)&&c.$throw("racc_end_parse",t),c.racc_read_next=!0;break;default:t}for(c.racc_user_yyerror=!1,c.racc_error_status=3;n(!0);){if(n(g=x["$[]"](c.racc_state["$[]"](-1)))&&(g=r(g,1),n(u(g,0))&&n(s=w["$[]"](g))&&i(O["$[]"](g),c.racc_state["$[]"](-1))))break;n(j(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",t),c.racc_state.$pop(),c.racc_vstack.$pop(),n(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return s}else c.$raise("[Racc Bug] unknown action "+s.$inspect());return n(c.yydebug)&&c.$racc_next_state(c.racc_state["$[]"](-1),c.racc_state),t}),s(O,"$_racc_do_reduce",function(s,o){var h=this,f=t,F=t,C=t,S=t,A=t,k=t,j=t,E=t,x=t,m=t,g=t,l=t,c=t,b=t,O=t,v=t,M=t,_=t,w=t,z=t,T=s,a=d(T);return f=a[0]==null?t:a[0],f=a[1]==null?t:a[1],f=a[2]==null?t:a[2],f=a[3]==null?t:a[3],F=a[4]==null?t:a[4],C=a[5]==null?t:a[5],S=a[6]==null?t:a[6],A=a[7]==null?t:a[7],k=a[8]==null?t:a[8],j=a[9]==null?t:a[9],f=a[10]==null?t:a[10],f=a[11]==null?t:a[11],f=a[12]==null?t:a[12],E=a[13]==null?t:a[13],T,x=h.racc_state,m=h.racc_vstack,g=h.racc_tstack,l=y(o,-3),c=j["$[]"](l),b=j["$[]"](r(l,1)),O=j["$[]"](r(l,2)),v=[],n(h.yydebug)&&(M=g["$[]"](c["$-@"](),c)),_=m["$[]"](c["$-@"](),c),n(h.yydebug)&&g["$[]="](c["$-@"](),c,v),m["$[]="](c["$-@"](),c,v),x["$[]="](c["$-@"](),c,v),n(E)?m.$push(h.$__send__(O,_,m,_["$[]"](0))):m.$push(h.$__send__(O,_,m)),g.$push(b),n(h.yydebug)&&h.$racc_reduce(M,b,g,m),w=p(b,k),n(l=A["$[]"](w))&&(l=r(l,x["$[]"](-1)),n(u(l,0))&&n(z=F["$[]"](l))&&i(C["$[]"](l),w))?z:S["$[]"](w)}),s(O,"$on_error",function(s,o){var a=this,r=t;return a.$raise(E("ParseError"),a.$sprintf(` +parse error on value %s (%s)`,o.$inspect(),n(r=a.$token_to_str(s))?r:"?"))}),s(O,"$yyerror",function(){var t=this;return t.$throw("racc_jump",1)}),s(O,"$yyaccept",function(){var t=this;return t.$throw("racc_jump",2)}),s(O,"$yyerrok",_("racc_error_status",0)),s(O,"$racc_read_token",function(t,n,s){var o=this;return o.racc_debug_out.$print("read "),o.racc_debug_out.$print(n.$inspect(),"(",o.$racc_token2str(t),") "),o.racc_debug_out.$puts(s.$inspect()),o.racc_debug_out.$puts()}),s(O,"$racc_shift",function(t,n,s){var o=this;return o.racc_debug_out.$puts("shift "+o.$racc_token2str(t)),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_reduce",function(s,o,i,r){var c=this,l=t,l=c.racc_debug_out;return l.$print("reduce "),n(s["$empty?"]())?l.$print(" "):a(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),l.$print(" ",s.$racc_token2str(n))},{$$s:c}),l.$puts(" --> "+c.$racc_token2str(o)),c.$racc_print_stacks(i,r),c.racc_debug_out.$puts()}),s(O,"$racc_accept",function(){var t=this;return t.racc_debug_out.$puts("accept"),t.racc_debug_out.$puts()}),s(O,"$racc_e_pop",function(t,n,s){var o=this;return o.racc_debug_out.$puts("error recovering mode: pop token"),o.$racc_print_states(t),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_next_state",function(t,n){var s=this;return s.racc_debug_out.$puts("goto "+t),s.$racc_print_states(n),s.racc_debug_out.$puts()}),s(O,"$racc_print_stacks",function(n,s){var i=this,o=t,o=i.racc_debug_out;return o.$print(" ["),a(n,"each_index",[],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),o.$print(" (",a.$racc_token2str(n["$[]"](i))," ",s["$[]"](i).$inspect(),")")},{$$s:i}),o.$puts(" ]")}),s(O,"$racc_print_states",function(n){var o=this,s=t,s=o.racc_debug_out;return s.$print(" ["),a(n,"each",[],function(n){return n==null&&(n=t),s.$print(" ",n)}),s.$puts(" ]")}),s(O,"$racc_token2str",function(s){var o=this,i=t;return n(i=c(o.$class(),"Racc_token_to_s_table")["$[]"](s))?i:o.$raise("[Racc Bug] can't convert token "+s+" to string")}),s(O,"$token_to_str",function(t){var n=this;return c(n.$class(),"Racc_token_to_s_table")["$[]"](t)})}(O[0],null,O)}(l[0],l)},Opal.modules["parser/version"]=function(e){var n=e.module,s=e.const_set,t=[],o=e.nil;return function(e,t){var o=n(e,"Parser"),i=[o].concat(t);return s(i[0],"VERSION","3.3.9.0")}(t[0],t)},Opal.modules["racc/parser"]=function(e){var w,g=e.module,v=e.klass,n=e.truthy,o=e.const_set,x=e.defs,h=e.gvars,m=e.rb_lt,s=e.def,d=e.to_ary,a=e.send,b=e.neqeq,r=e.rb_plus,i=e.eqeq,u=e.rb_ge,f=e.rb_gt,p=e.rb_minus,j=e.rb_le,y=e.rb_times,_=e.assign_ivar_val,l=[],O=e.$r(l),t=e.nil,c=e.$$$;return e.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(n,s){var i=g(n,"Racc"),o=[i].concat(s),a=e.$r(o);return v(o[0],a("StandardError"),"ParseError"),t}(l[0],l),n((w=c("::","ParseError","skip_raise"))?"constant":t)||o(l[0],"ParseError",c(O("Racc"),"ParseError")),function(l,w){var E,C=g(l,"Racc"),O=[C].concat(w),k=e.$r(O);return n((E=k("Racc_No_Extensions","skip_raise"))?"constant":t)||o(O[0],"Racc_No_Extensions",!1),function(l,g,w){var O=v(l,g,"Parser"),C=[O].concat(w),E=e.$r(C),k=O.$$prototype;return k.yydebug=k.racc_debug_out=k.racc_error_status=k.racc_t=k.racc_vstack=k.racc_val=k.racc_state=k.racc_tstack=t,o(C[0],"Racc_Runtime_Version","1.4.6"),o(C[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Runtime_Core_Version_R","1.4.6"),o(C[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),o(C[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),o(C[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),o(C[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),o(C[0],"Racc_Runtime_Type","ruby"),x(E("Parser"),"$racc_runtime_type",function(){return E("Racc_Runtime_Type")}),s(O,"$_racc_setup",function(){var i,a,s=this,r=t,o=t;return h.stderr==null&&(h.stderr=t),n(c(s.$class(),"Racc_debug_parser"))||(s.yydebug=!1),n((i=s.yydebug,i!=null&&i!==t?"instance-variable":t))||(s.yydebug=!1),n(s.yydebug)&&(n((a=s.racc_debug_out,a!=null&&a!==t?"instance-variable":t))||(s.racc_debug_out=h.stderr),s.racc_debug_out=n(r=s.racc_debug_out)?r:h.stderr),o=c(s.$class(),"Racc_arg"),n(m(o.$size(),14))&&o["$[]="](13,!0),o}),s(O,"$_racc_init_sysvars",function(){var n=this;return n.racc_state=[0],n.racc_tstack=[],n.racc_vstack=[],n.racc_t=t,n.racc_val=t,n.racc_read_next=!0,n.racc_user_yyerror=!1,n.racc_error_status=0}),s(O,"$do_parse",function(){var t=this;return t.$__send__(E("Racc_Main_Parsing_Routine"),t.$_racc_setup(),!1)}),s(O,"$next_token",function(){var t=this;return t.$raise(E("NotImplementedError"),""+t.$class()+"#next_token is not defined")}),s(O,"$_racc_do_parse_rb",function(s){var p=this,j=t,y=t,g=t,_=t,l=t,w=t,f=t,m=t,h=t,v=s,c=d(v);return j=c[0]==null?t:c[0],y=c[1]==null?t:c[1],g=c[2]==null?t:c[2],_=c[3]==null?t:c[3],l=c[4]==null?t:c[4],l=c[5]==null?t:c[5],l=c[6]==null?t:c[6],l=c[7]==null?t:c[7],l=c[8]==null?t:c[8],l=c[9]==null?t:c[9],w=c[10]==null?t:c[10],l=c[11]==null?t:c[11],l=c[12]==null?t:c[12],l=c[13]==null?t:c[13],v,p.$_racc_init_sysvars(),f=m=h=t,a(p,"catch",["racc_end_parse"],function e(){var a,c,o=e.$$s==null?this:e.$$s,l=t;for(o.racc_state==null&&(o.racc_state=t),o.racc_read_next==null&&(o.racc_read_next=t),o.racc_t==null&&(o.racc_t=t),o.yydebug==null&&(o.yydebug=t),o.racc_val==null&&(o.racc_val=t);n(!0);)for(n(h=_["$[]"](o.racc_state["$[]"](-1)))?(n(o.racc_read_next)&&b(o.racc_t,0)&&(c=o.$next_token(),a=d(c),f=a[0]==null?t:a[0],o.racc_val=a[1]==null?t:a[1],c,n(f)?o.racc_t=n(l=w["$[]"](f))?l:1:o.racc_t=0,n(o.yydebug)&&o.$racc_read_token(o.racc_t,f,o.racc_val),o.racc_read_next=!1),h=r(h,o.racc_t),n(u(h,0))&&n(m=j["$[]"](h))&&i(y["$[]"](h),o.racc_state["$[]"](-1))||(m=g["$[]"](o.racc_state["$[]"](-1)))):m=g["$[]"](o.racc_state["$[]"](-1));n(m=o.$_racc_evalact(m,s)););},{$$s:p})}),s(O,"$yyparse",function(t,n){var s=this;return s.$__send__(E("Racc_YY_Parse_Method"),t,n,s.$_racc_setup(),!0)}),s(O,"$_racc_yyparse_rb",function(s,o,c){var v=this,b=t,j=t,g=t,y=t,p=t,w=t,f=t,m=t,_=c,h=d(_);return b=h[0]==null?t:h[0],j=h[1]==null?t:h[1],g=h[2]==null?t:h[2],y=h[3]==null?t:h[3],p=h[4]==null?t:h[4],p=h[5]==null?t:h[5],p=h[6]==null?t:h[6],p=h[7]==null?t:h[7],p=h[8]==null?t:h[8],p=h[9]==null?t:h[9],w=h[10]==null?t:h[10],p=h[11]==null?t:h[11],p=h[12]==null?t:h[12],p=h[13]==null?t:h[13],_,v.$_racc_init_sysvars(),f=t,m=t,a(v,"catch",["racc_end_parse"],function e(){var l=e.$$s==null?this:e.$$s;for(l.racc_state==null&&(l.racc_state=t);!n(m=y["$[]"](l.racc_state["$[]"](-1)));)for(;n(f=l.$_racc_evalact(g["$[]"](l.racc_state["$[]"](-1)),c)););return a(s,"__send__",[o],function e(s,o){var a=e.$$s==null?this:e.$$s,l=t,d=t;for(a.racc_t==null&&(a.racc_t=t),a.racc_state==null&&(a.racc_state=t),a.racc_read_next==null&&(a.racc_read_next=t),s==null&&(s=t),o==null&&(o=t),n(s)?a.racc_t=n(l=w["$[]"](s))?l:1:a.racc_t=0,a.racc_val=o,a.racc_read_next=!1,m=r(m,a.racc_t),n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););for(;n(n(l=n(d=(m=y["$[]"](a.racc_state["$[]"](-1)))["$!"]())?d:a.racc_read_next["$!"]())?l:a.racc_t["$=="](0));)for(n(m)&&n(m=r(m,a.racc_t))&&n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););},{$$s:l})},{$$s:v})}),s(O,"$_racc_evalact",function(s,o){var c=this,w=t,O=t,h=t,x=t,v=t,b=t,y=t,g=t,_=o,l=d(_);if(w=l[0]==null?t:l[0],O=l[1]==null?t:l[1],h=l[2]==null?t:l[2],x=l[3]==null?t:l[3],h=l[4]==null?t:l[4],h=l[5]==null?t:l[5],h=l[6]==null?t:l[6],h=l[7]==null?t:l[7],h=l[8]==null?t:l[8],h=l[9]==null?t:l[9],h=l[10]==null?t:l[10],v=l[11]==null?t:l[11],b=l[12]==null?t:l[12],h=l[13]==null?t:l[13],h=l[14]==null?t:l[14],_,n(f(s,0))&&n(m(s,v)))n(f(c.racc_error_status,0))&&(i(c.racc_t,1)||(c.racc_error_status=p(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(s),c.racc_read_next=!0,n(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(n(m(s,0))&&n(f(s,b["$-@"]()))){if(y=a(c,"catch",["racc_jump"],function e(){var n=e.$$s==null?this:e.$$s;return n.racc_state==null&&(n.racc_state=t),n.racc_state.$push(n.$_racc_do_reduce(o,s)),!1},{$$s:c}),n(y))switch(y.valueOf()){case 1:return c.racc_user_yyerror=!0,b["$-@"]();case 2:return v;default:c.$raise("[Racc Bug] unknown jump code")}}else if(i(s,v))n(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack["$[]"](0));else if(i(s,b["$-@"]())){switch(c.racc_error_status.valueOf()){case 0:n(o["$[]"](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:i(c.racc_t,0)&&c.$throw("racc_end_parse",t),c.racc_read_next=!0;break;default:t}for(c.racc_user_yyerror=!1,c.racc_error_status=3;n(!0);){if(n(g=x["$[]"](c.racc_state["$[]"](-1)))&&(g=r(g,1),n(u(g,0))&&n(s=w["$[]"](g))&&i(O["$[]"](g),c.racc_state["$[]"](-1))))break;n(j(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",t),c.racc_state.$pop(),c.racc_vstack.$pop(),n(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return s}else c.$raise("[Racc Bug] unknown action "+s.$inspect());return n(c.yydebug)&&c.$racc_next_state(c.racc_state["$[]"](-1),c.racc_state),t}),s(O,"$_racc_do_reduce",function(s,o){var h=this,f=t,F=t,C=t,S=t,A=t,k=t,j=t,E=t,x=t,m=t,g=t,l=t,c=t,b=t,O=t,v=t,M=t,_=t,w=t,z=t,T=s,a=d(T);return f=a[0]==null?t:a[0],f=a[1]==null?t:a[1],f=a[2]==null?t:a[2],f=a[3]==null?t:a[3],F=a[4]==null?t:a[4],C=a[5]==null?t:a[5],S=a[6]==null?t:a[6],A=a[7]==null?t:a[7],k=a[8]==null?t:a[8],j=a[9]==null?t:a[9],f=a[10]==null?t:a[10],f=a[11]==null?t:a[11],f=a[12]==null?t:a[12],E=a[13]==null?t:a[13],T,x=h.racc_state,m=h.racc_vstack,g=h.racc_tstack,l=y(o,-3),c=j["$[]"](l),b=j["$[]"](r(l,1)),O=j["$[]"](r(l,2)),v=[],n(h.yydebug)&&(M=g["$[]"](c["$-@"](),c)),_=m["$[]"](c["$-@"](),c),n(h.yydebug)&&g["$[]="](c["$-@"](),c,v),m["$[]="](c["$-@"](),c,v),x["$[]="](c["$-@"](),c,v),n(E)?m.$push(h.$__send__(O,_,m,_["$[]"](0))):m.$push(h.$__send__(O,_,m)),g.$push(b),n(h.yydebug)&&h.$racc_reduce(M,b,g,m),w=p(b,k),n(l=A["$[]"](w))&&(l=r(l,x["$[]"](-1)),n(u(l,0))&&n(z=F["$[]"](l))&&i(C["$[]"](l),w))?z:S["$[]"](w)}),s(O,"$on_error",function(s,o){var a=this,r=t;return a.$raise(E("ParseError"),a.$sprintf(` +parse error on value %s (%s)`,o.$inspect(),n(r=a.$token_to_str(s))?r:"?"))}),s(O,"$yyerror",function(){var t=this;return t.$throw("racc_jump",1)}),s(O,"$yyaccept",function(){var t=this;return t.$throw("racc_jump",2)}),s(O,"$yyerrok",_("racc_error_status",0)),s(O,"$racc_read_token",function(t,n,s){var o=this;return o.racc_debug_out.$print("read "),o.racc_debug_out.$print(n.$inspect(),"(",o.$racc_token2str(t),") "),o.racc_debug_out.$puts(s.$inspect()),o.racc_debug_out.$puts()}),s(O,"$racc_shift",function(t,n,s){var o=this;return o.racc_debug_out.$puts("shift "+o.$racc_token2str(t)),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_reduce",function(s,o,i,r){var c=this,l=t,l=c.racc_debug_out;return l.$print("reduce "),n(s["$empty?"]())?l.$print(" "):a(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),l.$print(" ",s.$racc_token2str(n))},{$$s:c}),l.$puts(" --> "+c.$racc_token2str(o)),c.$racc_print_stacks(i,r),c.racc_debug_out.$puts()}),s(O,"$racc_accept",function(){var t=this;return t.racc_debug_out.$puts("accept"),t.racc_debug_out.$puts()}),s(O,"$racc_e_pop",function(t,n,s){var o=this;return o.racc_debug_out.$puts("error recovering mode: pop token"),o.$racc_print_states(t),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_next_state",function(t,n){var s=this;return s.racc_debug_out.$puts("goto "+t),s.$racc_print_states(n),s.racc_debug_out.$puts()}),s(O,"$racc_print_stacks",function(n,s){var i=this,o=t,o=i.racc_debug_out;return o.$print(" ["),a(n,"each_index",[],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),o.$print(" (",a.$racc_token2str(n["$[]"](i))," ",s["$[]"](i).$inspect(),")")},{$$s:i}),o.$puts(" ]")}),s(O,"$racc_print_states",function(n){var o=this,s=t,s=o.racc_debug_out;return s.$print(" ["),a(n,"each",[],function(n){return n==null&&(n=t),s.$print(" ",n)}),s.$puts(" ]")}),s(O,"$racc_token2str",function(s){var o=this,i=t;return n(i=c(o.$class(),"Racc_token_to_s_table")["$[]"](s))?i:o.$raise("[Racc Bug] can't convert token "+s+" to string")}),s(O,"$token_to_str",function(t){var n=this;return c(n.$class(),"Racc_token_to_s_table")["$[]"](t)})}(O[0],null,O)}(l[0],l)},Opal.modules["parser/messages"]=function(e){var t=e.module,s=e.const_set,o=e.truthy,i=e.eqeqeq,a=e.defs,n=[],r=e.nil;return e.add_stubs("freeze,[],empty?,===,format"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return s(l[0],"MESSAGES",new Map([["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"],["gvar_name","`%{name}' is not allowed as a global 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"],["no_anonymous_restarg","no anonymous rest parameter"],["no_anonymous_kwrestarg","no anonymous keyword rest parameter"],["ambiguous_anonymous_restarg","anonymous rest parameter is also used within block"],["ambiguous_anonymous_kwrestarg","anonymous keyword rest parameter is also used within block"],["ambiguous_anonymous_blockarg","anonymous block parameter is also used within block"],["useless_else","else without rescue is useless"],["duplicate_hash_key","key is duplicated and overwritten"],["ambiguous_it_call","`it` calls without arguments refers to the first block param"],["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(n,s){var c=t(n,"Messages"),d=[c].concat(s),l=e.$r(d);return a(c,"$compile",function(t,n){var a=this,s=r,s=l("MESSAGES")["$[]"](t);return i(l("Hash"),n)&&o(n["$empty?"]())?s:a.$format(s,n)})}(l[0],l)}(n[0],n)},Opal.modules["parser/deprecation"]=function(e){var n=e.module,s=e.truthy,i=e.def,o=[],t=e.nil,a=e.$$$;return e.add_stubs("attr_writer,warn"),function(e,o){var r=n(e,"Parser"),c=[r].concat(o);return function(e){var o=n(e,"Deprecation");return o.$attr_writer("warned_of_deprecation"),i(o,"$warn_of_deprecation",function(){var n=this,o=t,i=t;return n.warned_of_deprecation==null&&(n.warned_of_deprecation=t),n.warned_of_deprecation=s(o=n.warned_of_deprecation)?o:!s(i=n.$warn(a(n,"DEPRECATION_WARNING")))||i})}(c[0])}(o[0],o)},Opal.modules["parser/ast/processor"]=function(e){var r=e.module,d=e.klass,s=e.def,t=e.alias,o=e.to_a,i=e.not,c=e.truthy,u=e.slice,l=[],n=e.nil,a=e.$$$;return e.add_stubs("include,updated,process_all,process_regular_node,on_var,process_variable_node,!,nil?,process,on_vasgn,process_var_asgn_node,on_argument,process_argument_node,is_a?,[],children,on_send,warn"),function(l,h){var f=r(l,"Parser"),m=[f].concat(h);return function(l,h){var f=r(l,"AST"),m=[f].concat(h);return function(r,l,h){var m=d(r,l,"Processor"),f=[m].concat(h),p=e.$r(f);return m.$include(a(a(a("AST"),"Processor"),"Mixin")),s(m,"$process_regular_node",function(t){var s=this;return t.$updated(n,s.$process_all(t))}),t(m,"on_dstr","process_regular_node"),t(m,"on_dsym","process_regular_node"),t(m,"on_regexp","process_regular_node"),t(m,"on_xstr","process_regular_node"),t(m,"on_splat","process_regular_node"),t(m,"on_kwsplat","process_regular_node"),t(m,"on_array","process_regular_node"),t(m,"on_pair","process_regular_node"),t(m,"on_hash","process_regular_node"),t(m,"on_kwargs","process_regular_node"),t(m,"on_irange","process_regular_node"),t(m,"on_erange","process_regular_node"),s(m,"$on_var",function(t){return t}),s(m,"$process_variable_node",function(t){var n=this;return n.$on_var(t)}),t(m,"on_lvar","process_variable_node"),t(m,"on_ivar","process_variable_node"),t(m,"on_gvar","process_variable_node"),t(m,"on_cvar","process_variable_node"),t(m,"on_back_ref","process_variable_node"),t(m,"on_nth_ref","process_variable_node"),s(m,"$on_vasgn",function(t){var c=this,r=n,a=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,i(a["$nil?"]())?t.$updated(n,[r,c.$process(a)]):t}),s(m,"$process_var_asgn_node",function(t){var n=this;return n.$on_vasgn(t)}),t(m,"on_lvasgn","process_var_asgn_node"),t(m,"on_ivasgn","process_var_asgn_node"),t(m,"on_gvasgn","process_var_asgn_node"),t(m,"on_cvasgn","process_var_asgn_node"),t(m,"on_and_asgn","process_regular_node"),t(m,"on_or_asgn","process_regular_node"),s(m,"$on_op_asgn",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[i.$process(a),r,i.$process(c)])}),t(m,"on_mlhs","process_regular_node"),t(m,"on_masgn","process_regular_node"),s(m,"$on_const",function(t){var r=this,i=n,a=n,s=[].concat(o(t));return i=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,t.$updated(n,[r.$process(i),a])}),s(m,"$on_casgn",function(t){var a=this,r=n,c=n,l=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],c=s[1]==null?n:s[1],l=s[2]==null?n:s[2],s,i(l["$nil?"]())?t.$updated(n,[a.$process(r),c,a.$process(l)]):t.$updated(n,[a.$process(r),c])}),t(m,"on_args","process_regular_node"),s(m,"$on_argument",function(t){var c=this,r=n,a=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,i(a["$nil?"]())?t.$updated(n,[r,c.$process(a)]):t}),s(m,"$process_argument_node",function(t){var n=this;return n.$on_argument(t)}),t(m,"on_arg","process_argument_node"),t(m,"on_optarg","process_argument_node"),t(m,"on_restarg","process_argument_node"),t(m,"on_blockarg","process_argument_node"),t(m,"on_shadowarg","process_argument_node"),t(m,"on_kwarg","process_argument_node"),t(m,"on_kwoptarg","process_argument_node"),t(m,"on_kwrestarg","process_argument_node"),t(m,"on_forward_arg","process_argument_node"),s(m,"$on_procarg0",function(t){var n=this;return c(t.$children()["$[]"](0)["$is_a?"](p("Symbol")))?n.$on_argument(t):n.$process_regular_node(t)}),t(m,"on_arg_expr","process_regular_node"),t(m,"on_restarg_expr","process_regular_node"),t(m,"on_blockarg_expr","process_regular_node"),t(m,"on_block_pass","process_regular_node"),t(m,"on_forwarded_restarg","process_regular_node"),t(m,"on_forwarded_kwrestarg","process_regular_node"),t(m,"on_module","process_regular_node"),t(m,"on_class","process_regular_node"),t(m,"on_sclass","process_regular_node"),s(m,"$on_def",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[a,i.$process(r),i.$process(c)])}),s(m,"$on_defs",function(t){var i=this,a=n,r=n,c=n,l=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],l=s[3]==null?n:s[3],s,t.$updated(n,[i.$process(a),r,i.$process(c),i.$process(l)])}),t(m,"on_undef","process_regular_node"),t(m,"on_alias","process_regular_node"),s(m,"$on_send",function(t){var a=this,i=n,r=n,l=n,s=[].concat(o(t));return i=s[0]==null?n:s[0],r=s[1]==null?n:s[1],l=u(s,2),s,c(i)&&(i=a.$process(i)),t.$updated(n,[i,r].concat(o(a.$process_all(l))))}),t(m,"on_csend","on_send"),t(m,"on_index","process_regular_node"),t(m,"on_indexasgn","process_regular_node"),t(m,"on_block","process_regular_node"),t(m,"on_lambda","process_regular_node"),s(m,"$on_numblock",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[i.$process(a),r,i.$process(c)])}),t(m,"on_while","process_regular_node"),t(m,"on_while_post","process_regular_node"),t(m,"on_until","process_regular_node"),t(m,"on_until_post","process_regular_node"),t(m,"on_for","process_regular_node"),t(m,"on_return","process_regular_node"),t(m,"on_break","process_regular_node"),t(m,"on_next","process_regular_node"),t(m,"on_redo","process_regular_node"),t(m,"on_retry","process_regular_node"),t(m,"on_super","process_regular_node"),t(m,"on_yield","process_regular_node"),t(m,"on_defined?","process_regular_node"),t(m,"on_not","process_regular_node"),t(m,"on_and","process_regular_node"),t(m,"on_or","process_regular_node"),t(m,"on_if","process_regular_node"),t(m,"on_when","process_regular_node"),t(m,"on_case","process_regular_node"),t(m,"on_iflipflop","process_regular_node"),t(m,"on_eflipflop","process_regular_node"),t(m,"on_match_current_line","process_regular_node"),t(m,"on_match_with_lvasgn","process_regular_node"),t(m,"on_resbody","process_regular_node"),t(m,"on_rescue","process_regular_node"),t(m,"on_ensure","process_regular_node"),t(m,"on_begin","process_regular_node"),t(m,"on_kwbegin","process_regular_node"),t(m,"on_preexe","process_regular_node"),t(m,"on_postexe","process_regular_node"),t(m,"on_case_match","process_regular_node"),t(m,"on_in_match","process_regular_node"),t(m,"on_match_pattern","process_regular_node"),t(m,"on_match_pattern_p","process_regular_node"),t(m,"on_in_pattern","process_regular_node"),t(m,"on_if_guard","process_regular_node"),t(m,"on_unless_guard","process_regular_node"),t(m,"on_match_var","process_variable_node"),t(m,"on_match_rest","process_regular_node"),t(m,"on_pin","process_regular_node"),t(m,"on_match_alt","process_regular_node"),t(m,"on_match_as","process_regular_node"),t(m,"on_array_pattern","process_regular_node"),t(m,"on_array_pattern_with_tail","process_regular_node"),t(m,"on_hash_pattern","process_regular_node"),t(m,"on_const_pattern","process_regular_node"),t(m,"on_find_pattern","process_regular_node"),s(m,"$process_variable_node",function(t){var n=this;return n.$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."),n.$on_var(t)}),s(m,"$process_var_asgn_node",function(t){var n=this;return n.$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."),n.$on_vasgn(t)}),s(m,"$process_argument_node",function(t){var n=this;return n.$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."),n.$on_argument(t)}),s(m,"$on_empty_else",function(t){return t})}(m[0],null,m)}(m[0],m)}(l[0],l)},Opal.modules["parser/meta"]=function(e){var t=e.module,n=e.const_set,o=e.rb_plus,s=[],i=e.nil;return e.add_stubs("freeze,private_constant,to_set,+"),function(s,i){var r=t(s,"Parser"),a=[r].concat(i);return function(s,i){var r=t(s,"Meta"),a=[r].concat(i),c=e.$r(a);return n(a[0],"PRISM_TRANSLATION_PARSER_NODE_TYPES",["itarg","itblock"].$freeze()),r.$private_constant("PRISM_TRANSLATION_PARSER_NODE_TYPES"),n(a[0],"NODE_TYPES",o(e.large_array_unpack("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,forwarded_restarg,forwarded_kwrestarg"),c("PRISM_TRANSLATION_PARSER_NODE_TYPES")).$to_set().$freeze())}(a[0],a)}(s[0],s)},Opal.modules["parser/source/buffer"]=function(e){var f=e.module,E=e.klass,C=e.const_set,_=e.regexp,n=e.enc,s=e.truthy,u=e.gvars,p=e.eqeq,d=e.neqeq,h=e.defs,g=e.slice,b=e.extract_kwargs,x=e.ensure_kwargs,j=e.hash_get,c=e.send,o=e.def,v=e.not,r=e.rb_plus,i=e.rb_minus,y=e.rb_ge,l=e.rb_lt,w=e.send2,O=e.find_super,m=[],t=e.nil,a=e.$$$;return e.add_stubs("attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,raise,message,encoding,recognize_encoding,force_encoding,encode,to_s,source=,open,read,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,is_a?,size,begin,line_index_for_position,line_begins,+,-,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index"),function(m,k){var S=f(m,"Parser"),A=[S].concat(k);return function(m,k){var S=f(m,"Source"),A=[S].concat(k);return function(m,f,k){var A=E(m,f,"Buffer"),F=[A].concat(k),S=e.$r(F),M=A.$$prototype;return M.name=M.source=M.slice_source=M.first_line=M.lines=M.source_range=M.line_begins=M.line_index_for_position=M.line_range=t,A.$attr_reader("name","first_line"),C(F[0],"ENCODING_RE",_([n("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),n("(","ASCII-8BIT"),n("","ASCII-8BIT"),n("(utf8-mac)","ASCII-8BIT"),n("|","ASCII-8BIT"),n("","ASCII-8BIT"),n("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),n("|","ASCII-8BIT"),n("([A-Za-z0-9_-]+)","ASCII-8BIT"),n(")","ASCII-8BIT"),n("","ASCII-8BIT")])),h(A,"$recognize_encoding",function(i){var c,l,j=this,h=t,f=t,r=t,m=t,g=t,v=t,b=t;if(s(i["$empty?"]()))return t;if(i["$=~"](/^(.*)\n?(.*\n)?/),c=[(l=u["~"])===t?t:l["$[]"](1),(l=u["~"])===t?t:l["$[]"](2)],h=c[0],f=c[1],c,s(h["$start_with?"](n("\xEF\xBB\xBF","ASCII-8BIT").$freeze())))return a(S("Encoding"),"UTF_8");if(p(h["$[]"](0,2),n("#!","ASCII-8BIT").$freeze())?r=f:r=h,s(r["$nil?"]())||d(r["$[]"](0),n("#","ASCII-8BIT")))return t;if(s(m=S("ENCODING_RE").$match(r)))try{return S("Encoding").$find(s(g=s(v=m["$[]"](3))?v:m["$[]"](4))?g:m["$[]"](6))}catch(t){if(e.rescue(t,[S("ArgumentError")])){b=t;try{return j.$raise(a(S("Parser"),"UnknownEncodingInMagicComment"),b.$message())}finally{e.pop_exception(t)}}else throw t}else return t}),h(A,"$reencode_string",function(n){var r=this,i=t,o=t,i=n.$encoding(),o=r.$recognize_encoding(n.$force_encoding(a(S("Encoding"),"BINARY")));return s(o["$nil?"]())?n.$force_encoding(i):p(o,a(S("Encoding"),"BINARY"))?n:n.$force_encoding(o).$encode(a(S("Encoding"),"UTF_8"))}),o(A,"$initialize",function(n){var r,l,d,a=this,u=g(arguments,1),h=b(u),h=x(h);return u.length>0&&(l=u.shift()),l==null&&(l=1),r=j(h,"source"),r==null&&(r=t),a.name=n.$to_s(),a.source=t,a.first_line=l,a.lines=t,a.line_begins=t,a.slice_source=t,a.line_index_for_position=new Map,s(r)?(d=[r],c(a,"source=",d),d[d.length-1]):t},-2),o(A,"$read",function(){var s=this;return c(S("File"),"open",[s.name,n("rb","ASCII-8BIT")],function e(n){var s,o=e.$$s==null?this:e.$$s;return n==null&&(n=t),(s=[n.$read()],c(o,"source=",s),s[s.length-1])},{$$s:s}),s}),o(A,"$source",function(){var t=this;return s(t.source["$nil?"]())&&t.$raise(S("RuntimeError"),n("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),t.source}),o(A,"$source=",function(t){var o,i=this;return s(t["$frozen?"]())&&(t=t.$dup()),t=i.$class().$reencode_string(t),s(t["$valid_encoding?"]())||i.$raise(S("EncodingError"),n("invalid byte sequence in ","ASCII-8BIT")+t.$encoding().$name()),(o=[t],c(i,"raw_source=",o),o[o.length-1])}),o(A,"$raw_source=",function(o){var i=this;return s(i.source)&&i.$raise(S("ArgumentError"),n("Source::Buffer is immutable","ASCII-8BIT")),i.source=o.$gsub(n(` +`,"ASCII-8BIT").$freeze(),n(` +`,"ASCII-8BIT").$freeze()).$freeze(),v(i.source["$ascii_only?"]())&&d(i.source.$encoding(),a(S("Encoding"),"UTF_32LE"))&&d(i.source.$encoding(),a(S("Encoding"),"BINARY"))?i.slice_source=i.source.$encode(a(S("Encoding"),"UTF_32LE")):t}),o(A,"$slice",function(n,o){var i=this;return o==null&&(o=t),s(o["$nil?"]())&&(s(n["$is_a?"](a("Range")))?(o=n.$size(),n=n.$begin()):o=1),s(i.slice_source["$nil?"]())?i.source["$[]"](n,o):i.slice_source["$[]"](n,o).$encode(i.source.$encoding())},-2),o(A,"$decompose_position",function(n){var s=this,o=t,a=t,o=s.$line_index_for_position(n),a=s.$line_begins()["$[]"](o);return[r(s.first_line,o),i(n,a)]}),o(A,"$line_for_position",function(t){var n=this;return r(n.$line_index_for_position(t),n.first_line)}),o(A,"$column_for_position",function(n){var s=this,o=t,o=s.$line_index_for_position(n);return i(n,s.$line_begins()["$[]"](o))}),o(A,"$source_lines",function(){var o=this,a=t,i=t;return o.lines=s(a=o.lines)?a:(i=o.source.$lines().$to_a(),s(o.source["$end_with?"](n(` +`,"ASCII-8BIT").$freeze()))?i["$<<"](n("","ASCII-8BIT").$dup()):t,c(i,"each",[],function(s){return s==null&&(s=t),s["$chomp!"](n(` +`,"ASCII-8BIT").$freeze()),s.$freeze()}),i.$freeze())}),o(A,"$source_line",function(t){var n=this;return n.$source_lines().$fetch(i(t,n.first_line)).$dup()}),o(A,"$line_range",function(o){var a=this,c=t,c=i(o,a.first_line);return s(l(c,0))||s(y(r(c,1),a.$line_begins().$size()))?a.$raise(S("IndexError"),n("Parser::Source::Buffer: range for line ","ASCII-8BIT")+(""+o+n(" requested, valid line numbers are ","ASCII-8BIT")+a.first_line+n("..","ASCII-8BIT"))+(""+i(r(a.first_line,a.$line_begins().$size()),2))):S("Range").$new(a,a.$line_begins()["$[]"](c),i(a.$line_begins()["$[]"](r(c,1)),1))}),o(A,"$source_range",function(){var n=this,o=t;return n.source_range=s(o=n.source_range)?o:S("Range").$new(n,0,n.$source().$size())}),o(A,"$last_line",function(){var t=this;return i(r(t.$line_begins().$size(),t.first_line),2)}),o(A,"$freeze",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.$source_lines(),n.$line_begins(),n.$source_range(),w(n,O(n,"freeze",e,!1,!0),"freeze",[],s)}),o(A,"$inspect",function(){var t=this;return n("#<","ASCII-8BIT")+t.$class()+n(" ","ASCII-8BIT")+t.$name()+n(">","ASCII-8BIT")}),A.$private(),o(A,"$line_begins",function(){var i=this,c=t,a=t,o=t;return i.line_begins=s(c=i.line_begins)?c:function(){return a=[0],o=0,function(){for(;s(o=i.source.$index(n(` +`,"ASCII-8BIT").$freeze(),o));)o=r(o,1),a["$<<"](o);return t}(),a["$<<"](r(i.source.$size(),1)),a}()}),o(A,"$line_index_for_position",function(n){var o=this,r=t,a=t;return s(r=o.line_index_for_position["$[]"](n))?r:(a=i(o.$bsearch(o.$line_begins(),n),1),s(o.line_index_for_position["$frozen?"]())||o.line_index_for_position["$[]="](n,a),a)}),s(S("Array")["$method_defined?"]("bsearch_index"))?o(A,"$bsearch",function(n,o){var a=t;return s(a=c(n,"bsearch_index",[],function(n){return n==null&&(n=t),l(o,n)}))?a:i(n.$size(),1)}):o(A,"$bsearch",function(o,a){var d=this,r=t;return d.line_range=s(r=d.line_range)?r:e.Range.$new(0,o.$size(),!0),s(r=c(d.line_range,"bsearch",[],function(n){return n==null&&(n=t),l(a,o["$[]"](n))}))?r:i(o.$size(),1)})}(A[0],null,A)}(A[0],A)}(m[0],m)},Opal.modules["parser/source/range"]=function(e){var u=e.module,b=e.klass,n=e.truthy,m=e.rb_lt,t=e.def,d=e.rb_minus,j=e.alias,v=e.neqeq,h=e.slice,f=e.to_ary,o=e.rb_plus,c=e.ensure_kwargs,i=e.hash_get,r=e.rb_ge,p=e.rb_times,g=e.eqeq,l=[],s=e.nil,a=e.$$$;return e.add_stubs("include,attr_reader,<,raise,nil?,freeze,with,-,size,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,include?,source,to_a,begin_pos,end_pos,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash"),function(l,y){var w=u(l,"Parser"),_=[w].concat(y);return function(l,y){var w=u(l,"Source"),_=[w].concat(y);return function(l,u,y){var _=b(l,u,"Range"),x=[_].concat(y),w=e.$r(x),O=_.$$prototype;return O.begin_pos=O.end_pos=O.source_buffer=s,_.$include(w("Comparable")),_.$attr_reader("source_buffer"),_.$attr_reader("begin_pos","end_pos"),t(_,"$initialize",function(t,s,o){var a,i=this;return n(m(o,s))&&i.$raise(w("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),n(t["$nil?"]())&&i.$raise(w("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),i.source_buffer=t,a=[s,o],i.begin_pos=a[0],i.end_pos=a[1],a,i.$freeze()}),t(_,"$begin",function(){var t=this;return t.$with(new Map([["end_pos",t.begin_pos]]))}),t(_,"$end",function(){var t=this;return t.$with(new Map([["begin_pos",t.end_pos]]))}),t(_,"$size",function(){var t=this;return d(t.end_pos,t.begin_pos)}),j(_,"length","size"),t(_,"$line",function(){var t=this;return t.source_buffer.$line_for_position(t.begin_pos)}),_.$alias_method("first_line","line"),t(_,"$column",function(){var t=this;return t.source_buffer.$column_for_position(t.begin_pos)}),t(_,"$last_line",function(){var t=this;return t.source_buffer.$line_for_position(t.end_pos)}),t(_,"$last_column",function(){var t=this;return t.source_buffer.$column_for_position(t.end_pos)}),t(_,"$column_range",function(){var n=this;return v(n.$line(),n.$last_line())&&n.$raise(w("RangeError"),""+n.$inspect()+" spans more than one line"),e.Range.$new(n.$column(),n.$last_column(),!0)}),t(_,"$source_line",function(){var t=this;return t.source_buffer.$source_line(t.$line())}),t(_,"$source",function(){var t=this;return t.source_buffer.$slice(t.begin_pos,d(t.end_pos,t.begin_pos))}),t(_,"$is?",function(){var o=this,n=h(arguments),s=n;return s["$include?"](o.$source())},-1),t(_,"$to_a",function(){var n=this;return e.Range.$new(n.begin_pos,n.end_pos,!0).$to_a()}),t(_,"$to_range",function(){var n=this;return e.Range.$new(n.$begin_pos(),n.$end_pos(),!0)}),t(_,"$to_s",function(){var n=this,a=s,r=s,i=n.source_buffer.$decompose_position(n.begin_pos),t=f(i);return a=t[0]==null?s:t[0],r=t[1]==null?s:t[1],i,[n.source_buffer.$name(),a,o(r,1)].$join(":")}),t(_,"$with",function(t){var n,s,o=this;return t=c(t),n=i(t,"begin_pos"),n==null&&(n=o.begin_pos),s=i(t,"end_pos"),s==null&&(s=o.end_pos),w("Range").$new(o.source_buffer,n,s)},-1),t(_,"$adjust",function(t){var n,s,a=this;return t=c(t),n=i(t,"begin_pos"),n==null&&(n=0),s=i(t,"end_pos"),s==null&&(s=0),w("Range").$new(a.source_buffer,o(a.begin_pos,n),o(a.end_pos,s))},-1),t(_,"$resize",function(t){var n=this;return n.$with(new Map([["end_pos",o(n.begin_pos,t)]]))}),t(_,"$join",function(t){var n=this;return w("Range").$new(n.source_buffer,[n.begin_pos,t.$begin_pos()].$min(),[n.end_pos,t.$end_pos()].$max())}),t(_,"$intersect",function(t){var o=this;return n(o["$disjoint?"](t))?s:w("Range").$new(o.source_buffer,[o.begin_pos,t.$begin_pos()].$max(),[o.end_pos,t.$end_pos()].$min())}),t(_,"$disjoint?",function(t){var o=this,i=s;return n(o["$empty?"]())&&n(t["$empty?"]())?o.begin_pos["$!="](t.$begin_pos()):n(i=r(o.begin_pos,t.$end_pos()))?i:r(t.$begin_pos(),o.end_pos)}),t(_,"$overlaps?",function(t){var n=this;return n["$disjoint?"](t)["$!"]()}),t(_,"$contains?",function(t){var s=this;return r(o(t.$begin_pos()["$<=>"](s.begin_pos),s.end_pos["$<=>"](t.$end_pos())),n(t["$empty?"]())?2:1)}),t(_,"$contained?",function(t){var n=this;return t["$contains?"](n)}),t(_,"$crossing?",function(t){var s=this;return!!n(s["$overlaps?"](t))&&p(s.begin_pos["$<=>"](t.$begin_pos()),s.end_pos["$<=>"](t.$end_pos()))["$=="](1)}),t(_,"$empty?",function(){var t=this;return t.begin_pos["$=="](t.end_pos)}),t(_,"$<=>",function(t){var o=this,i=s;return n(t["$is_a?"](a(a(a("Parser"),"Source"),"Range")))&&g(o.source_buffer,t.$source_buffer())?n(i=o.begin_pos["$<=>"](t.$begin_pos())["$nonzero?"]())?i:o.end_pos["$<=>"](t.$end_pos()):s}),_.$alias_method("eql?","=="),t(_,"$hash",function(){var t=this;return[t.source_buffer,t.begin_pos,t.end_pos].$hash()}),t(_,"$inspect",function(){var t=this;return"#"})}(_[0],null,_)}(_[0],_)}(l[0],l)},Opal.modules["parser/source/comment"]=function(e){var a=e.module,c=e.klass,s=e.defs,t=e.def,o=e.truthy,r=[],n=e.nil,i=e.$$$;return e.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(r,l){var u=a(r,"Parser"),d=[u].concat(l);return function(r,l){var u=a(r,"Source"),d=[u].concat(l);return function(a,r,l){var d=c(a,r,"Comment"),h=[d].concat(l),u=e.$r(h),m=d.$$prototype;return m.location=n,d.$attr_reader("text"),d.$attr_reader("location"),d.$alias_method("loc","location"),s(d,"$associate",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate()}),s(d,"$associate_locations",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate_locations()}),s(d,"$associate_by_identity",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate_by_identity()}),t(d,"$initialize",function(t){var n=this;return n.location=i(i(u("Parser"),"Source"),"Map").$new(t),n.text=t.$source().$freeze(),n.$freeze()}),t(d,"$type",function(){var t=this;return o(t.$text()["$start_with?"]("#".$freeze()))?"inline":o(t.$text()["$start_with?"]("=begin".$freeze()))?"document":n}),t(d,"$inline?",function(){var t=this;return t.$type()["$=="]("inline")}),t(d,"$document?",function(){var t=this;return t.$type()["$=="]("document")}),t(d,"$==",function(t){var a=this,s=n;return o(s=t["$is_a?"](i(u("Source"),"Comment")))?a.location["$=="](t.$location()):s}),t(d,"$inspect",function(){var t=this;return"#"})}(d[0],null,d)}(d[0],d)}(r[0],r)},Opal.modules["parser/source/comment/associator"]=function(e){var d=e.module,m=e.klass,s=e.def,l=e.const_set,n=e.truthy,o=e.send,a=e.eqeq,r=e.rb_le,h=e.rb_plus,i=e.not,u=[],t=e.nil,c=e.$$$;return e.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(u,f){var g=d(u,"Parser"),p=[g].concat(f);return function(u,f){var g=d(u,"Source"),p=[g].concat(f),v=e.$r(p);return function(d,u,f){var p=m(d,u,"Associator"),b=[p].concat(f),g=e.$r(b),v=p.$$prototype;return v.map_using=v.mapping=v.skip_directives=v.ast=v.current_comment=v.comment_num=v.comments=t,p.$attr_accessor("skip_directives"),s(p,"$initialize",function(t,n){var s=this;return s.ast=t,s.comments=n,s.skip_directives=!0}),s(p,"$associate",function(){var t=this;return t.map_using="eql",t.$do_associate()}),s(p,"$associate_locations",function(){var t=this;return t.map_using="location",t.$do_associate()}),s(p,"$associate_by_identity",function(){var t=this;return t.map_using="identity",t.$do_associate()}),p.$private(),l(b[0],"POSTFIX_TYPES",g("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),s(p,"$children_in_source_order",function(s){return n(g("POSTFIX_TYPES")["$include?"](s.$type()))?o(s.$children().$compact(),"sort_by",[],function(n){return n==null&&(n=t),n.$loc().$expression().$begin_pos()}):o(s.$children(),"select",[],function(s){var o=t,i=t;return s==null&&(s=t),n(o=n(i=s["$is_a?"](c(g("AST"),"Node")))?s.$loc():i)?s.$loc().$expression():o})}),s(p,"$do_associate",function(){var s=this;return s.mapping=o(g("Hash"),"new",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),(i=[s,[]],o(n,"[]=",i),i[i.length-1])}),a(s.map_using,"identity")&&s.mapping.$compare_by_identity(),s.comment_num=-1,s.$advance_comment(),n(s.skip_directives)&&s.$advance_through_directives(),n(s.ast)&&s.$visit(s.ast),s.mapping}),s(p,"$visit",function(s){var i=this,a=t;return i.$process_leading_comments(s),n(i.current_comment)?(a=s.$location(),n(r(i.current_comment.$location().$line(),a.$last_line()))||n(a["$is_a?"](c(g("Map"),"Heredoc")))?(o(i.$children_in_source_order(s),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$visit(n)},{$$s:i}),i.$process_trailing_comments(s)):t):t}),s(p,"$process_leading_comments",function(s){var o=this;if(a(s.$type(),"begin"))return t;for(;n(o["$current_comment_before?"](s));)o.$associate_and_advance_comment(s)}),s(p,"$process_trailing_comments",function(t){for(var s=this;n(s["$current_comment_before_end?"](t));)s.$associate_and_advance_comment(t);for(;n(s["$current_comment_decorates?"](t));)s.$associate_and_advance_comment(t)}),s(p,"$advance_comment",function(){var t=this;return t.comment_num=h(t.comment_num,1),t.current_comment=t.comments["$[]"](t.comment_num)}),s(p,"$current_comment_before?",function(n){var s=this,o=t,a=t;return!i(s.current_comment)&&(o=s.current_comment.$location().$expression(),a=n.$location().$expression(),r(o.$end_pos(),a.$begin_pos()))}),s(p,"$current_comment_before_end?",function(n){var s=this,o=t,a=t;return!i(s.current_comment)&&(o=s.current_comment.$location().$expression(),a=n.$location().$expression(),r(o.$end_pos(),a.$end_pos()))}),s(p,"$current_comment_decorates?",function(t){var n=this;return!i(n.current_comment)&&n.current_comment.$location().$line()["$=="](t.$location().$last_line())}),s(p,"$associate_and_advance_comment",function(n){var s=this,o=t,o=a(s.map_using,"location")?n.$location():n;return s.mapping["$[]"](o)["$<<"](s.current_comment),s.$advance_comment()}),l(b[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),s(p,"$advance_through_directives",function(){var s=this;return n(s.current_comment)&&n(s.current_comment.$text()["$start_with?"]("#!".$freeze()))&&s.$advance_comment(),n(s.current_comment)&&n(s.current_comment.$text()["$=~"](g("MAGIC_COMMENT_RE")))&&s.$advance_comment(),n(s.current_comment)&&n(s.current_comment.$text()["$=~"](c(g("Buffer"),"ENCODING_RE")))?s.$advance_comment():t})}(v("Comment"),null,p)}(p[0],p)}(u[0],u)},Opal.modules["parser/source/rewriter"]=function(e){var h=e.module,v=e.klass,i=e.send,u=e.gvars,n=e.def,o=e.rb_minus,r=e.rb_plus,s=e.truthy,l=e.not,d=e.neqeq,c=e.rb_le,f=e.rb_ge,p=e.rb_lt,g=e.const_set,m=[],t=e.nil,a=e.$$$;return e.add_stubs("attr_reader,warn_of_deprecation,class,new,consumer=,lambda,puts,render,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=,active_clobber,clobbered_position_mask,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(m,b){var y=h(m,"Parser"),j=[y].concat(b);return function(m,b){var y=h(m,"Source"),j=[y].concat(b);return function(h,m,b){var j=v(h,m,"Rewriter"),w=[j].concat(b),y=e.$r(w),_=j.$$prototype;return _.diagnostics=_.insert_before_multi_order=_.insert_after_multi_order=_.source_buffer=_.queue=_.clobber=_.insertions=_.pending_queue=_.pending_clobber=_.pending_insertions=t,j.$attr_reader("source_buffer"),j.$attr_reader("diagnostics"),n(j,"$initialize",function(n){var s=this;return s.$class().$warn_of_deprecation(),s.diagnostics=a(y("Diagnostic"),"Engine").$new(),s.diagnostics["$consumer="](i(s,"lambda",[],function(n){return u.stderr==null&&(u.stderr=t),n==null&&(n=t),u.stderr.$puts(n.$render())})),s.source_buffer=n,s.queue=[],s.clobber=0,s.insertions=0,s.insert_before_multi_order=0,s.insert_after_multi_order=0,s.pending_queue=t,s.pending_clobber=t,s.pending_insertions=t}),n(j,"$remove",function(t){var n=this;return n.$append(a(y("Rewriter"),"Action").$new(t,"".$freeze()))}),n(j,"$insert_before",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n))}),n(j,"$wrap",function(t,n,s){var o=this;return o.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n)),o.$append(a(y("Rewriter"),"Action").$new(t.$end(),s))}),n(j,"$insert_before_multi",function(t,n){var s=this;return s.insert_before_multi_order=o(s.insert_before_multi_order,1),s.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n,!0,s.insert_before_multi_order))}),n(j,"$insert_after",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t.$end(),n))}),n(j,"$insert_after_multi",function(t,n){var s=this;return s.insert_after_multi_order=r(s.insert_after_multi_order,1),s.$append(a(y("Rewriter"),"Action").$new(t.$end(),n,!0,s.insert_after_multi_order))}),n(j,"$replace",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t,n))}),n(j,"$process",function(){var a=this,c=t,l=t;return s(a["$in_transaction?"]())&&a.$raise("Do not call "+a.$class()+"#"+"process"+" inside a transaction"),c=0,l=a.source_buffer.$source().$dup(),i(a.queue.$sort(),"each",[],function(s){var i=t,a=t;return s==null&&(s=t),i=r(s.$range().$begin_pos(),c),a=r(i,s.$range().$length()),l["$[]="](e.Range.$new(i,a,!0),s.$replacement()),c=r(c,o(s.$replacement().$length(),s.$range().$length()))}),l}),n(j,"$transaction",function n(){var i=n.$$p||t,o=this;return n.$$p=null,function(){try{return i!==t||o.$raise(""+o.$class()+"#"+"transaction"+" requires block"),s(o["$in_transaction?"]())&&o.$raise("Nested transaction is not supported"),o.pending_queue=o.queue.$dup(),o.pending_clobber=o.clobber,o.pending_insertions=o.insertions,e.yieldX(i,[]),o.queue=o.pending_queue,o.clobber=o.pending_clobber,o.insertions=o.pending_insertions,o}finally{o.pending_queue=t,o.pending_clobber=t,o.pending_insertions=t}}()}),j.$private(),n(j,"$append",function(n){var o=this,a=t,c=t,r=t,d=t,a=n.$range();if(s(a["$empty?"]())){if(s(n.$replacement()["$empty?"]()))return o;l(n["$allow_multiple_insertions?"]())&&s(c=o["$clobbered_insertion?"](a))&&o.$raise_clobber_error(n,[c]),o.$record_insertion(a),s(r=o["$adjacent_updates?"](a))?(c=i(r,"find",[],function e(o){var r=e.$$s==null?this:e.$$s,i=t;return o==null&&(o=t),s(i=o.$range()["$overlaps?"](a))?r["$replace_compatible_with_insertion?"](o,n)["$!"]():i},{$$s:o}),s(c)&&o.$raise_clobber_error(n,[c]),o["$merge_actions!"](n,r)):o.$active_queue()["$<<"](n)}else s(d=o["$adjacent_insertions?"](a))&&i(d,"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),s(a["$overlaps?"](o.$range()))&&l(i["$replace_compatible_with_insertion?"](n,o))?i.$raise_clobber_error(n,[o]):(n=i.$merge_actions(n,[o]),i.$active_queue().$delete(o))},{$$s:o}),s(r=o["$adjacent_updates?"](a))?s(o["$can_merge?"](n,r))?(o.$record_replace(a),o["$merge_actions!"](n,r)):o.$raise_clobber_error(n,r):(o.$record_replace(a),o.$active_queue()["$<<"](n));return o}),n(j,"$record_insertion",function(t){var n,s=this;return n=[s.$active_insertions()["$|"](1["$<<"](t.$begin_pos()))],i(s,"active_insertions=",n),n[n.length-1]}),n(j,"$record_replace",function(t){var n,s=this;return n=[s.$active_clobber()["$|"](s.$clobbered_position_mask(t))],i(s,"active_clobber=",n),n[n.length-1]}),n(j,"$clobbered_position_mask",function(t){return o(1["$<<"](t.$size()),1)["$<<"](t.$begin_pos())}),n(j,"$adjacent_position_mask",function(t){return o(1["$<<"](r(t.$size(),2)),1)["$<<"](o(t.$begin_pos(),1))}),n(j,"$adjacent_insertion_mask",function(t){return o(1["$<<"](r(t.$size(),1)),1)["$<<"](t.$begin_pos())}),n(j,"$clobbered_insertion?",function(n){var a=this,o=t,o=n.$begin_pos();return d(a.$active_insertions()["$&"](1["$<<"](o)),0)?i(a.$active_queue(),"find",[],function(n){var i=t;return n==null&&(n=t),s(i=c(n.$range().$begin_pos(),o))?c(o,n.$range().$end_pos()):i}):t}),n(j,"$adjacent_insertions?",function(n){var o=this,a=t;return d(o.$active_insertions()["$&"](o.$adjacent_insertion_mask(n)),0)?(a=i(o.$active_queue(),"select",[],function e(o){var a=e.$$s==null?this:e.$$s,i=t;return o==null&&(o=t),s(i=o.$range()["$empty?"]())?a["$adjacent?"](n,o.$range()):i},{$$s:o}),s(a["$empty?"]())?t:a):t}),n(j,"$adjacent_updates?",function(n){var s=this;return d(s.$active_clobber()["$&"](s.$adjacent_position_mask(n)),0)?i(s.$active_queue(),"select",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),o["$adjacent?"](n,s.$range())},{$$s:s}):t}),n(j,"$replace_compatible_with_insertion?",function(n,i){var a=t,r=t,c=t;return s(a=s(r=f(o(n.$replacement().$length(),n.$range().$size()),i.$range().$size()))?c=o(i.$range().$begin_pos(),n.$range().$begin_pos()):r)?n.$replacement()["$[]"](c,i.$replacement().$length())["$=="](i.$replacement()):a}),n(j,"$can_merge?",function(n,a){var r=t,r=n.$range();return i(a,"all?",[],function(i){var a=t,c=t,l=t,u=t,h=t,m=t,d=t,f=t;return i==null&&(i=t),a=r.$intersect(i.$range()),!!s(a["$nil?"]())||(c=o(a.$begin_pos(),r.$begin_pos()),l=o(a.$begin_pos(),i.$range().$begin_pos()),u=[o(i.$range().$length(),l),o(i.$replacement().$length(),l)].$max(),h=[o(r.$length(),c),o(n.$replacement().$length(),c)].$max(),m=s(d=n.$replacement()["$[]"](c,u))?d:"".$freeze(),f=s(d=i.$replacement()["$[]"](l,h))?d:"".$freeze(),m["$=="](f))})}),n(j,"$merge_actions",function(n,s){var c=this,o=t,r=t,o=i(s.$push(n),"sort_by",[],function(n){return n==null&&(n=t),[n.$range().$begin_pos(),n.$range().$end_pos()]}),r=o.$first().$range().$join(i(o,"max_by",[],function(n){return n==null&&(n=t),n.$range().$end_pos()}).$range());return a(y("Rewriter"),"Action").$new(r,c.$merge_replacements(o))}),n(j,"$merge_actions!",function(n,s){var o=this,i=t,i=o.$merge_actions(n,s);return o.$active_queue().$delete(n),o.$replace_actions(s,i)}),n(j,"$merge_replacements",function(a){var d=t,c=t,d="".$dup(),c=t;return i(a,"each",[],function(i){var u=t,a=t;return i==null&&(i=t),l(c)||s(i.$range()["$disjoint?"](c.$range()))?d["$<<"](i.$replacement()):(u=[r(c.$range().$begin_pos(),c.$replacement().$length()),c.$range().$end_pos()].$max(),a=o(u,i.$range().$begin_pos()),s(p(a,i.$replacement().$size()))&&d["$<<"](i.$replacement()["$[]"](e.Range.$new(a,-1,!1)))),c=i}),d}),n(j,"$replace_actions",function(n,s){var o=this;return i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$active_queue().$delete(n)},{$$s:o}),o.$active_queue()["$<<"](s)}),n(j,"$raise_clobber_error",function(n,s){var i=this,o=t,o=y("Diagnostic").$new("error","invalid_action",new Map([["action",n]]),n.$range());return i.diagnostics.$process(o),o=y("Diagnostic").$new("note","clobbered",new Map([["action",s["$[]"](0)]]),s["$[]"](0).$range()),i.diagnostics.$process(o),i.$raise(y("ClobberingError"),"Parser::Source::Rewriter detected clobbering")}),n(j,"$in_transaction?",function(){var t=this;return t.pending_queue["$nil?"]()["$!"]()}),n(j,"$active_queue",function(){var n=this,o=t;return s(o=n.pending_queue)?o:n.queue}),n(j,"$active_clobber",function(){var n=this,o=t;return s(o=n.pending_clobber)?o:n.clobber}),n(j,"$active_insertions",function(){var n=this,o=t;return s(o=n.pending_insertions)?o:n.insertions}),n(j,"$active_clobber=",function(t){var n=this;return s(n.pending_clobber)?n.pending_clobber=t:n.clobber=t}),n(j,"$active_insertions=",function(t){var n=this;return s(n.pending_insertions)?n.pending_insertions=t:n.insertions=t}),n(j,"$adjacent?",function(n,o){var i=t;return s(i=c(n.$begin_pos(),o.$end_pos()))?c(o.$begin_pos(),n.$end_pos()):i}),g(w[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join(` +`).$freeze()),j.$extend(y("Deprecation"))}(j[0],null,j)}(j[0],j)}(m[0],m)},Opal.modules["parser/source/rewriter/action"]=function(e){var s=e.module,r=e.klass,t=e.def,n=e.truthy,o=e.eqeq,i=[],a=e.nil;return e.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function(i,c){var d=s(i,"Parser"),l=[d].concat(c);return function(i,c){var d=s(i,"Source"),l=[d].concat(c),u=e.$r(l);return function(s,i,c){var l=r(s,i,"Action"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.replacement=d.range=a,l.$include(h("Comparable")),l.$attr_reader("range","replacement","allow_multiple_insertions","order"),l.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),t(l,"$initialize",function(t,n,s,o){var i=this;return n==null&&(n=""),s==null&&(s=!1),o==null&&(o=0),i.range=t,i.replacement=n,i.allow_multiple_insertions=s,i.order=o,i.$freeze()},-2),t(l,"$<=>",function(t){var o=this,s=a,s=o.$range().$begin_pos()["$<=>"](t.$range().$begin_pos());return n(s["$zero?"]())?o.$order()["$<=>"](t.$order()):s}),t(l,"$to_s",function(){var t=this;return o(t.range.$length(),0)&&n(t.replacement["$empty?"]())?"do nothing":o(t.range.$length(),0)?"insert "+t.replacement.$inspect():n(t.replacement["$empty?"]())?"remove "+t.range.$length()+" character(s)":"replace "+t.range.$length()+" character(s) with "+t.replacement.$inspect()})}(u("Rewriter"),null,l)}(l[0],l)}(i[0],i)},Opal.modules["parser/source/tree_rewriter"]=function(e){var m=e.module,x=e.klass,c=e.ensure_kwargs,i=e.hash_get,O=e.lambda,l=e.gvars,n=e.def,a=e.eqeq,s=e.truthy,u=e.rb_plus,h=e.send,g=e.return_ivar,r=e.const_set,f=e.eqeqeq,w=e.range,d=e.to_ary,v=e.rb_minus,b=e.rb_gt,j=e.rb_lt,y=e.kwrestargs,_=e.slice,p=[],t=e.nil,o=e.$$$;return e.add_stubs("attr_reader,new,consumer=,puts,render,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(p,C){var k=m(p,"Parser"),E=[k].concat(C);return function(p,C){var k=m(p,"Source"),E=[k].concat(C);return function(m,p,C){var E=x(m,p,"TreeRewriter"),S=[E].concat(C),k=e.$r(S),A=E.$$prototype;return A.diagnostics=A.source_buffer=A.enforcer=A.action_root=A.in_transaction=A.policy=t,E.$attr_reader("source_buffer"),E.$attr_reader("diagnostics"),n(E,"$initialize",function(n,s){var r,d,u,a=this,h=t;return s=c(s),r=i(s,"crossing_deletions"),r==null&&(r="accept"),d=i(s,"different_replacements"),d==null&&(d="accept"),u=i(s,"swallowed_insertions"),u==null&&(u="accept"),a.diagnostics=o(k("Diagnostic"),"Engine").$new(),a.diagnostics["$consumer="](O(function(n){return l.stderr==null&&(l.stderr=t),n==null&&(n=t),l.stderr.$puts(n.$render())})),a.source_buffer=n,a.in_transaction=!1,a.policy=new Map([["crossing_deletions",r],["different_replacements",d],["swallowed_insertions",u]]).$freeze(),a.$check_policy_validity(),a.enforcer=a.$method("enforce_policy"),h=a.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),a.action_root=o(k("TreeRewriter"),"Action").$new(h,a.enforcer)},-2),n(E,"$empty?",function(){var t=this;return t.action_root["$empty?"]()}),n(E,"$merge!",function(t){var n=this;return a(n.$source_buffer(),t.$source_buffer())||n.$raise("TreeRewriter are not for the same source_buffer"),n.action_root=n.action_root.$combine(t.$action_root()),n}),n(E,"$merge",function(t){var n=this;return n.$dup()["$merge!"](t)}),n(E,"$import!",function(n,a){var l,r=this,d=t,h=t,m=t;return a=c(a),l=i(a,"offset"),l==null&&(l=0),s(n["$empty?"]())?r:(d=n.$action_root().$contract(),h=o(o(o("Parser"),"Source"),"Range").$new(r.source_buffer,u(d.$range().$begin_pos(),l),u(d.$range().$end_pos(),l)),r.$check_range_validity(h),m=d.$moved(r.source_buffer,l),r.action_root=r.action_root.$combine(m),r)},-2),n(E,"$replace",function(t,n){var s=this;return s.$combine(t,new Map([["replacement",n]]))}),n(E,"$wrap",function(t,n,s){var o=this;return o.$combine(t,new Map([["insert_before",n.$to_s()],["insert_after",s.$to_s()]]))}),n(E,"$remove",function(t){var n=this;return n.$replace(t,"".$freeze())}),n(E,"$insert_before",function(n,s){var o=this;return o.$wrap(n,s,t)}),n(E,"$insert_after",function(n,s){var o=this;return o.$wrap(n,t,s)}),n(E,"$process",function(){var a=this,s=t,o=t,i=t,s=a.source_buffer.$source(),o=[],i=0;return h(a.action_root.$ordered_replacements(),"each",[],function(a,r){return a==null&&(a=t),r==null&&(r=t),o["$<<"](s["$[]"](e.Range.$new(i,a.$begin_pos(),!0)))["$<<"](r),i=a.$end_pos()}),o["$<<"](s["$[]"](e.Range.$new(i,s.$length(),!0))),o.$join()}),n(E,"$as_replacements",function(){var t=this;return t.action_root.$ordered_replacements()}),n(E,"$as_nested_actions",function(){var t=this;return t.action_root.$nested_actions()}),n(E,"$transaction",function n(){var a=n.$$p||t,o=this,r=t,i=t;return n.$$p=null,function(){try{return a!==t||o.$raise(""+o.$class()+"#"+"transaction"+" requires block"),r=o.in_transaction,o.in_transaction=!0,i=o.action_root,e.yieldX(a,[]),i=t,o}finally{s(i)?o.action_root=i:t,o.in_transaction=r}}()}),n(E,"$in_transaction?",g("in_transaction")),n(E,"$inspect",function(){var t=this;return"#<"+t.$class()+" "+t.$source_buffer().$name()+": "+t.$action_summary()+">"}),n(E,"$insert_before_multi",function(t,n){var s=this;return s.$class().$warn_of_deprecation(),s.$insert_before(t,n)}),n(E,"$insert_after_multi",function(t,n){var s=this;return s.$class().$warn_of_deprecation(),s.$insert_after(t,n)}),r(S[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(` +`).$freeze()),E.$extend(k("Deprecation")),E.$protected(),E.$attr_reader("action_root"),E.$private(),n(E,"$action_summary",function(){var c=this,n=t,r=t,o=t,i=t,n=c.$as_replacements();return f(0,r=n.$size())?"empty":(f(w(1,3,!1),r)||(n=n.$first(3),o="…"),i=h(n,"map",[],function(n){var o,c,i=t,r=t;return n==null&&(n=t),c=n,o=d(c),i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],c,s(r["$empty?"]())?"-"+i.$to_range():a(i.$size(),0)?"+"+r.$inspect()+"@"+i.$begin_pos():"^"+r.$inspect()+"@"+i.$to_range()},{$$has_top_level_mlhs_arg:!0}),s(o)&&i["$<<"](o),i.$join(", "))}),r(S[0],"ACTIONS",["accept","warn","raise"].$freeze()),n(E,"$check_policy_validity",function(){var o=this,n=t,n=v(o.policy.$values(),k("ACTIONS"));return s(n["$empty?"]())?t:o.$raise(k("ArgumentError"),"Invalid policy: "+n.$join(", "))}),n(E,"$combine",function(s,i){var a=this,r=t;return s=a.$check_range_validity(s),r=o(k("TreeRewriter"),"Action").$new(s,a.enforcer,e.to_hash(i)),a.action_root=a.action_root.$combine(r),a}),n(E,"$check_range_validity",function(t){var n=this;return(s(j(t.$begin_pos(),0))||s(b(t.$end_pos(),n.source_buffer.$source().$size())))&&n.$raise(k("IndexError"),"The range "+t.$to_range()+" is outside the bounds of the source"),t}),n(E,"$enforce_policy",function n(o){var c=n.$$p||t,i=this,r=t;return n.$$p=null,a(i.policy["$[]"](o),"accept")?t:s(r=e.yieldX(c,[]))?i.$trigger_policy(o,e.to_hash(r)):t}),r(S[0],"POLICY_TO_LEVEL",new Map([["warn","warning"],["raise","error"]]).$freeze()),n(E,"$trigger_policy",function(n,r){var l,u,m,g,v,h=this,f=t,b=t,p=t,j=t;return r=c(r),l=i(r,"range"),l==null&&(l=h.$raise()),u=i(r,"conflict"),u==null&&(u=t),g=y(r,{range:!0,conflict:!0}),f=s(b=h.policy["$[]"](n))?b:"raise",p=o(k("Parser"),"Diagnostic").$new(k("POLICY_TO_LEVEL")["$[]"](f),n,g,l),h.diagnostics.$process(p),s(u)&&(v=u,m=d(v),l=m[0]==null?t:m[0],j=_(m,1),v,p=o(k("Parser"),"Diagnostic").$new(k("POLICY_TO_LEVEL")["$[]"](f),""+n+"_conflict",g,l,j),h.diagnostics.$process(p)),a(f,"raise")?h.$raise(o(k("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):t},-2)}(E[0],null,E)}(E[0],E)}(p[0],p)},Opal.modules["parser/source/tree_rewriter/action"]=function(e){var m=e.module,y=e.klass,h=e.ensure_kwargs,i=e.hash_get,s=e.def,n=e.truthy,o=e.send,p=e.not,l=e.rb_plus,c=e.eqeq,a=e.to_a,f=e.rb_gt,r=e.rb_minus,g=e.rb_ge,v=e.rb_le,_=e.rb_lt,j=e.slice,b=e.neqeq,u=[],t=e.nil,d=e.$$$;return e.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(u,w){var x=m(u,"Parser"),O=[x].concat(w);return function(u,w){var O=m(u,"Source"),x=[O].concat(w),C=e.$r(x);return function(u,m){var w=y(u,m,"Action"),O=w.$$prototype;return O.insert_before=O.insert_after=O.children=O.replacement=O.range=O.enforcer=t,w.$attr_reader("range","replacement","insert_before","insert_after"),s(w,"$initialize",function(n,s,o){var a,c,l,d,u,r=this;return o=h(o),c=i(o,"insert_before"),c==null&&(c=""),l=i(o,"replacement"),l==null&&(l=t),d=i(o,"insert_after"),d==null&&(d=""),u=i(o,"children"),u==null&&(u=[]),a=[n,s,u.$freeze(),c.$freeze(),l,d.$freeze()],r.range=a[0],r.enforcer=a[1],r.children=a[2],r.insert_before=a[3],r.replacement=a[4],r.insert_after=a[5],a,r.$freeze()},-3),s(w,"$combine",function(t){var s=this;return n(t["$empty?"]())?s:s.$do_combine(t)}),s(w,"$empty?",function(){var s=this,a=t,o=t,i=t;return n(a=n(o=n(i=s.insert_before["$empty?"]())?s.insert_after["$empty?"]():i)?s.children["$empty?"]():o)?n(o=s.replacement["$=="](t))?o:n(i=s.replacement["$empty?"]())?s.range["$empty?"]():i:a}),s(w,"$ordered_replacements",function(){var s=this,i=t,i=[];return n(s.insert_before["$empty?"]())||i["$<<"]([s.range.$begin(),s.insert_before]),n(s.replacement)&&i["$<<"]([s.range,s.replacement]),i.$concat(o(s.children,"flat_map",[],"ordered_replacements".$to_proc())),n(s.insert_after["$empty?"]())||i["$<<"]([s.range.$end(),s.insert_after]),i}),s(w,"$nested_actions",function(){var s=this,i=t,i=[];return(p(s.insert_before["$empty?"]())||p(s.insert_after["$empty?"]()))&&i["$<<"](["wrap",s.range,s.insert_before,s.insert_after]),n(s.replacement)&&i["$<<"](["replace",s.range,s.replacement]),i.$concat(o(s.children,"flat_map",[],"nested_actions".$to_proc()))}),s(w,"$insertion?",function(){var s=this,i=t,o=t;return n(i=n(o=s.$insert_before()["$empty?"]()["$!"]())?o:s.$insert_after()["$empty?"]()["$!"]())?i:n(o=s.$replacement())?s.$replacement()["$empty?"]()["$!"]():o}),s(w,"$contract",function(){var s=this,o=t;return n(s["$empty?"]())&&s.$raise("Empty actions can not be contracted"),n(s["$insertion?"]())?s:(o=s.range.$with(new Map([["begin_pos",s.$children().$first().$range().$begin_pos()],["end_pos",s.$children().$last().$range().$end_pos()]])),s.$with(new Map([["range",o]])))}),s(w,"$moved",function(n,s){var i=this,a=t,a=d(d(d("Parser"),"Source"),"Range").$new(n,l(i.range.$begin_pos(),s),l(i.range.$end_pos(),s));return i.$with(new Map([["range",a],["children",o(i.$children(),"map",[],function(o){return o==null&&(o=t),o.$moved(n,s)})]]))}),w.$protected(),w.$attr_reader("children"),s(w,"$with",function(t){var o,a,r,c,l,d,s=this;return t=h(t),r=i(t,"range"),r==null&&(r=s.range),c=i(t,"enforcer"),c==null&&(c=s.enforcer),o=i(t,"children"),o==null&&(o=s.children),l=i(t,"insert_before"),l==null&&(l=s.insert_before),a=i(t,"replacement"),a==null&&(a=s.replacement),d=i(t,"insert_after"),d==null&&(d=s.insert_after),n(a)&&(o=s.$swallow(o)),s.$class().$new(r,c,new Map([["children",o],["insert_before",l],["replacement",a],["insert_after",d]]))},-1),s(w,"$do_combine",function(t){var n=this;return c(t.$range(),n.range)?n.$merge(t):n.$place_in_hierarchy(t)}),s(w,"$place_in_hierarchy",function(s){var i=this,o=t,r=t,o=i.$analyse_hierarchy(s);return n(o["$[]"]("fusible"))?i.$fuse_deletions(s,o["$[]"]("fusible"),[].concat(a(o["$[]"]("sibbling_left"))).concat(a(o["$[]"]("child"))).concat(a(o["$[]"]("sibbling_right")))):(r=n(o["$[]"]("parent"))?o["$[]"]("parent").$do_combine(s):n(o["$[]"]("child"))?s.$with(new Map([["children",o["$[]"]("child")],["enforcer",i.enforcer]])).$combine_children(s.$children()):s,i.$with(new Map([["children",[].concat(a(o["$[]"]("sibbling_left"))).concat([r]).concat(a(o["$[]"]("sibbling_right")))]])))}),s(w,"$combine_children",function(n){var s=this;return o(n,"inject",[s],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$place_in_hierarchy(s)})}),s(w,"$fuse_deletions",function(n,s,i){var d=this,r=t,c=t,l=t,r=d.$with(new Map([["children",i]])),c=o([n].concat(a(s)),"map",[],"range".$to_proc()).$inject("join"),l=n.$with(new Map([["range",c]]));return r.$do_combine(l)}),s(w,"$bsearch_child_index",function s(i){var l=s.$$p||t,r=this,a=t,c=t;return s.$$p=null,i==null&&(i=0),a=r.children.$size(),n(c=o(e.Range.$new(i,a,!0),"bsearch",[],function n(s){var o=n.$$s==null?this:n.$$s;return o.children==null&&(o.children=t),s==null&&(s=t),e.yield1(l,o.children["$[]"](s))},{$$s:r}))?c:a},-1),s(w,"$analyse_hierarchy",function(i){var a=this,h=t,d=t,w=t,u=t,p=t,b=t,j=t,y=t,m=t,O=t,h=i.$range(),d=o(a,"bsearch_child_index",[],function(n){return n==null&&(n=t),f(n.$range().$end_pos(),h.$begin_pos())}),w=c(d,0)?0:r(d,1),u=o(a,"bsearch_child_index",[w],function(n){return n==null&&(n=t),g(n.$range().$begin_pos(),h.$end_pos())}),p=r(u,d);switch(p.valueOf()){case 0:break;case-1:d=r(d,1),u=l(u,1),b=a.children["$[]"](d);break;default:j=a.children["$[]"](d).$range().$begin_pos()["$<=>"](h.$begin_pos()),y=a.children["$[]"](r(u,1)).$range().$end_pos()["$<=>"](h.$end_pos()),c(p,1)&&n(v(j,0))&&n(g(y,0))?b=a.children["$[]"](d):(m=a.children["$[]"](e.Range.$new(d,u,!0)),O=a.$check_fusible(i,n(_(j,0))?m.$shift():t,n(f(y,0))?m.$pop():t))}return new Map([["parent",b],["sibbling_left",a.children["$[]"](e.Range.$new(0,d,!0))],["sibbling_right",a.children["$[]"](e.Range.$new(u,a.children.$size(),!0))],["fusible",O],["child",m]])}),s(w,"$check_fusible",function(s){var c=this,r=j(arguments,1),a=r;return a["$compact!"](),n(a["$empty?"]())?t:(o(a,"each",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.enforcer==null&&(a.enforcer=t),i==null&&(i=t),r=n(s["$insertion?"]())||n(i["$insertion?"]())?"crossing_insertions":"crossing_deletions",o(a.enforcer,"call",[r],function(){return new Map([["range",s.$range()],["conflict",i.$range()]])})},{$$s:c}),a)},-2),s(w,"$merge",function(s){var o=this,i=t;return o.$call_enforcer_for_merge(s),o.$with(new Map([["insert_before",""+s.$insert_before()+o.$insert_before()],["replacement",n(i=s.$replacement())?i:o.replacement],["insert_after",""+o.$insert_after()+s.$insert_after()]])).$combine_children(s.$children())}),s(w,"$call_enforcer_for_merge",function(s){var i=this;return o(i.enforcer,"call",["different_replacements"],function e(){var o=e.$$s==null?this:e.$$s;return o.replacement==null&&(o.replacement=t),o.range==null&&(o.range=t),n(o.replacement)&&n(s.$replacement())&&b(o.replacement,s.$replacement())?new Map([["range",o.range],["replacement",s.$replacement()],["other_replacement",o.replacement]]):t},{$$s:i})}),s(w,"$swallow",function(s){var i=this;return o(i.enforcer,"call",["swallowed_insertions"],function e(){var i=e.$$s==null?this:e.$$s,a=t;return i.range==null&&(i.range=t),a=o(s,"select",[],"insertion?".$to_proc()),n(a["$empty?"]())?t:new Map([["range",i.range],["conflict",o(a,"map",[],"range".$to_proc())]])},{$$s:i}),[]})}(C("TreeRewriter"),null)}(O[0],O)}(u[0],u)},Opal.modules["parser/source/map"]=function(e){var o=e.module,r=e.klass,i=e.assign_ivar,t=e.def,c=e.send2,l=e.find_super,s=e.send,d=e.truthy,u=e.eqeq,h=e.range,a=[],n=e.nil;return e.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(e,a){var f=o(e,"Parser"),m=[f].concat(a);return function(e,a){var m=o(e,"Source"),f=[m].concat(a);return function(e,o){var a=r(e,o,"Map"),m=a.$$prototype;return m.node=m.expression=n,a.$attr_reader("node"),a.$attr_reader("expression"),t(a,"$initialize",i("expression")),t(a,"$initialize_copy",function e(t){var o=e.$$p||n,s=this;return e.$$p=null,c(s,l(s,"initialize_copy",e,!1,!0),"initialize_copy",[t],o),s.node=n}),t(a,"$node=",function(t){var n=this;return n.node=t,n.$freeze(),n.node}),t(a,"$line",function(){var t=this;return t.expression.$line()}),a.$alias_method("first_line","line"),t(a,"$column",function(){var t=this;return t.expression.$column()}),t(a,"$last_line",function(){var t=this;return t.expression.$last_line()}),t(a,"$last_column",function(){var t=this;return t.expression.$last_column()}),t(a,"$with_expression",function(t){var o=this;return s(o,"with",[],function(s){return s==null&&(s=n),s.$update_expression(t)})}),t(a,"$==",function(t){var o=this,i=n;return d(i=t.$class()["$=="](o.$class()))?s(o.$instance_variables(),"map",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=n),o.$instance_variable_get(s)["$=="](t.$send("instance_variable_get",s))},{$$s:o}).$reduce("&"):i}),t(a,"$to_hash",function(){var t=this;return s(t.$instance_variables(),"inject",[new Map],function e(t,s){var o=e.$$s==null?this:e.$$s;return t==null&&(t=n),s==null&&(s=n),u(s.$to_sym(),"@node")?t:(t["$[]="](s["$[]"](h(1,-1,!1)).$to_sym(),o.$instance_variable_get(s)),t)},{$$s:t})}),a.$protected(),t(a,"$with",function e(){var t=e.$$p||n,o=this;return e.$$p=null,s(o.$dup(),"tap",[],t.$to_proc())}),t(a,"$update_expression",i("expression"))}(f[0],null)}(m[0],m)}(a[0],a)},Opal.modules["parser/source/map/operator"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Operator");return n.$attr_reader("operator"),a(n,"$initialize",function e(t,n){var a=e.$$p||r,s=this;return e.$$p=null,s.operator=t,o(s,i(s,"initialize",e,!1,!0),"initialize",[n],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/collection"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Collection");return n.$attr_reader("begin"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s){var a,l=e.$$p||r,c=this;return e.$$p=null,a=[t,n],c.begin=a[0],c.end=a[1],a,o(c,i(c,"initialize",e,!1,!0),"initialize",[s],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/constant"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Constant");return s.$attr_reader("double_colon"),s.$attr_reader("name"),s.$attr_reader("operator"),t(s,"$initialize",function e(t,n,s){var i,l=e.$$p||o,c=this;return e.$$p=null,i=[t,n],c.double_colon=i[0],c.name=i[1],i,a(c,r(c,"initialize",e,!1,!0),"initialize",[s],null)}),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/variable"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Variable");return s.$attr_reader("name"),s.$attr_reader("operator"),t(s,"$initialize",function e(t,n){var i=e.$$p||o,s=this;return e.$$p=null,n==null&&(n=t),s.name=t,a(s,r(s,"initialize",e,!1,!0),"initialize",[n],null)},-2),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/keyword"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Keyword");return n.$attr_reader("keyword"),n.$attr_reader("begin"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s,a){var l,d=e.$$p||r,c=this;return e.$$p=null,c.keyword=t,l=[n,s],c.begin=l[0],c.end=l[1],l,o(c,i(c,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/definition"]=function(e){var t=e.module,o=e.klass,i=e.send2,a=e.find_super,r=e.def,n=[],s=e.nil;return e.add_stubs("attr_reader,join"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=o(e,t,"Definition"),c=n.$$prototype;return c.keyword=c.end=s,n.$attr_reader("keyword"),n.$attr_reader("operator"),n.$attr_reader("name"),n.$attr_reader("end"),r(n,"$initialize",function e(t,n,o,r){var l=e.$$p||s,c=this;return e.$$p=null,c.keyword=t,c.operator=n,c.name=o,c.end=r,i(c,a(c,"initialize",e,!1,!0),"initialize",[c.keyword.$join(c.end)],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/method_definition"]=function(e){var n=e.module,o=e.klass,i=e.send2,a=e.find_super,r=e.truthy,c=e.def,s=[],t=e.nil;return e.add_stubs("attr_reader,join"),function(s,l){var u=n(s,"Parser"),d=[u].concat(l);return function(s,l){var u=n(s,"Source"),h=[u].concat(l),d=e.$r(h);return function(e,n){var s=o(e,n,"MethodDefinition"),l=s.$$prototype;return l.keyword=t,s.$attr_reader("keyword"),s.$attr_reader("operator"),s.$attr_reader("name"),s.$attr_reader("end"),s.$attr_reader("assignment"),c(s,"$initialize",function e(n,s,o,c,l,d){var m=e.$$p||t,u=this,h=t;return e.$$p=null,u.keyword=n,u.operator=s,u.name=o,u.end=c,u.assignment=l,i(u,a(u,"initialize",e,!1,!0),"initialize",[u.keyword.$join(r(h=c)?h:d)],null)})}(d("Map"),d("Map"))}(d[0],d)}(s[0],s)},Opal.modules["parser/source/map/send"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Send");return s.$attr_reader("dot"),s.$attr_reader("selector"),s.$attr_reader("operator"),s.$attr_reader("begin"),s.$attr_reader("end"),t(s,"$initialize",function e(t,n,s,i,c){var d,u=e.$$p||o,l=this;return e.$$p=null,l.dot=t,l.selector=n,d=[s,i],l.begin=d[0],l.end=d[1],d,a(l,r(l,"initialize",e,!1,!0),"initialize",[c],null)}),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/index"]=function(e){var s=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,o=[],n=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(o,d){var h=s(o,"Parser"),u=[h].concat(d);return function(o,d){var h=s(o,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,s){var o=i(e,s,"Index");return o.$attr_reader("begin"),o.$attr_reader("end"),o.$attr_reader("operator"),t(o,"$initialize",function e(t,s,o){var c,l=e.$$p||n,i=this;return e.$$p=null,c=[t,s],i.begin=c[0],i.end=c[1],c,i.operator=n,a(i,r(i,"initialize",e,!1,!0),"initialize",[o],null)}),t(o,"$with_operator",function(t){var s=this;return c(s,"with",[],function(s){return s==null&&(s=n),s.$update_operator(t)})}),o.$protected(),t(o,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(o[0],o)},Opal.modules["parser/source/map/condition"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Condition");return n.$attr_reader("keyword"),n.$attr_reader("begin"),n.$attr_reader("else"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s,a,c){var d,u=e.$$p||r,l=this;return e.$$p=null,l.keyword=t,d=[n,s,a],l.begin=d[0],l.else=d[1],l.end=d[2],d,o(l,i(l,"initialize",e,!1,!0),"initialize",[c],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/ternary"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Ternary");return n.$attr_reader("question"),n.$attr_reader("colon"),a(n,"$initialize",function e(t,n,s){var a,l=e.$$p||r,c=this;return e.$$p=null,a=[t,n],c.question=a[0],c.colon=a[1],a,o(c,i(c,"initialize",e,!1,!0),"initialize",[s],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/for"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"For");return n.$attr_reader("keyword","in"),n.$attr_reader("begin","end"),a(n,"$initialize",function e(t,n,s,a,c){var l,u=e.$$p||r,d=this;return e.$$p=null,l=[t,n],d.keyword=l[0],d.in=l[1],l,l=[s,a],d.begin=l[0],d.end=l[1],l,o(d,i(d,"initialize",e,!1,!0),"initialize",[c],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/rescue_body"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"RescueBody");return n.$attr_reader("keyword"),n.$attr_reader("assoc"),n.$attr_reader("begin"),a(n,"$initialize",function e(t,n,s,a){var l=e.$$p||r,c=this;return e.$$p=null,c.keyword=t,c.assoc=n,c.begin=s,o(c,i(c,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/heredoc"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Heredoc");return n.$attr_reader("heredoc_body"),n.$attr_reader("heredoc_end"),a(n,"$initialize",function e(t,n,s){var c=e.$$p||r,a=this;return e.$$p=null,a.heredoc_body=n,a.heredoc_end=s,o(a,i(a,"initialize",e,!1,!0),"initialize",[t],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/objc_kwarg"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"ObjcKwarg");return n.$attr_reader("keyword"),n.$attr_reader("operator"),n.$attr_reader("argument"),a(n,"$initialize",function e(t,n,s,a){var c,d=e.$$p||r,l=this;return e.$$p=null,c=[t,n,s],l.keyword=c[0],l.operator=c[1],l.argument=c[2],c,o(l,i(l,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/syntax_error"]=function(e){var n=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,t=[],r=e.nil;return e.add_stubs("attr_reader,message"),function(t,c){var d=n(t,"Parser"),l=[d].concat(c),u=e.$r(l);return function(e,t){var n=s(e,t,"SyntaxError");return n.$attr_reader("diagnostic"),a(n,"$initialize",function e(t){var s=e.$$p||r,n=this;return e.$$p=null,n.diagnostic=t,o(n,i(n,"initialize",e,!1,!0),"initialize",[t.$message()],null)})}(l[0],u("StandardError"))}(t[0],t)},Opal.modules["parser/clobbering_error"]=function(e){var n=e.module,s=e.klass,t=[],o=e.nil;return function(t,i){var r=n(t,"Parser"),a=[r].concat(i),c=e.$r(a);return s(a[0],c("RuntimeError"),"ClobberingError"),o}(t[0],t)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(e){var n=e.module,s=e.klass,t=[],o=e.nil;return function(t,i){var r=n(t,"Parser"),a=[r].concat(i),c=e.$r(a);return s(a[0],c("ArgumentError"),"UnknownEncodingInMagicComment"),o}(t[0],t)},Opal.modules["parser/diagnostic"]=function(e){var h=e.module,v=e.klass,g=e.const_set,n=e.truthy,o=e.def,p=e.eqeq,s=e.rb_plus,l=e.rb_minus,d=e.to_ary,u=e.rb_gt,i=e.rb_times,a=e.send,m=e.rb_ge,f=e.not,c=e.neqeq,r=[],t=e.nil;return e.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(r,b){var y=h(r,"Parser"),j=[y].concat(b);return function(r,h,b){var j=v(r,h,"Diagnostic"),w=[j].concat(b),_=e.$r(w),y=j.$$prototype;return y.reason=y.arguments=y.location=y.level=y.highlights=t,g(w[0],"LEVELS",["note","warning","error","fatal"].$freeze()),j.$attr_reader("level","reason","arguments"),j.$attr_reader("location","highlights"),o(j,"$initialize",function(s,o,i,a,r){var c=this,l=t;return r==null&&(r=[]),n(_("LEVELS")["$include?"](s))||c.$raise(_("ArgumentError"),""+("Diagnostic#level must be one of "+_("LEVELS").$join(", ")+"; ")+(""+s.$inspect()+" provided.")),n(a)||c.$raise("Expected a location"),c.level=s,c.reason=o,c.arguments=(n(l=i)?l:new Map).$dup().$freeze(),c.location=a,c.highlights=r.$dup().$freeze(),c.$freeze()},-5),o(j,"$message",function(){var t=this;return _("Messages").$compile(t.reason,t.arguments)}),o(j,"$render",function(){var i,a,o=this,r=t,c=t,h=t,m=t,f=t,g=t;return p(o.location.$line(),o.location.$last_line())||n(o.location["$is?"](` +`))?s([""+o.location+": "+o.level+": "+o.$message()],o.$render_line(o.location)):(r=o.$first_line_only(o.location),c=o.$last_line_only(o.location),h=s(l(o.location.$last_line(),o.location.$line()),1),m=o.location.$source_buffer(),a=m.$decompose_position(o.location.$end_pos()),i=d(a),f=i[0]==null?t:i[0],g=i[1]==null?t:i[1],a,s(s([""+o.location+"-"+f+":"+g+": "+o.level+": "+o.$message()],o.$render_line(r,u(h,2),!1)),o.$render_line(c,!1,!0)))}),j.$private(),o(j,"$render_line",function(o,r,c){var h=this,u=t,d=t;return r==null&&(r=!1),c==null&&(c=!1),u=o.$source_line(),d=i(" ",u.$length()),a(h.highlights,"each",[],function(s){var r,c=t;return s==null&&(s=t),c=o.$source_buffer().$line_range(o.$line()),n(s=s.$intersect(c))?(r=[s.$column_range(),i("~",s.$size())],a(d,"[]=",r),r[r.length-1]):t}),n(o["$is?"](` +`))?d=s(d,"^"):f(c)&&n(m(o.$size(),1))?d["$[]="](o.$column_range(),s("^",i("~",l(o.$size(),1)))):d["$[]="](o.$column_range(),i("~",o.$size())),n(r)&&(d=s(d,"...")),a([u,d],"map",[],function(n){return n==null&&(n=t),""+o.$source_buffer().$name()+":"+o.$line()+": "+n})},-2),o(j,"$first_line_only",function(t){return c(t.$line(),t.$last_line())?t.$resize(t.$source()["$=~"](/\n/)):t}),o(j,"$last_line_only",function(t){return c(t.$line(),t.$last_line())?t.$adjust(new Map([["begin_pos",t.$source()["$=~"](/[^\n]*$/)]])):t})}(j[0],null,j)}(r[0],r)},Opal.modules["parser/diagnostic/engine"]=function(e){var i=e.module,a=e.klass,s=e.def,t=e.truthy,o=[],n=e.nil,r=e.$$$;return e.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function(o,c){var d=i(o,"Parser"),l=[d].concat(c),u=e.$r(l);return function(o,i,c){var l=a(o,i,"Engine"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.consumer=d.ignore_warnings=d.all_errors_are_fatal=n,l.$attr_accessor("consumer"),l.$attr_accessor("all_errors_are_fatal"),l.$attr_accessor("ignore_warnings"),s(l,"$initialize",function(t){var s=this;return t==null&&(t=n),s.consumer=t,s.all_errors_are_fatal=!1,s.ignore_warnings=!1},-1),s(l,"$process",function(n){var s=this;return t(s["$ignore?"](n))||t(s.consumer)&&s.consumer.$call(n),t(s["$raise?"](n))&&s.$raise(r(h("Parser"),"SyntaxError"),n),s}),l.$protected(),s(l,"$ignore?",function(s){var i=this,o=n;return t(o=i.ignore_warnings)?s.$level()["$=="]("warning"):o}),s(l,"$raise?",function(s){var a=this,o=n,i=n;return t(o=t(i=a.all_errors_are_fatal)?s.$level()["$=="]("error"):i)?o:s.$level()["$=="]("fatal")})}(u("Diagnostic"),null,l)}(o[0],o)},Opal.modules["parser/static_environment"]=function(e){var r=e.module,c=e.klass,n=e.const_set,t=e.def,o=e.truthy,i=e.send,a=[],s=e.nil;return e.add_stubs("reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?"),function(a,l){var u=r(a,"Parser"),d=[u].concat(l);return function(a,r,l){var u=c(a,r,"StaticEnvironment"),h=[u].concat(l),d=e.$r(h),m=u.$$prototype;return m.stack=m.variables=s,n(h[0],"FORWARD_ARGS","FORWARD_ARGS"),n(h[0],"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE","ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_RESTARG_INHERITED","ANONYMOUS_RESTARG_INHERITED"),n(h[0],"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE","ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_KWRESTARG_INHERITED","ANONYMOUS_KWRESTARG_INHERITED"),n(h[0],"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE","ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_BLOCKARG_INHERITED","ANONYMOUS_BLOCKARG_INHERITED"),t(u,"$initialize",function(){var t=this;return t.$reset()}),t(u,"$reset",function(){var t=this;return t.variables=d("Set")["$[]"](),t.stack=[]}),t(u,"$extend_static",function(){var t=this;return t.stack.$push(t.variables),t.variables=d("Set")["$[]"](),t}),t(u,"$extend_dynamic",function(){var t=this;return t.stack.$push(t.variables),t.variables=t.variables.$dup(),o(t.variables.$delete(d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_BLOCKARG_INHERITED")),o(t.variables.$delete(d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_RESTARG_INHERITED")),o(t.variables.$delete(d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_KWRESTARG_INHERITED")),t}),t(u,"$unextend",function(){var t=this;return t.variables=t.stack.$pop(),t}),t(u,"$declare",function(t){var n=this;return n.variables.$add(t.$to_sym()),n}),t(u,"$declared?",function(t){var n=this;return n.variables["$include?"](t.$to_sym())}),t(u,"$declare_forward_args",function(){var t=this;return t.$declare(d("FORWARD_ARGS"))}),t(u,"$declared_forward_args?",function(){var t=this;return t["$declared?"](d("FORWARD_ARGS"))}),t(u,"$declare_anonymous_blockarg",function(){var t=this;return t.$declare(d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_blockarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_BLOCKARG_INHERITED"))}),t(u,"$declared_anonymous_blockarg_in_current_scpe?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_blockarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})}),t(u,"$declare_anonymous_restarg",function(){var t=this;return t.$declare(d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_restarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_RESTARG_INHERITED"))}),t(u,"$declared_anonymous_restarg_in_current_scope?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_restarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})}),t(u,"$declare_anonymous_kwrestarg",function(){var t=this;return t.$declare(d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_kwrestarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_KWRESTARG_INHERITED"))}),t(u,"$declared_anonymous_kwrestarg_in_current_scope?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_kwrestarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})}),t(u,"$empty?",function(){var t=this;return t.stack["$empty?"]()})}(d[0],null,d)}(a[0],a)},Opal.modules["parser/lexer-F0"]=function(e){var O=e.klass,i=e.truthy,l=e.send,t=e.rb_minus,a=e.def,d=e.gvars,r=e.eqeq,g=e.const_set,s=e.rb_plus,b=e.to_ary,f=e.rb_le,u=e.rb_gt,y=e.neqeq,n=e.eqeqeq,v=e.range,c=e.rb_ge,h=e.not,m=e.rb_lt,_=e.slice,j=[],w=e.$r(j),o=e.nil,p=e.$$$;return e.add_stubs("attr_accessor,private,_lex_actions=,_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_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=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,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_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,>,<<,!=,===,e_lbrace,close_interp_on_current_literal,on_newline,emit_comment_from_range,version?,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,last,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,any?,<,end_with?,rstrip,herebody_s,herebody_s=,emit_colon_with_digits,in_kwarg,emit_singleton_class,inspect,numeric_literal_int,to_i,call,emit_rbrace_rparen_rbrack,to_f,emit_comment,advance,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase"),function(j,w,x){var C=O(j,w,"Lexer"),A=[C].concat(x),E=e.$r(A),k=C.$$prototype;return k.version=k.source_buffer=k.source_pts=k.strings=k.cs=k.cmdarg_stack=k.cmdarg=k.cond_stack=k.cond=k.token_queue=k._lex_actions=k.p=k.command_start=k.emit_integer=k.emit_rational=k.emit_imaginary=k.emit_imaginary_rational=k.emit_integer_re=k.emit_integer_if=k.emit_integer_rescue=k.emit_float=k.emit_imaginary_float=k.emit_float_if=k.emit_float_rescue=k.paren_nest=k.ts=k.te=k.stack=k.top=k.act=k.context=k.lambda_stack=k.static_env=k.newline_s=k.num_base=k.num_suffix_s=k.num_xfrm=k.eq_begin_s=k.cs_before_block_comment=k.tokens=k.comments=k.sharp_s=k.diagnostics=k.num_digits_s=o,function(e){return e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(C),A),C["$_lex_actions="](e.large_array_unpack("0,1,0,1,16,1,17,1,18,1,19,1,32,1,33,1,34,1,35,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1,48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1,57,1,61,1,62,1,63,1,64,1,65,1,66,1,67,1,68,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,78,1,79,1,80,1,81,1,82,1,83,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,93,1,94,1,95,1,100,1,101,1,102,1,103,1,104,1,105,1,106,1,107,1,112,1,113,1,114,1,115,1,116,1,119,1,120,1,121,1,122,1,125,1,126,1,128,1,129,1,130,1,131,1,132,1,133,1,135,1,136,1,139,1,140,1,141,1,142,1,144,1,145,1,155,1,156,1,157,1,158,1,159,1,160,1,161,1,162,1,163,1,164,1,165,1,166,1,168,1,169,1,170,1,171,1,172,1,173,1,174,1,176,1,178,1,179,1,180,1,184,1,186,1,187,1,189,1,190,1,191,1,192,1,193,1,194,1,195,1,196,1,197,1,198,1,199,1,200,1,201,1,203,1,204,1,205,1,206,1,207,1,208,1,210,1,211,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,238,1,240,1,241,1,242,1,243,1,244,1,246,1,247,1,248,1,250,1,252,1,254,1,255,1,256,1,258,1,259,1,260,1,263,1,264,1,266,1,267,1,268,1,269,1,270,1,271,1,274,1,275,1,276,1,277,1,278,1,279,1,280,1,281,1,282,1,283,1,286,1,287,1,288,1,289,1,290,1,291,1,292,1,293,1,294,1,295,1,296,2,0,18,2,0,100,2,0,104,2,0,105,2,0,167,2,0,169,2,0,239,2,0,284,2,0,285,2,0,288,2,0,289,2,2,249,2,3,249,2,4,249,2,5,249,2,6,249,2,7,249,2,9,251,2,10,251,2,11,251,2,12,251,2,13,251,2,14,111,2,14,134,2,14,181,2,14,245,2,15,261,2,16,0,2,16,32,2,16,33,2,16,34,2,16,75,2,16,84,2,16,94,2,16,105,2,16,116,2,16,118,2,16,135,2,16,142,2,16,143,2,16,155,2,16,168,2,16,190,2,16,201,2,16,202,2,16,208,2,16,209,2,16,264,2,16,265,2,16,292,2,17,18,2,18,0,2,18,75,2,18,84,2,18,94,2,18,117,2,18,135,2,18,142,2,18,190,2,18,201,2,18,208,2,18,264,2,18,292,2,19,92,2,19,177,2,19,188,2,19,271,2,20,92,2,20,177,2,20,188,2,20,257,2,21,177,2,21,188,2,22,177,2,22,188,2,23,177,2,23,188,2,24,177,2,24,198,2,25,177,2,25,188,2,26,177,2,27,253,2,28,110,2,28,182,2,28,262,2,29,261,2,30,108,2,30,109,2,30,127,2,30,183,2,30,260,2,31,261,2,35,0,2,36,175,2,37,179,2,38,179,2,39,185,2,41,47,2,42,47,2,43,47,2,44,47,2,45,47,2,46,47,2,47,1,2,53,0,2,53,49,2,53,58,2,53,59,2,53,60,2,53,96,2,53,97,2,53,98,2,53,99,2,53,123,2,53,124,2,53,137,2,53,138,2,53,147,2,53,148,2,53,149,2,53,150,2,53,151,2,53,152,2,53,153,2,53,154,2,53,212,2,53,213,2,53,215,2,53,216,2,53,217,2,53,218,2,53,219,2,53,220,2,53,221,2,53,223,2,53,224,2,53,225,2,53,226,2,53,227,2,53,228,2,53,229,2,53,272,2,53,273,3,17,18,0,3,17,18,75,3,17,18,84,3,17,18,94,3,17,18,117,3,17,18,135,3,17,18,142,3,17,18,190,3,17,18,201,3,17,18,208,3,17,18,264,3,17,18,292,3,45,47,1,3,46,47,1,3,47,1,249,3,48,8,251,3,49,8,251,3,53,0,99,3,53,16,98,3,53,16,124,3,53,16,272,3,53,18,146,3,53,18,214,3,53,18,272,3,53,33,97,3,53,39,152,3,53,39,153,3,53,45,221,4,41,47,1,249,4,42,47,1,249,4,43,47,1,249,4,44,47,1,249,4,45,47,1,249,4,46,47,1,249,4,53,16,33,97,4,53,17,18,146,4,53,17,18,272,4,53,47,1,222,5,53,45,47,1,222,5,53,46,47,1,222")),function(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(C),A),C["$_lex_trans_keys="](e.large_array_unpack("0,0,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,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,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,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,26,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,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(C),A),C["$_lex_key_spans="](e.large_array_unpack("0,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,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,1,1,1,1,1,1,1,1,1,27,0,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,27,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,96,24,0,1,1,1,24,1,1")),function(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(C),A),C["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(C),A),C["$_lex_indicies="](e.large_array_unpack("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,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,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,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,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,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,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,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,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,2,2,2,2,7,2,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,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,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,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,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,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,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,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,18,18,18,18,19,18,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,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,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,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,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,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,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,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,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,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,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,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,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,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,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,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,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,259,2,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,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,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,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,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,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,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,262,262,262,262,7,262,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,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,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,303,303,303,303,263,303,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,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,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,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,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,312,9,312,312,313,9,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,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,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,316,316,316,316,313,316,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,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,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,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,329,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,340,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,341,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,348,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,354,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,358,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,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,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,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,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,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,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,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,405,405,405,405,13,405,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,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,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,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,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,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,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,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,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,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,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,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,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,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,467,467,467,467,19,467,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,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,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,55,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,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,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,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,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,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,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,93,93,93,93,96,93,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,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,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,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,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,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,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,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,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,530,530,530,530,519,530,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,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,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,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,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,626,626,626,626,626,626,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,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,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,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,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,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,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,675,675,675,675,676,675,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,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,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,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,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,681,682,681,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,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,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,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,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,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,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,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,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,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,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,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,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,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,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,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,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,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,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,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,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,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,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,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(C),A),C["$_lex_trans_targs="](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(C),A),C["$_lex_trans_actions="](e.large_array_unpack("0,53,0,0,0,0,0,0,95,65,93,71,111,0,0,0,99,101,161,0,0,135,157,727,733,1,3,3,481,971,3,484,971,499,971,3,3,481,3,487,3,3,901,3,3,3,3,3,3,0,11,925,0,13,925,139,925,0,0,11,0,15,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,0,0,171,163,169,742,0,0,0,742,1,905,3,3,3,905,259,0,219,0,1,3,520,3,265,217,261,0,0,0,0,0,255,201,223,0,1,0,195,0,3,478,3,517,3,5,547,829,547,976,547,0,7,550,7,913,7,397,263,0,209,0,0,0,0,751,751,0,0,17,17,676,0,1,257,0,0,0,751,0,0,766,0,0,0,0,766,287,0,0,0,275,351,295,347,0,51,51,353,805,805,349,0,0,0,0,345,0,0,0,0,0,0,1,0,0,0,3,478,3,3,3,5,547,829,547,547,547,0,7,550,7,7,7,917,397,291,371,0,823,0,45,45,0,369,0,373,5,981,0,921,1,909,357,393,0,0,0,0,0,0,0,0,0,381,427,395,0,0,55,59,57,724,75,73,0,1,0,0,51,51,0,0,0,67,0,0,0,0,721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,63,89,490,85,833,5,553,0,91,0,0,0,83,0,87,69,0,0,79,0,0,0,718,0,81,0,0,0,0,0,0,0,0,0,0,0,0,718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,105,103,0,0,51,0,109,107,837,5,556,0,0,1,493,0,117,115,0,1,0,0,113,0,0,0,0,0,0,0,0,0,0,121,0,586,0,598,125,496,123,841,5,559,0,0,127,0,119,141,143,736,1,0,733,0,0,733,0,0,0,0,0,0,51,51,51,153,151,131,406,658,147,730,0,149,133,145,137,403,646,463,505,845,5,562,0,661,155,129,400,897,502,0,0,0,165,51,51,0,167,664,739,175,177,0,0,0,0,0,179,849,5,565,0,181,1,508,173,466,748,185,183,0,1,0,0,0,0,0,0,193,189,514,853,5,568,0,191,1,511,187,745,0,0,0,0,0,0,0,0,0,0,0,0,769,225,0,712,0,0,51,757,0,0,757,757,0,0,51,772,0,772,0,772,772,772,0,0,772,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,0,0,247,25,25,592,9,0,604,613,0,766,0,619,0,637,631,625,249,523,3,251,221,412,253,857,5,571,0,231,199,0,241,0,667,229,757,227,0,243,0,245,409,197,0,0,205,0,0,0,0,215,0,0,0,0,0,0,0,235,0,0,589,0,601,610,0,0,0,616,0,0,634,640,628,622,207,203,0,682,19,19,0,237,0,685,21,21,0,0,679,233,239,211,213,0,0,649,1,769,769,769,769,769,769,769,769,769,769,769,769,766,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,763,769,769,769,769,769,769,769,769,769,769,769,769,760,688,933,929,23,23,760,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,469,754,267,269,0,1,0,0,271,529,861,5,574,0,273,1,526,51,281,279,0,1,277,0,0,285,283,535,865,5,577,0,1,532,811,315,313,0,1,0,293,0,51,817,0,0,0,0,307,0,0,799,799,0,309,0,0,0,305,51,808,808,808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820,814,595,0,607,341,541,337,301,869,5,580,0,343,0,0,327,303,335,297,670,673,333,289,329,0,339,0,415,323,0,0,966,881,37,0,0,997,0,0,37,706,706,893,802,0,43,715,0,889,41,448,0,451,454,0,0,460,457,37,37,885,0,0,39,39,0,433,0,442,430,51,0,439,0,445,436,956,33,33,700,700,0,0,946,29,29,694,694,951,31,31,697,697,941,27,27,691,691,0,0,961,877,937,991,35,703,703,937,35,709,799,986,0,0,0,299,0,0,643,325,808,808,808,796,808,652,311,1,538,655,331,0,0,0,0,0,0,0,0,0,0,0,0,793,0,0,0,0,796,0,0,0,0,0,778,784,0,0,0,0,0,0,787,0,0,0,0,0,784,321,319,0,775,0,317,0,0,0,0,790,0,0,0,0,0,0,0,0,0,781,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,475,359,826,826,45,826,367,361,365,0,363,355,0,421,0,377,0,0,0,375,418,383,385,0,1,0,51,0,51,387,544,873,5,583,0,391,0,389,379,424,0")),function(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(C),A),C["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,47,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(C),A),C["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,49,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(C),A),C["$_lex_eof_trans="](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,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,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,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,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,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,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,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,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,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(C),A),C["$lex_start="](128),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(C),A),C["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(C),A),C["$lex_en_expr_variable="](129),function(e){return e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(C),A),C["$lex_en_expr_fname="](134),function(e){return e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(C),A),C["$lex_en_expr_endfn="](247),function(e){return e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(C),A),C["$lex_en_expr_dot="](255),function(e){return e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(C),A),C["$lex_en_expr_arg="](276),function(e){return e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_cmdarg="](307),function(e){return e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_endarg="](313),function(e){return e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(C),A),C["$lex_en_expr_mid="](321),function(e){return e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(C),A),C["$lex_en_expr_beg="](345),function(e){return e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_labelarg="](501),function(e){return e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(C),A),C["$lex_en_expr_value="](508),function(e){return e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(C),A),C["$lex_en_expr_end="](516),function(e){return e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(C),A),C["$lex_en_leading_dot="](696),function(e){return e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(C),A),C["$lex_en_line_comment="](704),function(e){return e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(C),A),C["$lex_en_line_begin="](710),function(e){return e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(C),A),C["$lex_en_inside_string="](128),C.$attr_reader("source_buffer"),C.$attr_accessor("diagnostics"),C.$attr_accessor("static_env"),C.$attr_accessor("force_utf32"),C.$attr_accessor("cond","cmdarg","context","command_start"),C.$attr_accessor("tokens","comments"),C.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(C,"$initialize",function(n){var s=this;return s.version=n,s.static_env=o,s.context=o,s.tokens=o,s.comments=o,s._lex_actions=i(s.$class()["$respond_to?"]("_lex_actions",!0))?s.$class().$send("_lex_actions"):[],s.emit_integer=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tINTEGER",t),n},{$$s:s}),s.emit_rational=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tRATIONAL",s.$Rational(t)),n},{$$s:s}),s.emit_imaginary=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,t)),n},{$$s:s}),s.emit_imaginary_rational=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,s.$Rational(t))),n},{$$s:s}),s.emit_integer_re=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_integer_if=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_integer_rescue=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,6)),t(s,6)},{$$s:s}),s.emit_float=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tFLOAT",s.$construct_float(t)),n},{$$s:s}),s.emit_imaginary_float=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,s.$construct_float(t))),n},{$$s:s}),s.emit_float_if=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_float_rescue=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,6)),t(s,6)},{$$s:s}),s.$reset()}),a(C,"$construct_float",function(t){var n,i=this,s=o;return d.VERBOSE==null&&(d.VERBOSE=o),function(){try{return n=[d.VERBOSE,o],s=n[0],d.VERBOSE=n[1],n,i.$Float(t)}finally{d.VERBOSE=s}}()}),a(C,"$reset",function(t){var n=this;return t==null&&(t=!0),i(t)&&(n.cs=n.$class().$lex_en_line_begin(),n.cond=E("StackState").$new("cond"),n.cmdarg=E("StackState").$new("cmdarg"),n.cond_stack=[],n.cmdarg_stack=[]),n.force_utf32=!1,n.source_pts=o,n.p=0,n.ts=o,n.te=o,n.act=0,n.stack=[],n.top=0,n.token_queue=[],n.eq_begin_s=o,n.sharp_s=o,n.newline_s=o,n.num_base=o,n.num_digits_s=o,n.num_suffix_s=o,n.num_xfrm=o,n.paren_nest=0,n.lambda_stack=[],n.command_start=!0,n.cs_before_block_comment=n.$class().$lex_en_line_begin(),n.strings=p(E("Parser"),"LexerStrings").$new(n,n.version)},-1),a(C,"$source_buffer=",function(t){var s,n=this,a=o;return n.source_buffer=t,i(n.source_buffer)?(a=n.source_buffer.$source(),r(a.$encoding(),p(E("Encoding"),"UTF_8"))?n.source_pts=a.$unpack("U*"):n.source_pts=a.$unpack("C*"),r(n.source_pts["$[]"](0),65279)&&(n.p=1)):n.source_pts=o,n.strings["$source_buffer="](n.source_buffer),(s=[n.source_pts],l(n.strings,"source_pts=",s),s[s.length-1])}),a(C,"$encoding",function(){var t=this;return t.source_buffer.$source().$encoding()}),g(A[0],"LEX_STATES",new Map([["line_begin",C.$lex_en_line_begin()],["expr_dot",C.$lex_en_expr_dot()],["expr_fname",C.$lex_en_expr_fname()],["expr_value",C.$lex_en_expr_value()],["expr_beg",C.$lex_en_expr_beg()],["expr_mid",C.$lex_en_expr_mid()],["expr_arg",C.$lex_en_expr_arg()],["expr_cmdarg",C.$lex_en_expr_cmdarg()],["expr_end",C.$lex_en_expr_end()],["expr_endarg",C.$lex_en_expr_endarg()],["expr_endfn",C.$lex_en_expr_endfn()],["expr_labelarg",C.$lex_en_expr_labelarg()],["inside_string",C.$lex_en_inside_string()]])),a(C,"$state",function(){var t=this;return E("LEX_STATES").$invert().$fetch(t.cs,t.cs)}),a(C,"$state=",function(t){var n=this;return n.cs=E("LEX_STATES").$fetch(t)}),a(C,"$push_cmdarg",function(){var t=this;return t.cmdarg_stack.$push(t.cmdarg),t.cmdarg=E("StackState").$new("cmdarg."+t.cmdarg_stack.$count())}),a(C,"$pop_cmdarg",function(){var t=this;return t.cmdarg=t.cmdarg_stack.$pop()}),a(C,"$push_cond",function(){var t=this;return t.cond_stack.$push(t.cond),t.cond=E("StackState").$new("cond."+t.cond_stack.$count())}),a(C,"$pop_cond",function(){var t=this;return t.cond=t.cond_stack.$pop()}),a(C,"$dedent_level",function(){var t=this;return t.strings.$dedent_level()}),a(C,"$advance",function(){var O,L,a=this,z=o,Y=o,pe=o,he=o,X=o,de=o,ae=o,re=o,ce=o,ie=o,P=o,I=o,l=o,$=o,M=o,le=o,K=o,H=o,V=o,U=o,k=o,T=o,g=o,G=o,Q=o,w=o,ne=o,_=o,j=o,q=o,p=o,x=o,Z=o,fe=o,ee=o,te=o,ue=o,se=o,F=o,A=o,C=o,D=o,W=o,oe=o,R=o,B=o,N=o,me=o,J=o,S=o;if(!i(a.token_queue["$empty?"]()))return a.token_queue.$shift();for(z=a.$class(),Y=z.$send("_lex_trans_keys"),pe=z.$send("_lex_key_spans"),he=z.$send("_lex_index_offsets"),X=z.$send("_lex_indicies"),de=z.$send("_lex_trans_targs"),ae=z.$send("_lex_trans_actions"),re=z.$send("_lex_to_state_actions"),ce=z.$send("_lex_from_state_actions"),ie=z.$send("_lex_eof_trans"),P=a._lex_actions,I=s(a.source_pts.$size(),2),O=[a.p,I],l=O[0],$=O[1],O,M=a.command_start,a.command_start=!1,le=!1,L=o,O=b(L),K=O[0]==null?o:O[0],H=O[1]==null?o:O[1],V=O[2]==null?o:O[2],U=O[3]==null?o:O[3],k=O[4]==null?o:O[4],T=O[5]==null?o:O[5],L,g=0,G=10,Q=15,w=20,ne=30,_=40;i(!0);){if(j=!1,i(f(g,0))){if(r(l,I)){g=ne;continue}if(r(a.cs,0)){g=_;continue}}if(i(f(g,G))){for(k=ce["$[]"](a.cs),T=P["$[]"](k),k=s(k,1);i(u(T,0));)switch(T=t(T,1),k=s(k,1),P["$[]"](t(k,1)).valueOf()){case 52:a.ts=l;break;default:o}if(i(j))continue;V=a.cs["$<<"](1),U=he["$[]"](a.cs),K=pe["$[]"](a.cs),q=i(p=a.source_pts["$[]"](l))?p:0,H=i(u(K,0))&&i(f(Y["$[]"](V),q))&&i(f(q,Y["$[]"](s(V,1))))?X["$[]"](t(s(U,q),Y["$[]"](V))):X["$[]"](s(U,K))}if(i(f(g,Q))){if(a.cs=de["$[]"](H),y(ae["$[]"](H),0))for(k=ae["$[]"](H),T=P["$[]"](k),k=s(k,1);i(u(T,0));)if(T=t(T,1),k=s(k,1),n(0,p=P["$[]"](t(k,1))))a.newline_s=l;else if(n(1,p))a.num_xfrm=a.emit_integer;else if(n(2,p))a.num_xfrm=a.emit_rational;else if(n(3,p))a.num_xfrm=a.emit_imaginary;else if(n(4,p))a.num_xfrm=a.emit_imaginary_rational;else if(n(5,p))a.num_xfrm=a.emit_integer_re;else if(n(6,p))a.num_xfrm=a.emit_integer_if;else if(n(7,p))a.num_xfrm=a.emit_integer_rescue;else if(n(8,p))a.num_xfrm=a.emit_float;else if(n(9,p))a.num_xfrm=a.emit_imaginary_float;else if(n(10,p))a.num_xfrm=a.emit_float_if;else if(n(11,p))a.num_xfrm=a.emit_rational;else if(n(12,p))a.num_xfrm=a.emit_imaginary_rational;else if(n(13,p))a.num_xfrm=a.emit_float_rescue;else if(n(14,p))a.$e_lbrace();else if(n(15,p)){if(i(a.strings.$close_interp_on_current_literal(l))){l=t(l,1),a.cs=128,l=s(l,1),j=!0,g=_;break}a.paren_nest=t(a.paren_nest,1)}else if(n(16,p))l=a.$on_newline(l);else if(n(17,p))a.sharp_s=t(l,1);else if(n(18,p))a.$emit_comment_from_range(l,I);else if(n(19,p))x=l;else if(n(20,p))x=t(l,2);else if(n(21,p))x=l;else if(n(22,p))x=t(l,2);else if(n(23,p))x=t(l,2);else if(n(24,p))x=t(l,2);else if(n(25,p))x=t(l,3);else if(n(26,p))x=t(l,2);else if(n(27,p))x=t(l,2);else if(n(28,p))a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=s(a.paren_nest,1);else if(n(29,p))a.paren_nest=t(a.paren_nest,1);else if(n(30,p))a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=s(a.paren_nest,1),i(a["$version?"](18))&&(a.command_start=!0);else if(n(31,p))a.paren_nest=t(a.paren_nest,1);else if(n(32,p))x=l;else if(n(33,p))x=l;else if(n(34,p))x=l;else if(n(35,p))Z=l;else if(n(36,p))fe=l;else if(n(37,p))x=t(l,1),ee="ivar_name";else if(n(38,p))x=t(l,2),ee="cvar_name";else if(n(39,p))x=l;else if(n(40,p))te=a.$tok(),ue=a.ts,se=a.te;else if(n(41,p))a.num_base=16,a.num_digits_s=l;else if(n(42,p))a.num_base=10,a.num_digits_s=l;else if(n(43,p))a.num_base=8,a.num_digits_s=l;else if(n(44,p))a.num_base=2,a.num_digits_s=l;else if(n(45,p))a.num_base=10,a.num_digits_s=a.ts;else if(n(46,p))a.num_base=8,a.num_digits_s=a.ts;else if(n(47,p))a.num_suffix_s=l;else if(n(48,p))a.num_suffix_s=l;else if(n(49,p))a.num_suffix_s=l;else if(n(50,p))x=l;else if(n(53,p))a.te=s(l,1);else if(n(54,p)){a.te=s(l,1),a.$emit_global_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(55,p)){a.te=l,l=t(l,1),a.$emit_global_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(56,p)){a.te=l,l=t(l,1),a.$emit_class_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(57,p)){a.te=l,l=t(l,1),a.$emit_instance_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(58,p))a.act=4;else if(n(59,p))a.act=5;else if(n(60,p))a.act=6;else if(n(61,p)){a.te=s(l,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(62,p)){a.te=s(l,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(63,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(64,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(65,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(66,p))if(a.te=s(l,1),i(a["$version?"](23))){O=[a.$tok()["$[]"](v(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else{l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(67,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(68,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(69,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(70,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(71,p)){a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(72,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(73,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(74,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(75,p))a.te=l,l=t(l,1);else if(n(76,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(77,p)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(78,p)){l=t(a.te,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(79,p))if(n(4,C=a.act)){l=t(a.te,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(5,C)){l=t(a.te,1),a.$emit("tCONSTANT"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(6,C)){l=t(a.te,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else o;else if(n(80,p)){a.te=s(l,1),a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),l=t(l,1),a.cs=501,l=s(l,1),j=!0,g=_;break}else if(n(81,p))if(a.te=s(l,1),i(c(a.version,31))&&i(a.context.$in_argdef())){a.$emit("tBDOT3","...".$freeze()),a.cs=516,l=s(l,1),j=!0,g=_;break}else{l=t(l,3),a.cs=516,j=!0,g=w;break}else if(n(82,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(83,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(84,p))a.te=l,l=t(l,1);else if(n(85,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(86,p)){l=t(a.te,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(87,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(88,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(89,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(90,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(91,p)){a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(92,p)){a.te=l,l=t(l,1),a.$emit("tFID",a.$tok(a.ts,x),a.ts,x),a.cs=a.$arg_or_cmdarg(M),l=t(x,1),l=s(l,1),j=!0,g=_;break}else if(n(93,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(94,p))a.te=l,l=t(l,1);else if(n(95,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(96,p))a.act=33;else if(n(97,p))a.act=34;else if(n(98,p))a.act=39;else if(n(99,p))a.act=40;else if(n(100,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(101,p)){a.te=s(l,1),a.$check_ambiguous_slash(x),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(102,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(103,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else if(n(104,p)){a.te=s(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(105,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(106,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(107,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(108,p))if(a.te=l,l=t(l,1),i(a["$version?"](18))){a.$emit("tLPAREN2","(".$freeze(),t(a.te,1),a.te),a.cs=508,l=s(l,1),j=!0,g=_;break}else{a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(109,p)){a.te=l,l=t(l,1),a.$emit("tLPAREN2","(".$freeze()),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(110,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK","[".$freeze(),t(a.te,1),a.te),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(111,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze(),t(a.te,1),a.te)):a.$emit("tLCURLY","{".$freeze(),t(a.te,1),a.te),a.command_start=!0,a.paren_nest=s(a.paren_nest,1),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(112,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(113,p)){a.te=l,l=t(l,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(x,a.te)]]),a.$range(x,a.te)),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(114,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(115,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(116,p))a.te=l,l=t(l,1);else if(n(117,p)){a.te=l,l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(118,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(119,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(120,p))l=t(a.te,1);else if(n(121,p)){l=t(a.te,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(122,p))if(n(33,C=a.act)){l=t(a.te,1),a.$check_ambiguous_slash(x),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(34,C)){l=t(a.te,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(x,a.te)]]),a.$range(x,a.te)),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(39,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else l=t(a.te,1);else if(n(123,p))a.act=46;else if(n(124,p))a.act=47;else if(n(125,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(126,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(127,p))if(a.te=l,l=t(l,1),a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),i(a["$version?"](18))){a.cs=508,l=s(l,1),j=!0,g=_;break}else{a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(128,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(129,p)){l=t(a.te,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(130,p))if(n(46,C=a.act)){l=t(a.te,1),i(a.cond["$active?"]())?a.$emit("kDO_COND","do".$freeze(),t(a.te,2),a.te):a.$emit("kDO","do".$freeze(),t(a.te,2),a.te),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(47,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else o;else if(n(131,p)){a.te=s(l,1),a.$emit_do(!0),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(132,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(133,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(134,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE_ARG","{".$freeze()),a.paren_nest=s(a.paren_nest,1),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(135,p))a.te=l,l=t(l,1);else if(n(136,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(137,p))a.act=54;else if(n(138,p))a.act=55;else if(n(139,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(140,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(141,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else if(n(142,p))a.te=l,l=t(l,1);else if(n(143,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(144,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(145,p))if(n(54,C=a.act)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(55,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else o;else if(n(146,p))a.act=60;else if(n(147,p))a.act=67;else if(n(148,p))a.act=76;else if(n(149,p))a.act=80;else if(n(150,p))a.act=81;else if(n(151,p))a.act=82;else if(n(152,p))a.act=86;else if(n(153,p))a.act=87;else if(n(154,p))a.act=91;else if(n(155,p)){a.te=s(l,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(156,p)){a.te=s(l,1),F=A=a.$tok()["$[]"](0).$chr(),a.strings.$push_literal(F,A,a.ts),l=t(l,1),a.cs=128,j=!0,g=w;break}else if(n(157,p)){a.te=s(l,1),O=[a.source_buffer.$slice(a.ts,1).$chr(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(158,p)){a.te=s(l,1),O=[a.$tok()["$[]"](v(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(159,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.$emit("tSYMBEG",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),a.cs=134,j=!0,g=w;break}else if(n(160,p)){a.te=s(l,1),O=[a.$tok(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(161,p)){a.te=s(l,1),a.$emit("tSYMBOL",a.$tok(s(a.ts,1),s(a.ts,2))),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(162,p)){a.te=s(l,1),D=a.$tok(s(a.ts,1)),i(c(a.version,33))&&i(D["$start_with?"]("$0"))&&i(u(D.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",D]]),a.$range(s(a.ts,1),a.te)),a.$emit("tSYMBOL",D,a.ts),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(163,p)){if(a.te=s(l,1),L=a.strings.$read_character_constant(a.ts),O=b(L),l=O[0]==null?o:O[0],W=O[1]==null?o:O[1],L,l=t(l,1),i(a.token_queue["$empty?"]())){a.cs=W,j=!0,g=w;break}a.cs=W,l=s(l,1),j=!0,g=_;break}else if(n(164,p))a.te=s(l,1),a.$diagnostic("fatal","incomplete_escape",o,a.$range(a.ts,s(a.ts,1)));else if(n(165,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(166,p)){a.te=s(l,1),l=t(l,1),i(a["$version?"](18))?(oe=a.$tok(a.ts,t(a.te,2)),a.$emit(i(a.source_buffer.$slice(a.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",oe,a.ts,t(a.te,2)),l=t(l,1),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](oe))?a.cs=516:a.cs=a.$arg_or_cmdarg(M)):(a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),a.cs=501),l=s(l,1),j=!0,g=_;break}else if(n(167,p)){a.te=s(l,1),R=t(a.te,1)["$=="](a.newline_s),B=!1,N=i(R)?t(a.te,1):a.te,i(c(a.version,30))?i(a.lambda_stack["$any?"]())&&r(s(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,N):(a.$emit("tBDOT3","...".$freeze(),a.ts,N),i(c(a.version,31))&&i(R)&&i(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),B=!0)):i(c(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,N):a.$emit("tDOT3","...".$freeze(),a.ts,N),i(R)&&h(B)&&(l=t(l,1)),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(168,p)){a.te=s(l,1),a.$emit("tIDENTIFIER",te,ue,se),l=t(se,1),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](te))&&i(m(a.version,25))?a.cs=247:a.cs=307,l=s(l,1),j=!0,g=_;break}else if(n(169,p)){a.te=s(l,1),l=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,j=!0,g=w;break}else if(n(170,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(171,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(172,p)){a.te=l,l=t(l,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(173,p)){a.te=l,l=t(l,1),a.$emit("tSTAR","*".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(174,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","string_eof",o,a.$range(a.ts,s(a.ts,1)));else if(n(175,p))if(a.te=l,l=t(l,1),a.$tok(a.ts,Z)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),me=i(C=((O=d["~"])===o?o:O["$[]"](1))["$empty?"]()["$!"]())?C:((O=d["~"])===o?o:O["$[]"](2))["$empty?"]()["$!"](),J=((O=d["~"])===o?o:O["$[]"](2))["$empty?"]()["$!"](),F=i(((O=d["~"])===o?o:O["$[]"](3))["$empty?"]())?'<<"'.$freeze():s("<<".$freeze(),(O=d["~"])===o?o:O["$[]"](3)),A=(O=d["~"])===o?o:O["$[]"](4),i(c(a.version,27))?(i(u(A.$count(` +`),0))||i(u(A.$count(` `),0)))&&a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1))):i(c(a.version,24))&&i(u(A.$count(` +`),0))&&(i(A["$end_with?"](` +`))?(a.$diagnostic("warning","heredoc_id_ends_with_nl",o,a.$range(a.ts,s(a.ts,1))),A=A.$rstrip()):a.$diagnostic("fatal","heredoc_id_has_newline",o,a.$range(a.ts,s(a.ts,1)))),i(J)&&i(a["$version?"](18,19,20,21,22))){a.$emit("tLSHFT","<<".$freeze(),a.ts,s(a.ts,2)),l=s(a.ts,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else a.strings.$push_literal(F,A,a.ts,Z,me,J),i(C=a.strings.$herebody_s())?C:a.strings["$herebody_s="](fe),l=t(a.strings.$herebody_s(),1),a.cs=128;else if(n(176,p))a.te=l,l=t(l,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(177,p)){a.te=l,l=t(l,1),a.$emit("tSYMBOL",a.$tok(s(a.ts,1),x),a.ts,x),l=t(x,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(178,p)){a.te=l,l=t(l,1),D=a.$tok(s(a.ts,1)),i(c(a.version,33))&&i(D["$start_with?"]("$0"))&&i(u(D.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",D]]),a.$range(s(a.ts,1),a.te)),a.$emit("tSYMBOL",D,a.ts),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(179,p)){a.te=l,l=t(l,1),a.$emit_colon_with_digits(l,x,ee),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(180,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","incomplete_escape",o,a.$range(a.ts,s(a.ts,1)));else if(n(181,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.command_start=!0,a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE","{".$freeze()),a.paren_nest=s(a.paren_nest,1),l=s(l,1),j=!0,g=_;break}else if(n(182,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK","[".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(183,p)){a.te=l,l=t(l,1),a.$emit("tLPAREN","(".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(184,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(185,p)){a.te=l,l=t(l,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,x),l=t(x,1),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(186,p)){a.te=l,l=t(l,1),i(c(a.version,27))?a.$emit("tBDOT2"):a.$emit("tDOT2"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(187,p)){a.te=l,l=t(l,1),R=t(a.te,1)["$=="](a.newline_s),B=!1,N=i(R)?t(a.te,1):a.te,i(c(a.version,30))?i(a.lambda_stack["$any?"]())&&r(s(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,N):(a.$emit("tBDOT3","...".$freeze(),a.ts,N),i(c(a.version,31))&&i(R)&&i(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),B=!0)):i(c(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,N):a.$emit("tDOT3","...".$freeze(),a.ts,N),i(R)&&h(B)&&(l=t(l,1)),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(188,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(189,p))if(a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(190,p))a.te=l,l=t(l,1);else if(n(191,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,j=!0,g=w;break}else if(n(192,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(193,p))l=t(a.te,1),a.$diagnostic("fatal","string_eof",o,a.$range(a.ts,s(a.ts,1)));else if(n(194,p))l=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(195,p))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(196,p))l=t(a.te,1);else if(n(197,p)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(198,p))if(n(60,C=a.act)){l=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(67,C))l=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(76,C))if(l=t(a.te,1),i(c(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else{l=t(l,2),a.cs=516,j=!0,g=w;break}else if(n(80,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(81,C)){l=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,x),l=t(x,1),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(82,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(86,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(87,C))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(91,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else o;else if(n(199,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(200,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(201,p))a.te=l,l=t(l,1);else if(n(202,p))if(a.te=l,l=t(l,1),i(a.context.$in_kwarg())){l=t(l,1),a.cs=516,j=!0,g=w;break}else{a.cs=710,j=!0,g=w;break}else if(n(203,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(204,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(205,p)){a.te=s(l,1),a.strings.$push_literal(a.$tok(),a.$tok(),a.ts),a.cs=128,j=!0,g=w;break}else if(n(206,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(207,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(208,p))a.te=l,l=t(l,1);else if(n(209,p)){a.te=l,l=t(l,1),a.cs=710,j=!0,g=w;break}else if(n(210,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(211,p)){l=t(a.te,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(212,p))a.act=104;else if(n(213,p))a.act=105;else if(n(214,p))a.act=106;else if(n(215,p))a.act=107;else if(n(216,p))a.act=108;else if(n(217,p))a.act=109;else if(n(218,p))a.act=110;else if(n(219,p))a.act=111;else if(n(220,p))a.act=112;else if(n(221,p))a.act=113;else if(n(222,p))a.act=115;else if(n(223,p))a.act=116;else if(n(224,p))a.act=117;else if(n(225,p))a.act=119;else if(n(226,p))a.act=123;else if(n(227,p))a.act=124;else if(n(228,p))a.act=126;else if(n(229,p))a.act=127;else if(n(230,p)){a.te=s(l,1),a.$emit("tLAMBDA","->".$freeze(),a.ts,s(a.ts,2)),a.lambda_stack.$push(a.paren_nest),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(231,p)){a.te=s(l,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(232,p)){a.te=s(l,1),O=[a.$tok(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts,o,!1,!1,!0),a.cs=128,j=!0,g=w;break}else if(n(233,p)){a.te=s(l,1),l=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(234,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=255,l=s(l,1),j=!0,g=_;break}else if(n(235,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(236,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(237,p)){a.te=s(l,1),a.$emit("tOP_ASGN",a.$tok(a.ts,t(a.te,1))),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(238,p)){a.te=s(l,1),a.$emit("tEH","?".$freeze()),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(239,p)){a.te=s(l,1),r(a.paren_nest,0)&&a.$diagnostic("warning","triple_dot_at_eol",o,a.$range(a.ts,t(a.te,1))),a.$emit("tDOT3","...".$freeze(),a.ts,t(a.te,1)),l=t(l,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(240,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(241,p)){a.te=s(l,1),a.$emit("tSEMI",";".$freeze()),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(242,p))a.te=s(l,1),a.$diagnostic("error","bare_backslash",o,a.$range(a.ts,s(a.ts,1))),l=t(l,1);else if(n(243,p))a.te=s(l,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(244,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(245,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),r(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):r(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),r(a.$tok(),"{".$freeze())&&(a.paren_nest=s(a.paren_nest,1)),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(246,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS")),a.cs=134,l=s(l,1),j=!0,g=_;break}else if(n(247,p)){a.te=l,l=t(l,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(248,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(249,p)){a.te=l,l=t(l,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(250,p))a.te=l,l=t(l,1),a.$diagnostic("error","no_dot_digit_literal");else if(n(251,p)){a.te=l,l=t(l,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(252,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(253,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT",a.$tok(a.ts,x),a.ts,x),l=t(x,1),l=s(l,1),j=!0,g=_;break}else if(n(254,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(255,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=255,l=s(l,1),j=!0,g=_;break}else if(n(256,p))if(a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(257,p)){a.te=l,l=t(l,1),r(x,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,x),a.ts,x),l=t(x,1)),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(258,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(259,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(260,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(261,p)){a.te=l,l=t(l,1),a.$emit_rbrace_rparen_rbrack(),(r(a.$tok(),"}".$freeze())||r(a.$tok(),"]".$freeze()))&&(i(c(a.version,25))?a.cs=516:a.cs=313),l=s(l,1),j=!0,g=_;break}else if(n(262,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK2","[".$freeze()),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(263,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(264,p))a.te=l,l=t(l,1);else if(n(265,p)){a.te=l,l=t(l,1),a.cs=696,j=!0,g=w;break}else if(n(266,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(267,p)){l=t(a.te,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(268,p))l=t(a.te,1),a.$diagnostic("error","no_dot_digit_literal");else if(n(269,p)){l=t(a.te,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(270,p))l=t(a.te,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(271,p))if(n(104,C=a.act)){l=t(a.te,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),r(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):r(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),r(a.$tok(),"{".$freeze())&&(a.paren_nest=s(a.paren_nest,1)),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(105,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=134,l=s(l,1),j=!0,g=_;break}else if(n(106,C)){l=t(a.te,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(107,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(108,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(109,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(110,C))if(l=t(a.te,1),a.$emit_table(E("KEYWORDS")),i(a["$version?"](18))&&r(a.$tok(),"not".$freeze())){a.cs=345,l=s(l,1),j=!0,g=_;break}else{a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(111,C)){l=t(a.te,1),i(a["$version?"](18))?(a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(M))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(112,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),l=s(l,1),j=!0,g=_;break}else if(n(113,C)){l=t(a.te,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(115,C))if(l=t(a.te,1),i(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(116,C))if(l=t(a.te,1),i(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(117,C)){l=t(a.te,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(119,C)){l=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(123,C))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(124,C)){l=t(a.te,1),r(x,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,x),a.ts,x),l=t(x,1)),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(126,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(127,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else o;else if(n(272,p))a.act=140;else if(n(273,p))a.act=144;else if(n(274,p))if(a.te=s(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),i(m(a.version,27))){l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else{a.$emit("tBDOT3"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(275,p)){a.te=s(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(276,p)){a.te=s(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(277,p)){if(a.te=l,l=t(l,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(278,p))if(a.te=l,l=t(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),i(m(a.version,27))){l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else{a.$emit("tBDOT2"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(279,p)){a.te=l,l=t(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(280,p)){a.te=l,l=t(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(281,p)){if(l=t(a.te,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(282,p)){l=t(a.te,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(283,p))if(n(140,C=a.act)){if(l=t(a.te,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(144,C)){l=t(a.te,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else o;else if(n(284,p)){a.te=s(l,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,j=!0,g=w;break}else if(n(285,p))a.te=s(l,1);else if(n(286,p)){a.te=l,l=t(l,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,j=!0,g=w;break}else if(n(287,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","embedded_document",o,a.$range(a.eq_begin_s,s(a.eq_begin_s,"=begin".$length())));else if(n(288,p)){a.te=s(l,1),a.eq_begin_s=a.ts,a.cs=704,j=!0,g=w;break}else if(n(289,p))a.te=s(l,1),l=t(I,3);else if(n(290,p)){a.te=s(l,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(291,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(292,p))a.te=l,l=t(l,1);else if(n(293,p)){a.te=l,l=t(l,1),a.eq_begin_s=a.ts,a.cs=704,j=!0,g=w;break}else if(n(294,p)){a.te=l,l=t(l,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(295,p)){l=t(a.te,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(296,p)){a.te=s(l,1),L=a.strings.$advance(l),O=b(L),l=O[0]==null?o:O[0],W=O[1]==null?o:O[1],L,l=t(l,1),a.cs=W,l=s(l,1),j=!0,g=_;break}else o;if(i(j))continue}if(i(f(g,w))){for(k=re["$[]"](a.cs),T=P["$[]"](k),k=s(k,1);i(u(T,0));)switch(T=t(T,1),k=s(k,1),P["$[]"](t(k,1)).valueOf()){case 51:a.ts=o;break;default:o}if(i(j))continue;if(r(a.cs,0)){g=_;continue}if(l=s(l,1),y(l,I)){g=G;continue}}if(i(f(g,ne))&&r(l,$)&&i(u(ie["$[]"](a.cs),0))){H=t(ie["$[]"](a.cs),1),g=Q;continue}if(i(f(g,_)))break}return i(!1)&&le,a.p=l,i(a.token_queue["$any?"]())?a.token_queue.$shift():r(a.cs,z.$lex_error())?[!1,["$error".$freeze(),a.$range(t(l,1),l)]]:($=a.source_pts.$size(),[!1,["$eof".$freeze(),a.$range($,$)]])}),C.$protected(),a(C,"$version?",function(){var o=this,n=_(arguments),s=n;return s["$include?"](o.version)},-1),a(C,"$stack_pop",function(){var n=this;return n.top=t(n.top,1),n.stack["$[]"](n.top)}),a(C,"$tok",function(n,s){var o=this;return n==null&&(n=o.ts),s==null&&(s=o.te),o.source_buffer.$slice(n,t(s,n))},-1),a(C,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),p(p(E("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(C,"$emit",function(t,n,s,a){var r=this,c=o;return n==null&&(n=r.$tok()),s==null&&(s=r.ts),a==null&&(a=r.te),c=[t,[n,r.$range(s,a)]],r.token_queue.$push(c),i(r.tokens)&&r.tokens.$push(c),c},-2),a(C,"$emit_table",function(t,n,s){var i=this,a=o;return n==null&&(n=i.ts),s==null&&(s=i.te),a=i.$tok(n,s),i.$emit(t["$[]"](a),a,n,s)},-2),a(C,"$emit_do",function(t){var n=this;return t==null&&(t=!1),i(n.cond["$active?"]())?n.$emit("kDO_COND","do".$freeze()):i(n.cmdarg["$active?"]())||i(t)?n.$emit("kDO_BLOCK","do".$freeze()):n.$emit("kDO","do".$freeze())},-1),a(C,"$arg_or_cmdarg",function(t){var n=this;return i(t)?n.$class().$lex_en_expr_cmdarg():n.$class().$lex_en_expr_arg()}),a(C,"$emit_comment",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.comments)&&s.comments.$push(p(p(E("Parser"),"Source"),"Comment").$new(s.$range(t,n))),i(s.tokens)&&s.tokens.$push(["tCOMMENT",[s.$tok(t,n),s.$range(t,n)]]),o},-1),a(C,"$emit_comment_from_range",function(n,s){var o=this;return o.$emit_comment(o.sharp_s,r(n,s)?t(n,2):n)}),a(C,"$diagnostic",function(t,n,s,i,a){var r=this;return s==null&&(s=o),i==null&&(i=r.$range()),a==null&&(a=[]),r.diagnostics.$process(p(E("Parser"),"Diagnostic").$new(t,n,s,i,a))},-3),a(C,"$e_lbrace",function(){var t=this,n=o;return t.cond.$push(!1),t.cmdarg.$push(!1),n=t.strings.$literal(),i(n)?n.$start_interp_brace():o}),a(C,"$numeric_literal_int",function(){var n=this,a=o,l=o,c=o,a=n.$tok(n.num_digits_s,n.num_suffix_s);return i(a["$end_with?"]("_".$freeze()))?n.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),n.$range(t(n.te,1),n.te)):i(a["$empty?"]())&&r(n.num_base,8)&&i(n["$version?"](18))?a="0".$freeze():i(a["$empty?"]())?n.$diagnostic("error","empty_numeric"):r(n.num_base,8)&&i(l=a.$index(/[89]/))&&(c=s(n.num_digits_s,l),n.$diagnostic("error","invalid_octal",o,n.$range(c,s(c,1)))),a}),a(C,"$on_newline",function(t){var n=this;return n.strings.$on_newline(t)}),a(C,"$check_ambiguous_slash",function(t){var n=this;return r(n.$tok(t,s(t,1)),"/".$freeze())?i(m(n.version,30))?n.$diagnostic("warning","ambiguous_literal",o,n.$range(t,s(t,1))):n.$diagnostic("warning","ambiguous_regexp",o,n.$range(t,s(t,1))):o}),a(C,"$emit_global_var",function(t,n){var o=this;return t==null&&(t=o.ts),n==null&&(n=o.te),i(o.$tok(t,n)["$=~"](/^\$([1-9][0-9]*)$/))?o.$emit("tNTH_REF",o.$tok(s(t,1),n).$to_i(),t,n):i(o.$tok()["$=~"](/^\$([&`'+])$/))?o.$emit("tBACK_REF",o.$tok(t,n),t,n):o.$emit("tGVAR",o.$tok(t,n),t,n)},-1),a(C,"$emit_class_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.$tok(t,n)["$=~"](/^@@[0-9]/))&&s.$diagnostic("error","cvar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tCVAR",s.$tok(t,n),t,n)},-1),a(C,"$emit_instance_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.$tok(t,n)["$=~"](/^@[0-9]/))&&s.$diagnostic("error","ivar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tIVAR",s.$tok(t,n),t,n)},-1),a(C,"$emit_rbrace_rparen_rbrack",function(){var t=this;return t.$emit_table(E("PUNCTUATION")),i(m(t.version,24))?(t.cond.$lexpop(),t.cmdarg.$lexpop()):(t.cond.$pop(),t.cmdarg.$pop())}),a(C,"$emit_colon_with_digits",function(t,n,o){var a=this;return i(c(a.version,27))?a.$diagnostic("error",o,new Map([["name",a.$tok(n,a.te)]]),a.$range(n,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),t=a.ts),t}),a(C,"$emit_singleton_class",function(){var n=this;return n.$emit("kCLASS","class".$freeze(),n.ts,s(n.ts,5)),n.$emit("tLSHFT","<<".$freeze(),t(n.te,2),n.te)}),g(A[0],"PUNCTUATION",new Map([["=","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"]])),g(A[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),g(A[0],"KEYWORDS",new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),g(A[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),g(A[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[` +`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),l(e.large_array_unpack("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(t){var n,s;return t==null&&(t=o),(n=[t,(s=[t,"k"+t.$upcase()],l(E("KEYWORDS"),"[]=",s),s[s.length-1])],l(E("KEYWORDS_BEGIN"),"[]=",n),n[n.length-1])})}(w("Parser"),null,j)},Opal.modules["parser/lexer-F1"]=function(e){var w=e.klass,o=e.truthy,c=e.send,t=e.rb_minus,a=e.def,d=e.gvars,i=e.eqeq,p=e.const_set,n=e.rb_plus,v=e.to_ary,h=e.rb_le,m=e.rb_gt,b=e.neqeq,g=e.range,r=e.rb_ge,l=e.not,u=e.rb_lt,y=e.slice,j=[],_=e.$r(j),s=e.nil,f=e.$$$;return e.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_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=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,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_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,<<,>,!=,on_newline,emit_comment_from_range,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,version?,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,<,emit_colon_with_digits,last,any?,emit_singleton_class,inspect,numeric_literal_int,to_i,call,to_f,emit_comment,advance,e_lbrace,close_interp_on_current_literal,emit_rbrace_rparen_rbrack,in_kwarg,end_with?,rstrip,herebody_s,herebody_s=,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase"),function(j,_,O){var x=w(j,_,"Lexer"),k=[x].concat(O),C=e.$r(k),E=x.$$prototype;return E.version=E.source_buffer=E.source_pts=E.strings=E.cs=E.cmdarg_stack=E.cmdarg=E.cond_stack=E.cond=E.token_queue=E._lex_actions=E.p=E.command_start=E.ts=E.te=E.stack=E.top=E.act=E.context=E.static_env=E.newline_s=E.lambda_stack=E.paren_nest=E.num_base=E.num_suffix_s=E.num_xfrm=E.eq_begin_s=E.cs_before_block_comment=E.emit_rational=E.emit_imaginary=E.emit_imaginary_rational=E.emit_integer_re=E.emit_integer_if=E.emit_integer_rescue=E.emit_imaginary_float=E.emit_float_if=E.emit_float_rescue=E.emit_integer=E.emit_float=E.tokens=E.comments=E.sharp_s=E.diagnostics=E.num_digits_s=s,function(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(x),k),x["$_lex_trans_keys="](e.large_array_unpack("0,0,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,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,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,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,26,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,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(x),k),x["$_lex_key_spans="](e.large_array_unpack("0,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,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,1,1,1,1,1,1,1,1,1,27,0,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,27,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,96,24,0,1,1,1,24,1,1")),function(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(x),k),x["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(x),k),x["$_lex_indicies="](e.large_array_unpack("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,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,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,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,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,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,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,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,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,2,2,2,2,7,2,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,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,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,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,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,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,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,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,18,18,18,18,19,18,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,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,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,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,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,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,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,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,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,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,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,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,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,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,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,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,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,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,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,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,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,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,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,259,2,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,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,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,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,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,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,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,262,262,262,262,7,262,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,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,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,303,303,303,303,263,303,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,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,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,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,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,312,9,312,312,313,9,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,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,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,316,316,316,316,313,316,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,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,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,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,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,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,329,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,340,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,341,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,348,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,354,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,358,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,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,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,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,328,328,328,328,263,328,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,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,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,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,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,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,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,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,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,405,405,405,405,13,405,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,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,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,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,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,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,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,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,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,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,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,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,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,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,467,467,467,467,19,467,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,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,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,55,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,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,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,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,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,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,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,93,93,93,93,96,93,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,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,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,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,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,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,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,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,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,530,530,530,530,519,530,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,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,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,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,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,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,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,626,626,626,626,626,626,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,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,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,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,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,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,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,675,675,675,675,676,675,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,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,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,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,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,681,682,681,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,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,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,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,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,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,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,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,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,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,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,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,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,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,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,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,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,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,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,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,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,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,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,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,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,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,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,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,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,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,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,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(x),k),x["$_lex_trans_targs="](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(x),k),x["$_lex_trans_actions="](e.large_array_unpack("0,1,0,0,0,0,0,0,2,3,4,5,6,0,0,0,7,8,9,0,0,10,11,12,13,14,15,15,16,17,15,18,17,19,17,15,15,16,15,20,15,15,21,15,15,15,15,15,15,0,22,23,0,24,23,25,23,0,0,22,0,26,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,28,29,30,31,0,0,0,31,14,32,15,15,15,32,33,0,34,0,14,15,35,15,36,37,38,0,0,0,0,0,39,40,41,0,14,0,42,0,15,43,15,44,15,45,46,47,46,48,46,0,49,50,49,51,49,52,53,0,54,0,0,0,0,55,55,0,0,56,56,57,0,14,58,0,0,0,55,0,0,59,0,0,0,0,59,60,0,0,0,61,62,63,64,0,65,65,66,67,67,68,0,0,0,0,69,0,0,0,0,0,0,14,0,0,0,15,43,15,15,15,45,46,47,46,46,46,0,49,50,49,49,49,70,52,71,72,0,73,0,74,74,0,75,0,76,45,77,0,78,14,79,80,81,0,0,0,0,0,0,0,0,0,82,83,86,0,0,87,88,89,90,91,92,0,14,0,0,65,65,0,0,0,93,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,96,97,98,99,100,45,101,0,102,0,0,0,103,0,104,105,0,0,106,0,0,0,107,0,108,0,0,0,0,0,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,111,112,0,0,65,0,113,114,115,45,116,0,0,14,117,0,118,119,0,14,0,0,120,0,0,0,0,0,0,0,0,0,0,121,0,122,0,123,124,125,126,127,45,128,0,0,129,0,130,131,132,133,14,0,13,0,0,13,0,0,0,0,0,0,65,65,65,134,135,136,137,138,139,140,0,141,142,143,144,145,146,147,148,149,45,150,0,151,152,153,154,155,156,0,0,0,157,65,65,0,158,159,160,161,162,0,0,0,0,0,163,164,45,165,0,166,14,167,168,169,170,171,172,0,14,0,0,0,0,0,0,173,174,175,176,45,177,0,178,14,179,180,181,0,0,0,0,0,0,0,0,0,0,0,0,182,183,0,184,0,0,65,185,0,0,185,185,0,0,65,186,0,186,0,186,186,186,0,0,186,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,0,187,188,188,189,190,0,191,192,0,59,0,193,0,194,195,196,197,198,15,199,200,201,202,203,45,204,0,205,206,0,207,0,208,209,185,210,0,211,0,212,213,214,0,0,215,0,0,0,0,216,0,0,0,0,0,0,0,217,0,0,218,0,219,220,0,0,0,221,0,0,222,223,224,225,226,227,0,228,229,229,0,230,0,231,232,232,0,0,233,234,235,236,237,0,0,238,14,182,182,182,182,182,182,182,182,182,182,182,182,59,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,239,182,182,182,182,182,182,182,182,182,182,182,182,240,241,242,243,244,244,240,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,245,246,247,248,0,14,0,0,249,250,251,45,252,0,253,14,254,65,255,256,0,14,257,0,0,258,259,260,261,45,262,0,14,263,264,265,266,0,14,0,267,0,65,268,0,0,0,0,269,0,0,270,270,0,271,0,0,0,272,65,273,273,273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274,275,276,0,277,278,279,280,281,282,45,283,0,284,0,0,285,286,287,288,289,290,291,292,293,0,294,0,295,296,0,0,297,298,299,0,0,300,0,0,299,301,301,302,303,0,304,305,0,306,307,308,0,309,310,0,0,311,312,299,299,313,0,0,314,314,0,315,0,316,317,65,0,318,0,319,320,321,322,322,323,323,0,0,324,325,325,326,326,327,328,328,329,329,330,331,331,332,332,0,0,333,334,335,336,337,338,338,335,337,339,270,340,0,0,0,341,0,0,342,343,273,273,273,344,273,345,346,14,347,348,349,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0,0,0,344,0,0,0,0,0,351,352,0,0,0,0,0,0,353,0,0,0,0,0,352,354,355,0,356,0,357,0,0,0,0,358,0,0,0,0,0,0,0,0,0,359,0,0,0,0,0,0,0,358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,360,361,362,363,363,74,363,364,365,366,0,367,368,0,369,0,370,0,0,0,371,372,373,374,0,14,0,65,0,65,375,376,377,45,378,0,379,0,380,381,382,0")),function(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(x),k),x["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,84,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(x),k),x["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(x),k),x["$_lex_eof_trans="](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,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,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,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,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,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,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,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,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,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(x),k),x["$lex_start="](128),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(x),k),x["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(x),k),x["$lex_en_expr_variable="](129),function(e){return e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(x),k),x["$lex_en_expr_fname="](134),function(e){return e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(x),k),x["$lex_en_expr_endfn="](247),function(e){return e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(x),k),x["$lex_en_expr_dot="](255),function(e){return e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(x),k),x["$lex_en_expr_arg="](276),function(e){return e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_cmdarg="](307),function(e){return e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_endarg="](313),function(e){return e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(x),k),x["$lex_en_expr_mid="](321),function(e){return e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(x),k),x["$lex_en_expr_beg="](345),function(e){return e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_labelarg="](501),function(e){return e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(x),k),x["$lex_en_expr_value="](508),function(e){return e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(x),k),x["$lex_en_expr_end="](516),function(e){return e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(x),k),x["$lex_en_leading_dot="](696),function(e){return e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(x),k),x["$lex_en_line_comment="](704),function(e){return e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(x),k),x["$lex_en_line_begin="](710),function(e){return e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(x),k),x["$lex_en_inside_string="](128),x.$attr_reader("source_buffer"),x.$attr_accessor("diagnostics"),x.$attr_accessor("static_env"),x.$attr_accessor("force_utf32"),x.$attr_accessor("cond","cmdarg","context","command_start"),x.$attr_accessor("tokens","comments"),x.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(x,"$initialize",function(n){var i=this;return i.version=n,i.static_env=s,i.context=s,i.tokens=s,i.comments=s,i._lex_actions=o(i.$class()["$respond_to?"]("_lex_actions",!0))?i.$class().$send("_lex_actions"):[],i.emit_integer=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tINTEGER",t),n},{$$s:i}),i.emit_rational=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tRATIONAL",o.$Rational(t)),n},{$$s:i}),i.emit_imaginary=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,t)),n},{$$s:i}),i.emit_imaginary_rational=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,o.$Rational(t))),n},{$$s:i}),i.emit_integer_re=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_integer_if=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_integer_rescue=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,6)),t(o,6)},{$$s:i}),i.emit_float=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tFLOAT",o.$construct_float(t)),n},{$$s:i}),i.emit_imaginary_float=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,o.$construct_float(t))),n},{$$s:i}),i.emit_float_if=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_float_rescue=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,6)),t(o,6)},{$$s:i}),i.$reset()}),a(x,"$construct_float",function(t){var n,i=this,o=s;return d.VERBOSE==null&&(d.VERBOSE=s),function(){try{return n=[d.VERBOSE,s],o=n[0],d.VERBOSE=n[1],n,i.$Float(t)}finally{d.VERBOSE=o}}()}),a(x,"$reset",function(t){var n=this;return t==null&&(t=!0),o(t)&&(n.cs=n.$class().$lex_en_line_begin(),n.cond=C("StackState").$new("cond"),n.cmdarg=C("StackState").$new("cmdarg"),n.cond_stack=[],n.cmdarg_stack=[]),n.force_utf32=!1,n.source_pts=s,n.p=0,n.ts=s,n.te=s,n.act=0,n.stack=[],n.top=0,n.token_queue=[],n.eq_begin_s=s,n.sharp_s=s,n.newline_s=s,n.num_base=s,n.num_digits_s=s,n.num_suffix_s=s,n.num_xfrm=s,n.paren_nest=0,n.lambda_stack=[],n.command_start=!0,n.cs_before_block_comment=n.$class().$lex_en_line_begin(),n.strings=f(C("Parser"),"LexerStrings").$new(n,n.version)},-1),a(x,"$source_buffer=",function(t){var a,n=this,r=s;return n.source_buffer=t,o(n.source_buffer)?(r=n.source_buffer.$source(),i(r.$encoding(),f(C("Encoding"),"UTF_8"))?n.source_pts=r.$unpack("U*"):n.source_pts=r.$unpack("C*"),i(n.source_pts["$[]"](0),65279)&&(n.p=1)):n.source_pts=s,n.strings["$source_buffer="](n.source_buffer),(a=[n.source_pts],c(n.strings,"source_pts=",a),a[a.length-1])}),a(x,"$encoding",function(){var t=this;return t.source_buffer.$source().$encoding()}),p(k[0],"LEX_STATES",new Map([["line_begin",x.$lex_en_line_begin()],["expr_dot",x.$lex_en_expr_dot()],["expr_fname",x.$lex_en_expr_fname()],["expr_value",x.$lex_en_expr_value()],["expr_beg",x.$lex_en_expr_beg()],["expr_mid",x.$lex_en_expr_mid()],["expr_arg",x.$lex_en_expr_arg()],["expr_cmdarg",x.$lex_en_expr_cmdarg()],["expr_end",x.$lex_en_expr_end()],["expr_endarg",x.$lex_en_expr_endarg()],["expr_endfn",x.$lex_en_expr_endfn()],["expr_labelarg",x.$lex_en_expr_labelarg()],["inside_string",x.$lex_en_inside_string()]])),a(x,"$state",function(){var t=this;return C("LEX_STATES").$invert().$fetch(t.cs,t.cs)}),a(x,"$state=",function(t){var n=this;return n.cs=C("LEX_STATES").$fetch(t)}),a(x,"$push_cmdarg",function(){var t=this;return t.cmdarg_stack.$push(t.cmdarg),t.cmdarg=C("StackState").$new("cmdarg."+t.cmdarg_stack.$count())}),a(x,"$pop_cmdarg",function(){var t=this;return t.cmdarg=t.cmdarg_stack.$pop()}),a(x,"$push_cond",function(){var t=this;return t.cond_stack.$push(t.cond),t.cond=C("StackState").$new("cond."+t.cond_stack.$count())}),a(x,"$pop_cond",function(){var t=this;return t.cond=t.cond_stack.$pop()}),a(x,"$dedent_level",function(){var t=this;return t.strings.$dedent_level()}),a(x,"$advance",function(){var w,F,a=this,A=s,K=s,de=s,re=s,ee=s,ae=s,te=s,ne=s,se=s,q=s,ue=s,O=s,c=s,H=s,x=s,ie=s,B=s,N=s,L=s,V=s,he=s,me=s,f=s,Q=s,X=s,y=s,G=s,p=s,$=s,oe=s,j=s,W=s,z=s,P=s,J=s,R=s,k=s,E=s,M=s,I=s,Y=s,T=s,D=s,S=s,_=s,ce=s,le=s,U=s,Z=s;if(!o(a.token_queue["$empty?"]()))return a.token_queue.$shift();for(A=a.$class(),K=A.$send("_lex_trans_keys"),de=A.$send("_lex_key_spans"),re=A.$send("_lex_index_offsets"),ee=A.$send("_lex_indicies"),ae=A.$send("_lex_trans_targs"),te=A.$send("_lex_trans_actions"),ne=A.$send("_lex_to_state_actions"),se=A.$send("_lex_from_state_actions"),q=A.$send("_lex_eof_trans"),ue=a._lex_actions,O=n(a.source_pts.$size(),2),w=[a.p,O],c=w[0],H=w[1],w,x=a.command_start,a.command_start=!1,ie=!1,F=s,w=v(F),B=w[0]==null?s:w[0],N=w[1]==null?s:w[1],L=w[2]==null?s:w[2],V=w[3]==null?s:w[3],he=w[4]==null?s:w[4],me=w[5]==null?s:w[5],F,f=0,Q=10,X=15,y=20,G=30,p=40;o(!0);){if(o(h(f,0))){if(i(c,O)){f=G;continue}if(i(a.cs,0)){f=p;continue}}if(o(h(f,Q))){switch(se["$[]"](a.cs).valueOf()){case 85:a.ts=c;break;default:s}L=a.cs["$<<"](1),V=re["$[]"](a.cs),B=de["$[]"](a.cs),$=o(oe=a.source_pts["$[]"](c))?oe:0,N=o(m(B,0))&&o(h(K["$[]"](L),$))&&o(h($,K["$[]"](n(L,1))))?ee["$[]"](t(n(V,$),K["$[]"](L))):ee["$[]"](n(V,B))}if(o(h(f,X))&&(a.cs=ae["$[]"](N),b(te["$[]"](N),0)))switch(te["$[]"](N).valueOf()){case 14:a.newline_s=c;break;case 15:c=a.$on_newline(c);break;case 45:a.sharp_s=t(c,1);break;case 49:a.$emit_comment_from_range(c,O);break;case 190:j=c;break;case 22:j=c;break;case 24:j=c;break;case 26:j=c;break;case 56:W=c;break;case 229:j=t(c,1),z="ivar_name";break;case 232:j=t(c,2),z="cvar_name";break;case 244:j=c;break;case 188:P=a.$tok(),J=a.ts,R=a.te;break;case 331:a.num_base=16,a.num_digits_s=c;break;case 325:a.num_base=10,a.num_digits_s=c;break;case 328:a.num_base=8,a.num_digits_s=c;break;case 322:a.num_base=2,a.num_digits_s=c;break;case 337:a.num_base=10,a.num_digits_s=a.ts;break;case 299:a.num_base=8,a.num_digits_s=a.ts;break;case 314:a.num_suffix_s=c;break;case 307:a.num_suffix_s=c;break;case 304:a.num_suffix_s=c;break;case 74:j=c;break;case 65:a.te=n(c,1);break;case 1:a.te=n(c,1),a.$emit_global_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 87:a.te=c,c=t(c,1),a.$emit_global_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 89:a.te=c,c=t(c,1),a.$emit_class_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 88:a.te=c,c=t(c,1),a.$emit_instance_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 110:a.te=n(c,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 96:a.te=n(c,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;case 3:a.te=n(c,1),c=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 93:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 105:a.te=n(c,1),c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 5:if(a.te=n(c,1),o(a["$version?"](23))){w=[a.$tok()["$[]"](g(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue}else{c=t(a.ts,1),a.cs=516,f=y;continue}break;case 92:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 91:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 109:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 106:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=247,c=n(c,1),f=p;continue;break;case 108:a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;case 103:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 99:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 104:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 97:a.te=c,c=t(c,1);break;case 102:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 4:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 2:c=t(a.te,1),c=t(c,1),a.cs=516,f=y;continue;break;case 95:switch(a.act.valueOf()){case 4:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 5:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=247,c=n(c,1),f=p;continue;break;case 6:c=t(a.te,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;default:s}break;case 7:a.te=n(c,1),a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),c=t(c,1),a.cs=501,c=n(c,1),f=p;continue;break;case 8:if(a.te=n(c,1),o(r(a.version,31))&&o(a.context.$in_argdef())){a.$emit("tBDOT3","...".$freeze()),a.cs=516,c=n(c,1),f=p;continue}else{c=t(c,3),a.cs=516,f=y;continue}break;case 112:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 111:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 114:a.te=c,c=t(c,1);break;case 113:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 6:c=t(a.te,1),c=t(c,1),a.cs=516,f=y;continue;break;case 120:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=276,c=n(c,1),f=p;continue;break;case 119:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 118:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 130:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 121:a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 126:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=276,c=n(c,1),f=p;continue;break;case 124:a.te=c,c=t(c,1);break;case 129:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 153:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 136:a.te=n(c,1),a.$check_ambiguous_slash(j),c=t(j,1),a.cs=345,f=y;continue;break;case 142:a.te=n(c,1),c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 10:a.te=n(c,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;case 144:a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 25:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 131:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 132:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 143:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 139:a.te=c,c=t(c,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(j,a.te)]]),a.$range(j,a.te)),c=t(j,1),a.cs=345,f=y;continue;break;case 141:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 135:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 134:a.te=c,c=t(c,1);break;case 152:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 11:c=t(a.te,1);break;case 27:c=t(a.te,1),c=t(c,1),a.cs=345,f=y;continue;break;case 9:switch(a.act.valueOf()){case 33:c=t(a.te,1),a.$check_ambiguous_slash(j),c=t(j,1),a.cs=345,f=y;continue;break;case 34:c=t(a.te,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(j,a.te)]]),a.$range(j,a.te)),c=t(j,1),a.cs=345,f=y;continue;break;case 39:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:c=t(a.te,1)}break;case 29:a.te=n(c,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 157:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 158:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 30:c=t(a.te,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 28:switch(a.act.valueOf()){case 46:c=t(a.te,1),o(a.cond["$active?"]())?a.$emit("kDO_COND","do".$freeze(),t(a.te,2),a.te):a.$emit("kDO","do".$freeze(),t(a.te,2),a.te),a.cs=508,c=n(c,1),f=p;continue;break;case 47:c=t(a.te,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;default:s}break;case 168:a.te=n(c,1),a.$emit_do(!0),a.cs=508,c=n(c,1),f=p;continue;break;case 161:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 162:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 163:a.te=c,c=t(c,1);break;case 166:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 172:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 171:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 180:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;case 174:a.te=c,c=t(c,1);break;case 178:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 173:switch(a.act.valueOf()){case 54:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 55:c=t(a.te,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;default:s}break;case 42:a.te=n(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 214:a.te=n(c,1),k=E=a.$tok()["$[]"](0).$chr(),a.strings.$push_literal(k,E,a.ts),c=t(c,1),a.cs=128,f=y;continue;break;case 206:a.te=n(c,1),w=[a.source_buffer.$slice(a.ts,1).$chr(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 40:a.te=n(c,1),w=[a.$tok()["$[]"](g(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 227:a.te=n(c,1),c=t(c,1),c=t(c,1),a.$emit("tSYMBEG",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),a.cs=134,f=y;continue;break;case 215:a.te=n(c,1),w=[a.$tok(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 226:a.te=n(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),n(a.ts,2))),a.cs=516,c=n(c,1),f=p;continue;break;case 54:a.te=n(c,1),M=a.$tok(n(a.ts,1)),o(r(a.version,33))&&o(M["$start_with?"]("$0"))&&o(m(M.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",M]]),a.$range(n(a.ts,1),a.te)),a.$emit("tSYMBOL",M,a.ts),a.cs=516,c=n(c,1),f=p;continue;break;case 236:if(a.te=n(c,1),F=a.strings.$read_character_constant(a.ts),w=v(F),c=w[0]==null?s:w[0],I=w[1]==null?s:w[1],F,c=t(c,1),o(a.token_queue["$empty?"]())){a.cs=I,f=y;continue}a.cs=I,c=n(c,1),f=p;continue;break;case 237:a.te=n(c,1),a.$diagnostic("fatal","incomplete_escape",s,a.$range(a.ts,n(a.ts,1)));break;case 216:a.te=n(c,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 37:a.te=n(c,1),c=t(c,1),o(a["$version?"](18))?(Y=a.$tok(a.ts,t(a.te,2)),a.$emit(o(a.source_buffer.$slice(a.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Y,a.ts,t(a.te,2)),c=t(c,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](Y))?a.cs=516:a.cs=a.$arg_or_cmdarg(x)):(a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),a.cs=501),c=n(c,1),f=p;continue;break;case 34:a.te=n(c,1),a.$emit("tIDENTIFIER",P,J,R),c=t(R,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](P))&&o(u(a.version,25))?a.cs=247:a.cs=307,c=n(c,1),f=p;continue;break;case 200:a.te=n(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 41:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 183:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 210:a.te=c,c=t(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 209:a.te=c,c=t(c,1),a.$emit("tSTAR","*".$freeze()),c=n(c,1),f=p;continue;break;case 205:a.te=c,c=t(c,1),a.$diagnostic("fatal","string_eof",s,a.$range(a.ts,n(a.ts,1)));break;case 234:a.te=c,c=t(c,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 217:a.te=c,c=t(c,1),M=a.$tok(n(a.ts,1)),o(r(a.version,33))&&o(M["$start_with?"]("$0"))&&o(m(M.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",M]]),a.$range(n(a.ts,1),a.te)),a.$emit("tSYMBOL",M,a.ts),a.cs=516,c=n(c,1),f=p;continue;break;case 230:a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 235:a.te=c,c=t(c,1),a.$diagnostic("fatal","incomplete_escape",s,a.$range(a.ts,n(a.ts,1)));break;case 207:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 211:a.te=c,c=t(c,1),o(r(a.version,27))?a.$emit("tBDOT2"):a.$emit("tDOT2"),a.cs=345,c=n(c,1),f=p;continue;break;case 212:a.te=c,c=t(c,1),T=t(a.te,1)["$=="](a.newline_s),D=!1,S=o(T)?t(a.te,1):a.te,o(r(a.version,30))?o(a.lambda_stack["$any?"]())&&i(n(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,S):(a.$emit("tBDOT3","...".$freeze(),a.ts,S),o(r(a.version,31))&&o(T)&&o(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),D=!0)):o(r(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,S):a.$emit("tDOT3","...".$freeze(),a.ts,S),o(T)&&l(D)&&(c=t(c,1)),a.cs=345,c=n(c,1),f=p;continue;break;case 187:if(a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 197:a.te=c,c=t(c,1);break;case 199:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 202:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 39:c=t(a.te,1),a.$diagnostic("fatal","string_eof",s,a.$range(a.ts,n(a.ts,1)));break;case 58:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 33:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 38:c=t(a.te,1);break;case 53:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 36:switch(a.act.valueOf()){case 60:c=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 67:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 76:if(c=t(a.te,1),o(r(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue}else{c=t(c,2),a.cs=516,f=y;continue}break;case 80:c=t(a.te,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 81:c=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 82:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 86:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 87:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 91:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:s}break;case 247:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 248:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 249:a.te=c,c=t(c,1);break;case 253:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 61:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 257:a.te=n(c,1),a.strings.$push_literal(a.$tok(),a.$tok(),a.ts),a.cs=128,f=y;continue;break;case 256:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 255:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 259:a.te=c,c=t(c,1);break;case 258:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 60:c=t(a.te,1),c=t(c,1),a.cs=345,f=y;continue;break;case 292:a.te=n(c,1),a.$emit("tLAMBDA","->".$freeze(),a.ts,n(a.ts,2)),a.lambda_stack.$push(a.paren_nest),a.cs=247,c=n(c,1),f=p;continue;break;case 71:a.te=n(c,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 267:a.te=n(c,1),w=[a.$tok(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts,s,!1,!1,!0),a.cs=128,f=y;continue;break;case 63:a.te=n(c,1),c=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 288:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=255,c=n(c,1),f=p;continue;break;case 341:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 281:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 286:a.te=n(c,1),a.$emit("tOP_ASGN",a.$tok(a.ts,t(a.te,1))),a.cs=345,c=n(c,1),f=p;continue;break;case 272:a.te=n(c,1),a.$emit("tEH","?".$freeze()),a.cs=508,c=n(c,1),f=p;continue;break;case 269:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 271:a.te=n(c,1),a.$emit("tSEMI",";".$freeze()),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 346:a.te=n(c,1),a.$diagnostic("error","bare_backslash",s,a.$range(a.ts,n(a.ts,1))),c=t(c,1);break;case 266:a.te=n(c,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 265:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 357:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 355:a.te=c,c=t(c,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 354:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 296:a.te=c,c=t(c,1),a.$diagnostic("error","no_dot_digit_literal");break;case 343:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 285:a.te=c,c=t(c,1),c=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 293:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=255,c=n(c,1),f=p;continue;break;case 349:if(a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 291:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 287:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 280:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 294:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 278:a.te=c,c=t(c,1);break;case 284:a.te=c,c=t(c,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 69:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 64:c=t(a.te,1),a.$diagnostic("error","no_dot_digit_literal");break;case 68:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 62:c=t(a.te,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 66:switch(a.act.valueOf()){case 104:c=t(a.te,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 105:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 106:c=t(a.te,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 107:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 108:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 109:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=321,c=n(c,1),f=p;continue;break;case 110:if(c=t(a.te,1),a.$emit_table(C("KEYWORDS")),o(a["$version?"](18))&&i(a.$tok(),"not".$freeze())){a.cs=345,c=n(c,1),f=p;continue}else{a.cs=276,c=n(c,1),f=p;continue}break;case 111:c=t(a.te,1),o(a["$version?"](18))?(a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(x))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),c=n(c,1),f=p;continue;break;case 112:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),c=n(c,1),f=p;continue;break;case 113:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 115:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 116:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 117:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 119:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 123:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 124:c=t(a.te,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 126:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 127:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;default:s}break;case 368:if(a.te=n(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),o(u(a.version,27))){c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}else{a.$emit("tBDOT3"),a.cs=345,c=n(c,1),f=p;continue}break;case 80:a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 362:a.te=n(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 365:if(a.te=c,c=t(c,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 367:if(a.te=c,c=t(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),o(u(a.version,27))){c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}else{a.$emit("tBDOT2"),a.cs=345,c=n(c,1),f=p;continue}break;case 366:a.te=c,c=t(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 364:a.te=c,c=t(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 75:if(c=t(a.te,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 72:c=t(a.te,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 76:switch(a.act.valueOf()){case 140:if(c=t(a.te,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 144:c=t(a.te,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;default:s}break;case 371:a.te=c,c=t(c,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,f=y;continue;break;case 370:a.te=c,c=t(c,1),a.$diagnostic("fatal","embedded_document",s,a.$range(a.eq_begin_s,n(a.eq_begin_s,"=begin".$length())));break;case 381:a.te=n(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 82:a.te=n(c,1),c=t(O,3);break;case 373:a.te=n(c,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 374:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 375:a.te=c,c=t(c,1);break;case 380:a.te=c,c=t(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 379:a.te=c,c=t(c,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 81:c=t(a.te,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 86:a.te=n(c,1),F=a.strings.$advance(c),w=v(F),c=w[0]==null?s:w[0],I=w[1]==null?s:w[1],F,c=t(c,1),a.cs=I,c=n(c,1),f=p;continue;break;case 52:a.newline_s=c,a.$emit_comment_from_range(c,O);break;case 154:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 145:a.newline_s=c,a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 137:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 213:a.newline_s=c,a.te=n(c,1),T=t(a.te,1)["$=="](a.newline_s),D=!1,S=o(T)?t(a.te,1):a.te,o(r(a.version,30))?o(a.lambda_stack["$any?"]())&&i(n(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,S):(a.$emit("tBDOT3","...".$freeze(),a.ts,S),o(r(a.version,31))&&o(T)&&o(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),D=!0)):o(r(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,S):a.$emit("tDOT3","...".$freeze(),a.ts,S),o(T)&&l(D)&&(c=t(c,1)),a.cs=345,c=n(c,1),f=p;continue;break;case 201:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 295:a.newline_s=c,a.te=n(c,1),i(a.paren_nest,0)&&a.$diagnostic("warning","triple_dot_at_eol",s,a.$range(a.ts,t(a.te,1))),a.$emit("tDOT3","...".$freeze(),a.ts,t(a.te,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue;break;case 372:a.newline_s=c,a.te=n(c,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,f=y;continue;break;case 369:a.newline_s=c,a.te=n(c,1);break;case 382:a.newline_s=c,a.te=n(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 83:a.newline_s=c,a.te=n(c,1),c=t(O,3);break;case 317:a.num_xfrm=a.emit_rational,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 315:a.num_xfrm=a.emit_imaginary,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 320:a.num_xfrm=a.emit_imaginary_rational,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 318:a.num_xfrm=a.emit_integer_re,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 316:a.num_xfrm=a.emit_integer_if,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 319:a.num_xfrm=a.emit_integer_rescue,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 308:a.num_xfrm=a.emit_imaginary_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 309:a.num_xfrm=a.emit_float_if,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 310:a.num_xfrm=a.emit_rational,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 312:a.num_xfrm=a.emit_imaginary_rational,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 311:a.num_xfrm=a.emit_float_rescue,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 147:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze(),t(a.te,1),a.te)):a.$emit("tLCURLY","{".$freeze(),t(a.te,1),a.te),a.command_start=!0,a.paren_nest=n(a.paren_nest,1),a.cs=508,c=n(c,1),f=p;continue;break;case 169:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE_ARG","{".$freeze()),a.paren_nest=n(a.paren_nest,1),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 245:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.command_start=!0,a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE","{".$freeze()),a.paren_nest=n(a.paren_nest,1),c=n(c,1),f=p;continue;break;case 360:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 361:if(o(a.strings.$close_interp_on_current_literal(c))){c=t(c,1),a.cs=128,c=n(c,1),f=p;continue}a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 43:c=a.$on_newline(c),a.newline_s=c;break;case 16:c=a.$on_newline(c),j=c;break;case 18:c=a.$on_newline(c),j=c;break;case 20:c=a.$on_newline(c),j=c;break;case 98:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 117:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 125:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 19:c=a.$on_newline(c),a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 156:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 148:c=a.$on_newline(c),a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 167:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 179:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 175:c=a.$on_newline(c),a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 44:c=a.$on_newline(c),a.te=n(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 35:c=a.$on_newline(c),a.te=n(c,1),a.$emit("tIDENTIFIER",P,J,R),c=t(R,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](P))&&o(u(a.version,25))?a.cs=247:a.cs=307,c=n(c,1),f=p;continue;break;case 198:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 254:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 250:if(c=a.$on_newline(c),a.te=c,c=t(c,1),o(a.context.$in_kwarg())){c=t(c,1),a.cs=516,f=y;continue}else{a.cs=710,f=y;continue}break;case 263:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 260:c=a.$on_newline(c),a.te=c,c=t(c,1),a.cs=710,f=y;continue;break;case 347:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 279:c=a.$on_newline(c),a.te=c,c=t(c,1),a.cs=696,f=y;continue;break;case 376:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 46:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O);break;case 50:a.$emit_comment_from_range(c,O),a.newline_s=c;break;case 101:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 116:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 128:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 150:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1),a.cs=516,f=y;continue;break;case 165:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 177:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 204:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 252:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 262:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 283:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 378:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 122:j=c,a.te=c,c=t(c,1),a.$emit("tFID",a.$tok(a.ts,j),a.ts,j),a.cs=a.$arg_or_cmdarg(x),c=t(j,1),c=n(c,1),f=p;continue;break;case 218:j=c,a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 189:j=c,a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 276:switch(j=c,a.act.valueOf()){case 104:c=t(a.te,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 105:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 106:c=t(a.te,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 107:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 108:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 109:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=321,c=n(c,1),f=p;continue;break;case 110:if(c=t(a.te,1),a.$emit_table(C("KEYWORDS")),o(a["$version?"](18))&&i(a.$tok(),"not".$freeze())){a.cs=345,c=n(c,1),f=p;continue}else{a.cs=276,c=n(c,1),f=p;continue}break;case 111:c=t(a.te,1),o(a["$version?"](18))?(a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(x))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),c=n(c,1),f=p;continue;break;case 112:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),c=n(c,1),f=p;continue;break;case 113:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 115:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 116:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 117:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 119:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 123:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 124:c=t(a.te,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 126:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 127:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;default:s}break;case 123:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tFID",a.$tok(a.ts,j),a.ts,j),a.cs=a.$arg_or_cmdarg(x),c=t(j,1),c=n(c,1),f=p;continue;break;case 219:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 191:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 277:j=t(c,2),a.te=c,c=t(c,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 220:j=c,a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 192:j=c,a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 221:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 193:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 225:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 196:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 224:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 195:switch(j=t(c,2),a.act.valueOf()){case 60:c=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 67:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 76:if(c=t(a.te,1),o(r(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue}else{c=t(c,2),a.cs=516,f=y;continue}break;case 80:c=t(a.te,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 81:c=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 82:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 86:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 87:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 91:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:s}break;case 222:j=t(c,3),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 194:j=t(c,3),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 223:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 342:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tCONSTANT",a.$tok(a.ts,j),a.ts,j),c=t(j,1),c=n(c,1),f=p;continue;break;case 146:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK","[".$freeze(),t(a.te,1),a.te),a.cs=345,c=n(c,1),f=p;continue;break;case 238:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK","[".$freeze()),c=n(c,1),f=p;continue;break;case 345:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK2","[".$freeze()),a.cs=345,c=n(c,1),f=p;continue;break;case 348:a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 138:if(a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),o(a["$version?"](18))){a.$emit("tLPAREN2","(".$freeze(),t(a.te,1),a.te),a.cs=508,c=n(c,1),f=p;continue}else{a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),a.cs=345,c=n(c,1),f=p;continue}break;case 151:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN2","(".$freeze()),a.cs=345,c=n(c,1),f=p;continue;break;case 159:if(a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),o(a["$version?"](18))){a.cs=508,c=n(c,1),f=p;continue}else{a.cs=345,c=n(c,1),f=p;continue}break;case 208:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN","(".$freeze()),c=n(c,1),f=p;continue;break;case 289:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 290:a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 57:W=c,a.newline_s=c;break;case 233:if(ce=c,a.te=c,c=t(c,1),a.$tok(a.ts,W)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),le=o(U=((w=d["~"])===s?s:w["$[]"](1))["$empty?"]()["$!"]())?U:((w=d["~"])===s?s:w["$[]"](2))["$empty?"]()["$!"](),Z=((w=d["~"])===s?s:w["$[]"](2))["$empty?"]()["$!"](),k=o(((w=d["~"])===s?s:w["$[]"](3))["$empty?"]())?'<<"'.$freeze():n("<<".$freeze(),(w=d["~"])===s?s:w["$[]"](3)),E=(w=d["~"])===s?s:w["$[]"](4),o(r(a.version,27))?(o(m(E.$count(` +`),0))||o(m(E.$count(` `),0)))&&a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1))):o(r(a.version,24))&&o(m(E.$count(` +`),0))&&(o(E["$end_with?"](` +`))?(a.$diagnostic("warning","heredoc_id_ends_with_nl",s,a.$range(a.ts,n(a.ts,1))),E=E.$rstrip()):a.$diagnostic("fatal","heredoc_id_has_newline",s,a.$range(a.ts,n(a.ts,1)))),o(Z)&&o(a["$version?"](18,19,20,21,22))){a.$emit("tLSHFT","<<".$freeze(),a.ts,n(a.ts,2)),c=n(a.ts,1),a.cs=345,c=n(c,1),f=p;continue}else a.strings.$push_literal(k,E,a.ts,W,le,Z),o(U=a.strings.$herebody_s())?U:a.strings["$herebody_s="](ce),c=t(a.strings.$herebody_s(),1),a.cs=128;break;case 228:j=t(c,1),z="ivar_name",a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 231:j=t(c,2),z="cvar_name",a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 241:j=c,a.te=c,c=t(c,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 332:a.num_base=16,a.num_digits_s=c,a.num_suffix_s=c;break;case 326:a.num_base=10,a.num_digits_s=c,a.num_suffix_s=c;break;case 329:a.num_base=8,a.num_digits_s=c,a.num_suffix_s=c;break;case 323:a.num_base=2,a.num_digits_s=c,a.num_suffix_s=c;break;case 338:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c;break;case 301:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c;break;case 339:a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 184:a.te=n(c,1),a.newline_s=c;break;case 305:a.te=n(c,1),a.num_suffix_s=c;break;case 107:a.te=n(c,1),a.act=4;break;case 94:a.te=n(c,1),a.act=5;break;case 90:a.te=n(c,1),a.act=6;break;case 12:a.te=n(c,1),a.act=33;break;case 140:a.te=n(c,1),a.act=34;break;case 13:a.te=n(c,1),a.act=39;break;case 133:a.te=n(c,1),a.act=40;break;case 160:a.te=n(c,1),a.act=46;break;case 31:a.te=n(c,1),a.act=47;break;case 181:a.te=n(c,1),a.act=54;break;case 170:a.te=n(c,1),a.act=55;break;case 55:a.te=n(c,1),a.act=67;break;case 246:a.te=n(c,1),a.act=76;break;case 185:a.te=n(c,1),a.act=80;break;case 240:a.te=n(c,1),a.act=81;break;case 239:a.te=n(c,1),a.act=82;break;case 59:a.te=n(c,1),a.act=86;break;case 182:a.te=n(c,1),a.act=87;break;case 186:a.te=n(c,1),a.act=91;break;case 356:a.te=n(c,1),a.act=104;break;case 351:a.te=n(c,1),a.act=105;break;case 359:a.te=n(c,1),a.act=107;break;case 352:a.te=n(c,1),a.act=108;break;case 353:a.te=n(c,1),a.act=109;break;case 358:a.te=n(c,1),a.act=110;break;case 350:a.te=n(c,1),a.act=111;break;case 344:a.te=n(c,1),a.act=112;break;case 270:a.te=n(c,1),a.act=113;break;case 303:a.te=n(c,1),a.act=116;break;case 67:a.te=n(c,1),a.act=117;break;case 273:a.te=n(c,1),a.act=119;break;case 264:a.te=n(c,1),a.act=123;break;case 275:a.te=n(c,1),a.act=124;break;case 268:a.te=n(c,1),a.act=126;break;case 274:a.te=n(c,1),a.act=127;break;case 73:a.te=n(c,1),a.act=140;break;case 363:a.te=n(c,1),a.act=144;break;case 47:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.newline_s=c;break;case 100:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 115:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 127:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 149:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1),a.cs=516,f=y;continue;break;case 164:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 176:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 203:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 251:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 261:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 282:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 377:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 334:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 298:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 313:a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 306:a.num_suffix_s=c,a.num_xfrm=a.emit_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 302:a.num_suffix_s=c,a.num_xfrm=a.emit_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 155:a.te=n(c,1),a.newline_s=c,a.act=40;break;case 21:a.te=n(c,1),c=a.$on_newline(c),a.act=39;break;case 32:a.te=n(c,1),c=a.$on_newline(c),a.act=47;break;case 79:a.te=n(c,1),c=a.$on_newline(c),a.act=140;break;case 51:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=60;break;case 70:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=106;break;case 78:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=140;break;case 23:a.te=n(c,1),j=c,a.act=34;break;case 243:a.te=n(c,1),j=c,a.act=86;break;case 242:a.te=n(c,1),j=c,a.act=87;break;case 335:a.te=n(c,1),a.num_base=10,a.num_digits_s=a.ts,a.act=113;break;case 330:a.num_base=16,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 324:a.num_base=10,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 327:a.num_base=8,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 321:a.num_base=2,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 333:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 297:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 17:a.te=n(c,1),c=a.$on_newline(c),j=c,a.act=34;break;case 48:a.te=n(c,1),a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.act=60;break;case 77:a.te=n(c,1),a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.act=140;break;case 340:a.te=n(c,1),a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;case 336:a.te=n(c,1),a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;case 300:a.te=n(c,1),a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;default:s}if(o(h(f,y))){switch(ne["$[]"](a.cs).valueOf()){case 84:a.ts=s;break;default:s}if(i(a.cs,0)){f=p;continue}if(c=n(c,1),b(c,O)){f=Q;continue}}if(o(h(f,G))&&i(c,H)&&o(m(q["$[]"](a.cs),0))){N=t(q["$[]"](a.cs),1),f=X;continue}if(o(h(f,p)))break}return o(!1)&&ie,a.p=c,o(a.token_queue["$any?"]())?a.token_queue.$shift():i(a.cs,A.$lex_error())?[!1,["$error".$freeze(),a.$range(t(c,1),c)]]:(H=a.source_pts.$size(),[!1,["$eof".$freeze(),a.$range(H,H)]])}),x.$protected(),a(x,"$version?",function(){var o=this,n=y(arguments),s=n;return s["$include?"](o.version)},-1),a(x,"$stack_pop",function(){var n=this;return n.top=t(n.top,1),n.stack["$[]"](n.top)}),a(x,"$tok",function(n,s){var o=this;return n==null&&(n=o.ts),s==null&&(s=o.te),o.source_buffer.$slice(n,t(s,n))},-1),a(x,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),f(f(C("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(x,"$emit",function(t,n,i,a){var r=this,c=s;return n==null&&(n=r.$tok()),i==null&&(i=r.ts),a==null&&(a=r.te),c=[t,[n,r.$range(i,a)]],r.token_queue.$push(c),o(r.tokens)&&r.tokens.$push(c),c},-2),a(x,"$emit_table",function(t,n,o){var i=this,a=s;return n==null&&(n=i.ts),o==null&&(o=i.te),a=i.$tok(n,o),i.$emit(t["$[]"](a),a,n,o)},-2),a(x,"$emit_do",function(t){var n=this;return t==null&&(t=!1),o(n.cond["$active?"]())?n.$emit("kDO_COND","do".$freeze()):o(n.cmdarg["$active?"]())||o(t)?n.$emit("kDO_BLOCK","do".$freeze()):n.$emit("kDO","do".$freeze())},-1),a(x,"$arg_or_cmdarg",function(t){var n=this;return o(t)?n.$class().$lex_en_expr_cmdarg():n.$class().$lex_en_expr_arg()}),a(x,"$emit_comment",function(t,n){var i=this;return t==null&&(t=i.ts),n==null&&(n=i.te),o(i.comments)&&i.comments.$push(f(f(C("Parser"),"Source"),"Comment").$new(i.$range(t,n))),o(i.tokens)&&i.tokens.$push(["tCOMMENT",[i.$tok(t,n),i.$range(t,n)]]),s},-1),a(x,"$emit_comment_from_range",function(n,s){var o=this;return o.$emit_comment(o.sharp_s,i(n,s)?t(n,2):n)}),a(x,"$diagnostic",function(t,n,o,i,a){var r=this;return o==null&&(o=s),i==null&&(i=r.$range()),a==null&&(a=[]),r.diagnostics.$process(f(C("Parser"),"Diagnostic").$new(t,n,o,i,a))},-3),a(x,"$e_lbrace",function(){var t=this,n=s;return t.cond.$push(!1),t.cmdarg.$push(!1),n=t.strings.$literal(),o(n)?n.$start_interp_brace():s}),a(x,"$numeric_literal_int",function(){var a=this,r=s,l=s,c=s,r=a.$tok(a.num_digits_s,a.num_suffix_s);return o(r["$end_with?"]("_".$freeze()))?a.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),a.$range(t(a.te,1),a.te)):o(r["$empty?"]())&&i(a.num_base,8)&&o(a["$version?"](18))?r="0".$freeze():o(r["$empty?"]())?a.$diagnostic("error","empty_numeric"):i(a.num_base,8)&&o(l=r.$index(/[89]/))&&(c=n(a.num_digits_s,l),a.$diagnostic("error","invalid_octal",s,a.$range(c,n(c,1)))),r}),a(x,"$on_newline",function(t){var n=this;return n.strings.$on_newline(t)}),a(x,"$check_ambiguous_slash",function(t){var a=this;return i(a.$tok(t,n(t,1)),"/".$freeze())?o(u(a.version,30))?a.$diagnostic("warning","ambiguous_literal",s,a.$range(t,n(t,1))):a.$diagnostic("warning","ambiguous_regexp",s,a.$range(t,n(t,1))):s}),a(x,"$emit_global_var",function(t,s){var i=this;return t==null&&(t=i.ts),s==null&&(s=i.te),o(i.$tok(t,s)["$=~"](/^\$([1-9][0-9]*)$/))?i.$emit("tNTH_REF",i.$tok(n(t,1),s).$to_i(),t,s):o(i.$tok()["$=~"](/^\$([&`'+])$/))?i.$emit("tBACK_REF",i.$tok(t,s),t,s):i.$emit("tGVAR",i.$tok(t,s),t,s)},-1),a(x,"$emit_class_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),o(s.$tok(t,n)["$=~"](/^@@[0-9]/))&&s.$diagnostic("error","cvar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tCVAR",s.$tok(t,n),t,n)},-1),a(x,"$emit_instance_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),o(s.$tok(t,n)["$=~"](/^@[0-9]/))&&s.$diagnostic("error","ivar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tIVAR",s.$tok(t,n),t,n)},-1),a(x,"$emit_rbrace_rparen_rbrack",function(){var t=this;return t.$emit_table(C("PUNCTUATION")),o(u(t.version,24))?(t.cond.$lexpop(),t.cmdarg.$lexpop()):(t.cond.$pop(),t.cmdarg.$pop())}),a(x,"$emit_colon_with_digits",function(t,s,i){var a=this;return o(r(a.version,27))?a.$diagnostic("error",i,new Map([["name",a.$tok(s,a.te)]]),a.$range(s,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),t=a.ts),t}),a(x,"$emit_singleton_class",function(){var s=this;return s.$emit("kCLASS","class".$freeze(),s.ts,n(s.ts,5)),s.$emit("tLSHFT","<<".$freeze(),t(s.te,2),s.te)}),p(k[0],"PUNCTUATION",new Map([["=","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"]])),p(k[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),p(k[0],"KEYWORDS",new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(k[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(k[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[` +`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),c(e.large_array_unpack("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(t){var n,o;return t==null&&(t=s),(n=[t,(o=[t,"k"+t.$upcase()],c(C("KEYWORDS"),"[]=",o),o[o.length-1])],c(C("KEYWORDS_BEGIN"),"[]=",n),n[n.length-1])})}(_("Parser"),null,j)},Opal.modules["parser/lexer-strings"]=function(e){var w=e.klass,f=e.const_set,C=e.hash_rehash,m=e.send,b=e.to_a,t=e.truthy,a=e.def,n=e.rb_plus,v=e.to_ary,l=e.rb_le,r=e.eqeq,h=e.rb_gt,i=e.rb_minus,_=e.neqeq,o=e.eqeqeq,c=e.not,g=e.slice,p=e.rb_lt,d=e.rb_ge,O=e.thrower,j=e.range,y=[],x=e.$r(y),s=e.nil,u=e.$$$;return e.add_stubs("attr_accessor,private,_lex_actions=,_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_character=,lex_en_unknown=,freeze,ord,union,chars,respond_to?,class,send,reset,lex_en_unknown,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,+,size,source_pts,<=,==,[],>,-,<<,!=,===,unicode_points,unescape_char,diagnostic,read_post_meta_or_ctrl_char,slash_c_char,slash_m_char,encode_escaped_char,encode_escape,%,to_i,tok,range,chr,check_invalid_escapes,literal,extend_interp_code,lex_en_expr_value,extend_string_eol_check_eof,heredoc?,extend_string_eol_heredoc_line,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,extend_string_eol_heredoc_intertwined,extend_string_eol_words,extend_string_slice_end,!,lex_en_expr_labelarg,extend_string_for_token_range,extend_interp_digit_var,extend_interp_var,emit_interp_var,extend_string_escaped,extend_space,emit,lex_en_expr_end,scan,any?,join,slice,source_buffer,emit_character_constant,raise,lex_en_character,advance,new,push,next_state_for_literal,backslash_delimited?,words?,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,last,pop,dedent_level,type,lex_en_inside_string,lex_en_regexp_modifiers,end_interp_brace_and_try_closing,version?,lexpop,cond,cmdarg,saved_herebody_s,continue_lexing,protected,include?,<,nil?,regexp?,munge_escape?,match,extend_string,squiggly_heredoc?,supports_line_continuation_via_slash?,gsub,>=,flush_string,extend_content,saved_herebody_s=,start_interp_brace,command_start=,start_with?,str_s,eof_codepoint?,active?,force_encoding,encoding,source,index,end_with?,each,length,&,|,getbyte,emit_invalid_escapes?"),function(y,x,E){var k=w(y,x,"LexerStrings"),A=[k].concat(E),M=e.$r(A),S=k.$$prototype;return S._lex_actions=S.cs=S.escape_s=S.lexer=S.herebody_s=S.ts=S.te=S.root_lexer_state=S.literal_stack=S.dedent_level=S.version=S.source_buffer=S.escape=s,function(e){return e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(k),A),k["$_lex_actions="](e.large_array_unpack("0,1,0,1,18,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,42,1,43,1,44,1,46,1,47,1,48,1,49,1,52,1,53,1,54,1,55,1,56,1,57,1,60,1,61,1,62,1,63,1,64,1,65,1,66,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,79,1,80,1,81,2,0,27,2,0,37,2,0,46,2,0,52,2,0,56,2,0,62,2,0,65,2,0,72,2,0,77,2,1,31,2,1,41,2,1,78,2,2,31,2,2,41,2,2,78,2,3,31,2,3,41,2,3,78,2,8,31,2,8,41,2,8,78,2,10,31,2,10,41,2,10,78,2,11,31,2,11,41,2,11,78,2,12,31,2,12,41,2,12,78,2,13,31,2,13,41,2,13,78,2,14,31,2,14,41,2,14,78,2,15,31,2,15,41,2,15,78,2,16,31,2,16,41,2,16,78,2,17,31,2,17,41,2,17,78,2,18,45,2,18,51,2,19,30,2,19,40,2,19,59,2,19,68,2,20,29,2,20,30,2,20,39,2,20,40,2,20,58,2,20,59,2,20,67,2,20,68,2,21,29,2,21,30,2,21,39,2,21,40,2,21,58,2,21,59,2,21,67,2,21,68,2,22,78,2,25,0,3,0,50,18,3,2,5,31,3,2,5,41,3,2,5,78,3,2,6,31,3,2,6,41,3,2,6,78,3,4,5,31,3,4,5,41,3,4,5,78,3,4,6,31,3,4,6,41,3,4,6,78,3,8,6,31,3,8,6,41,3,8,6,78,3,9,5,31,3,9,5,41,3,9,5,78,3,15,16,31,3,15,16,41,3,15,16,78,3,18,17,31,3,18,17,41,3,18,17,78,4,2,5,6,31,4,2,5,6,41,4,2,5,6,78,4,4,5,6,31,4,4,5,6,41,4,4,5,6,78,4,7,5,6,31,4,7,5,6,41,4,7,5,6,78,4,9,5,6,31,4,9,5,6,41,4,9,5,6,78")),function(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(k),A),k["$_lex_trans_keys="](e.large_array_unpack("0,0,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,122,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,26,0,92,9,32,36,123,0,127,0,0,48,57,0,127,0,127,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,0,0,0,48,102,0,0,0,92,36,123,0,127,0,0,48,57,0,127,0,127,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,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,26,0,35,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,32,9,32,65,122,65,122,63,63,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")),function(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(k),A),k["$_lex_key_spans="](e.large_array_unpack("0,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,123,46,121,121,93,121,121,46,121,121,33,1,93,121,103,27,93,24,88,128,0,10,128,128,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,0,0,55,0,93,88,128,0,10,128,128,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,0,0,55,0,93,24,27,93,27,36,88,128,0,10,128,128,128,128,27,36,24,88,128,0,10,128,128,128,128,33,24,58,58,1,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")),function(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(k),A),k["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,563,685,807,901,1023,1145,1192,1314,1436,1470,1472,1566,1688,1792,1921,2050,2179,2308,2355,2477,2599,2693,2815,2937,2984,3106,3228,3262,3264,3358,3480,3584,3713,3842,3971,4100,4229,4358,4487,4616,4740,4787,4909,5031,5125,5247,5369,5416,5538,5660,5694,5696,5790,5912,6016,6044,6138,6163,6252,6381,6382,6393,6522,6651,6780,6909,7031,7032,7033,7042,7051,7052,7053,7147,7148,7149,7150,7244,7246,7247,7248,7249,7343,7399,7455,7456,7512,7568,7569,7616,7710,7804,7805,7806,7900,7956,8012,8013,8060,8062,8156,8233,8289,8345,8401,8402,8529,8656,8657,8784,8785,8912,9039,9166,9293,9294,9421,9548,9675,9802,9929,10056,10057,10058,10114,10115,10209,10298,10427,10428,10439,10568,10697,10826,10955,11077,11078,11079,11088,11097,11098,11099,11193,11194,11195,11196,11290,11292,11293,11294,11295,11389,11445,11501,11502,11558,11614,11615,11662,11756,11850,11851,11852,11946,12002,12058,12059,12106,12108,12202,12279,12335,12391,12447,12448,12575,12702,12703,12830,12831,12958,13085,13212,13339,13340,13467,13594,13721,13848,13975,14102,14103,14104,14160,14161,14255,14280,14308,14402,14430,14467,14556,14685,14686,14697,14826,14955,15084,15213,15241,15278,15303,15392,15521,15522,15533,15662,15791,15920,16049,16083,16108,16167,16226,16228,16229,16358,16487,16609,16610,16611,16620,16629,16630,16631,16725,16726,16727,16728,16822,16824,16825,16826,16827,16921,16977,17033,17034,17090,17146,17147,17194,17288,17382,17383,17384,17478,17534,17590,17591,17638,17640,17734,17811,17867,17923,17979,17980,18107,18234,18235,18362,18363,18490,18617,18744,18871,18872,18999,19126,19253,19380,19507,19634,19761,19888,20015,20142,20269,20396,20523,20650,20777,20904,21031,21158,21285,21286,21287,21343")),function(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(k),A),k["$_lex_indicies="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,2,2,0,0,2,2,2,3,2,2,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,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,0,0,0,0,2,0,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,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,8,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,10,21,21,21,10,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,24,11,10,25,25,25,10,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,28,25,25,25,25,25,25,29,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,10,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,31,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,32,10,32,10,10,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,10,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,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,35,33,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,37,37,37,37,37,37,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,37,37,37,37,37,37,36,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,40,40,38,40,38,40,40,38,38,40,40,40,41,40,40,42,42,42,42,42,42,42,42,42,42,40,40,40,40,40,40,40,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,38,40,38,38,39,40,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,38,38,38,40,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,38,38,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,38,38,38,38,40,38,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,38,38,38,38,38,40,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,44,44,44,44,44,44,44,44,44,44,38,38,38,38,38,38,45,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,43,38,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,38,43,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,47,47,47,47,47,47,47,47,47,47,38,38,38,38,38,38,38,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,38,38,38,38,46,38,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,38,38,38,38,38,46,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,53,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,48,59,59,59,48,59,59,59,59,59,60,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,62,49,48,63,63,63,48,63,63,63,63,63,64,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,65,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,66,63,63,63,63,63,63,67,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,48,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,69,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,70,48,70,48,48,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,48,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,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,73,71,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,74,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,76,78,76,78,78,76,76,78,78,78,79,78,78,80,80,80,80,80,80,80,80,80,80,78,78,78,78,78,78,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,76,78,76,76,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,76,76,76,78,76,77,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,78,78,78,78,78,78,78,76,76,76,76,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,76,76,76,76,78,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,76,76,76,76,76,78,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,82,82,82,82,82,82,82,82,82,82,76,76,76,76,76,76,83,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,81,76,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,81,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,85,85,85,85,85,85,85,85,85,85,76,76,76,76,76,76,76,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,76,76,76,76,84,76,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,76,76,76,76,76,84,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,86,88,86,88,88,86,86,88,88,88,89,88,88,90,90,90,90,90,90,90,90,90,90,88,88,88,88,88,88,88,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,86,88,86,86,87,88,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,86,86,86,88,86,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,88,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,88,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,92,92,92,92,92,92,92,92,92,92,86,86,86,86,86,86,93,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,86,86,86,86,91,86,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,86,86,86,86,86,91,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,95,95,95,95,95,95,95,95,95,95,86,86,86,86,86,86,86,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,86,86,86,86,94,86,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,86,86,86,86,86,94,97,96,96,96,97,96,96,96,96,98,99,98,98,98,96,96,96,96,96,96,96,96,96,96,96,96,97,96,96,96,96,96,98,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,96,96,96,96,96,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,101,96,96,100,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,103,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,107,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,102,113,113,113,102,113,113,113,113,113,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,116,103,102,117,117,117,102,117,117,117,117,117,118,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,120,117,117,117,117,117,117,121,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,102,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,123,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,124,102,124,102,102,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,127,125,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,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,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,129,128,128,128,128,128,128,128,129,129,129,129,129,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,128,97,130,130,130,97,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,97,130,132,131,131,131,132,131,131,131,131,133,134,133,133,133,131,131,131,131,131,131,131,131,131,131,131,131,132,131,131,131,131,131,133,131,131,135,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,131,131,131,131,131,131,136,131,133,137,133,133,133,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,133,137,139,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,140,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,141,138,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,1,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,1,142,4,4,4,4,4,4,4,4,4,4,142,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,5,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,5,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5,5,5,5,5,5,5,5,5,5,144,144,144,144,144,144,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,6,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,144,6,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,8,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,8,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,8,8,8,8,8,8,8,8,8,8,146,146,146,146,146,146,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,9,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,146,9,149,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,150,150,150,150,150,150,150,150,148,148,148,148,148,148,148,148,148,148,148,151,148,148,148,148,148,148,148,148,148,152,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,153,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,154,148,148,155,148,156,157,159,159,159,159,159,159,159,159,158,160,160,160,160,160,160,160,160,158,158,161,161,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,161,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,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,162,33,163,164,165,165,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,165,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,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,166,33,32,165,167,168,169,169,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,170,18,171,171,171,171,171,171,171,171,171,171,169,169,169,169,169,169,169,171,171,171,171,171,171,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,171,171,171,171,171,171,169,173,173,173,173,173,173,173,173,173,173,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,174,174,174,174,174,174,174,174,174,174,165,165,165,165,165,165,165,174,174,174,174,174,174,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,174,174,174,174,174,174,165,176,176,176,176,176,176,176,176,176,176,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,165,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,161,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,161,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,178,180,181,181,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,182,178,183,183,183,183,183,183,183,183,183,183,181,181,181,181,181,181,181,183,183,183,183,183,183,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,183,183,183,183,183,183,181,185,185,185,185,185,185,185,185,185,185,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,181,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,186,181,181,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,188,188,188,188,188,188,188,188,188,188,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,189,187,190,190,190,190,190,190,190,190,190,190,187,187,187,187,187,187,187,190,190,190,190,190,190,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,190,190,190,190,190,190,187,191,191,191,191,191,191,191,191,191,191,187,187,187,187,187,187,187,191,191,191,191,191,191,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,191,191,191,191,191,191,187,192,192,192,192,192,192,192,192,192,192,187,187,187,187,187,187,187,192,192,192,192,192,192,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,192,192,192,192,192,192,187,193,196,195,195,195,196,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,198,198,198,198,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,199,195,196,195,195,195,196,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,200,200,200,200,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,201,195,194,196,200,200,200,196,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,196,200,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,194,200,202,196,203,203,203,196,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,200,200,200,200,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,205,205,205,205,203,203,203,203,203,203,203,205,205,205,205,205,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,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,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,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,208,208,208,208,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,209,209,209,209,203,203,203,203,203,203,203,209,209,209,209,209,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,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,210,210,210,210,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,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,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,211,211,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,213,214,216,216,216,216,216,216,216,216,216,216,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,218,217,217,217,218,217,217,217,217,217,219,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,218,217,217,217,217,217,217,217,217,220,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,223,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,224,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,222,222,222,222,222,222,222,222,225,222,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,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,226,226,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,226,226,226,226,39,226,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,226,226,226,226,226,39,226,42,42,42,42,42,42,42,42,42,42,226,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,43,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,43,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,43,43,43,43,43,43,43,43,43,43,228,228,228,228,228,228,228,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,228,228,228,228,44,228,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,228,228,228,228,228,44,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,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,229,229,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,229,229,229,229,46,229,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,229,229,229,229,229,46,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,46,46,46,46,46,46,46,46,46,46,230,230,230,230,230,230,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,47,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,230,47,233,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,234,234,234,234,234,234,234,234,232,232,232,232,232,232,232,232,232,232,232,235,232,232,232,232,232,232,232,232,232,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,238,232,232,239,232,240,241,243,243,243,243,243,243,243,243,242,244,244,244,244,244,244,244,244,242,242,245,245,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,245,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,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,246,71,247,248,249,249,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,249,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,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,250,71,70,249,251,252,253,253,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,254,56,255,255,255,255,255,255,255,255,255,255,253,253,253,253,253,253,253,255,255,255,255,255,255,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,255,255,255,255,255,255,253,257,257,257,257,257,257,257,257,257,257,256,256,256,256,256,256,256,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,257,257,256,256,258,258,258,258,258,258,258,258,258,258,249,249,249,249,249,249,249,258,258,258,258,258,258,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,258,258,258,258,258,258,249,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,259,259,260,260,260,260,260,260,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,260,260,260,259,259,249,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,245,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,245,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,245,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,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,263,262,264,265,265,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,265,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,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,266,262,267,267,267,267,267,267,267,267,267,267,265,265,265,265,265,265,265,267,267,267,267,267,267,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,267,267,267,267,267,267,265,269,269,269,269,269,269,269,269,269,269,268,268,268,268,268,268,268,269,269,269,269,269,269,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,269,269,269,269,269,269,268,268,265,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,270,265,265,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,272,272,272,272,272,272,272,272,272,272,271,271,271,271,271,271,271,272,272,272,272,272,272,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,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,273,271,274,274,274,274,274,274,274,274,274,274,271,271,271,271,271,271,271,274,274,274,274,274,274,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,274,274,274,274,274,274,271,275,275,275,275,275,275,275,275,275,275,271,271,271,271,271,271,271,275,275,275,275,275,275,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,275,275,275,275,275,275,271,276,276,276,276,276,276,276,276,276,276,271,271,271,271,271,271,271,276,276,276,276,276,276,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,276,276,276,276,276,276,271,277,280,279,279,279,280,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,282,282,282,282,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,283,279,280,279,279,279,280,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,284,284,284,284,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,285,279,278,280,284,284,284,280,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,280,284,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,278,284,286,280,287,287,287,280,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,284,284,284,284,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,289,289,289,289,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,291,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,292,292,292,292,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,293,293,293,293,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,294,294,294,294,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,295,295,295,295,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,297,298,300,300,300,300,300,300,300,300,300,300,299,299,299,299,299,299,299,300,300,300,300,300,300,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,300,300,300,300,300,300,299,299,302,301,301,301,302,301,301,301,301,303,304,303,303,303,301,301,301,301,301,301,301,301,301,301,301,301,302,301,301,301,301,301,303,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,305,301,303,306,303,303,303,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,303,306,307,308,308,308,307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,307,308,310,309,309,309,310,309,309,309,309,309,311,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,310,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,312,309,313,314,314,314,313,314,314,314,314,314,315,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,313,314,317,316,316,316,317,316,316,316,316,316,318,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,317,316,316,316,316,316,316,316,316,319,316,321,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,323,320,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,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,77,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,77,324,80,80,80,80,80,80,80,80,80,80,324,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,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,81,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,81,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,81,81,81,81,81,81,81,81,81,81,326,326,326,326,326,326,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,82,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,326,82,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,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,327,327,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,327,327,327,327,84,327,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,327,327,327,327,327,84,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,84,84,84,84,84,84,84,84,84,84,328,328,328,328,328,328,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,85,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,328,85,330,329,329,329,330,329,329,329,329,329,331,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,330,329,333,332,332,332,333,332,332,332,332,334,335,334,334,334,332,332,332,332,332,332,332,332,332,332,332,332,333,332,332,332,332,332,334,332,332,336,332,334,337,334,334,334,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,334,337,339,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,340,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,341,338,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,342,342,342,342,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,342,342,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,342,342,342,342,87,342,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,342,342,342,342,342,87,342,90,90,90,90,90,90,90,90,90,90,342,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,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,343,343,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,343,343,343,343,91,343,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,343,343,343,343,343,91,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,91,91,91,91,91,91,91,91,91,91,344,344,344,344,344,344,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,92,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,344,92,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,345,345,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,345,345,345,345,94,345,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,345,345,345,345,345,94,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,94,94,94,94,94,94,94,94,94,94,346,346,346,346,346,346,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,95,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,346,95,348,347,347,347,348,347,347,347,347,349,350,349,349,349,347,347,347,347,347,347,347,347,347,347,347,347,348,347,347,347,347,347,349,347,349,351,349,349,349,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,349,351,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,352,352,352,352,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,354,354,354,354,354,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,355,97,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,357,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,356,357,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,358,358,359,359,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,358,358,358,359,358,359,359,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,358,358,358,358,359,362,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,363,363,363,363,363,363,363,363,361,361,361,361,361,361,361,361,361,361,361,364,361,361,361,361,361,361,361,361,361,365,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,366,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,367,361,361,368,361,369,370,372,372,372,372,372,372,372,372,371,373,373,373,373,373,373,373,373,371,371,374,374,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,375,125,376,377,378,378,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,379,125,124,378,380,381,382,382,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,383,110,384,384,384,384,384,384,384,384,384,384,382,382,382,382,382,382,382,384,384,384,384,384,384,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,384,384,384,384,384,384,382,386,386,386,386,386,386,386,386,386,386,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,387,387,387,387,387,387,387,387,387,387,378,378,378,378,378,378,378,387,387,387,387,387,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,387,387,387,387,387,387,378,389,389,389,389,389,389,389,389,389,389,388,388,388,388,388,388,388,389,389,389,389,389,389,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,389,389,389,389,389,389,388,388,378,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,374,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,374,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,392,391,393,394,394,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,395,391,396,396,396,396,396,396,396,396,396,396,394,394,394,394,394,394,394,396,396,396,396,396,396,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,396,396,396,396,396,396,394,398,398,398,398,398,398,398,398,398,398,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,394,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,399,394,394,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,401,401,401,401,401,401,401,401,401,401,400,400,400,400,400,400,400,401,401,401,401,401,401,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,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,402,400,403,403,403,403,403,403,403,403,403,403,400,400,400,400,400,400,400,403,403,403,403,403,403,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,403,403,403,403,403,403,400,404,404,404,404,404,404,404,404,404,404,400,400,400,400,400,400,400,404,404,404,404,404,404,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,404,404,404,404,404,404,400,405,405,405,405,405,405,405,405,405,405,400,400,400,400,400,400,400,405,405,405,405,405,405,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,405,405,405,405,405,405,400,406,409,408,408,408,409,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,411,411,411,411,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,412,408,409,408,408,408,409,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,413,413,413,413,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,414,408,407,409,413,413,413,409,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,409,413,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,407,413,415,409,416,416,416,409,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,413,413,413,413,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,419,419,419,419,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,421,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,422,422,422,422,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,423,423,423,423,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,424,424,424,424,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,425,425,425,425,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,428,428,428,428,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,429,429,429,429,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,430,430,430,430,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,431,431,431,431,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,432,432,432,432,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,433,433,433,433,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,434,434,434,434,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,435,435,435,435,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,436,436,436,436,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,437,437,437,437,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,438,438,438,438,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,439,440,442,442,442,442,442,442,442,442,442,442,441,441,441,441,441,441,441,442,442,442,442,442,442,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,442,442,442,442,442,442,441,441,0")),function(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(k),A),k["$_lex_trans_targs="](e.large_array_unpack("61,64,65,2,66,67,68,4,69,70,61,77,78,81,82,94,91,83,84,85,9,86,87,88,96,98,99,103,104,105,100,15,8,79,80,17,128,129,131,133,134,20,135,136,137,22,138,139,131,146,147,150,151,163,160,152,153,154,27,155,156,157,165,167,168,172,173,174,169,33,26,148,149,35,197,198,205,207,208,38,209,210,211,40,212,213,215,218,219,42,220,221,222,44,223,224,230,0,229,229,231,233,229,239,240,243,244,256,253,245,246,247,50,248,249,250,258,260,261,265,266,267,262,56,49,241,242,58,303,304,60,61,61,62,61,63,71,61,61,1,3,61,61,61,61,61,61,61,72,73,74,5,11,16,106,18,61,61,61,75,76,61,6,61,61,61,7,61,61,61,10,89,61,90,92,61,93,95,97,12,61,61,13,101,61,102,14,61,107,111,108,109,110,61,61,112,113,116,118,127,114,115,61,117,119,121,120,61,122,123,124,125,126,61,61,61,130,131,131,131,132,140,131,19,21,131,131,131,131,131,131,131,141,142,143,23,29,34,175,36,131,131,131,144,145,131,24,131,131,131,25,131,131,131,28,158,131,159,161,131,162,164,166,30,131,131,31,170,131,171,32,131,176,180,177,178,179,131,131,181,182,185,187,196,183,184,131,186,188,190,189,131,191,192,193,194,195,131,131,131,199,200,200,201,200,202,200,200,200,203,203,203,204,203,203,203,205,205,205,206,205,37,39,205,205,205,205,205,205,214,214,214,215,215,216,215,217,215,215,41,43,215,215,215,215,215,215,225,225,226,225,225,227,228,227,45,229,232,229,232,229,234,235,236,46,52,57,268,59,229,229,229,237,238,229,47,229,229,229,48,229,229,229,51,251,229,252,254,229,255,257,259,53,229,229,54,263,229,264,55,229,269,273,270,271,272,229,229,274,275,278,289,302,276,277,229,279,280,281,283,282,229,284,285,286,287,288,290,297,291,292,293,294,295,296,298,299,300,301,229,229,229,305")),function(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(k),A),k["$_lex_trans_actions="](e.large_array_unpack("25,0,0,0,0,0,0,0,0,0,23,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,35,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,89,121,0,11,93,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,95,17,15,0,97,11,11,19,21,0,0,13,238,277,274,253,250,392,3,3,3,3,3,3,3,3,133,223,160,0,0,142,0,332,151,308,0,419,356,404,0,0,449,0,0,368,0,11,0,0,344,320,0,0,434,0,1,196,0,0,0,0,0,187,214,0,0,0,0,0,0,0,380,0,0,0,0,124,0,0,0,0,0,205,178,169,0,31,29,100,11,11,33,0,0,27,241,283,280,259,256,396,3,3,3,3,3,3,3,3,136,226,163,0,0,145,0,336,154,312,0,424,360,409,0,0,454,0,0,372,0,11,0,0,348,324,0,0,439,0,1,199,0,0,0,0,0,190,217,0,0,0,0,0,0,0,384,0,0,0,0,127,0,0,0,0,0,208,181,172,0,41,39,0,103,0,43,45,232,49,47,106,0,51,235,304,57,55,109,11,59,0,0,53,244,289,286,265,262,65,63,112,71,69,0,115,11,73,75,0,0,67,247,295,292,271,268,81,79,0,118,83,85,0,87,0,298,5,91,0,400,3,3,3,3,3,3,3,3,139,229,166,0,0,148,0,340,157,316,0,429,364,414,0,0,459,0,0,376,0,11,0,0,352,328,0,0,444,0,1,202,0,0,0,0,0,193,220,0,0,0,0,0,0,0,388,0,0,0,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,184,175,0")),function(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(k),A),k["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,7,0,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(k),A),k["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,9,0,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,9,0,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(k),A),k["$_lex_eof_trans="](e.large_array_unpack("0,1,1,1,1,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,49,49,49,49,49,49,49,49,49,49,49,49,49,49,77,77,77,77,87,87,87,87,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,138,139,143,143,143,144,145,146,147,148,157,158,159,159,159,162,162,164,165,166,166,166,168,169,170,170,170,173,173,166,176,176,166,162,162,181,182,182,182,185,185,182,182,182,188,188,188,188,194,195,195,195,195,203,195,195,195,195,208,195,195,195,195,195,195,214,215,216,216,0,223,227,227,227,228,229,230,231,232,241,242,243,243,243,246,246,248,249,250,250,250,252,253,254,254,254,257,257,250,260,260,250,246,246,265,266,266,266,269,269,266,266,266,272,272,272,272,278,279,279,279,279,287,279,279,279,279,292,279,279,279,279,279,279,298,299,300,300,0,307,308,0,314,0,321,325,325,325,326,327,328,329,0,0,338,339,343,343,343,344,345,346,347,0,352,0,355,0,357,357,359,361,370,371,372,372,372,375,375,377,378,379,379,379,381,382,383,383,383,386,386,379,389,389,379,375,375,394,395,395,395,398,398,395,395,395,401,401,401,401,407,408,408,408,408,416,408,408,408,408,422,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,440,441,442,442")),function(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(k),A),k["$lex_start="](60),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(k),A),k["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(k),A),k["$lex_en_interp_words="](61),function(e){return e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(k),A),k["$lex_en_interp_string="](131),function(e){return e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(k),A),k["$lex_en_plain_words="](200),function(e){return e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(k),A),k["$lex_en_plain_string="](203),function(e){return e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(k),A),k["$lex_en_interp_backslash_delimited="](205),function(e){return e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(k),A),k["$lex_en_plain_backslash_delimited="](214),function(e){return e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(k),A),k["$lex_en_interp_backslash_delimited_words="](215),function(e){return e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(k),A),k["$lex_en_plain_backslash_delimited_words="](225),function(e){return e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(k),A),k["$lex_en_regexp_modifiers="](227),function(e){return e.$attr_accessor("lex_en_character")}(e.get_singleton_class(k),A),k["$lex_en_character="](229),function(e){return e.$attr_accessor("lex_en_unknown")}(e.get_singleton_class(k),A),k["$lex_en_unknown="](60),f(A[0],"ESCAPES",C(new Map([["a".$ord(),""],["b".$ord(),""],["e".$ord(),""],["f".$ord()," "],["n".$ord(),` +`],["r".$ord(),` `],["s".$ord()," "],["t".$ord()," "],["v".$ord()," "],["\\".$ord(),"\\"]])).$freeze()),f(A[0],"REGEXP_META_CHARACTERS",m(M("Regexp"),"union",b("\\$()*+.<>?[]^{|}".$chars())).$freeze()),k.$attr_accessor("herebody_s"),k.$attr_accessor("source_buffer","source_pts"),a(k,"$initialize",function(n,s){var o=this;return o.lexer=n,o.version=s,o._lex_actions=t(o.$class()["$respond_to?"]("_lex_actions",!0))?o.$class().$send("_lex_actions"):[],o.$reset()}),a(k,"$reset",function(){var t=this;return t.cs=t.$class().$lex_en_unknown(),t.literal_stack=[],t.escape_s=s,t.escape=s,t.herebody_s=s,t.dedent_level=s}),f(A[0],"LEX_STATES",new Map([["interp_string",k.$lex_en_interp_string()],["interp_words",k.$lex_en_interp_words()],["plain_string",k.$lex_en_plain_string()],["plain_words",k.$lex_en_plain_string()]])),a(k,"$advance",function(a){var d=this,S=s,P=s,Q=s,X=s,$=s,Y=s,U=s,K=s,q=s,W=s,F=s,E=s,G=s,ee=s,R=s,z=s,D=s,L=s,C=s,k=s,p=s,I=s,B=s,Z=s,V=s,y=s,j=s,N=s,f=s,T=s,m=s,x=s,b=s,g=s,w=s,O=s,H=s,te=s,S=d.$class(),P=S.$send("_lex_trans_keys"),Q=S.$send("_lex_key_spans"),X=S.$send("_lex_index_offsets"),$=S.$send("_lex_indicies"),Y=S.$send("_lex_trans_targs"),U=S.$send("_lex_trans_actions"),K=S.$send("_lex_to_state_actions"),q=S.$send("_lex_from_state_actions"),W=S.$send("_lex_eof_trans"),F=d._lex_actions,E=n(d.$source_pts().$size(),2),G=E,ee=!1,J=s,A=v(J);for(R=A[0]==null?s:A[0],z=A[1]==null?s:A[1],D=A[2]==null?s:A[2],L=A[3]==null?s:A[3],C=A[4]==null?s:A[4],k=A[5]==null?s:A[5],J,p=0,I=10,B=15,Z=20,V=30,y=40;t(!0);){if(j=!1,t(l(p,0))){if(r(a,E)){p=V;continue}if(r(d.cs,0)){p=y;continue}}if(t(l(p,I))){for(C=q["$[]"](d.cs),k=F["$[]"](C),C=n(C,1);t(h(k,0));)switch(k=i(k,1),C=n(C,1),F["$[]"](i(C,1)).valueOf()){case 24:d.ts=a;break;default:s}if(t(j))continue;D=d.cs["$<<"](1),L=X["$[]"](d.cs),R=Q["$[]"](d.cs),N=t(f=d.$source_pts()["$[]"](a))?f:0,z=t(h(R,0))&&t(l(P["$[]"](D),N))&&t(l(N,P["$[]"](n(D,1))))?$["$[]"](i(n(L,N),P["$[]"](D))):$["$[]"](n(L,R))}if(t(l(p,B))){if(d.cs=Y["$[]"](z),_(U["$[]"](z),0))for(C=U["$[]"](z),k=F["$[]"](C),C=n(C,1);t(h(k,0));)if(k=i(k,1),C=n(C,1),o(0,f=F["$[]"](i(C,1))))d.newline_s=a;else if(o(1,f))d.$unicode_points(a);else if(o(2,f))d.$unescape_char(a);else if(o(3,f))d.$diagnostic("fatal","invalid_escape");else if(o(4,f))d.$read_post_meta_or_ctrl_char(a);else if(o(5,f))d.$slash_c_char();else if(o(6,f))d.$slash_m_char();else if(o(7,f))d.$encode_escaped_char(a);else if(o(8,f))d.escape="";else if(o(9,f))d.$encode_escaped_char(a);else if(o(10,f))d.escape=d.$encode_escape(d.$tok(d.escape_s,a).$to_i(8)["$%"](256));else if(o(11,f))d.escape=d.$encode_escape(d.$tok(n(d.escape_s,1),a).$to_i(16));else if(o(12,f))d.$diagnostic("fatal","invalid_hex_escape",s,d.$range(i(d.escape_s,1),n(a,2)));else if(o(13,f))d.escape=d.$tok(n(d.escape_s,1),a).$to_i(16).$chr(u(M("Encoding"),"UTF_8"));else if(o(14,f))d.$check_invalid_escapes(a);else if(o(15,f))d.$check_invalid_escapes(a);else if(o(16,f))d.$diagnostic("fatal","unterminated_unicode",s,d.$range(i(a,1),a));else if(o(17,f))d.$diagnostic("fatal","escape_eof",s,d.$range(i(a,1),a));else if(o(18,f))d.escape_s=a,d.escape=s;else if(o(19,f))T="gvar";else if(o(20,f))T="cvar";else if(o(21,f))T="ivar";else if(o(22,f))d.escape=s;else if(o(25,f))d.te=n(a,1);else if(o(26,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(27,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(28,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(29,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(30,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(31,f))d.te=a,a=i(a,1),d.$extend_string_escaped();else if(o(32,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(33,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(34,f))a=i(d.te,1),d.$extend_string_escaped();else if(o(35,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(36,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(37,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(38,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(39,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(40,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(41,f))d.te=a,a=i(a,1),d.$extend_string_escaped();else if(o(42,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(43,f))a=i(d.te,1),d.$extend_string_escaped();else if(o(44,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(45,f))d.te=n(a,1),d.$extend_string_escaped();else if(o(46,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(47,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(48,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(49,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(50,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(51,f))d.te=n(a,1),d.$extend_string_escaped();else if(o(52,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(53,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(54,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(55,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(56,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(57,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(58,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(59,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(60,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(61,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(62,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(63,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(64,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(65,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(66,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(67,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(68,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(69,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(70,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(71,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(72,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(73,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(74,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(75,f)){d.te=n(a,1),d.$emit("tREGEXP_OPT",d.$tok(d.ts,i(d.te,1)),d.ts,i(d.te,1)),a=i(a,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(76,f)){d.te=a,a=i(a,1),H=d.$tok().$scan(/[^imxouesn]/),t(H["$any?"]())&&d.$diagnostic("error","regexp_options",new Map([["options",H.$join()]])),d.$emit("tREGEXP_OPT"),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(77,f)){d.te=n(a,1),te=M("ESCAPE_WHITESPACE")["$[]"](d.$source_buffer().$slice(n(d.ts,1),1)),d.$diagnostic("warning","invalid_escape_use",new Map([["escape",te]]),d.$range()),a=i(d.ts,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(78,f)){d.te=a,a=i(a,1),d.$emit_character_constant(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(79,f)){d.te=a,a=i(a,1),a=i(d.ts,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(80,f)){a=i(d.te,1),d.$emit_character_constant(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else o(81,f)?(d.te=n(a,1),d.$raise("bug")):s;if(t(j))continue}if(t(l(p,Z))){for(C=K["$[]"](d.cs),k=F["$[]"](C),C=n(C,1);t(h(k,0));)switch(k=i(k,1),C=n(C,1),F["$[]"](i(C,1)).valueOf()){case 23:d.ts=s;break;default:s}if(t(j))continue;if(r(d.cs,0)){p=y;continue}if(a=n(a,1),_(a,E)){p=I;continue}}if(t(l(p,V))&&r(a,G)&&t(h(W["$[]"](d.cs),0))){z=i(W["$[]"](d.cs),1),p=B;continue}if(t(l(p,y)))break}return t(!1)&&ee,[a,d.root_lexer_state]}),a(k,"$read_character_constant",function(t){var n=this;return n.cs=n.$class().$lex_en_character(),n.$advance(t)}),a(k,"$push_literal",function(){var n=this,o=s,i=g(arguments),a=i,o=m(u(u(M("Parser"),"Lexer"),"Literal"),"new",[n].concat(b(a)));return n.literal_stack.$push(o),n.cs=n.$next_state_for_literal(o)},-1),a(k,"$next_state_for_literal",function(n){var s=this;return t(n["$words?"]())&&t(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_backslash_delimited_words():s.$class().$lex_en_plain_backslash_delimited_words():t(n["$words?"]())&&c(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_words():s.$class().$lex_en_plain_words():c(n["$words?"]())&&t(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_backslash_delimited():s.$class().$lex_en_plain_backslash_delimited():t(n["$interpolate?"]())?s.$class().$lex_en_interp_string():s.$class().$lex_en_plain_string()}),a(k,"$continue_lexing",function(t){var n=this;return n.cs=n.$next_state_for_literal(t)}),a(k,"$literal",function(){var t=this;return t.literal_stack.$last()}),a(k,"$pop_literal",function(){var t=this,n=s,n=t.literal_stack.$pop();return t.dedent_level=n.$dedent_level(),r(n.$type(),"tREGEXP_BEG")?(t.root_lexer_state=t.lexer.$class().$lex_en_inside_string(),t.$class().$lex_en_regexp_modifiers()):(t.root_lexer_state=t.lexer.$class().$lex_en_expr_end(),s)}),a(k,"$close_interp_on_current_literal",function(n){var o=this,a=s,a=o.$literal();return t(a)&&t(a.$end_interp_brace_and_try_closing())?(t(o["$version?"](18,19))?(o.$emit("tRCURLY","}".$freeze(),i(n,1),n),o.lexer.$cond().$lexpop(),o.lexer.$cmdarg().$lexpop()):o.$emit("tSTRING_DEND","}".$freeze(),i(n,1),n),t(a.$saved_herebody_s())&&(o.herebody_s=a.$saved_herebody_s()),o.$continue_lexing(a),!0):s}),a(k,"$dedent_level",function(){var n=this,o=s,t=[n.dedent_level,s];return o=t[0],n.dedent_level=t[1],t,o}),a(k,"$on_newline",function(n){var o=this;return t(o.herebody_s)&&(n=o.herebody_s,o.herebody_s=s),n}),k.$protected(),a(k,"$eof_codepoint?",function(t){return[4,26,0]["$include?"](t)}),a(k,"$version?",function(){var o=this,n=g(arguments),s=n;return s["$include?"](o.version)},-1),a(k,"$tok",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),s.source_buffer.$slice(t,i(n,t))},-1),a(k,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),u(u(M("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(k,"$emit",function(t,n,s,o){var i=this;return n==null&&(n=i.$tok()),s==null&&(s=i.ts),o==null&&(o=i.te),i.lexer.$send("emit",t,n,s,o)},-2),a(k,"$diagnostic",function(t,n,o,i,a){var r=this;return o==null&&(o=s),i==null&&(i=r.$range()),a==null&&(a=[]),r.lexer.$send("diagnostic",t,n,o,i,a)},-3),a(k,"$cond",function(){var t=this;return t.lexer.$cond()}),a(k,"$emit_invalid_escapes?",function(){var n=this;return!!t(p(n.version,32))||!!t(n.$literal()["$nil?"]())||n.$literal()["$regexp?"]()["$!"]()}),a(k,"$extend_string_escaped",function(){var n=this,o=s,i=s,a=s,o=n.$literal(),i=n.$source_buffer().$slice(n.escape_s,1).$chr();return t(o["$munge_escape?"](i))?t(o["$regexp?"]())&&t(M("REGEXP_META_CHARACTERS").$match(i))?o.$extend_string(n.$tok(),n.ts,n.te):o.$extend_string(i,n.ts,n.te):t(o["$squiggly_heredoc?"]())&&r(i,` +`.$freeze())?o.$extend_string(n.$tok(),n.ts,n.te):t(o["$supports_line_continuation_via_slash?"]())&&r(i,` +`.$freeze())?o.$extend_string(n.$tok().$gsub(`\\ +`.$freeze(),"".$freeze()),n.ts,n.te):t(o["$regexp?"]())&&t(d(n.version,31))&&t(["c","C","m","M"]["$include?"](i))?o.$extend_string(n.escape,n.ts,n.te):t(o["$regexp?"]())?o.$extend_string(n.$tok().$gsub(`\\ +`.$freeze(),"".$freeze()),n.ts,n.te):o.$extend_string(t(a=n.escape)?a:n.$tok(),n.ts,n.te)}),a(k,"$extend_interp_code",function(n){var o,i=this;return n.$flush_string(),n.$extend_content(),i.$emit("tSTRING_DBEG","#{".$freeze()),t(n["$heredoc?"]())&&(n["$saved_herebody_s="](i.herebody_s),i.herebody_s=s),n.$start_interp_brace(),(o=[!0],m(i.lexer,"command_start=",o),o[o.length-1])}),a(k,"$extend_interp_digit_var",function(){var o=this,i=s;return t(d(o.version,27))?o.$literal().$extend_string(o.$tok(),o.ts,o.te):(i=t(o.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",o.$diagnostic("error",i,new Map([["name",o.$tok(n(o.ts,1),o.te)]]),o.$range(n(o.ts,1),o.te)))}),a(k,"$extend_string_eol_check_eof",function(t,o){var i=this;return r(i.te,o)?i.$diagnostic("fatal","string_eof",s,i.$range(t.$str_s(),n(t.$str_s(),1))):s}),a(k,"$extend_string_eol_heredoc_line",function(){var n=this,o=s,o=n.$tok(n.herebody_s,n.ts).$gsub(/\r+$/,"".$freeze());return t(n["$version?"](18,19,20))&&(o=o.$gsub(/\r.*$/,"".$freeze())),o}),a(k,"$extend_string_eol_heredoc_intertwined",function(n){var o=this;return t(o.herebody_s)&&(n=i(o.herebody_s,1),o.herebody_s=s),n}),a(k,"$extend_string_eol_words",function(n,s){var o=this;return t(n["$words?"]())&&c(o["$eof_codepoint?"](o.$source_pts()["$[]"](s)))?n.$extend_space(o.ts,o.te):(n.$extend_string(o.$tok(),o.ts,o.te),n.$flush_string())}),a(k,"$extend_string_slice_end",function(n){var s=this;return t(d(s.version,22))&&c(s.$cond()["$active?"]())&&(n=s.$source_buffer().$slice(s.te,2)),n}),a(k,"$extend_string_for_token_range",function(t,n){var s=this;return t.$extend_string(n,s.ts,s.te)}),a(k,"$encode_escape",function(t){var n=this;return t.$chr().$force_encoding(n.$source_buffer().$source().$encoding())}),a(k,"$unescape_char",function(n){var o=this,a=s,a=o.$source_pts()["$[]"](i(n,1));return t(d(o.version,30))&&(r(a,117)||r(a,85))&&o.$diagnostic("fatal","invalid_escape"),t((o.escape=M("ESCAPES")["$[]"](a))["$nil?"]())?o.escape=o.$encode_escape(o.$source_buffer().$slice(i(n,1),1)):s}),a(k,"$unicode_points",function(o){var a=this,l=s,c=s,h=s;return a.escape="",l=a.$tok(n(a.escape_s,2),i(o,1)),c=n(a.escape_s,2),t(p(a.version,24))&&((t(l["$start_with?"](" "))||t(l["$start_with?"](" ")))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(n(a.escape_s,2),n(a.escape_s,3))),t(h=l.$index(/[ \t]{2}/))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(n(n(c,h),1),n(n(c,h),2))),(t(l["$end_with?"](" "))||t(l["$end_with?"](" ")))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(i(o,1),o))),function(){try{var e=O("break");return m(l.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],function o(i){var l,f,a=o.$$s==null?this:o.$$s,h=s,p=s,m=s;return a.escape==null&&(a.escape=s),i==null&&(i=s),f=i,l=v(f),h=l[0]==null?s:l[0],p=l[1]==null?s:l[1],f,t(p)?c=n(c,p.$length()):(m=h.$to_i(16),t(d(m,1114112))&&(a.$diagnostic("error","unicode_point_too_large",s,a.$range(c,n(c,h.$length()))),e.$throw(s,o.$$is_lambda)),r(m["$&"](4294965248),55296)&&(a.$diagnostic("error","invalid_unicode_escape",s,a.$range(c,n(c,h.$length()))),e.$throw(s,o.$$is_lambda)),a.escape=n(a.escape,m.$chr(u(M("Encoding"),"UTF_8"))),c=n(c,h.$length()))},{$$s:a,$$has_top_level_mlhs_arg:!0})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),a(k,"$read_post_meta_or_ctrl_char",function(n){var o=this;return o.escape=o.$source_buffer().$slice(i(n,1),1).$chr(),t(d(o.version,27))&&(t(j(0,8,!1)["$include?"](o.escape.$ord()))||t(j(14,31,!1)["$include?"](o.escape.$ord())))?o.$diagnostic("fatal","invalid_escape"):s}),a(k,"$extend_interp_var",function(t){var o=this;return t.$flush_string(),t.$extend_content(),o.$emit("tSTRING_DVAR",s,o.ts,n(o.ts,1)),o.ts}),a(k,"$emit_interp_var",function(t){var o=this;switch(t.valueOf()){case"cvar":return o.lexer.$send("emit_class_var",n(o.ts,1),o.te);case"ivar":return o.lexer.$send("emit_instance_var",n(o.ts,1),o.te);case"gvar":return o.lexer.$send("emit_global_var",n(o.ts,1),o.te);default:return s}}),a(k,"$encode_escaped_char",function(t){var n=this;return n.escape=n.$encode_escape(n.$tok(i(t,2),t).$to_i(16))}),a(k,"$slash_c_char",function(){var t=this;return t.escape=t.$encode_escape(t.escape["$[]"](0).$ord()["$&"](159))}),a(k,"$slash_m_char",function(){var t=this;return t.escape=t.$encode_escape(t.escape["$[]"](0).$ord()["$|"](128))}),a(k,"$emit_character_constant",function(){var o=this,i=s,a=s,i=t(a=o.escape)?a:o.$tok(n(o.ts,1));return t(o["$version?"](18))?o.$emit("tINTEGER",i.$getbyte(0)):o.$emit("tCHARACTER",i)}),a(k,"$check_ambiguous_slash",function(o){var i=this;return r(i.$tok(o,n(o,1)),"/".$freeze())?t(p(i.version,30))?i.$diagnostic("warning","ambiguous_literal",s,i.$range(o,n(o,1))):i.$diagnostic("warning","ambiguous_regexp",s,i.$range(o,n(o,1))):s}),a(k,"$check_invalid_escapes",function(n){var o=this;return t(o["$emit_invalid_escapes?"]())?o.$diagnostic("fatal","invalid_unicode_escape",s,o.$range(i(o.escape_s,1),n)):s}),f(A[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[` +`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]]))}(x("Parser"),null,y)},Opal.modules["parser/lexer/literal"]=function(e){var p=e.module,_=e.klass,a=e.const_set,o=e.enc,n=e.truthy,i=e.rb_plus,y=e.to_ary,s=e.def,h=e.return_ivar,r=e.eqeq,c=e.rb_minus,m=e.neqeq,f=e.not,l=e.send,u=e.eqeqeq,g=e.rb_gt,v=e.thrower,b=e.assign_ivar_val,j=e.regexp,d=[],t=e.nil;return e.add_stubs("ord,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,end_with?,all?,bytes,sub,escape,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length"),function(d,w){var x=p(d,"Parser"),O=[x].concat(w),C=e.$r(O);return function(d,p,w){var O=_(d,p,"Literal"),E=[O].concat(w),C=e.$r(E),x=O.$$prototype;return x.lexer=x.start_tok=x.str_type=x.monolithic=x.heredoc_e=x.dedent_body=x.end_delim=x.start_delim=x.nesting=x.label_allowed=x.buffer=x.str_s=x.interp_braces=x.buffer_s=x.buffer_e=x.space_emitted=x.interpolate=x.indent=t,a(E[0],"DELIMITERS",new Map([["(",o(")","ASCII-8BIT")],["[",o("]","ASCII-8BIT")],["{",o("}","ASCII-8BIT")],["<",o(">","ASCII-8BIT")]])),a(E[0],"SPACE",o(" ","ASCII-8BIT").$ord()),a(E[0],"TAB",o(" ","ASCII-8BIT").$ord()),a(E[0],"TYPES",new Map([["'",["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]]])),O.$attr_reader("heredoc_e","str_s","dedent_level"),O.$attr_accessor("saved_herebody_s"),s(O,"$initialize",function(s,a,r,c,l,d,u,h){var f,p,m=this,g=t,v=t;return l==null&&(l=t),d==null&&(d=!1),u==null&&(u=!1),h==null&&(h=!1),m.lexer=s,m.nesting=1,a=m.$coerce_encoding(a),r=m.$coerce_encoding(r),n(C("TYPES")["$include?"](a))||s.$send("diagnostic","error","unexpected_percent_str",new Map([["type",a]]),m.lexer.$send("range",c,i(c,2))),m.str_type=a,m.str_s=c,p=C("TYPES")["$[]"](a),f=y(p),m.start_tok=f[0]==null?t:f[0],m.interpolate=f[1]==null?t:f[1],p,m.start_delim=n(C("DELIMITERS")["$include?"](r))?r:t,m.end_delim=C("DELIMITERS").$fetch(r,r),m.heredoc_e=l,m.indent=d,m.label_allowed=h,m.dedent_body=u,m.dedent_level=t,m.interp_braces=0,m.space_emitted=!0,m.monolithic=n(g=n(v=m.start_tok["$=="]("tSTRING_BEG"))?[o("'","ASCII-8BIT"),o('"',"ASCII-8BIT")]["$include?"](a):v)?m["$heredoc?"]()["$!"]():g,n(m.str_type["$start_with?"](o("%","ASCII-8BIT").$freeze()))&&(m.str_type=i(m.str_type,r)),m.$clear_buffer(),n(m.monolithic)?t:m.$emit_start_tok()},-5),s(O,"$interpolate?",h("interpolate")),s(O,"$words?",function(){var s=this,o=t,i=t,a=t;return n(o=n(i=n(a=s.$type()["$=="]("tWORDS_BEG"))?a:s.$type()["$=="]("tQWORDS_BEG"))?i:s.$type()["$=="]("tSYMBOLS_BEG"))?o:s.$type()["$=="]("tQSYMBOLS_BEG")}),s(O,"$regexp?",function(){var t=this;return t.$type()["$=="]("tREGEXP_BEG")}),s(O,"$heredoc?",function(){var t=this;return t.heredoc_e["$!"]()["$!"]()}),s(O,"$plain_heredoc?",function(){var s=this,o=t;return n(o=s["$heredoc?"]())?s.dedent_body["$!"]():o}),s(O,"$squiggly_heredoc?",function(){var s=this,o=t;return n(o=s["$heredoc?"]())?s.dedent_body:o}),s(O,"$backslash_delimited?",function(){var t=this;return t.end_delim["$=="](o("\\","ASCII-8BIT").$freeze())}),s(O,"$type",h("start_tok")),s(O,"$munge_escape?",function(t){var s=this;return t=s.$coerce_encoding(t),!!(n(s["$words?"]())&&n(t["$=~"](/[ \t\v\r\f\n]/)))||[o("\\","ASCII-8BIT").$freeze(),s.start_delim,s.end_delim]["$include?"](t)}),s(O,"$nest_and_try_closing",function(s,a,l,d){var u=this;return d==null&&(d=t),s=u.$coerce_encoding(s),n(u.start_delim)&&r(u.start_delim,s)?u.nesting=i(u.nesting,1):n(u["$delimiter?"](s))&&(u.nesting=c(u.nesting,1)),r(u.nesting,0)?(n(u["$words?"]())&&u.$extend_space(a,a),n(d)&&n(u.label_allowed)&&r(d["$[]"](0),o(":","ASCII-8BIT"))&&m(d["$[]"](1),o(":","ASCII-8BIT"))&&r(u.start_tok,"tSTRING_BEG")?(u.$flush_string(),u.$emit("tLABEL_END",u.end_delim,a,i(l,1))):n(u.monolithic)?u.$emit("tSTRING",u.buffer,u.str_s,l):(n(u["$heredoc?"]())||u.$flush_string(),u.$emit("tSTRING_END",u.end_delim,a,l))):t},-4),s(O,"$infer_indent_level",function(s){var a=this,o=t;return f(a.dedent_body)?t:(o=0,function(){try{var e=v("break");return l(s,"each_char",[],function s(a){var r=s.$$s==null?this:s.$$s,l=t;if(r.dedent_level==null&&(r.dedent_level=t),a==null&&(a=t),u(" ",l=a))return o=i(o,1);if(u(" ",l))return o=i(o,c(8,o["$%"](8)));(n(r.dedent_level["$nil?"]())||n(g(r.dedent_level,o)))&&(r.dedent_level=o),e.$throw(t,s.$$is_lambda)},{$$s:a})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}())}),s(O,"$start_interp_brace",function(){var t=this;return t.interp_braces=i(t.interp_braces,1)}),s(O,"$end_interp_brace_and_try_closing",function(){var t=this;return t.interp_braces=c(t.interp_braces,1),t.interp_braces["$=="](0)}),s(O,"$extend_string",function(s,o,i){var a=this,r=t;return a.buffer_s=n(r=a.buffer_s)?r:o,a.buffer_e=i,a.buffer["$<<"](s)}),s(O,"$flush_string",function(){var s=this;return n(s.monolithic)&&(s.$emit_start_tok(),s.monolithic=!1),n(s.buffer["$empty?"]())?t:(s.$emit("tSTRING_CONTENT",s.buffer,s.buffer_s,s.buffer_e),s.$clear_buffer(),s.$extend_content())}),s(O,"$extend_content",b("space_emitted",!1)),s(O,"$extend_space",function(s,o){var i=this;return i.$flush_string(),n(i.space_emitted)?t:(i.$emit("tSPACE",t,s,o),i.space_emitted=!0)}),s(O,"$supports_line_continuation_via_slash?",function(){var s=this,o=t;return n(o=s["$words?"]()["$!"]())?s.interpolate:o}),O.$protected(),s(O,"$delimiter?",function(s){var i=this,a=t;return n(i["$heredoc?"]())?n(a=s["$end_with?"](i.end_delim))?l(s.$sub(j([C("Regexp").$escape(i.end_delim),o("\\z","ASCII-8BIT")]),o("","ASCII-8BIT")).$bytes(),"all?",[],function(s){var o=t;return s==null&&(s=t),n(o=s["$=="](C("SPACE")))?o:s["$=="](C("TAB"))}):a:n(i.indent)?i.end_delim["$=="](s.$lstrip()):i.end_delim["$=="](s)}),s(O,"$coerce_encoding",function(t){return t.$b()}),s(O,"$clear_buffer",function(){var n=this;return n.buffer=o("","ASCII-8BIT").$dup(),n.buffer.$force_encoding(n.lexer.$source_buffer().$source().$encoding()),n.buffer_s=t,n.buffer_e=t}),s(O,"$emit_start_tok",function(){var s=this,o=t,a=t,o=n(a=s.heredoc_e)?a:i(s.str_s,s.str_type.$length());return s.$emit(s.start_tok,s.str_type,s.str_s,o)}),s(O,"$emit",function(t,n,s,o){var i=this;return i.lexer.$send("emit",t,n,s,o)})}(C("Lexer"),null,O)}(d[0],d)},Opal.modules["parser/lexer/stack_state"]=function(e){var o=e.module,i=e.klass,t=e.def,a=e.assign_ivar_val,r=e.truthy,c=e.alias,s=[],n=e.nil;return e.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function(s,l){var d=o(s,"Parser"),u=[d].concat(l),h=e.$r(u);return function(e,s){var o=i(e,s,"StackState"),l=o.$$prototype;return l.stack=l.name=n,t(o,"$initialize",function(t){var n=this;return n.name=t.$freeze(),n.$clear()}),t(o,"$clear",a("stack",0)),t(o,"$push",function(t){var s=this,o=n,o=r(t)?1:0;return s.stack=s.stack["$<<"](1)["$|"](o),t}),t(o,"$pop",function(){var t=this,s=n,s=t.stack["$&"](1);return t.stack=t.stack["$>>"](1),s["$=="](1)}),t(o,"$lexpop",function(){var t=this;return t.stack=t.stack["$>>"](1)["$|"](t.stack["$&"](1)),t.stack["$[]"](0)["$=="](1)}),t(o,"$active?",function(){var t=this;return t.stack["$[]"](0)["$=="](1)}),t(o,"$empty?",function(){var t=this;return t.stack["$=="](0)}),t(o,"$to_s",function(){var t=this;return"["+t.stack.$to_s(2)+" <= "+t.name+"]"}),c(o,"inspect","to_s")}(h("Lexer"),null)}(s[0],s)},Opal.modules["parser/lexer/dedenter"]=function(e){var u=e.module,y=e.klass,h=e.const_set,o=e.def,d=e.eqeq,n=e.send,i=e.truthy,j=e.to_ary,m=e.slice,l=e.rb_le,a=e.eqeqeq,s=e.rb_plus,r=e.rb_minus,f=e.rb_gt,p=e.rb_times,g=e.rb_divide,v=e.thrower,b=e.assign_ivar_val,c=[],t=e.nil,_=e.$$$;return e.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function(c,w){var x=u(c,"Parser"),O=[x].concat(w),C=e.$r(O);return function(c,u,w){var O=y(c,u,"Dedenter"),C=[O].concat(w),x=e.$r(C),E=O.$$prototype;return E.at_line_begin=t,h(C[0],"TAB_WIDTH",8),o(O,"$initialize",function(t){var n=this;return n.dedent_level=t,n.at_line_begin=!0,n.indent_level=0}),o(O,"$dedent",function(o){var u,h,b=this,y=t,c=t,w=t,O=t,y=o.$encoding(),c=o.$force_encoding(_(x("Encoding"),"BINARY")).$split(`\\ +`);return d(c.$length(),1)?c=[o.$force_encoding(y)]:n(c,"map!",[],function(n){return n==null&&(n=t),n.$force_encoding(y)}),i(b.at_line_begin)?w=c:(h=c,u=j(h),O=u[0]==null?t:u[0],w=m(u,1),h),n(w,"each",[],function e(o){var u=e.$$s==null?this:e.$$s,d=t,c=t;return u.dedent_level==null&&(u.dedent_level=t),o==null&&(o=t),d=u.dedent_level,c=0,function(){try{var e=v("break");return n(o,"each_char",[],function n(o){var u=n.$$s==null?this:n.$$s,h=t;if(u.dedent_level==null&&(u.dedent_level=t),o==null&&(o=t),i(l(d,0))&&e.$throw(t,n.$$is_lambda),a(" ",h=o))return c=s(c,1),d=r(d,1);if(a(" ",h))return i(f(p(x("TAB_WIDTH"),s(g(c,x("TAB_WIDTH")),1)),u.dedent_level))&&e.$throw(t,n.$$is_lambda),c=s(c,1),d=r(d,x("TAB_WIDTH"));e.$throw(t,n.$$is_lambda)},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o["$slice!"](0,c)},{$$s:b}),o.$replace(c.$join()),b.at_line_begin=o["$end_with?"](` +`)}),o(O,"$interrupt",b("at_line_begin",!1))}(C("Lexer"),null,O)}(c[0],c)},Opal.modules["parser/builders/default"]=function(e){var O=e.module,C=e.klass,n=e.def,x=e.assign_ivar_val,a=e.to_a,s=e.truthy,i=e.eqeq,c=e.not,r=e.send,p=e.neqeq,m=e.to_ary,g=e.rb_ge,u=e.rb_gt,f=e.range,l=e.rb_minus,b=e.slice,d=e.rb_plus,_=e.rb_le,j=e.eqeqeq,y=e.rb_lt,w=e.thrower,h=e.gvars,v=[],t=e.nil,o=e.$$$;return e.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,each,eql?,>=,add?,range_map,variable_map,>,length,start_with?,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,has_ordinary_params?,max_numparam_stack,in_block,context,var_send_map,top,current_arg_stack,parser,constant_map,in_def,[],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,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?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?"),function(v,E){var A=O(v,"Parser"),k=[A].concat(E),S=e.$r(k);return function(v,O,E){var k=C(v,O,"Default"),S=[k].concat(E),A=e.$r(S),M=k.$$prototype;return M.parser=M.emit_file_line_as_literals=t,function(e){return e.$attr_accessor("emit_lambda")}(e.get_singleton_class(k),S),k.emit_lambda=!1,function(e){return e.$attr_accessor("emit_procarg0")}(e.get_singleton_class(k),S),k.emit_procarg0=!1,function(e){return e.$attr_accessor("emit_encoding")}(e.get_singleton_class(k),S),k.emit_encoding=!1,function(e){return e.$attr_accessor("emit_index")}(e.get_singleton_class(k),S),k.emit_index=!1,function(e){return e.$attr_accessor("emit_arg_inside_procarg0")}(e.get_singleton_class(k),S),k.emit_arg_inside_procarg0=!1,function(e){return e.$attr_accessor("emit_forward_arg")}(e.get_singleton_class(k),S),k.emit_forward_arg=!1,function(e){return e.$attr_accessor("emit_kwargs")}(e.get_singleton_class(k),S),k.emit_kwargs=!1,function(e){return e.$attr_accessor("emit_match_pattern")}(e.get_singleton_class(k),S),k.emit_match_pattern=!1,function(e){return n(e,"$modernize",function(){var t=this;return t.emit_lambda=!0,t.emit_procarg0=!0,t.emit_encoding=!0,t.emit_index=!0,t.emit_arg_inside_procarg0=!0,t.emit_forward_arg=!0,t.emit_kwargs=!0,t.emit_match_pattern=!0})}(e.get_singleton_class(k),S),k.$attr_accessor("parser"),k.$attr_accessor("emit_file_line_as_literals"),n(k,"$initialize",x("emit_file_line_as_literals",!0)),n(k,"$nil",function(t){var n=this;return n.$n0("nil",n.$token_map(t))}),n(k,"$true",function(t){var n=this;return n.$n0("true",n.$token_map(t))}),n(k,"$false",function(t){var n=this;return n.$n0("false",n.$token_map(t))}),n(k,"$integer",function(t){var n=this;return n.$numeric("int",t)}),n(k,"$float",function(t){var n=this;return n.$numeric("float",t)}),n(k,"$rational",function(t){var n=this;return n.$numeric("rational",t)}),n(k,"$complex",function(t){var n=this;return n.$numeric("complex",t)}),n(k,"$numeric",function(n,s){var i=this;return i.$n(n,[i.$value(s)],o(o(A("Source"),"Map"),"Operator").$new(t,i.$loc(s)))}),k.$private("numeric"),n(k,"$unary_num",function(n,s){var l=this,i=t,c=t,r=[].concat(a(s));switch(i=r[0]==null?t:r[0],r,c=l.$loc(n),l.$value(n).valueOf()){case"+":i=i["$+@"]();break;case"-":i=i["$-@"]();break;default:t}return s.$updated(t,[i],new Map([["location",o(o(A("Source"),"Map"),"Operator").$new(c,c.$join(s.$loc().$expression()))]]))}),n(k,"$__LINE__",function(t){var n=this;return n.$n0("__LINE__",n.$token_map(t))}),n(k,"$string",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$delimited_string_map(t))}),n(k,"$string_internal",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$unquoted_map(t))}),n(k,"$string_compose",function(t,n,o){var i=this;return s(i["$collapse_string_parts?"](n))?s(t["$nil?"]())&&s(o["$nil?"]())?n.$first():i.$n("str",n.$first().$children(),i.$string_map(t,n,o)):i.$n("dstr",[].concat(a(n)),i.$string_map(t,n,o))}),n(k,"$character",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$prefix_string_map(t))}),n(k,"$__FILE__",function(t){var n=this;return n.$n0("__FILE__",n.$token_map(t))}),n(k,"$symbol",function(t){var n=this;return n.$n("sym",[n.$string_value(t).$to_sym()],n.$prefix_string_map(t))}),n(k,"$symbol_internal",function(t){var n=this;return n.$n("sym",[n.$string_value(t).$to_sym()],n.$unquoted_map(t))}),n(k,"$symbol_compose",function(n,o,r){var c=this,l=t;return s(c["$collapse_string_parts?"](o))?(l=o.$first(),c.$n("sym",[l.$children().$first().$to_sym()],c.$collection_map(n,l.$loc().$expression(),r))):i(c.parser.$version(),18)&&s(o["$empty?"]())?c.$diagnostic("error","empty_symbol",t,c.$loc(n).$join(c.$loc(r))):c.$n("dsym",[].concat(a(o)),c.$collection_map(n,o,r))}),n(k,"$xstring_compose",function(t,n,s){var o=this;return o.$n("xstr",[].concat(a(n)),o.$string_map(t,n,s))}),n(k,"$dedent_string",function(n,a){var d=t,l=t,u=t;if(c(a["$nil?"]()))switch(d=o(A("Lexer"),"Dedenter").$new(a),n.$type().valueOf()){case"str":l=n.$children().$first(),d.$dedent(l);break;case"dstr":case"xstr":u=r(n.$children(),"map",[],function(n){if(n==null&&(n=t),i(n.$type(),"str")){if(l=n.$children().$first(),d.$dedent(l),s(l["$empty?"]()))return t}else d.$interrupt();return n}),n=n.$updated(t,u.$compact());break;default:t}return n}),n(k,"$regexp_options",function(n){var s=this,o=t,o=r(s.$value(n).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc());return s.$n("regopt",o,s.$token_map(n))}),n(k,"$regexp_compose",function(s,i,a,r){var c=this,l=t;try{c.$static_regexp(i,r)}catch(t){if(e.rescue(t,[A("RegexpError"),o(A("Encoding"),"UndefinedConversionError")])){l=t;try{c.$diagnostic("error","invalid_regexp",new Map([["message",l.$message()]]),c.$loc(s).$join(c.$loc(a)))}finally{e.pop_exception(t)}}else throw t}return c.$n("regexp",i["$<<"](r),c.$regexp_map(s,a,r))}),n(k,"$array",function(t,n,s){var o=this;return o.$n("array",n,o.$collection_map(t,n,s))}),n(k,"$splat",function(n,o){var i=this;return o==null&&(o=t),s(o["$nil?"]())?i.$n0("splat",i.$unary_op_map(n)):i.$n("splat",[o],i.$unary_op_map(n,o))},-2),n(k,"$word",function(n){var o=this;return s(o["$collapse_string_parts?"](n))?n.$first():o.$n("dstr",[].concat(a(n)),o.$collection_map(t,n,t))}),n(k,"$words_compose",function(t,n,s){var o=this;return o.$n("array",[].concat(a(n)),o.$collection_map(t,n,s))}),n(k,"$symbols_compose",function(n,s,o){var i=this;return s=r(s,"map",[],function(n){var s,o=t;switch(n==null&&(n=t),n.$type().valueOf()){case"str":return s=[].concat(a(n)),o=s[0]==null?t:s[0],s,n.$updated("sym",[o.$to_sym()]);case"dstr":return n.$updated("dsym");default:return n}}),i.$n("array",[].concat(a(s)),i.$collection_map(n,s,o))}),n(k,"$pair",function(t,n,s){var o=this;return o.$n("pair",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$pair_list_18",function(n){var s=this;return p(n.$size()["$%"](2),0)?s.$diagnostic("error","odd_hash",t,n.$last().$loc().$expression()):r(n.$each_slice(2),"map",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$n("pair",[n,s],o.$binary_op_map(n,t,s))},{$$s:s})}),n(k,"$pair_keyword",function(n,s){var i=this,r=t,c=t,l=t,a=i.$pair_keyword_map(n,s),o=m(a);return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],a,l=i.$n("sym",[i.$value(n).$to_sym()],r),i.$n("pair",[l,s],c)}),n(k,"$pair_quoted",function(n,s,o,i){var r=this,l=t,d=t,c=r.$pair_quoted_map(n,o,i),a=m(c);return o=a[0]==null?t:a[0],l=a[1]==null?t:a[1],c,d=r.$symbol_compose(n,s,o),r.$n("pair",[d,i],l)}),n(k,"$pair_label",function(n){var i=this,c=t,a=t,r=t,l=t,c=i.$loc(n),a=c.$adjust(new Map([["end_pos",-1]])),r=i.$value(n),l=s(r["$=~"](/^[[:upper:]]/))?i.$n("const",[t,r.$to_sym()],o(o(A("Source"),"Map"),"Constant").$new(t,a,a)):i.$n("ident",[r.$to_sym()],o(o(A("Source"),"Map"),"Variable").$new(a));return i.$pair_keyword(n,i.$accessible(l))}),n(k,"$kwsplat",function(t,n){var s=this;return s.$n("kwsplat",[n],s.$unary_op_map(t,n))}),n(k,"$associate",function(n,o,i){var c=this,l=t,l=A("Set").$new();return r(o,"each",[],function e(n){var o,i=e.$$s==null?this:e.$$s,r=t;if(i.parser==null&&(i.parser=t),n==null&&(n=t),!s(n.$type()["$eql?"]("pair")))return t;switch(o=[].concat(a(n)),r=o[0]==null?t:o[0],o,r.$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!s(g(i.parser.$version(),31)))return t;break;default:return t}return s(l["$add?"](r))?t:i.$diagnostic("warning","duplicate_hash_key",t,r.$loc().$expression())},{$$s:c}),c.$n("hash",[].concat(a(o)),c.$collection_map(n,o,i))}),n(k,"$range_inclusive",function(t,n,s){var o=this;return o.$n("irange",[t,s],o.$range_map(t,n,s))}),n(k,"$range_exclusive",function(t,n,s){var o=this;return o.$n("erange",[t,s],o.$range_map(t,n,s))}),n(k,"$self",function(t){var n=this;return n.$n0("self",n.$token_map(t))}),n(k,"$ident",function(t){var n=this;return n.$n("ident",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$ivar",function(t){var n=this;return n.$n("ivar",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$gvar",function(n){var o=this,i=t,i=o.$value(n);return s(i["$start_with?"]("$0"))&&s(u(i.$length(),2))&&o.$diagnostic("error","gvar_name",new Map([["name",i]]),o.$loc(n)),o.$n("gvar",[i.$to_sym()],o.$variable_map(n))}),n(k,"$cvar",function(t){var n=this;return n.$n("cvar",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$back_ref",function(t){var n=this;return n.$n("back_ref",[n.$value(t).$to_sym()],n.$token_map(t))}),n(k,"$nth_ref",function(t){var n=this;return n.$n("nth_ref",[n.$value(t)],n.$token_map(t))}),n(k,"$accessible",function(n){var d,o=this,l=t;switch(n.$type().valueOf()){case"__FILE__":return s(o.emit_file_line_as_literals)?o.$n("str",[n.$loc().$expression().$source_buffer().$name()],n.$loc().$dup()):n;break;case"__LINE__":return s(o.emit_file_line_as_literals)?o.$n("int",[n.$loc().$expression().$line()],n.$loc().$dup()):n;break;case"__ENCODING__":return c(o.$class().$emit_encoding())?o.$n("const",[o.$n("const",[t,"Encoding"],t),"UTF_8"],n.$loc().$dup()):n;break;case"ident":return d=[].concat(a(n)),l=d[0]==null?t:d[0],d,s(r(["?","!"],"any?",[],function(n){return n==null&&(n=t),l.$to_s()["$end_with?"](n)}))&&o.$diagnostic("error","invalid_id_to_get",new Map([["identifier",l.$to_s()]]),n.$loc().$expression()),s(g(o.parser.$version(),27))&&s(o.parser.$try_declare_numparam(n))?n.$updated("lvar"):s(o.parser.$static_env()["$declared?"](l))?(i(l.$to_s(),o.$parser().$current_arg_stack().$top())&&o.$diagnostic("error","circular_argument_reference",new Map([["var_name",l.$to_s()]]),n.$loc().$expression()),n.$updated("lvar")):(i(o.parser.$version(),33)&&i(l,"it")&&s(o.parser.$context().$in_block())&&c(o.parser.$max_numparam_stack()["$has_ordinary_params?"]())&&o.$diagnostic("warning","ambiguous_it_call",t,n.$loc().$expression()),o.$n("send",[t,l],o.$var_send_map(n)));default:return n}}),n(k,"$const",function(n){var s=this;return s.$n("const",[t,s.$value(n).$to_sym()],s.$constant_map(t,t,n))}),n(k,"$const_global",function(n,s){var o=this,i=t,i=o.$n0("cbase",o.$token_map(n));return o.$n("const",[i,o.$value(s).$to_sym()],o.$constant_map(i,n,s))}),n(k,"$const_fetch",function(t,n,s){var o=this;return o.$n("const",[t,o.$value(s).$to_sym()],o.$constant_map(t,n,s))}),n(k,"$__ENCODING__",function(t){var n=this;return n.$n0("__ENCODING__",n.$token_map(t))}),n(k,"$assignable",function(n){var i,o=this,l=t,r=t,c=t;switch(n.$type().valueOf()){case"cvar":return n.$updated("cvasgn");case"ivar":return n.$updated("ivasgn");case"gvar":return n.$updated("gvasgn");case"const":return s(o.parser.$context().$in_def())&&o.$diagnostic("error","dynamic_const",t,n.$loc().$expression()),n.$updated("casgn");case"ident":return i=[].concat(a(n)),l=i[0]==null?t:i[0],i,r=n.$children()["$[]"](0).$to_s(),c=n.$loc().$expression(),o.$check_assignment_to_numparam(r,c),o.$check_reserved_for_numparam(r,c),o.parser.$static_env().$declare(l),n.$updated("lvasgn");case"match_var":return i=[].concat(a(n)),l=i[0]==null?t:i[0],i,r=n.$children()["$[]"](0).$to_s(),c=n.$loc().$expression(),o.$check_assignment_to_numparam(r,c),o.$check_reserved_for_numparam(r,c),n;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return o.$diagnostic("error","invalid_assignment",t,n.$loc().$expression());case"back_ref":case"nth_ref":return o.$diagnostic("error","backref_assignment",t,n.$loc().$expression());default:return t}}),n(k,"$const_op_assignable",function(t){return t.$updated("casgn")}),n(k,"$assign",function(n,s,o){var i=this;return n["$<<"](o).$updated(t,t,new Map([["location",n.$loc().$with_operator(i.$loc(s)).$with_expression(i.$join_exprs(n,o))]]))}),n(k,"$op_assign",function(n,s,o){var a=this,c=t,r=t;switch(n.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(c=a.$value(s)["$[]"](f(0,-1,!1)).$to_sym(),r=n.$loc().$with_operator(a.$loc(s)).$with_expression(a.$join_exprs(n,o)),i(n.$type(),"index")&&(n=n.$updated("indexasgn")),c.valueOf()){case"&&":return a.$n("and_asgn",[n,o],r);case"||":return a.$n("or_asgn",[n,o],r);default:return a.$n("op_asgn",[n,c,o],r)}break;case"back_ref":case"nth_ref":return a.$diagnostic("error","backref_assignment",t,n.$loc().$expression());default:return t}}),n(k,"$multi_lhs",function(t,n,s){var o=this;return o.$n("mlhs",[].concat(a(n)),o.$collection_map(t,n,s))}),n(k,"$multi_assign",function(t,n,s){var o=this;return o.$n("masgn",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$def_class",function(t,n,s,o,i,a){var r=this;return r.$n("class",[n,o,i],r.$module_definition_map(t,n,s,a))}),n(k,"$def_sclass",function(n,s,o,i,a){var r=this;return r.$n("sclass",[o,i],r.$module_definition_map(n,t,s,a))}),n(k,"$def_module",function(n,s,o,i){var a=this;return a.$n("module",[s,o],a.$module_definition_map(n,s,t,i))}),n(k,"$def_method",function(n,s,o,i,a){var r=this;return r.$check_reserved_for_numparam(r.$value(s),r.$loc(s)),r.$n("def",[r.$value(s).$to_sym(),o,i],r.$definition_map(n,t,s,a))}),n(k,"$def_endless_method",function(n,s,o,i,a){var r=this;return r.$check_reserved_for_numparam(r.$value(s),r.$loc(s)),r.$n("def",[r.$value(s).$to_sym(),o,a],r.$endless_definition_map(n,t,s,i,a))}),n(k,"$def_singleton",function(t,n,s,o,i,a,r){var c=this;return c.$validate_definee(n),c.$check_reserved_for_numparam(c.$value(o),c.$loc(o)),c.$n("defs",[n,c.$value(o).$to_sym(),i,a],c.$definition_map(t,s,o,r))}),n(k,"$def_endless_singleton",function(t,n,s,o,i,a,r){var c=this;return c.$validate_definee(n),c.$check_reserved_for_numparam(c.$value(o),c.$loc(o)),c.$n("defs",[n,c.$value(o).$to_sym(),i,r],c.$endless_definition_map(t,s,o,a,r))}),n(k,"$undef_method",function(n,s){var o=this;return o.$n("undef",[].concat(a(s)),o.$keyword_map(n,t,s,t))}),n(k,"$alias",function(n,s,o){var i=this;return i.$n("alias",[s,o],i.$keyword_map(n,t,[s,o],t))}),n(k,"$args",function(n,o,a,r){var l=this,d=t;return r==null&&(r=!0),s(r)&&(o=l.$check_duplicate_args(o)),l.$validate_no_forward_arg_after_restarg(o),d=l.$collection_map(n,o,a),c(l.$class().$emit_forward_arg())&&i(o.$length(),1)&&i(o["$[]"](0).$type(),"forward_arg")?l.$n("forward_args",[],d):l.$n("args",o,d)},-4),n(k,"$numargs",function(n){var s=this;return s.$n("numargs",[n],t)}),n(k,"$forward_only_args",function(n,o,i){var a=this,r=t;return s(a.$class().$emit_forward_arg())?(r=a.$forward_arg(o),a.$n("args",[r],a.$collection_map(n,[r],i))):a.$n("forward_args",[],a.$collection_map(n,a.$token_map(o),i))}),n(k,"$forward_arg",function(t){var n=this;return n.$n("forward_arg",[],n.$token_map(t))}),n(k,"$arg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("arg",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$optarg",function(t,n,s){var o=this;return o.$check_reserved_for_numparam(o.$value(t),o.$loc(t)),o.$n("optarg",[o.$value(t).$to_sym(),s],o.$variable_map(t).$with_operator(o.$loc(n)).$with_expression(o.$loc(t).$join(s.$loc().$expression())))}),n(k,"$restarg",function(n,o){var i=this;return o==null&&(o=t),s(o)?(i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),i.$n("restarg",[i.$value(o).$to_sym()],i.$arg_prefix_map(n,o))):i.$n0("restarg",i.$arg_prefix_map(n))},-2),n(k,"$kwarg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("kwarg",[n.$value(t).$to_sym()],n.$kwarg_map(t))}),n(k,"$kwoptarg",function(t,n){var s=this;return s.$check_reserved_for_numparam(s.$value(t),s.$loc(t)),s.$n("kwoptarg",[s.$value(t).$to_sym(),n],s.$kwarg_map(t,n))}),n(k,"$kwrestarg",function(n,o){var i=this;return o==null&&(o=t),s(o)?(i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),i.$n("kwrestarg",[i.$value(o).$to_sym()],i.$arg_prefix_map(n,o))):i.$n0("kwrestarg",i.$arg_prefix_map(n))},-2),n(k,"$kwnilarg",function(t,n){var s=this;return s.$n0("kwnilarg",s.$arg_prefix_map(t,n))}),n(k,"$shadowarg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("shadowarg",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$blockarg",function(n,o){var i=this,a=t;return c(o["$nil?"]())&&i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),a=s(o)?i.$value(o).$to_sym():t,i.$n("blockarg",[a],i.$arg_prefix_map(n,o))}),n(k,"$procarg0",function(n){var a=this;return s(a.$class().$emit_procarg0())?i(n.$type(),"arg")&&s(a.$class().$emit_arg_inside_procarg0())?a.$n("procarg0",[n],o(o(A("Source"),"Map"),"Collection").$new(t,t,n.$location().$expression())):n.$updated("procarg0"):n}),n(k,"$arg_expr",function(t){var n=this;return i(t.$type(),"lvasgn")?t.$updated("arg"):n.$n("arg_expr",[t],t.$loc().$dup())}),n(k,"$restarg_expr",function(n,o){var a=this;return o==null&&(o=t),s(o["$nil?"]())?a.$n0("restarg",a.$token_map(n)):i(o.$type(),"lvasgn")?o.$updated("restarg"):a.$n("restarg_expr",[o],o.$loc().$dup())},-2),n(k,"$blockarg_expr",function(t,n){var s=this;return i(n.$type(),"lvasgn")?n.$updated("blockarg"):s.$n("blockarg_expr",[n],n.$loc().$dup())}),n(k,"$objc_kwarg",function(n,i,a){var r=this,c=t,d=t,c=r.$loc(n);return s(i["$nil?"]())?(c=c.$resize(l(c.$size(),1)),d=c.$end().$resize(1)):d=r.$loc(i),r.$n("objc_kwarg",[r.$value(n).$to_sym(),r.$value(a).$to_sym()],o(o(A("Source"),"Map"),"ObjcKwarg").$new(c,d,r.$loc(a),c.$join(r.$loc(a))))}),n(k,"$objc_restarg",function(n,o){var a=this;return o==null&&(o=t),s(o["$nil?"]())?a.$n0("restarg",a.$arg_prefix_map(n)):i(o.$type(),"arg")?o.$updated("restarg",t,new Map([["location",o.$loc().$with_operator(a.$loc(n))]])):a.$n("objc_restarg",[o],a.$unary_op_map(n,o))},-2),n(k,"$call_type_for_dot",function(t){var n=this;return c(t["$nil?"]())&&i(n.$value(t),"anddot")?"csend":"send"}),n(k,"$forwarded_args",function(t){var n=this;return n.$n("forwarded_args",[],n.$token_map(t))}),n(k,"$forwarded_restarg",function(t){var n=this;return n.$n("forwarded_restarg",[],n.$token_map(t))}),n(k,"$forwarded_kwrestarg",function(t){var n=this;return n.$n("forwarded_kwrestarg",[],n.$token_map(t))}),n(k,"$call_method",function(n,o,i,r,c,l){var d=this,u=t;return r==null&&(r=t),c==null&&(c=[]),l==null&&(l=t),u=d.$call_type_for_dot(o),s(d.$class().$emit_kwargs())&&d.$rewrite_hash_args_to_kwargs(c),s(i["$nil?"]())?d.$n(u,[n,"call"].concat(a(c)),d.$send_map(n,o,t,r,c,l)):d.$n(u,[n,d.$value(i).$to_sym()].concat(a(c)),d.$send_map(n,o,i,r,c,l))},-4),n(k,"$call_lambda",function(n){var o=this;return s(o.$class().$emit_lambda())?o.$n0("lambda",o.$expr_map(o.$loc(n))):o.$n("send",[t,"lambda"],o.$send_map(t,t,n))}),n(k,"$block",function(n,o,r,c,l){var d,u,h=this,j=t,m=t,y=t,_=t,f=t,g=t,v=t;return i(n.$type(),"yield")&&h.$diagnostic("error","block_given_to_yield",t,n.$loc().$keyword(),[h.$loc(o)]),i(n.$type(),"super")?(d=[].concat(a(n)),u=d.length-1,u=u<0?0:u,j=b(d,0,u),m=d[u]==null?t:d[u],d):(d=[].concat(a(n)),y=d[0]==null?t:d[0],_=d[1]==null?t:d[1],u=d.length-1,u=u<2?2:u,j=b(d,2,u),m=d[u]==null?t:d[u],d),s(m)&&(i(m.$type(),"block_pass")||i(m.$type(),"forwarded_args"))&&(i(h.parser.$version(),33)&&p(n.$type(),"super")||p(h.parser.$version(),33))&&h.$diagnostic("error","block_and_blockarg",t,m.$loc().$expression(),[h.$loc(o)]),i(r.$type(),"numargs")?(f="numblock",r=r.$children()["$[]"](0)):f="block",s(["send","csend","index","super","zsuper","lambda"]["$include?"](n.$type()))?h.$n(f,[n,r,c],h.$block_map(n.$loc().$expression(),o,l)):(d=[].concat(a(n)),g=d[0]==null?t:d[0],d,v=h.$n(f,[g,r,c],h.$block_map(g.$loc().$expression(),o,l)),h.$n(n.$type(),[v],n.$loc().$with_expression(h.$join_exprs(n,v))))}),n(k,"$block_pass",function(t,n){var s=this;return s.$n("block_pass",[n],s.$unary_op_map(t,n))}),n(k,"$objc_varargs",function(n,s){var l=this,r=t,c=t,i=t,o=[].concat(a(n));return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,i=l.$array(t,[c].concat(a(s)),t).$updated("objc_varargs"),n.$updated(t,[r,i],new Map([["location",n.$loc().$with_expression(n.$loc().$expression().$join(i.$loc().$expression()))]]))}),n(k,"$attr_asgn",function(n,s,o){var i=this,a=t,r=t,a=d(i.$value(o),"=").$to_sym(),r=i.$call_type_for_dot(s);return i.$n(r,[n,a],i.$send_map(n,s,o))}),n(k,"$index",function(t,n,o,i){var r=this;return s(r.$class().$emit_kwargs())&&r.$rewrite_hash_args_to_kwargs(o),s(r.$class().$emit_index())?r.$n("index",[t].concat(a(o)),r.$index_map(t,n,i)):r.$n("send",[t,"[]"].concat(a(o)),r.$send_index_map(t,n,i))}),n(k,"$index_asgn",function(t,n,o,i){var r=this;return s(r.$class().$emit_kwargs())&&r.$rewrite_hash_args_to_kwargs(o),s(r.$class().$emit_index())?r.$n("indexasgn",[t].concat(a(o)),r.$index_map(t,n,i)):r.$n("send",[t,"[]="].concat(a(o)),r.$send_index_map(t,n,i))}),n(k,"$binary_op",function(n,o,a){var r=this,c=t,l=t,d=t,c=r.$send_binary_op_map(n,o,a);return i(r.parser.$version(),18)&&(l=r.$value(o),i(l,"!=")?d=r.$n("send",[n,"==",a],c):i(l,"!~")&&(d=r.$n("send",[n,"=~",a],c)),s(["!=","!~"]["$include?"](l)))?r.$n("not",[d],r.$expr_map(c.$expression())):r.$n("send",[n,r.$value(o).$to_sym(),a],c)}),n(k,"$match_op",function(n,o,i){var a=this,c=t,l=t,c=a.$send_binary_op_map(n,o,i);return s(l=a.$static_regexp_node(n))?(r(l.$names(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.parser==null&&(s.parser=t),n==null&&(n=t),s.parser.$static_env().$declare(n)},{$$s:a}),a.$n("match_with_lvasgn",[n,i],c)):a.$n("send",[n,"=~",i],c)}),n(k,"$unary_op",function(n,s){var o=this,i=t;switch(o.$value(n).valueOf()){case"+":case"-":i=d(o.$value(n),"@");break;default:i=o.$value(n)}return o.$n("send",[s,i.$to_sym()],o.$send_unary_op_map(n,s))}),n(k,"$not_op",function(n,o,a,r){var c=this,l=t;return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),i(c.parser.$version(),18)?c.$n("not",[c.$check_condition(a)],c.$unary_op_map(n,a)):s(a["$nil?"]())?(l=c.$n0("begin",c.$collection_map(o,t,r)),c.$n("send",[l,"!"],c.$send_unary_op_map(n,l))):c.$n("send",[c.$check_condition(a),"!"],c.$send_map(t,t,n,o,[a],r))},-2),n(k,"$logical_op",function(t,n,s,o){var i=this;return i.$n(t,[n,o],i.$binary_op_map(n,s,o))}),n(k,"$condition",function(t,n,s,o,i,a,r){var c=this;return c.$n("if",[c.$check_condition(n),o,a],c.$condition_map(t,n,s,o,i,a,r))}),n(k,"$condition_mod",function(n,o,i,a){var r=this,c=t;return r.$n("if",[r.$check_condition(a),n,o],r.$keyword_mod_map(s(c=n)?c:o,i,a))}),n(k,"$ternary",function(t,n,s,o,i){var a=this;return a.$n("if",[a.$check_condition(t),s,i],a.$ternary_map(t,n,s,o,i))}),n(k,"$when",function(n,s,o,i){var r=this,a=t,a=s["$<<"](i);return r.$n("when",a,r.$keyword_map(n,o,a,t))}),n(k,"$case",function(n,s,o,i,r,c){var l=this;return l.$n("case",[s].concat(a(o["$<<"](r))),l.$condition_map(n,s,t,t,i,r,c))}),n(k,"$loop",function(n,s,o,i,a,r){var c=this;return c.$n(n,[c.$check_condition(o),a],c.$keyword_map(s,i,t,r))}),n(k,"$loop_mod",function(t,n,s,o){var a=this;return i(n.$type(),"kwbegin")&&(t=""+t+"_post"),a.$n(t,[a.$check_condition(o),n],a.$keyword_mod_map(n,s,o))}),n(k,"$for",function(t,n,s,o,i,a,r){var c=this;return c.$n("for",[n,o,a],c.$for_map(t,s,i,r))}),n(k,"$keyword_cmd",function(n,o,a,r,c){var l=this,d=t;return a==null&&(a=t),r==null&&(r=[]),c==null&&(c=t),i(n,"yield")&&s(u(r.$count(),0))&&(d=r.$last(),i(d.$type(),"block_pass")&&l.$diagnostic("error","block_given_to_yield",t,l.$loc(o),[d.$loc().$expression()])),s(["yield","super"]["$include?"](n))&&s(l.$class().$emit_kwargs())&&l.$rewrite_hash_args_to_kwargs(r),l.$n(n,r,l.$keyword_map(o,a,r,c))},-3),n(k,"$preexe",function(t,n,s,o){var i=this;return i.$n("preexe",[s],i.$keyword_map(t,n,[],o))}),n(k,"$postexe",function(t,n,s,o){var i=this;return i.$n("postexe",[s],i.$keyword_map(t,n,[],o))}),n(k,"$rescue_body",function(t,n,s,o,i,a){var r=this;return r.$n("resbody",[n,o,a],r.$rescue_body_map(t,n,s,o,i,a))}),n(k,"$begin_body",function(n,o,r,l,u,h){var m=this,f=t;return o==null&&(o=[]),r==null&&(r=t),l==null&&(l=t),u==null&&(u=t),h==null&&(h=t),s(o["$any?"]())?s(r)?n=m.$n("rescue",[n].concat(a(d(o,[l]))),m.$eh_keyword_map(n,t,o,r,l)):n=m.$n("rescue",[n].concat(a(d(o,[t]))),m.$eh_keyword_map(n,t,o,t,t)):s(r)&&(f=[],c(n["$nil?"]())&&(i(n.$type(),"begin")?f=d(f,n.$children()):f.$push(n)),f.$push(m.$n("begin",[l],m.$collection_map(r,[l],t))),n=m.$n("begin",f,m.$collection_map(t,f,t))),s(u)&&(n=m.$n("ensure",[n,h],m.$eh_keyword_map(n,u,[h],t,t))),n},-2),n(k,"$compstmt",function(n){var o=this;return s(n["$none?"]())?t:s(n["$one?"]())?n.$first():o.$n("begin",n,o.$collection_map(t,n,t))}),n(k,"$begin",function(n,o,a){var r=this;return s(o["$nil?"]())?r.$n0("begin",r.$collection_map(n,t,a)):i(o.$type(),"mlhs")||i(o.$type(),"begin")&&s(o.$loc().$begin()["$nil?"]())&&s(o.$loc().$end()["$nil?"]())?r.$n(o.$type(),o.$children(),r.$collection_map(n,o.$children(),a)):r.$n("begin",[o],r.$collection_map(n,[o],a))}),n(k,"$begin_keyword",function(n,o,a){var r=this;return s(o["$nil?"]())?r.$n0("kwbegin",r.$collection_map(n,t,a)):i(o.$type(),"begin")&&s(o.$loc().$begin()["$nil?"]())&&s(o.$loc().$end()["$nil?"]())?r.$n("kwbegin",o.$children(),r.$collection_map(n,o.$children(),a)):r.$n("kwbegin",[o],r.$collection_map(n,[o],a))}),n(k,"$case_match",function(n,o,i,r,l,d){var u=this;return s(r)&&c(l)&&(l=u.$n("empty_else",t,u.$token_map(r))),u.$n("case_match",[o].concat(a(i["$<<"](l))),u.$condition_map(n,o,t,t,r,l,d))}),n(k,"$in_match",function(t,n,s){var o=this;return o.$n("in_match",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$match_pattern",function(t,n,s){var o=this;return o.$n("match_pattern",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$match_pattern_p",function(t,n,s){var o=this;return o.$n("match_pattern_p",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$in_pattern",function(n,s,o,i,a){var c=this,r=t,r=[s,o,a];return c.$n("in_pattern",r,c.$keyword_map(n,i,r.$compact(),t))}),n(k,"$if_guard",function(t,n){var s=this;return s.$n("if_guard",[n],s.$guard_map(t,n))}),n(k,"$unless_guard",function(t,n){var s=this;return s.$n("unless_guard",[n],s.$guard_map(t,n))}),n(k,"$match_var",function(n){var s=this,o=t,i=t,o=s.$value(n).$to_sym(),i=s.$loc(n);return s.$check_lvar_name(o,i),s.$check_duplicate_pattern_variable(o,i),s.parser.$static_env().$declare(o),s.$n("match_var",[o],s.$variable_map(n))}),n(k,"$match_hash_var",function(n){var s=this,i=t,r=t,a=t,i=s.$value(n).$to_sym(),r=s.$loc(n),a=r.$adjust(new Map([["end_pos",-1]]));return s.$check_lvar_name(i,a),s.$check_duplicate_pattern_variable(i,a),s.parser.$static_env().$declare(i),s.$n("match_var",[i],o(o(A("Source"),"Map"),"Variable").$new(a,r))}),n(k,"$match_hash_var_from_str",function(n,i,r){var m,c=this,l=t,h=t,d=t,f=t,p=t,g=t;switch(s(u(i.$length(),1))&&c.$diagnostic("error","pm_interp_in_var_name",t,c.$loc(n).$join(c.$loc(r))),l=i["$[]"](0),l.$type().valueOf()){case"str":return m=[].concat(a(l)),h=m[0]==null?t:m[0],m,d=l.$loc().$expression(),c.$check_lvar_name(h,d),c.$check_duplicate_pattern_variable(h,d),c.parser.$static_env().$declare(h),s(f=l.$loc().$begin())&&(d=d.$adjust(new Map([["begin_pos",f.$length()]]))),s(p=l.$loc().$end())&&(d=d.$adjust(new Map([["end_pos",p.$length()["$-@"]()]]))),g=c.$loc(n).$join(l.$loc().$expression()).$join(c.$loc(r)),c.$n("match_var",[h.$to_sym()],o(o(A("Source"),"Map"),"Variable").$new(d,g));case"begin":return c.$match_hash_var_from_str(n,l.$children(),r);default:return c.$diagnostic("error","pm_interp_in_var_name",t,c.$loc(n).$join(c.$loc(r)))}}),n(k,"$match_rest",function(n,o){var i=this,a=t;return o==null&&(o=t),s(o["$nil?"]())?i.$n0("match_rest",i.$unary_op_map(n)):(a=i.$match_var(o),i.$n("match_rest",[a],i.$unary_op_map(n,a)))},-2),n(k,"$hash_pattern",function(n,s,o){var i=this,a=t,a=i.$check_duplicate_args(s);return i.$n("hash_pattern",a,i.$collection_map(n,a,o))}),n(k,"$array_pattern",function(n,o,a){var c=this,l=t,d=t,u=t;return s(o["$nil?"]())?c.$n("array_pattern",t,c.$collection_map(n,[],a)):(l=!1,d=r(o,"map",[],function(n){return n==null&&(n=t),i(n.$type(),"match_with_trailing_comma")?(l=!0,n.$children().$first()):(l=!1,n)}),u=s(l)?"array_pattern_with_tail":"array_pattern",c.$n(u,d,c.$collection_map(n,o,a)))}),n(k,"$find_pattern",function(t,n,s){var o=this;return o.$n("find_pattern",n,o.$collection_map(t,n,s))}),n(k,"$match_with_trailing_comma",function(t,n){var s=this;return s.$n("match_with_trailing_comma",[t],s.$expr_map(t.$loc().$expression().$join(s.$loc(n))))}),n(k,"$const_pattern",function(t,n,s,i){var a=this;return a.$n("const_pattern",[t,s],o(o(A("Source"),"Map"),"Collection").$new(a.$loc(n),a.$loc(i),t.$loc().$expression().$join(a.$loc(i))))}),n(k,"$pin",function(t,n){var s=this;return s.$n("pin",[n],s.$send_unary_op_map(t,n))}),n(k,"$match_alt",function(n,s,o){var i=this,a=t,a=i.$binary_op_map(n,s,o);return i.$n("match_alt",[n,o],a)}),n(k,"$match_as",function(n,s,o){var i=this,a=t,a=i.$binary_op_map(n,s,o);return i.$n("match_as",[n,o],a)}),n(k,"$match_nil_pattern",function(t,n){var s=this;return s.$n0("match_nil_pattern",s.$arg_prefix_map(t,n))}),n(k,"$match_pair",function(n,o,a){var c,l,r=this,d=t,u=t,h=t,f=t,p=t;return i(n,"label")?(r.$check_duplicate_pattern_key(o["$[]"](0),o["$[]"](1)),r.$pair_keyword(o,a)):(l=o,c=m(l),d=c[0]==null?t:c[0],u=c[1]==null?t:c[1],h=c[2]==null?t:c[2],l,f=r.$loc(d).$join(r.$loc(h)),s(p=r.$static_string(u))?r.$check_duplicate_pattern_key(p,f):r.$diagnostic("error","pm_interp_in_var_name",t,f),r.$pair_quoted(d,u,h,a))}),n(k,"$match_label",function(n,s){var o,a,r=this,c=t,l=t,d=t;return i(n,"label")?r.$match_hash_var(s):(a=s,o=m(a),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],d=o[2]==null?t:o[2],a,r.$match_hash_var_from_str(c,l,d))}),k.$private(),n(k,"$check_condition",function(n){var o,r=this,c=t,l=t,d=t,u=t,h=t,m=t;switch(n.$type().valueOf()){case"masgn":return s(_(r.parser.$version(),23))?r.$diagnostic("error","masgn_as_condition",t,n.$loc().$expression()):n;break;case"begin":return i(n.$children().$count(),1)?n.$updated(t,[r.$check_condition(n.$children().$last())]):n;break;case"and":case"or":return o=[].concat(a(n)),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,i(r.parser.$version(),18)?n:n.$updated(n.$type(),[r.$check_condition(c),r.$check_condition(l)]);break;case"irange":case"erange":return o=[].concat(a(n)),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,d=j("irange",u=n.$type())?"iflipflop":j("erange",u)?"eflipflop":t,s(c["$nil?"]())||(h=r.$check_condition(c)),s(l["$nil?"]())||(m=r.$check_condition(l)),n.$updated(d,[h,m]);case"regexp":return r.$n("match_current_line",[n],r.$expr_map(n.$loc().$expression()));default:return n}}),n(k,"$check_duplicate_args",function(n,o){var i=this;return o==null&&(o=new Map),r(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return i.$check_duplicate_arg(n,o);case"procarg0":return s(n.$children()["$[]"](0)["$is_a?"](A("Symbol")))?i.$check_duplicate_arg(n,o):i.$check_duplicate_args(n.$children(),o);break;case"mlhs":return i.$check_duplicate_args(n.$children(),o);default:return t}},{$$s:i})},-2),n(k,"$check_duplicate_arg",function(n,o){var i,d=this,c=t,l=t,u=t;return o==null&&(o=new Map),i=[].concat(a(n)),c=i[0]==null?t:i[0],i,l=o["$[]"](c),i=[].concat(a(l)),u=i[0]==null?t:i[0],i,s(l["$nil?"]())?(i=[c,n],r(o,"[]=",i),i[i.length-1]):s(d["$arg_name_collides?"](c,u))?d.$diagnostic("error","duplicate_argument",t,n.$loc().$name(),[l.$loc().$name()]):t},-2),n(k,"$validate_no_forward_arg_after_restarg",function(n){var i=this,s=t,o=t,s=t,o=t;return r(n,"each",[],function(n){switch(n==null&&(n=t),n.$type().valueOf()){case"restarg":return s=n;case"forward_arg":return o=n;default:return t}}),c(o["$nil?"]())&&c(s["$nil?"]())?i.$diagnostic("error","forward_arg_after_restarg",t,o.$loc().$expression(),[s.$loc().$expression()]):t}),n(k,"$check_assignment_to_numparam",function(n,o){var i=this,a=t,r=t,c=t;return s(y(i.parser.$version(),27))?t:(a=s(r=s(c=i.parser.$context()["$in_dynamic_block?"]())?n["$=~"](/^_([1-9])$/):c)?i.parser.$max_numparam_stack()["$has_numparams?"]():r,s(a)?i.$diagnostic("error","cant_assign_to_numparam",new Map([["name",n]]),o):t)}),n(k,"$check_reserved_for_numparam",function(n,o){var i=this;return s(y(i.parser.$version(),30))?t:s(n["$=~"](/^_([1-9])$/))?i.$diagnostic("error","reserved_for_numparam",new Map([["name",n]]),o):t}),n(k,"$arg_name_collides?",function(n,o){var r=this,i=t,a=t;switch(r.parser.$version().valueOf()){case 18:return n["$=="](o);case 19:return s(i=n["$!="]("_"))?n["$=="](o):i;break;default:return s(i=s(a=n)?n["$[]"](0)["$!="]("_"):a)?n["$=="](o):i}}),n(k,"$check_lvar_name",function(n,o){var i=this;return s(n["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?t:i.$diagnostic("error","lvar_name",new Map([["name",n]]),o)}),n(k,"$check_duplicate_pattern_variable",function(n,o){var i=this;return s(n.$to_s()["$start_with?"]("_"))?t:(s(i.parser.$pattern_variables()["$declared?"](n))&&i.$diagnostic("error","duplicate_variable_name",new Map([["name",n.$to_s()]]),o),i.parser.$pattern_variables().$declare(n))}),n(k,"$check_duplicate_pattern_key",function(t,n){var o=this;return s(o.parser.$pattern_hash_keys()["$declared?"](t))&&o.$diagnostic("error","duplicate_pattern_key",new Map([["name",t.$to_s()]]),n),o.parser.$pattern_hash_keys().$declare(t)}),n(k,"$n",function(t,n,s){return o(A("AST"),"Node").$new(t,n,new Map([["location",s]]))}),n(k,"$n0",function(t,n){var s=this;return s.$n(t,[],n)}),n(k,"$join_exprs",function(t,n){return t.$loc().$expression().$join(n.$loc().$expression())}),n(k,"$token_map",function(t){var n=this;return o(A("Source"),"Map").$new(n.$loc(t))}),n(k,"$delimited_string_map",function(n){var i=this,s=t,a=t,r=t,s=i.$loc(n),a=s.$with(new Map([["end_pos",d(s.$begin_pos(),1)]])),r=s.$with(new Map([["begin_pos",l(s.$end_pos(),1)]]));return o(o(A("Source"),"Map"),"Collection").$new(a,r,i.$loc(n))}),n(k,"$prefix_string_map",function(n){var i=this,s=t,a=t,s=i.$loc(n),a=s.$with(new Map([["end_pos",d(s.$begin_pos(),1)]]));return o(o(A("Source"),"Map"),"Collection").$new(a,t,i.$loc(n))}),n(k,"$unquoted_map",function(n){var s=this;return o(o(A("Source"),"Map"),"Collection").$new(t,t,s.$loc(n))}),n(k,"$pair_keyword_map",function(n,s){var c=this,i=t,a=t,r=t,i=c.$loc(n),a=i.$adjust(new Map([["end_pos",-1]])),r=i.$with(new Map([["begin_pos",l(i.$end_pos(),1)]]));return[o(o(A("Source"),"Map"),"Collection").$new(t,t,a),o(o(A("Source"),"Map"),"Operator").$new(r,i.$join(s.$loc().$expression()))]}),n(k,"$pair_quoted_map",function(n,s,i){var r=this,a=t,c=t,d=t,a=r.$loc(s),c=a.$with(new Map([["begin_pos",l(a.$end_pos(),2)],["end_pos",l(a.$end_pos(),1)]])),d=a.$with(new Map([["begin_pos",l(a.$end_pos(),1)]]));return[[r.$value(s),c],o(o(A("Source"),"Map"),"Operator").$new(d,r.$loc(n).$join(i.$loc().$expression()))]}),n(k,"$expr_map",function(t){return o(A("Source"),"Map").$new(t)}),n(k,"$collection_map",function(n,i,a){var r=this,l=t;return s(n["$nil?"]())||s(a["$nil?"]())?s(i["$any?"]())?l=r.$join_exprs(i.$first(),i.$last()):c(n["$nil?"]())?l=r.$loc(n):c(a["$nil?"]())&&(l=r.$loc(a)):l=r.$loc(n).$join(r.$loc(a)),o(o(A("Source"),"Map"),"Collection").$new(r.$loc(n),r.$loc(a),l)}),n(k,"$string_map",function(n,i,a){var r=this,c=t;return s(n)&&s(r.$value(n)["$start_with?"]("<<"))?(s(i["$any?"]())?c=r.$join_exprs(i.$first(),i.$last()):c=r.$loc(a).$begin(),o(o(A("Source"),"Map"),"Heredoc").$new(r.$loc(n),c,r.$loc(a))):r.$collection_map(n,i,a)}),n(k,"$regexp_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Collection").$new(i.$loc(t),i.$loc(n),i.$loc(t).$join(s.$loc().$expression()))}),n(k,"$constant_map",function(n,i,a){var r=this,c=t;return s(n["$nil?"]())?c=r.$loc(a):c=n.$loc().$expression().$join(r.$loc(a)),o(o(A("Source"),"Map"),"Constant").$new(r.$loc(i),r.$loc(a),c)}),n(k,"$variable_map",function(t){var n=this;return o(o(A("Source"),"Map"),"Variable").$new(n.$loc(t))}),n(k,"$binary_op_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Operator").$new(i.$loc(n),i.$join_exprs(t,s))}),n(k,"$unary_op_map",function(n,i){var a=this,r=t;return i==null&&(i=t),s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(i.$loc().$expression()),o(o(A("Source"),"Map"),"Operator").$new(a.$loc(n),r)},-2),n(k,"$range_map",function(n,i,a){var r=this,c=t;return s(n)&&s(a)?c=r.$join_exprs(n,a):s(n)?c=n.$loc().$expression().$join(r.$loc(i)):s(a)&&(c=r.$loc(i).$join(a.$loc().$expression())),o(o(A("Source"),"Map"),"Operator").$new(r.$loc(i),c)}),n(k,"$arg_prefix_map",function(n,i){var a=this,r=t;return i==null&&(i=t),s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(a.$loc(i)),o(o(A("Source"),"Map"),"Variable").$new(a.$loc(i),r)},-2),n(k,"$kwarg_map",function(n,i){var a=this,c=t,l=t,r=t;return i==null&&(i=t),c=a.$loc(n),l=c.$adjust(new Map([["end_pos",-1]])),s(i)?r=a.$loc(n).$join(i.$loc().$expression()):r=a.$loc(n),o(o(A("Source"),"Map"),"Variable").$new(l,r)},-2),n(k,"$module_definition_map",function(n,i,a,r){var c=this,l=t;return s(i)&&(l=i.$loc().$expression()),o(o(A("Source"),"Map"),"Definition").$new(c.$loc(n),c.$loc(a),l,c.$loc(r))}),n(k,"$definition_map",function(n,s,i,a){var r=this;return o(o(A("Source"),"Map"),"MethodDefinition").$new(r.$loc(n),r.$loc(s),r.$loc(i),r.$loc(a),t,t)}),n(k,"$endless_definition_map",function(n,s,i,a,r){var c=this,l=t,l=r.$loc().$expression();return o(o(A("Source"),"Map"),"MethodDefinition").$new(c.$loc(n),c.$loc(s),c.$loc(i),t,c.$loc(a),l)}),n(k,"$send_map",function(n,i,a,r,c,l){var d=this,h=t,u=t;return r==null&&(r=t),c==null&&(c=[]),l==null&&(l=t),s(n)?h=n.$loc().$expression():s(a)&&(h=d.$loc(a)),s(l)?u=d.$loc(l):s(c["$any?"]())?u=c.$last().$loc().$expression():s(a)&&(u=d.$loc(a)),o(o(A("Source"),"Map"),"Send").$new(d.$loc(i),d.$loc(a),d.$loc(r),d.$loc(l),h.$join(u))},-4),n(k,"$var_send_map",function(n){return o(o(A("Source"),"Map"),"Send").$new(t,n.$loc().$expression(),t,t,n.$loc().$expression())}),n(k,"$send_binary_op_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(s),t,t,a.$join_exprs(n,i))}),n(k,"$send_unary_op_map",function(n,i){var a=this,r=t;return s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(i.$loc().$expression()),o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(n),t,t,r)}),n(k,"$index_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Index").$new(i.$loc(n),i.$loc(s),t.$loc().$expression().$join(i.$loc(s)))}),n(k,"$send_index_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(s).$join(a.$loc(i)),t,t,n.$loc().$expression().$join(a.$loc(i)))}),n(k,"$block_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Collection").$new(i.$loc(n),i.$loc(s),t.$join(i.$loc(s)))}),n(k,"$keyword_map",function(n,i,a,r){var l=this,h=t,d=t;return a=s(h=a)?h:[],s(r)?d=l.$loc(r):s(a["$any?"]())&&c(a.$last()["$nil?"]())?d=a.$last().$loc().$expression():s(a["$any?"]())&&s(u(a.$count(),1))?d=a["$[]"](-2).$loc().$expression():d=l.$loc(n),o(o(A("Source"),"Map"),"Keyword").$new(l.$loc(n),l.$loc(i),l.$loc(r),l.$loc(n).$join(d))}),n(k,"$keyword_mod_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Keyword").$new(a.$loc(s),t,t,a.$join_exprs(n,i))}),n(k,"$condition_map",function(n,i,a,r,c,l,d){var u=this,h=t;return s(d)?h=u.$loc(d):s(l)&&s(l.$loc().$expression())?h=l.$loc().$expression():s(u.$loc(c))?h=u.$loc(c):s(r)&&s(r.$loc().$expression())?h=r.$loc().$expression():s(u.$loc(a))?h=u.$loc(a):h=i.$loc().$expression(),o(o(A("Source"),"Map"),"Condition").$new(u.$loc(n),u.$loc(a),u.$loc(c),u.$loc(d),u.$loc(n).$join(h))}),n(k,"$ternary_map",function(t,n,s,i,a){var r=this;return o(o(A("Source"),"Map"),"Ternary").$new(r.$loc(n),r.$loc(i),r.$join_exprs(t,a))}),n(k,"$for_map",function(t,n,s,i){var a=this;return o(o(A("Source"),"Map"),"For").$new(a.$loc(t),a.$loc(n),a.$loc(s),a.$loc(i),a.$loc(t).$join(a.$loc(i)))}),n(k,"$rescue_body_map",function(n,i,a,r,c,l){var u=this,d=t;return s(l)&&(d=l.$loc().$expression()),s(d["$nil?"]())&&s(c)&&(d=u.$loc(c)),s(d["$nil?"]())&&s(r)&&(d=r.$loc().$expression()),s(d["$nil?"]())&&s(i)&&(d=i.$loc().$expression()),s(d["$nil?"]())&&(d=u.$loc(n)),o(o(A("Source"),"Map"),"RescueBody").$new(u.$loc(n),u.$loc(a),u.$loc(c),u.$loc(n).$join(d))}),n(k,"$eh_keyword_map",function(n,i,a,r,l){var d=this,h=t,u=t;return s(n["$nil?"]())?s(i["$nil?"]())?h=a.$first().$loc().$expression():h=d.$loc(i):h=n.$loc().$expression(),s(r)?s(l["$nil?"]())?u=d.$loc(r):u=l.$loc().$expression():c(a.$last()["$nil?"]())?u=a.$last().$loc().$expression():u=d.$loc(i),o(o(A("Source"),"Map"),"Condition").$new(d.$loc(i),t,d.$loc(r),t,h.$join(u))}),n(k,"$guard_map",function(n,s){var r=this,i=t,a=t,i=r.$loc(n),a=s.$loc().$expression();return o(o(A("Source"),"Map"),"Keyword").$new(i,t,t,i.$join(a))}),n(k,"$static_string",function(n){try{var o=w("return"),i=this;return r(n,"map",[],function e(n){var a=e.$$s==null?this:e.$$s,i=t;switch(n==null&&(n=t),n.$type().valueOf()){case"str":return n.$children()["$[]"](0);case"begin":if(s(i=a.$static_string(n.$children())))return i;o.$throw(t,e.$$is_lambda);break;default:o.$throw(t,e.$$is_lambda)}},{$$s:i,$$ret:o}).$join()}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),n(k,"$static_regexp",function(n,i){var r,l=this,a=t,c=t;return h.VERBOSE==null&&(h.VERBOSE=t),a=l.$static_string(n),s(a["$nil?"]())?t:(a=s(i.$children()["$include?"]("u"))?a.$encode(o(A("Encoding"),"UTF_8")):s(i.$children()["$include?"]("e"))?a.$encode(o(A("Encoding"),"EUC_JP")):s(i.$children()["$include?"]("s"))?a.$encode(o(A("Encoding"),"WINDOWS_31J")):s(i.$children()["$include?"]("n"))?a.$encode(o(A("Encoding"),"BINARY")):a,function(){try{return r=[h.VERBOSE,t],c=r[0],h.VERBOSE=r[1],r,A("Regexp").$new(a,s(i.$children()["$include?"]("x"))?o(A("Regexp"),"EXTENDED"):t)}finally{h.VERBOSE=c}}())}),n(k,"$static_regexp_node",function(n){var o,a=this,c=t,l=t;return i(n.$type(),"regexp")?s(g(a.parser.$version(),33))&&s(r(n.$children()["$[]"](f(0,-2,!1)),"any?",[],function(n){return n==null&&(n=t),n.$type()["$!="]("str")}))?t:(o=[n.$children()["$[]"](f(0,-2,!1)),n.$children()["$[]"](-1)],c=o[0],l=o[1],o,a.$static_regexp(c,l)):t}),n(k,"$collapse_string_parts?",function(n){var o=t;return s(o=n["$one?"]())?["str","dstr"]["$include?"](n.$first().$type()):o}),n(k,"$value",function(t){return t["$[]"](0)}),n(k,"$string_value",function(n){var o=this;return s(n["$[]"](0)["$valid_encoding?"]())||o.$diagnostic("error","invalid_encoding",t,n["$[]"](1)),n["$[]"](0)}),n(k,"$loc",function(n){return s(n)&&s(n["$[]"](0))?n["$[]"](1):t}),n(k,"$diagnostic",function(n,s,o,a,r){var c=this;return r==null&&(r=[]),c.parser.$diagnostics().$process(A("Diagnostic").$new(n,s,o,a,r)),i(n,"error")?c.parser.$send("yyerror"):t},-5),n(k,"$validate_definee",function(n){var s=this;switch(n.$type().valueOf()){case"int":case"str":case"dstr":case"sym":case"dsym":case"regexp":case"array":case"hash":return s.$diagnostic("error","singleton_literal",t,n.$loc().$expression()),!1;default:return!0}}),n(k,"$rewrite_hash_args_to_kwargs",function(n){var o,a=this;return s(n["$any?"]())&&s(a["$kwargs?"](n.$last()))?(o=[l(n.$length(),1),n["$[]"](l(n.$length(),1)).$updated("kwargs")],r(n,"[]=",o),o[o.length-1]):s(u(n.$length(),1))&&i(n.$last().$type(),"block_pass")&&s(a["$kwargs?"](n["$[]"](l(n.$length(),2))))?(o=[l(n.$length(),2),n["$[]"](l(n.$length(),2)).$updated("kwargs")],r(n,"[]=",o),o[o.length-1]):t}),n(k,"$kwargs?",function(n){var o=t,i=t;return s(o=s(i=n.$type()["$=="]("hash"))?n.$loc().$begin()["$nil?"]():i)?n.$loc().$end()["$nil?"]():o})}(S("Builders"),null,k)}(v[0],v)},Opal.modules["parser/context"]=function(e){var s=e.module,o=e.klass,i=e.const_set,t=e.def,a=e.send,r=e.to_a,c=e.truthy,n=[],l=e.nil;return e.add_stubs("reset,attr_accessor,in_block,in_lambda"),function(n,d){var h=s(n,"Parser"),u=[h].concat(d);return function(n,s,d){var u=o(n,s,"Context"),h=[u].concat(d),m=e.$r(h);return i(h[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda","cant_return"]),t(u,"$initialize",function(){var t=this;return t.$reset()}),t(u,"$reset",function(){var t=this;return t.in_defined=!1,t.in_kwarg=!1,t.in_argdef=!1,t.in_def=!1,t.in_class=!1,t.in_block=!1,t.in_lambda=!1,t.cant_return=!1}),a(u,"attr_accessor",r(m("FLAGS"))),t(u,"$in_dynamic_block?",function(){var t=this,n=l;return c(n=t.$in_block())?n:t.$in_lambda()})}(u[0],null,u)}(n[0],n)},Opal.modules["parser/max_numparam_stack"]=function(e){var o=e.module,i=e.klass,a=e.const_set,t=e.def,r=e.truthy,c=e.rb_gt,l=e.ensure_kwargs,d=e.get_kwarg,u=e.send,n=[],s=e.nil;return e.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]="),function(n,h){var f=o(n,"Parser"),m=[f].concat(h);return function(n,o,h){var m=i(n,o,"MaxNumparamStack"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.stack=s,m.$attr_reader("stack"),a(f[0],"ORDINARY_PARAMS",-1),t(m,"$initialize",function(){var t=this;return t.stack=[]}),t(m,"$empty?",function(){var t=this;return t.stack.$size()["$=="](0)}),t(m,"$has_ordinary_params!",function(){var t=this;return t.$set(p("ORDINARY_PARAMS"))}),t(m,"$has_ordinary_params?",function(){var t=this;return t.$top()["$=="](p("ORDINARY_PARAMS"))}),t(m,"$has_numparams?",function(){var t=this,n=s;return r(n=t.$top())?c(t.$top(),0):n}),t(m,"$register",function(t){var n=this;return n.$set([n.$top(),t].$max())}),t(m,"$top",function(){var t=this;return t.stack.$last()["$[]"]("value")}),t(m,"$push",function(t){var n,s=this;return t=l(t),n=d(t,"static"),s.stack.$push(new Map([["value",0],["static",n]]))}),t(m,"$pop",function(){var t=this;return t.stack.$pop()["$[]"]("value")}),m.$private(),t(m,"$set",function(t){var n,s=this;return n=["value",t],u(s.stack.$last(),"[]=",n),n[n.length-1]})}(m[0],null,m)}(n[0],n)},Opal.modules["parser/current_arg_stack"]=function(e){var s=e.module,o=e.klass,t=e.def,i=e.rb_minus,a=e.send,n=[],r=e.nil;return e.add_stubs("attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last"),function(e,n){var c=s(e,"Parser"),l=[c].concat(n);return function(e,n){var s=o(e,n,"CurrentArgStack"),c=s.$$prototype;return c.stack=r,s.$attr_reader("stack"),t(s,"$initialize",function(){var t=this;return t.stack=[],t.$freeze()}),t(s,"$empty?",function(){var t=this;return t.stack.$size()["$=="](0)}),t(s,"$push",function(t){var n=this;return n.stack["$<<"](t)}),t(s,"$set",function(t){var n,s=this;return n=[i(s.stack.$length(),1),t],a(s.stack,"[]=",n),n[n.length-1]}),t(s,"$pop",function(){var t=this;return t.stack.$pop()}),t(s,"$reset",function(){var t=this;return t.stack.$clear()}),t(s,"$top",function(){var t=this;return t.stack.$last()})}(l[0],null)}(n[0],n)},Opal.modules["parser/variables_stack"]=function(e){var s=e.module,o=e.klass,t=e.def,n=[],i=e.nil;return e.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function(n,a){var c=s(n,"Parser"),r=[c].concat(a);return function(n,s,a){var r=o(n,s,"VariablesStack"),c=[r].concat(a),l=e.$r(c),d=r.$$prototype;return d.stack=i,t(r,"$initialize",function(){var t=this;return t.stack=[],t.$push()}),t(r,"$empty?",function(){var t=this;return t.stack["$empty?"]()}),t(r,"$push",function(){var t=this;return t.stack["$<<"](l("Set").$new())}),t(r,"$pop",function(){var t=this;return t.stack.$pop()}),t(r,"$reset",function(){var t=this;return t.stack.$clear()}),t(r,"$declare",function(t){var n=this;return n.stack.$last()["$<<"](t.$to_sym())}),t(r,"$declared?",function(t){var n=this;return n.stack.$last()["$include?"](t.$to_sym())})}(r[0],null,r)}(n[0],n)},Opal.modules["parser/base"]=function(e){var h=e.module,f=e.klass,o=e.defs,i=e.send,c=e.gvars,l=e.eqeq,a=e.truthy,n=e.def,m=e.not,d=e.eqeqeq,r=e.to_ary,u=[],t=e.nil,s=e.$$$;return e.add_stubs("default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,lambda,puts,render,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(u,p){var v=h(u,"Parser"),g=[v].concat(p),b=e.$r(g);return function(u,h,p){var g=f(u,h,"Base"),j=[g].concat(p),v=e.$r(j),b=g.$$prototype;return b.lexer=b.diagnostics=b.static_env=b.context=b.builder=b.current_arg_stack=b.pattern_variables=b.pattern_hash_keys=t,o(g,"$parse",function(n,s,o){var a=this,i=t,r=t;return s==null&&(s="(string)"),o==null&&(o=1),i=a.$default_parser(),r=a.$setup_source_buffer(s,o,n,i.$default_encoding()),i.$parse(r)},-2),o(g,"$parse_with_comments",function(n,s,o){var a=this,i=t,r=t;return s==null&&(s="(string)"),o==null&&(o=1),i=a.$default_parser(),r=a.$setup_source_buffer(s,o,n,i.$default_encoding()),i.$parse_with_comments(r)},-2),o(g,"$parse_file",function(t){var n=this;return n.$parse(v("File").$read(t),t)}),o(g,"$parse_file_with_comments",function(t){var n=this;return n.$parse_with_comments(v("File").$read(t),t)}),o(g,"$default_parser",function(){var s=this,n=t,n=s.$new();return n.$diagnostics()["$all_errors_are_fatal="](!0),n.$diagnostics()["$ignore_warnings="](!0),n.$diagnostics()["$consumer="](i(s,"lambda",[],function(n){return c.stderr==null&&(c.stderr=t),n==null&&(n=t),c.stderr.$puts(n.$render())})),n}),o(g,"$setup_source_buffer",function(n,o,i,a){var c=this,r=t;return i=i.$dup().$force_encoding(a),r=s(v("Source"),"Buffer").$new(n,o),l(c.$name(),"Parser::Ruby18")?r["$raw_source="](i):r["$source="](i),r}),g.$private_class_method("setup_source_buffer"),g.$attr_reader("lexer"),g.$attr_reader("diagnostics"),g.$attr_reader("builder"),g.$attr_reader("static_env"),g.$attr_reader("source_buffer"),g.$attr_reader("context"),g.$attr_reader("max_numparam_stack"),g.$attr_reader("current_arg_stack"),g.$attr_reader("pattern_variables"),g.$attr_reader("pattern_hash_keys"),n(g,"$initialize",function(n){var o=this;return n==null&&(n=s(s(v("Parser"),"Builders"),"Default").$new()),o.diagnostics=s(v("Diagnostic"),"Engine").$new(),o.static_env=v("StaticEnvironment").$new(),o.context=v("Context").$new(),o.max_numparam_stack=v("MaxNumparamStack").$new(),o.current_arg_stack=v("CurrentArgStack").$new(),o.pattern_variables=v("VariablesStack").$new(),o.pattern_hash_keys=v("VariablesStack").$new(),o.lexer=v("Lexer").$new(o.$version()),o.lexer["$diagnostics="](o.diagnostics),o.lexer["$static_env="](o.static_env),o.lexer["$context="](o.context),o.builder=n,o.builder["$parser="](o),o.last_token=t,a(s(o.$class(),"Racc_debug_parser"))&&a(v("ENV")["$[]"]("RACC_DEBUG"))&&(o.yydebug=!0),o.$reset()},-1),n(g,"$reset",function(){var n=this;return n.source_buffer=t,n.lexer.$reset(),n.static_env.$reset(),n.context.$reset(),n.current_arg_stack.$reset(),n.pattern_variables.$reset(),n.pattern_hash_keys.$reset(),n}),n(g,"$parse",function(n){var o,s=this,r=t;return function(){try{return s.lexer["$source_buffer="](n),s.source_buffer=n,a(r=s.$do_parse())?r:t}finally{s.source_buffer=t,(o=[t],i(s.lexer,"source_buffer=",o),o[o.length-1])}}()}),n(g,"$parse_with_comments",function(n){var s,o=this;return function(){try{return o.lexer["$comments="]([]),[o.$parse(n),o.lexer.$comments()]}finally{s=[t],i(o.lexer,"comments=",s),s[s.length-1]}}()}),n(g,"$tokenize",function(o,a){var r,c=this,l=t;return a==null&&(a=!1),function(){try{c.lexer["$tokens="]([]),c.lexer["$comments="]([]);try{l=c.$parse(o)}catch(t){if(e.rescue(t,[s(v("Parser"),"SyntaxError")]))try{m(a)&&c.$raise()}finally{e.pop_exception(t)}else throw t}return[l,c.lexer.$comments(),c.lexer.$tokens()]}finally{(r=[t],i(c.lexer,"tokens=",r),r[r.length-1]),(r=[t],i(c.lexer,"comments=",r),r[r.length-1])}}()},-2),g.$private(),n(g,"$next_token",function(){var s=this,n=t,n=s.lexer.$advance();return s.last_token=n,n}),n(g,"$check_kwarg_name",function(n){var o=this,s=t;return d(/^[a-z_]/,s=n["$[]"](0))?t:d(/^[A-Z]/,s)?o.$diagnostic("error","argument_const",t,n):t}),n(g,"$diagnostic",function(n,s,o,a,c){var d,u,h=this,m=t,f=t,p=t;return c==null&&(c=[]),u=a,d=r(u),m=d[0]==null?t:d[0],f=d[1]==null?t:d[1],u,p=i(c,"map",[],function(n){var s,o,i=t;return n==null&&(n=t),o=n,s=r(o),m=s[0]==null?t:s[0],i=s[1]==null?t:s[1],o,i}),h.diagnostics.$process(v("Diagnostic").$new(n,s,o,f,p)),l(n,"error")?h.$yyerror():t},-5),n(g,"$on_error",function(n,s){var c=this,l=t,u=t,d=t,l=c.$token_to_str(n),a=s,i=r(a);return u=i[0]==null?t:i[0],d=i[1]==null?t:i[1],a,c.diagnostics.$process(v("Diagnostic").$new("error","unexpected_token",new Map([["token",l]]),d))})}(g[0],s(b("Racc"),"Parser"),g)}(u[0],u)},Opal.modules["parser/rewriter"]=function(e){var i=e.module,a=e.klass,t=e.def,r=e.const_set,c=e.slice,l=e.send2,d=e.find_super,u=e.to_a,s=[],o=e.nil,n=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation="),function(s,h){var f=i(s,"Parser"),m=[f].concat(h),p=e.$r(m);return function(s,i,h){var m=a(s,i,"Rewriter"),p=[m].concat(h),f=e.$r(p),g=m.$$prototype;return g.source_rewriter=o,t(m,"$rewrite",function(t,s){var o=this;return o.source_rewriter=n(f("Source"),"Rewriter").$new(t),o.$process(s),o.source_rewriter.$process()}),t(m,"$assignment?",function(t){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](t.$type())}),t(m,"$remove",function(t){var n=this;return n.source_rewriter.$remove(t)}),t(m,"$wrap",function(t,n,s){var o=this;return o.source_rewriter.$wrap(t,n,s)}),t(m,"$insert_before",function(t,n){var s=this;return s.source_rewriter.$insert_before(t,n)}),t(m,"$insert_after",function(t,n){var s=this;return s.source_rewriter.$insert_after(t,n)}),t(m,"$replace",function(t,n){var s=this;return s.source_rewriter.$replace(t,n)}),r(p[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join(` +`).$freeze()),m.$extend(f("Deprecation")),t(m,"$initialize",function e(){var i,a,r=e.$$p||o,s=this;return e.$$p=null,i=c(arguments),a=i,s.$class().$warn_of_deprecation(),n(f("Source"),"Rewriter")["$warned_of_deprecation="](!0),l(s,d(s,"initialize",e,!1,!0),"initialize",u(a),r)},-1)}(m[0],n(n(p("Parser"),"AST"),"Processor"),m)}(s[0],s)},Opal.modules["parser/tree_rewriter"]=function(e){var o=e.module,i=e.klass,a=e.ensure_kwargs,r=e.kwrestargs,t=e.def,s=[],c=e.nil,n=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function(s,l){var u=o(s,"Parser"),d=[u].concat(l),h=e.$r(d);return function(s,o,l){var d=i(s,o,"TreeRewriter"),u=[d].concat(l),h=e.$r(u),m=d.$$prototype;return m.source_rewriter=c,t(d,"$rewrite",function(s,o,i){var l,c=this;return i=a(i),l=r(i,{}),c.source_rewriter=n(n(h("Parser"),"Source"),"TreeRewriter").$new(s,e.to_hash(l)),c.$process(o),c.source_rewriter.$process()},-3),t(d,"$assignment?",function(t){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](t.$type())}),t(d,"$remove",function(t){var n=this;return n.source_rewriter.$remove(t)}),t(d,"$wrap",function(t,n,s){var o=this;return o.source_rewriter.$wrap(t,n,s)}),t(d,"$insert_before",function(t,n){var s=this;return s.source_rewriter.$insert_before(t,n)}),t(d,"$insert_after",function(t,n){var s=this;return s.source_rewriter.$insert_after(t,n)}),t(d,"$replace",function(t,n){var s=this;return s.source_rewriter.$replace(t,n)})}(d[0],n(n(h("Parser"),"AST"),"Processor"),d)}(s[0],s)},Opal.modules.parser=function(e){var i=e.truthy,n=e.module,a=e.eqeq,t=e.top,o=[],s=e.$r(o),c=e.nil,r=e.$$$;return e.add_stubs("=~,raise,require,=="),i(s("RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(t.$require("./parser.rb/../parser/version"),t.$raise(s("LoadError"),"parser v"+r(s("Parser"),"VERSION")+" cannot run on Ruby "+s("RUBY_VERSION")+`. +Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem. +`)),t.$require("set"),t.$require("racc/parser"),t.$require("ast"),function(t,s){var o=n(t,"Parser"),i=[o].concat(s),r=e.$r(i);return o.$require("./parser.rb/../parser/version"),o.$require("./parser.rb/../parser/messages"),o.$require("./parser.rb/../parser/deprecation"),function(e){var t=n(e,"AST");return t.$require("./parser.rb/../parser/ast/node"),t.$require("./parser.rb/../parser/ast/processor"),t.$require("./parser.rb/../parser/meta")}(i[0]),function(e){var t=n(e,"Source");return t.$require("./parser.rb/../parser/source/buffer"),t.$require("./parser.rb/../parser/source/range"),t.$require("./parser.rb/../parser/source/comment"),t.$require("./parser.rb/../parser/source/comment/associator"),t.$require("./parser.rb/../parser/source/rewriter"),t.$require("./parser.rb/../parser/source/rewriter/action"),t.$require("./parser.rb/../parser/source/tree_rewriter"),t.$require("./parser.rb/../parser/source/tree_rewriter/action"),t.$require("./parser.rb/../parser/source/map"),t.$require("./parser.rb/../parser/source/map/operator"),t.$require("./parser.rb/../parser/source/map/collection"),t.$require("./parser.rb/../parser/source/map/constant"),t.$require("./parser.rb/../parser/source/map/variable"),t.$require("./parser.rb/../parser/source/map/keyword"),t.$require("./parser.rb/../parser/source/map/definition"),t.$require("./parser.rb/../parser/source/map/method_definition"),t.$require("./parser.rb/../parser/source/map/send"),t.$require("./parser.rb/../parser/source/map/index"),t.$require("./parser.rb/../parser/source/map/condition"),t.$require("./parser.rb/../parser/source/map/ternary"),t.$require("./parser.rb/../parser/source/map/for"),t.$require("./parser.rb/../parser/source/map/rescue_body"),t.$require("./parser.rb/../parser/source/map/heredoc"),t.$require("./parser.rb/../parser/source/map/objc_kwarg")}(i[0]),o.$require("./parser.rb/../parser/syntax_error"),o.$require("./parser.rb/../parser/clobbering_error"),o.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),o.$require("./parser.rb/../parser/diagnostic"),o.$require("./parser.rb/../parser/diagnostic/engine"),o.$require("./parser.rb/../parser/static_environment"),a(r("RUBY_ENGINE"),"truffleruby")?o.$require("./parser.rb/../parser/lexer-F0"):o.$require("./parser.rb/../parser/lexer-F1"),o.$require("./parser.rb/../parser/lexer-strings"),o.$require("./parser.rb/../parser/lexer/literal"),o.$require("./parser.rb/../parser/lexer/stack_state"),o.$require("./parser.rb/../parser/lexer/dedenter"),function(e){var t=n(e,"Builders");return t.$require("./parser.rb/../parser/builders/default")}(i[0]),o.$require("./parser.rb/../parser/context"),o.$require("./parser.rb/../parser/max_numparam_stack"),o.$require("./parser.rb/../parser/current_arg_stack"),o.$require("./parser.rb/../parser/variables_stack"),o.$require("./parser.rb/../parser/base"),o.$require("./parser.rb/../parser/rewriter"),o.$require("./parser.rb/../parser/tree_rewriter")}(o[0],o)},Opal.modules["parser/ruby32"]=function(e){var g=e.module,b=e.klass,d=e.return_val,t=e.def,i=e.truthy,a=e.not,r=e.send,j=e.rb_gt,p=e.thrower,v=e.hash_rehash,l=e.const_set,o=e.to_a,s=e.to_ary,u=e.eqeq,c=e.slice,f=e.top,m=[],n=e.nil,h=e.$$$;return e.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,make_shareable,compstmt,<<,preexe,nil?,empty?,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?,declared_anonymous_restarg?,forwarded_restarg,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,declare_anonymous_kwrestarg,optarg,declare_anonymous_restarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,declared_anonymous_kwrestarg?,forwarded_kwrestarg,yyerrok"),f.$require("racc/parser.rb"),f.$require("parser/ruby32.rb/../../parser"),function(m,f){var _=g(m,"Parser"),y=[_].concat(f),w=e.$r(y);return function(m,f,g){var P,H,y=b(m,f,"Ruby32"),O=[y].concat(g),w=e.$r(O),F=n,E=n,k=n,A=n,S=n,x=n,C=n,T=n,z=n,D=n,N=n,L=n,R=n,M=n,_=y.$$prototype;return _.static_env=_.lexer=_.max_numparam_stack=_.context=_.current_arg_stack=_.builder=_.pattern_variables=_.pattern_hash_keys=_.last_token=n,t(y,"$version",d(32)),t(y,"$default_encoding",function(){return h(w("Encoding"),"UTF_8")}),t(y,"$endless_method_name",function(t){var s=this;return a(["===","==","!=","<=",">="]["$include?"](t["$[]"](0)))&&i(t["$[]"](0)["$end_with?"]("="))?s.$diagnostic("error","endless_setter",n,t):n}),t(y,"$local_push",function(){var t=this;return t.static_env.$extend_static(),t.lexer.$cmdarg().$push(!1),t.lexer.$cond().$push(!1),t.max_numparam_stack.$push(new Map([["static",!0]]))}),t(y,"$local_pop",function(){var t=this;return t.static_env.$unextend(),t.lexer.$cmdarg().$pop(),t.lexer.$cond().$pop(),t.max_numparam_stack.$pop()}),t(y,"$try_declare_numparam",function(t){var s=this,o=n,c=n,l=n,o=t.$children()["$[]"](0);return!!(i(o["$=~"](/^_[1-9]$/))&&a(s.$static_env()["$declared?"](o))&&i(s.context["$in_dynamic_block?"]()))&&(c=t.$loc().$expression(),i(s.$max_numparam_stack()["$has_ordinary_params?"]())&&s.$diagnostic("error","ordinary_param_defined",n,[n,c]),l=s.$max_numparam_stack().$stack().$dup(),l.$pop(),function(){try{var e=p("break");return r(l,"reverse_each",[],function t(s){var a=t.$$s==null?this:t.$$s,o=n;if(s==null&&(s=n),i(s["$[]"]("static")))e.$throw(n,t.$$is_lambda);else return o=j(s["$[]"]("value"),0),i(o)?a.$diagnostic("error","numparam_used_in_outer_scope",n,[n,c]):n},{$$s:s})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s.$static_env().$declare(o),s.$max_numparam_stack().$register(o["$[]"](1).$to_i()),!0)}),F=e.large_array_unpack("-614,222,223,222,223,234,-116,-614,-614,-614,928,623,-614,-614,-614,228,-614,312,240,664,127,265,227,623,-614,126,-614,-614,-614,222,223,225,699,666,-117,-124,-614,-614,623,-614,-614,-614,-614,-614,623,623,623,-116,-117,-729,700,-123,895,262,-124,928,927,264,263,241,312,-740,836,-626,-119,-121,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,229,307,-614,-614,-614,663,-614,-614,831,241,-614,1000,-118,-614,-614,241,-614,241,-614,665,-614,-511,-614,-614,311,-614,-614,-614,-614,-614,-123,-614,-615,-614,-119,-107,312,222,223,-615,-615,-615,-116,241,-615,-615,-615,-614,-615,127,-614,-614,-614,-614,126,-614,-615,-614,-615,-615,-615,127,-614,-108,-115,-614,126,311,-615,-615,-121,-615,-615,-615,-615,-615,127,-120,-118,989,-114,126,127,127,127,-116,-117,126,126,126,-116,-117,-124,-110,-112,-120,-122,-124,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,127,-122,-615,-615,-615,126,-615,-615,999,-109,-615,311,3,-615,-615,-729,-615,928,-615,127,-615,651,-615,-615,126,-615,-615,-615,-615,-615,-322,-615,241,-615,123,-627,-123,-322,-322,-322,-119,-123,-715,-322,-322,-119,-322,-615,-715,-716,-615,-615,-615,-615,-322,-615,228,-615,312,234,241,651,-615,305,136,-615,-322,-322,-110,-322,-322,-322,-322,-322,104,105,-121,241,-716,219,614,-121,-112,-120,-118,653,652,525,-120,-118,104,105,-111,-113,-117,862,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,220,228,-322,-322,-322,-740,690,-322,305,-122,-322,229,307,-322,-122,653,652,649,-322,221,-322,651,-322,-322,-110,-322,-322,-322,-322,-322,238,-322,-720,-322,699,311,-124,603,-112,-720,-720,-720,106,107,-729,-720,-720,-322,-720,127,-322,-322,951,-113,126,-322,-720,-720,106,107,-109,922,-322,224,-110,-122,229,-110,-720,-720,923,-720,-720,-720,-720,-720,-102,-614,-112,-110,241,-112,-111,301,-614,653,652,651,-88,-124,685,651,127,-112,234,864,-123,126,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,362,757,-720,-720,-720,-358,691,-720,-119,363,-720,502,-358,-720,-109,686,651,-121,-720,1034,-720,-358,-720,-720,651,-720,-720,-720,-720,-720,-614,-720,-720,-720,241,-715,-111,-119,-740,653,652,649,651,653,652,649,238,-720,651,503,-720,-720,-715,-111,-109,-720,803,-109,651,-720,1062,1055,-720,234,432,-120,-720,-720,-720,-109,-358,-720,-720,-720,-121,-720,-111,127,-118,-111,653,652,126,-720,-720,-720,-720,-720,653,652,654,-111,-716,-115,473,-720,-720,1062,-720,-720,-720,-720,-720,-633,-614,-124,653,652,656,651,630,-614,653,652,658,513,-715,878,836,-740,-614,524,653,652,662,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-715,526,-720,-720,-720,-615,924,-720,222,223,-720,636,-615,-720,-720,637,-720,-716,-720,127,-720,-615,-720,-720,126,-720,-720,-720,-720,-720,-614,-720,-720,-720,653,652,667,-118,228,-615,-716,-622,-621,282,283,522,-615,-720,-622,-621,-720,-720,-720,-720,523,-720,-623,-720,-626,-322,222,223,-720,-623,-627,-120,-322,-322,-322,527,-615,-322,-322,-322,-620,-322,895,240,630,281,280,-620,-617,-322,561,-322,-322,-322,429,-617,510,509,573,431,430,-322,-322,603,-322,-322,-322,-322,-322,229,-615,-107,-622,-621,-618,-619,636,-108,575,934,959,-618,-619,-116,930,577,636,-623,931,-117,959,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-620,757,-322,-322,-322,-114,925,-322,-617,685,-322,502,241,-322,-322,617,-322,-123,-322,136,-322,241,-322,-322,617,-322,-322,-322,-322,-322,-322,-322,-87,-322,-618,-619,90,-322,-322,-322,952,953,241,-322,-322,617,-322,-322,91,503,-322,-322,-322,-322,-322,-322,-110,-322,92,984,895,1055,-322,686,241,-122,-322,-322,-119,-322,-322,-322,-322,-322,241,1147,1148,1194,494,-624,491,490,489,499,492,588,-624,878,494,589,491,490,489,502,492,-624,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-112,596,-322,-322,-322,497,690,-322,984,895,-322,316,-121,-322,507,506,510,509,-322,241,-322,503,-322,-322,-109,-322,-322,-322,-322,-322,234,-322,-720,-322,-624,234,-118,307,600,-720,-720,-720,606,265,609,-720,-720,-322,-720,241,-322,-322,618,-322,619,-322,-720,-720,577,630,421,488,-322,634,635,-122,643,668,-720,-720,671,-720,-720,-720,-720,-720,672,-293,674,675,494,-625,491,490,489,499,492,956,-625,109,108,679,241,110,683,502,684,-625,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,307,697,-720,-720,-720,497,691,-720,698,241,-720,702,958,-720,507,506,510,509,-720,705,-720,503,-720,-720,706,-720,-720,-720,-720,-720,499,-720,-720,-720,-625,708,228,710,-387,722,502,-313,228,595,723,727,729,-720,-313,605,-720,-720,593,-720,735,-720,228,-313,523,736,265,488,-720,633,265,-120,7,81,82,83,11,65,631,510,509,71,72,265,503,265,75,-720,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,229,241,23,791,241,-313,229,241,10,53,9,12,119,118,120,111,64,109,108,112,229,110,121,122,228,104,105,49,50,48,228,639,-720,241,-323,-102,806,678,241,-720,641,-323,609,817,-715,822,676,241,-720,45,-323,824,38,827,832,66,67,-323,833,68,837,40,861,865,-323,52,866,-720,-294,265,879,856,857,-323,24,858,121,122,561,102,90,93,94,561,95,97,96,98,891,229,895,913,91,101,916,229,917,-720,241,-323,85,262,92,106,107,264,263,46,47,334,81,82,83,11,65,920,241,929,71,72,946,947,-323,75,948,73,74,76,35,36,79,80,257,961,963,301,969,84,33,32,115,114,116,117,971,1157,23,491,490,489,973,492,10,53,336,12,119,118,120,111,64,109,108,112,575,110,121,122,577,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,817,241,275,276,-322,45,307,256,338,-716,307,66,67,-322,817,68,265,40,262,895,268,52,264,263,986,260,261,281,280,266,24,267,987,241,241,102,90,93,94,228,95,97,96,98,997,241,1162,-296,91,101,241,279,1008,1012,-293,1160,85,1016,92,106,107,705,-322,46,47,7,81,82,83,11,65,700,1019,1021,71,72,1023,1025,1025,75,241,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,777,241,23,241,229,1053,1056,680,10,53,9,12,119,118,120,111,64,109,108,112,928,110,121,122,971,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,1068,241,275,276,-322,45,817,1085,38,-716,1087,66,67,-322,1092,68,1093,40,262,1098,268,52,264,263,1099,260,261,281,280,266,24,267,1100,-297,1113,102,90,93,94,228,95,97,96,98,1114,1115,1185,241,91,101,241,279,241,-265,241,641,85,241,92,106,107,241,-322,46,47,334,81,82,83,11,65,928,1122,1123,71,72,241,1127,241,75,1130,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,705,1133,23,1136,229,1138,1140,680,10,53,336,12,119,118,120,111,64,109,108,112,241,110,121,122,-387,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,228,258,259,1152,1163,275,276,1185,45,1164,1025,38,499,1025,66,67,641,1025,68,1183,40,262,502,268,52,264,263,1186,260,261,281,280,266,24,267,1191,1192,697,102,90,93,94,1114,95,97,96,98,1202,1202,705,1204,91,101,1206,279,510,509,1208,1210,85,503,92,106,107,1210,229,46,47,334,81,82,83,11,65,241,1025,-716,71,72,-715,1227,1210,75,1210,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,1210,1210,23,,,,,892,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,921,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,1157,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,494,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,494,,491,490,489,,492,,715,,494,,491,490,489,,492,719,,45,,,38,,,66,67,,,68,494,40,491,490,489,52,492,715,,,,,,,24,,719,715,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,715,,,85,,92,106,107,,719,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,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,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,246,,,254,,,66,67,,,68,,,262,,268,52,264,263,,260,261,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-443,,46,47,,,,-443,-443,-443,,,-443,-443,-443,265,-443,,,,,,,,-443,-443,-443,-443,,,,275,276,,,,-443,-443,,-443,-443,-443,-443,-443,,,,262,,268,,264,263,,260,261,,,,,,,,,,,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,,,-443,-443,-443,,,-443,,307,-443,,,-443,-443,,-443,,-443,,-443,,-443,-443,,-443,-443,-443,-443,-443,-329,-443,-443,-443,,,,-329,-329,-329,,,-329,-329,-329,,-329,-443,265,,-443,-443,,-443,-329,-443,-329,-329,,,,,-443,,275,276,-329,-329,,-329,-329,-329,-329,-329,,,,,,,262,,,,264,263,,260,261,,,,,,,,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,,,-329,-329,-329,,,-329,,316,-329,,,-329,-329,,-329,,-329,,-329,,-329,-329,,-329,-329,-329,-329,-329,,-329,,-329,,,,,,,,,,,,,,-329,,,-329,-329,,-329,,-329,81,82,83,,65,,-329,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-314,,46,47,,,,-314,-314,-314,,,-314,-314,-314,,-314,,,,,,,,-314,,-314,-314,-314,,,,115,114,116,117,-314,-314,,-314,-314,-314,-314,-314,,,,,119,118,120,,,,,,,,,,,104,105,,,359,-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,,102,90,93,94,,95,97,96,98,,,,-314,91,101,-314,-314,-314,-314,,-314,85,-314,92,106,107,,-314,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,127,,,,,126,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,,-275,,,,,,,,-275,-275,-275,-275,,,,,,,,,-275,-275,,-275,-275,-275,-275,-275,,,,,,,,,,,,,,,,,,,,,,,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,,,-275,-275,-275,,,-275,,307,-275,,,-275,-275,,-275,,-275,,-275,,-275,-275,,-275,-275,-275,-275,-275,,-275,-275,-275,494,,491,490,489,499,492,,,,,,,-275,,502,-275,-275,-721,-275,,-275,,,,-721,-721,-721,-275,,-721,-721,-721,,-721,,,497,,,,,-721,-721,-721,-721,-721,,510,509,,,,503,-721,-721,,-721,-721,-721,-721,-721,,,,,,,,,,,,,,,,,,,,,,,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,,,-721,-721,-721,,,-721,,,-721,,,-721,-721,,-721,,-721,,-721,,-721,-721,,-721,-721,-721,-721,-721,,-721,-721,-721,,,,,,,,,,,,,,-721,,,-721,-721,-721,-721,,-721,-722,-721,,,,,-721,-722,-722,-722,,,-722,-722,-722,,-722,,,,,,,,-722,-722,-722,-722,-722,,,,,,,,-722,-722,,-722,-722,-722,-722,-722,,,,,,,,,,,,,,,,,,,,,,,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,,,-722,-722,-722,,,-722,,,-722,,,-722,-722,,-722,,-722,,-722,,-722,-722,,-722,-722,-722,-722,-722,,-722,-722,-722,,,,,,,,,,,,,,-722,,,-722,-722,-722,-722,,-722,,-722,,81,82,83,-722,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,494,-275,491,490,489,499,492,,,-275,-275,-275,,,,502,,,,,,-275,-275,,-275,-275,-275,-275,-275,,494,,491,490,489,499,492,497,647,,,,,,,502,507,506,510,509,,,,503,,494,,491,490,489,499,492,-275,,,,,497,,-275,502,,,,307,-275,507,506,510,509,,,,503,,,,,,,,,497,488,,,,-275,-275,,,507,506,510,509,,,,503,,,,-275,,,-275,,81,82,83,-275,65,,488,,71,72,-275,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,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,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,870,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,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,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,342,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,361,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,396,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,408,,,403,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,403,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,591,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1106,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,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,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,138,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,295,294,296,293,182,201,200,,,,,,181,188,179,180,290,291,292,288,141,109,108,289,,110,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,300,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,494,,491,490,489,499,492,,,,119,118,120,777,,502,,780,757,,,,,104,105,,,359,502,,,,,,,,,497,,,,,,,,,,779,510,509,750,,,503,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,494,,491,490,489,499,492,778,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,241,115,114,116,117,,85,,92,106,107,497,,765,766,,,119,118,120,777,,510,509,780,,,503,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,488,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,,,,494,,491,490,489,499,492,119,118,120,777,,,,780,502,,,,,104,105,,,359,,,,,,,,,,,,,497,,,,,,,779,,,750,510,509,,748,,503,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,488,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,752,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,,,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,115,114,116,117,,,,,,,,,779,,,750,119,118,120,748,,,749,,,,,,,104,105,,,359,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,494,,491,490,489,499,492,,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,497,,,,,119,118,120,,507,506,510,509,,,,503,,104,105,,,359,115,114,116,117,,,,,,,,,,,,,119,118,120,241,,,,,,,,,,104,105,,,359,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,494,,491,490,489,499,492,,494,,491,490,489,499,492,502,,,,,,,,502,,494,,491,490,489,499,492,,,,,,497,,,502,,,,,497,507,506,510,509,,,,503,507,506,510,509,,,,503,497,,,,,,,,,507,506,510,509,,,494,503,491,490,489,499,492,494,,491,490,489,499,492,,502,488,,,,,,502,,488,494,,491,490,489,499,492,,,,,,497,,,502,488,,,497,,,,510,509,,,,503,,510,509,,,,503,,497,,,,,,,,,,,510,509,,,,503,,,,,,,,,,,,459,463,,488,460,,,,,,488,,170,171,,167,149,150,151,158,155,157,,,152,153,,,488,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,467,471,175,,466,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,810,463,175,,811,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,813,471,175,,814,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,840,463,175,,841,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,842,471,175,,843,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,845,471,175,,846,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,872,463,175,,873,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,875,471,175,,874,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1197,463,175,,1198,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1199,471,175,,1200,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1214,471,175,,1213,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175"),E=e.large_array_unpack("111,518,518,556,556,19,393,111,111,111,738,385,111,111,111,18,111,31,23,417,5,534,18,386,111,5,111,111,111,980,980,18,478,418,394,397,111,111,838,111,111,111,111,111,1015,1086,1088,1103,1104,930,478,634,1216,534,1107,935,738,534,534,23,69,19,1216,244,840,841,111,111,111,111,111,111,111,111,111,111,111,111,111,111,18,31,111,111,111,417,111,111,625,930,111,853,991,111,111,518,111,556,111,418,111,935,111,111,31,111,111,111,111,111,1163,111,112,111,1197,393,788,644,644,112,112,112,244,980,112,112,112,111,112,385,111,111,111,111,385,111,112,111,112,112,112,386,111,394,397,111,386,69,112,112,1198,112,112,112,112,112,838,1199,1218,838,634,838,1015,1086,1088,1103,1104,1015,1086,1088,1103,1104,1107,840,841,842,843,1107,112,112,112,112,112,112,112,112,112,112,112,112,112,112,625,1200,112,112,112,625,112,112,853,991,112,788,1,112,112,749,112,1057,112,644,112,659,112,112,644,112,112,112,112,112,466,112,749,112,3,245,1163,466,466,466,1197,1163,1199,466,466,1197,466,112,842,843,112,112,112,112,466,112,29,112,352,20,1057,412,112,29,9,112,466,466,810,466,466,466,466,466,48,48,1198,377,1200,12,377,1198,811,1199,1218,659,659,247,1199,1218,359,359,842,843,245,659,466,466,466,466,466,466,466,466,466,466,466,466,466,466,14,287,466,466,466,20,466,466,287,1200,466,29,352,466,1200,412,412,412,466,15,466,661,466,466,810,466,466,466,466,466,444,466,467,466,759,352,247,524,811,467,467,467,48,48,931,467,467,466,467,332,466,466,759,466,332,466,467,467,359,359,978,730,466,17,810,466,287,810,467,467,731,467,467,467,467,467,805,288,811,810,931,811,813,27,288,661,661,579,805,444,872,950,390,811,252,661,524,390,467,467,467,467,467,467,467,467,467,467,467,467,467,467,42,942,467,467,467,54,467,467,730,45,467,942,54,467,978,873,1125,731,467,926,467,54,467,467,413,467,467,467,467,467,288,467,467,467,53,813,813,872,252,579,579,579,414,950,950,950,21,467,415,942,467,467,401,467,978,467,579,978,416,732,950,942,467,253,217,467,732,732,732,978,54,732,732,732,873,732,813,512,926,813,1125,1125,512,732,732,732,732,732,413,413,413,813,402,21,230,732,732,1125,732,732,732,732,732,232,401,21,414,414,414,419,628,401,415,415,415,236,401,1005,628,253,401,246,416,416,416,732,732,732,732,732,732,732,732,732,732,732,732,732,732,401,248,732,732,732,402,732,732,16,16,732,403,402,732,732,403,732,402,732,995,732,402,732,732,995,732,732,732,732,732,401,732,732,732,419,419,419,1005,243,289,402,290,291,51,51,243,289,732,290,291,732,732,732,732,243,732,292,732,43,733,384,384,732,292,44,732,733,733,733,249,402,733,733,733,293,733,1091,255,1091,51,51,293,294,733,306,733,733,733,138,294,705,705,320,138,138,733,733,363,733,733,733,733,733,243,289,43,290,291,295,296,779,44,321,747,779,295,296,43,747,324,934,292,747,44,934,733,733,733,733,733,733,733,733,733,733,733,733,733,733,293,948,733,733,733,363,733,733,294,459,733,948,378,733,733,378,733,363,733,336,733,381,733,733,381,733,733,733,733,733,874,733,337,733,295,296,88,874,874,874,762,762,825,874,874,825,874,733,88,948,733,733,733,733,874,733,459,733,88,826,826,948,733,460,339,733,874,874,459,874,874,874,874,874,1155,1089,1089,1155,234,344,234,234,234,234,234,340,344,681,719,341,719,719,719,234,719,344,874,874,874,874,874,874,874,874,874,874,874,874,874,874,460,347,874,874,874,234,874,874,1187,1187,874,350,460,874,234,234,234,234,874,351,874,234,874,874,681,874,874,874,874,874,353,874,875,874,344,354,681,358,360,875,875,875,367,369,372,875,875,874,875,375,874,874,379,874,380,874,875,875,382,391,392,234,874,396,398,874,407,427,875,875,433,875,875,875,875,875,435,436,438,441,235,345,235,235,235,235,235,778,345,778,778,445,455,778,457,235,458,345,875,875,875,875,875,875,875,875,875,875,875,875,875,875,468,474,875,875,875,235,875,875,475,479,875,480,778,875,235,235,235,235,875,481,875,235,875,875,484,875,875,875,875,875,702,875,875,875,345,485,346,486,496,508,702,348,364,346,511,514,520,875,348,364,875,875,346,875,528,875,395,348,364,529,536,235,875,395,537,875,2,2,2,2,2,2,395,702,702,2,2,538,702,539,2,845,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,346,564,2,565,566,348,364,570,2,2,2,2,2,2,2,2,2,2,2,2,395,2,2,2,405,2,2,2,2,2,443,405,845,586,596,587,590,443,592,845,405,596,597,601,845,610,443,611,845,2,596,612,2,622,626,2,2,637,627,2,629,2,656,664,637,2,666,845,673,535,682,652,652,637,2,652,652,652,687,2,2,2,2,692,2,2,2,2,694,405,696,712,2,2,717,443,718,845,720,596,2,535,2,2,2,535,535,2,2,38,38,38,38,38,38,725,734,743,38,38,751,752,637,38,753,38,38,38,38,38,38,38,25,782,785,787,793,38,38,38,38,38,38,38,794,1098,38,1098,1098,1098,795,1098,38,38,38,38,38,38,38,38,38,38,38,38,797,38,38,38,799,38,38,38,38,38,25,25,25,25,25,25,25,25,25,25,25,814,25,25,807,809,25,25,814,38,812,25,38,814,815,38,38,814,816,38,819,38,25,828,25,38,25,25,834,25,25,25,25,25,38,25,835,839,848,38,38,38,38,1105,38,38,38,38,852,854,1105,869,38,38,871,25,880,893,896,1105,38,897,38,38,38,900,814,38,38,136,136,136,136,136,136,902,905,906,136,136,908,909,911,136,915,136,136,136,136,136,136,136,335,335,335,335,335,136,136,136,136,136,136,136,928,936,136,937,1105,941,944,448,136,136,136,136,136,136,136,136,136,136,136,136,949,136,136,136,964,136,136,136,136,136,448,448,448,448,448,448,448,448,448,448,448,846,448,448,967,968,448,448,846,136,977,982,136,846,985,136,136,846,992,136,994,136,448,1001,448,136,448,448,1002,448,448,448,448,448,136,448,1003,1004,1030,136,136,136,136,1143,136,136,136,136,1031,1036,1143,1041,136,136,1042,448,1043,448,1044,1143,136,1045,136,136,136,1046,846,136,136,219,219,219,219,219,219,1050,1051,1052,219,219,1054,1058,1065,219,1070,219,219,219,219,219,219,219,374,374,374,374,374,219,219,219,219,219,219,219,1071,1073,219,1074,1143,1075,1077,454,219,219,219,219,219,219,219,219,219,219,219,219,1078,219,219,219,1079,219,219,219,219,219,454,454,454,454,454,454,454,454,454,454,454,1184,454,454,1095,1106,454,454,1184,219,1109,1110,219,1130,1111,219,219,1184,1112,219,1141,219,454,1130,454,219,454,454,1144,454,454,454,454,454,219,454,1153,1154,1159,219,219,219,219,1169,219,219,219,219,1170,1171,1174,1177,219,219,1178,454,1130,1130,1179,1180,219,1130,219,219,219,1182,1184,219,219,231,231,231,231,231,231,1196,1201,1213,231,231,1214,1220,1221,231,1222,231,231,231,231,231,231,231,584,584,584,584,584,231,231,231,231,231,231,231,1223,1232,231,,,,,695,231,231,231,231,231,231,231,231,231,231,231,231,,231,231,231,,231,231,231,231,231,695,695,695,695,695,695,695,695,695,695,695,,695,695,,,695,695,,231,,,231,,,231,231,,,231,,231,695,,695,231,695,695,,695,695,695,695,695,231,695,,,,231,231,231,231,,231,231,231,231,,,,,231,231,,695,,,,,231,,231,231,231,,,231,231,237,237,237,237,237,237,,,,237,237,,,,237,,237,237,237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,726,237,237,237,237,237,237,237,237,237,237,237,237,,237,237,237,,237,237,237,237,237,726,726,726,726,726,726,726,726,726,726,726,,726,726,,,726,726,,237,,,237,,,237,237,,,237,,237,726,,726,237,726,726,,726,726,726,726,726,237,726,,,,237,237,237,237,,237,237,237,237,,,,,237,237,,726,,,,,237,,237,237,237,,,237,237,254,254,254,254,254,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,1194,254,1194,1194,1194,,1194,254,254,254,254,254,254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,318,318,318,318,318,318,318,318,318,318,318,,318,318,,,318,318,,254,,,254,,,254,254,,,254,,254,318,,318,254,318,318,,318,318,318,318,318,254,318,,,,254,254,254,254,,254,254,254,254,,,,,254,254,,318,,,,,254,,254,254,254,,,254,254,338,338,338,338,338,338,,,,338,338,,,,338,,338,338,338,338,338,338,338,,,,,,338,338,338,338,338,338,338,,,338,,,,,,338,338,338,338,338,338,338,338,338,338,338,338,,338,338,338,,338,338,338,338,338,553,553,553,553,553,553,553,553,553,553,553,,553,553,,,553,553,,338,,,338,,,338,338,,,338,,338,553,,553,338,553,553,,553,553,553,553,553,338,553,,,,338,338,338,338,,338,338,338,338,,,,,338,338,553,553,,,,,338,,338,338,338,,,338,338,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,343,343,343,343,343,,343,343,343,,343,343,343,343,343,820,820,820,820,820,820,820,820,820,820,820,,820,820,,,820,820,,343,,,343,,,343,343,,,343,,343,820,,820,343,820,820,,820,820,820,820,820,343,820,,,,343,343,343,343,,343,343,343,343,,,,,343,343,,820,,,,,343,,343,343,343,,,343,343,373,373,373,373,373,373,,,,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373,373,373,373,,,373,,,,,,373,373,373,373,373,373,373,373,373,373,373,373,,373,373,373,,373,373,373,373,373,877,877,877,877,877,877,877,877,877,877,877,,877,877,,,877,877,,373,,,373,,,373,373,,,373,,373,877,,877,373,877,877,,877,877,877,877,877,373,877,,,,373,373,373,373,,373,373,373,373,,,,,373,373,,877,,,,,373,,373,373,373,,,373,373,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,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009,1009,,,1009,1009,,388,,,388,,,388,388,,,388,,388,1009,,1009,388,1009,1009,,1009,1009,1009,1009,1009,388,1009,,,,388,388,388,388,,388,388,388,388,,,,,388,388,,1009,,,,,388,,388,388,388,,,388,388,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,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,389,,,389,,,389,389,,,389,,389,1010,,1010,389,1010,1010,,1010,1010,1010,1010,1010,389,1010,,,,389,389,389,389,,389,389,389,389,,,,,389,389,,1010,,,,,389,,389,389,389,,,389,389,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,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,,1032,1032,,,1032,1032,,621,,,621,,,621,621,,,621,,621,1032,,1032,621,1032,1032,,1032,1032,1032,1032,1032,621,1032,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,1032,,,,,621,,621,621,621,,,621,621,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,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,,,1033,1033,,624,,,624,,,624,624,,,624,,624,1033,,1033,624,1033,1033,,1033,1033,1033,1033,1033,624,1033,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,1033,,,,,624,,624,624,624,,,624,624,645,645,645,645,645,645,,,,645,645,,,,645,,645,645,645,645,645,645,645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,645,645,645,645,645,645,645,645,645,645,645,645,,645,645,645,,645,645,645,645,645,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,,1066,1066,,,1066,1066,,645,,,645,,,645,645,,,645,,645,1066,,1066,645,1066,1066,,1066,1066,1066,1066,1066,645,1066,,,,645,645,645,645,,645,645,645,645,,,,,645,645,,1066,,,,,645,,645,645,645,,,645,645,844,844,844,844,844,844,,,,844,844,,,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844,,497,844,497,497,497,,497,844,844,844,844,844,844,844,844,844,844,844,844,,844,844,844,,844,844,844,844,844,715,,715,715,715,,715,,497,,917,,917,917,917,,917,497,,844,,,844,,,844,844,,,844,916,844,916,916,916,844,916,715,,,,,,,844,,715,917,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,916,,,844,,844,844,844,,916,844,844,849,849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,849,849,849,849,849,849,849,849,849,849,,849,849,849,,849,849,849,849,849,365,365,365,365,365,365,365,365,365,365,365,,365,365,,,365,365,,849,,,849,,,849,849,,549,849,,849,365,,365,849,365,365,,365,365,365,365,365,849,365,,,,849,849,849,849,,849,849,849,849,,,549,,849,849,549,549,,549,549,,849,,849,849,849,,,849,849,860,860,860,860,860,860,,,,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860,860,860,860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,860,860,860,366,366,366,366,366,366,366,366,366,366,366,,366,366,,,366,366,,860,,,860,,,860,860,,550,860,,860,366,,366,860,366,366,,366,366,366,366,366,860,366,,,,860,860,860,860,,860,860,860,860,,,550,,860,860,550,550,,550,550,,860,,860,860,860,,,860,860,895,895,895,895,895,895,,,,895,895,,,,895,,895,895,895,895,895,895,895,,,,,,895,895,895,895,895,895,895,,,895,,,,,,895,895,895,895,895,895,895,895,895,895,895,895,,895,895,895,,895,895,895,895,895,532,532,532,532,532,532,532,532,532,532,532,,532,532,,,532,532,,895,,,895,,,895,895,,,895,,895,532,,532,895,532,532,,532,532,532,532,532,895,532,,,,895,895,895,895,,895,895,895,895,,,,,895,895,,1113,,1113,1113,1113,895,1113,895,895,895,,,895,895,972,972,972,972,972,972,,,,972,972,,,,972,,972,972,972,972,972,972,972,1113,,,,,972,972,972,972,972,972,972,,,972,,,,,,972,972,972,972,972,972,972,972,972,972,972,972,,972,972,972,,972,972,972,972,972,533,533,533,533,533,533,533,533,533,533,533,,533,533,,,533,533,,972,,,972,,,972,972,,,972,,972,533,,533,972,533,533,,533,533,533,533,533,972,533,,,,972,972,972,972,,972,972,972,972,,,,,972,972,,1114,,1114,1114,1114,972,1114,972,972,972,,,972,972,990,990,990,990,990,990,,,,990,990,,,,990,,990,990,990,990,990,990,990,1114,,,,,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,543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,990,,,990,,,990,990,,,990,,990,543,,543,990,543,543,,543,543,543,543,543,990,543,,,,990,990,990,990,,990,990,990,990,,,,,990,990,,,,,,,990,,990,990,990,,,990,990,996,996,996,996,996,996,,,,996,996,,,,996,,996,996,996,996,996,996,996,,,,,,996,996,996,996,996,996,996,,,996,,,,,,996,996,996,996,996,996,996,996,996,996,996,996,,996,996,996,,996,996,996,996,996,544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,996,,,996,,,996,996,,,996,,996,544,,544,996,544,544,,544,544,544,544,544,996,544,,,,996,996,996,996,,996,996,996,996,,,,,996,996,,,,,,,996,,996,996,996,,,996,996,1012,1012,1012,1012,1012,1012,,,,1012,1012,,,,1012,,1012,1012,1012,1012,1012,1012,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,,,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,,1012,1012,1012,,1012,1012,1012,1012,1012,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,1012,,,1012,,,1012,1012,,,1012,,1012,545,,545,1012,545,545,,545,545,545,545,545,1012,545,,,,1012,1012,1012,1012,,1012,1012,1012,1012,,,,,1012,1012,,,,,,,1012,,1012,1012,1012,,,1012,1012,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,546,546,546,546,546,546,546,,,546,546,,,,,,546,546,,1067,,,1067,,,1067,1067,,,1067,,1067,546,,546,1067,546,546,,546,546,546,546,546,1067,546,,,,1067,1067,1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,,,,,,1067,,1067,1067,1067,,,1067,1067,1096,1096,1096,1096,1096,1096,,,,1096,1096,,,,1096,,1096,1096,1096,1096,1096,1096,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,,,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,,1096,1096,1096,,1096,1096,1096,1096,1096,547,547,547,547,547,547,547,,,547,547,,,,,,547,547,,1096,,,1096,,,1096,1096,,,1096,,1096,547,,547,1096,547,547,,547,547,547,547,547,1096,547,,,,1096,1096,1096,1096,,1096,1096,1096,1096,,,,,1096,1096,,,,,,,1096,,1096,1096,1096,,,1096,1096,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,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,1097,,,1097,,,1097,1097,,,1097,,1097,548,,548,1097,548,548,,548,548,548,548,548,1097,548,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,,,1097,1097,,,,,,,1097,,1097,1097,1097,,,1097,1097,1102,1102,1102,1102,1102,1102,,,,1102,1102,,,,1102,,1102,1102,1102,1102,1102,1102,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,,,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,,1102,1102,1102,,1102,1102,1102,1102,1102,551,551,551,551,551,551,551,,,551,551,,,,,,551,551,,1102,,,1102,,,1102,1102,,,1102,,1102,551,,551,1102,551,551,,551,551,551,551,551,1102,551,,,,1102,1102,1102,1102,,1102,1102,1102,1102,,,,,1102,1102,,,,,,,1102,,1102,1102,1102,,,1102,1102,1145,1145,1145,1145,1145,1145,,,,1145,1145,,,,1145,,1145,1145,1145,1145,1145,1145,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,,,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,,1145,1145,1145,,1145,1145,1145,1145,1145,552,552,552,552,552,552,552,552,,552,552,,,,,,552,552,,1145,,,1145,,,1145,1145,,,1145,,1145,552,,552,1145,552,552,,552,552,552,552,552,1145,552,,,,1145,1145,1145,1145,,1145,1145,1145,1145,,,,,1145,1145,,,,,,,1145,,1145,1145,1145,,,1145,1145,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,1188,1188,1188,1188,1188,,1188,1188,1188,,1188,1188,1188,1188,1188,554,,,,,,,,,,,,,,,,554,554,,1188,,,1188,,,1188,1188,,,1188,,1188,554,,554,1188,554,554,,554,554,,,554,1188,554,,,,1188,1188,1188,1188,,1188,1188,1188,1188,,,,,1188,1188,,,,,,,1188,,1188,1188,1188,,,1188,1188,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,,7,7,7,7,7,607,,,,,,,,,,,,,,,,607,607,,7,,,7,,,7,7,,,7,,7,607,,607,7,607,607,,607,607,,,607,7,607,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,24,24,24,7,24,7,7,7,24,24,7,7,,24,,24,24,24,24,24,24,24,,,,,,24,24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24,,24,24,24,24,24,540,,,,,,,,,,,,,,,,540,540,,24,,,24,,,24,24,,,24,,,540,,540,24,540,540,,540,540,,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,,,,24,,24,24,24,32,,24,24,,,,32,32,32,,,32,32,32,541,32,,,,,,,,32,32,32,32,,,,541,541,,,,32,32,,32,32,32,32,32,,,,541,,541,,541,541,,541,541,,,,,,,,,,,32,32,32,32,32,32,32,32,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,32,32,32,,,,33,33,33,,,33,33,33,,33,32,542,,32,32,,32,33,32,33,33,,,,,32,,542,542,33,33,,33,33,33,33,33,,,,,,,542,,,,542,542,,542,542,,,,,,,,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,,,,35,35,35,34,35,34,34,34,35,35,34,34,,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,,,,36,36,36,35,36,35,35,35,36,36,35,35,,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,,,,46,46,46,36,46,36,36,36,46,46,36,36,,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,,,,47,47,47,46,47,46,46,46,47,47,46,46,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,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,47,49,47,47,47,49,49,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,49,49,,49,49,49,49,49,,,,,,,,,,,,,,,,,,,,49,,,49,,,49,49,,,49,,,,,,49,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,,,50,50,50,49,50,49,49,49,50,50,49,49,,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,,,,52,52,52,50,52,50,50,50,52,52,50,50,,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,,,,,,,52,,52,52,52,64,,52,52,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,765,765,765,765,64,64,,64,64,64,64,64,,,,,765,765,765,,,,,,,,,,,765,765,,,765,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,,765,765,765,765,,765,765,765,765,,,,64,765,765,64,64,64,64,,64,765,64,765,765,765,,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,125,125,125,125,125,,,,125,125,,,,125,,125,125,125,125,125,125,125,,,,,,125,125,125,125,125,125,125,,,125,,,,,,125,125,125,125,125,125,125,125,125,125,125,125,,125,125,125,,125,125,125,125,125,,,,,,,,,,,,,,,,,,,,125,,,125,,,125,125,,,125,,125,,,,125,,,,,,,,,125,,,,,125,125,125,125,,125,125,125,125,,,,,125,125,,,,,,125,125,,125,125,125,,,125,125,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,,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,,,,132,132,132,131,132,131,131,131,132,132,131,131,,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,,,,133,133,133,132,133,132,132,132,133,133,132,132,,133,,133,133,133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,,,133,,,133,133,133,133,133,133,133,133,,133,133,133,,133,133,133,133,133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,,133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,,,,133,,133,133,133,,,133,133,134,134,134,134,134,,,,134,134,,,,134,,134,134,134,134,134,134,134,,,,,,134,134,134,134,134,134,134,,,134,,,,,,134,134,,134,134,134,134,134,134,134,134,134,,134,134,134,,134,134,134,134,134,,,,,,,,,,,,,,,,,,,,134,,,134,,,134,134,,,134,,134,,,,134,,,,,,,,,134,,,,,134,134,134,134,,134,134,134,134,,,,,134,134,,,,220,220,220,134,220,134,134,134,220,220,134,134,,220,,220,220,220,220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220,220,,220,220,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,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,,,,225,225,225,224,225,224,224,224,225,225,224,224,,225,,225,225,225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,225,225,225,225,225,225,225,225,225,225,,225,225,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,225,,225,,225,,,225,,,,,,225,,,,,225,225,225,225,,225,225,225,225,,,,,225,225,,,,238,238,238,225,238,225,225,225,238,238,225,225,,238,,238,238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238,238,238,239,239,238,238,,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,,,,240,240,240,239,240,239,239,239,240,240,239,239,,240,,240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240,240,240,240,,,,,240,240,240,,,251,251,251,240,251,240,240,240,251,251,240,240,,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,,,,258,258,258,251,258,251,251,251,258,258,251,251,,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,,,,269,269,269,268,269,268,268,268,269,269,268,268,,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,,,,270,270,270,269,270,269,269,269,270,270,269,269,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,271,271,271,270,271,270,270,270,271,271,270,270,,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,,,,272,272,272,271,272,271,271,271,272,272,271,271,,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,,,,273,273,273,272,273,272,272,272,273,273,272,272,,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,,,,274,274,274,273,274,273,273,273,274,274,273,273,,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,,,,275,275,275,274,275,274,274,274,275,275,274,274,,275,,275,275,275,275,275,275,275,,,,,,275,275,275,275,275,275,275,,,275,,,,,,,275,,,275,275,275,275,275,275,275,275,,275,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,276,276,275,276,275,275,275,276,276,275,275,,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,,,,277,277,277,276,277,276,276,276,277,277,276,276,,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,,,,278,278,278,277,278,277,277,277,278,278,277,277,,278,,278,278,278,278,278,278,278,,,,,,278,278,278,278,278,278,278,,,278,,,,,,,278,,,278,278,278,278,278,278,278,278,,278,278,278,,278,278,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,,278,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,,278,278,,,,279,279,279,278,279,278,278,278,279,279,278,278,,279,,279,279,279,279,279,279,279,,,,,,279,279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279,279,279,279,279,,279,279,279,,279,279,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,,279,,,,,,279,,,,,,,,,279,,,,,279,279,279,279,,279,279,279,279,,,,,279,279,,,,284,284,284,279,284,279,279,279,284,284,279,279,,284,,284,284,284,284,284,284,284,,,,,,284,284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284,284,,284,284,284,,284,284,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,,284,,,,,,284,,,,,,,,,284,,,,,284,284,284,284,,284,284,284,284,,,,,284,284,,,,300,300,300,284,300,284,284,284,300,300,284,284,,300,,300,300,300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300,,,300,300,300,300,300,300,300,300,,300,300,300,,300,300,300,300,300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,,,,300,,,,,,,,,300,,,,,300,300,300,300,,300,300,300,300,,,,,300,300,,,,307,307,307,300,307,300,300,300,307,307,300,300,,307,,307,307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307,,,,,,,307,,,307,307,307,307,307,307,307,307,307,307,307,307,,307,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,307,308,307,307,307,308,308,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,308,308,308,,308,308,308,308,308,,,,,,,,,,,,,,,,,,,,308,,,308,,,308,308,,,308,,308,,308,,308,,,308,,,,,,308,,,,,308,308,308,308,,308,308,308,308,,,,,308,308,,,,316,316,316,308,316,308,308,308,316,316,308,308,,316,,316,316,316,316,316,316,316,,,,,,316,316,316,316,316,316,316,,,316,,,,,,,316,,,316,316,316,316,316,316,316,316,316,316,316,316,,316,316,316,316,316,,,,,,,,,,,,,,,,,,,,316,,,316,,,316,316,,,316,,316,,316,,316,,,316,,,,,,316,,,,,316,316,316,316,,316,316,316,316,,,,,316,316,316,,,323,323,323,316,323,316,316,316,323,323,316,316,,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,,,,325,325,325,323,325,323,323,323,325,325,323,323,,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,325,325,,325,325,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,325,,,,,,,,,325,,,,,325,325,325,325,,325,325,325,325,,,,,325,325,,,,328,328,328,325,328,325,325,325,328,328,325,325,,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,,,,329,329,329,328,329,328,328,328,329,329,328,328,,329,,329,329,329,329,329,329,329,,,,,,329,329,329,329,329,329,329,,,329,,,,,,,329,,,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329,,,,,,,,,,,,,,,,,,,,329,,,329,,,329,329,,,329,,,,,,329,,,,,,,,,329,,,,,329,329,329,329,,329,329,329,329,,,,,329,329,,,,,,,329,,329,329,329,,,329,329,334,334,334,334,334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334,334,334,334,334,,,334,,,,,,334,334,,334,334,334,334,334,334,334,334,334,,334,334,334,,334,334,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,,,334,334,,,334,,334,,,,334,,,,,,,,,334,,,,,334,334,334,334,,334,334,334,334,,,,,334,334,,,,370,370,370,334,370,334,334,334,370,370,334,334,,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,,370,370,370,370,,,,,370,370,,,,387,387,387,370,387,370,370,370,387,387,370,370,,387,,387,387,387,387,387,387,387,,,,,,387,387,387,387,387,387,387,,,387,,,,,,,387,,,387,387,387,387,387,387,387,387,,387,387,387,,387,387,387,387,387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387,387,,,387,,,,,,387,,,,,,,,,387,,,,,387,387,387,387,,387,387,387,387,,,,,387,387,,,,408,408,408,387,408,387,387,387,408,408,387,387,,408,,408,408,408,408,408,408,408,,,,,,408,408,408,408,408,408,408,,,408,,,,,,,408,,,408,408,408,408,408,408,408,408,,408,408,408,,408,408,408,408,408,,,,,,,,,,,,,,,,,,,,408,,,408,,,408,408,,,408,,,,,,408,,,,,,,,,408,,,,,408,408,408,408,,408,408,408,408,,,,,408,408,,,,437,437,437,408,437,408,408,408,437,437,408,408,,437,,437,437,437,437,437,437,437,,,,,,437,437,437,437,437,437,437,,,437,,,,,,,437,,,437,437,437,437,437,437,437,437,,437,437,437,,437,437,437,437,437,,,,,,,,,,,,,,,,,,,,437,,,437,,,437,437,,,437,,,,,,437,,,,,,,,,437,,,,,437,437,437,437,,437,437,437,437,,,,,437,437,,,,,,,437,,437,437,437,461,,437,437,,,,461,461,461,,,461,461,461,,461,,,,,,,,461,461,461,461,,,,,,,,,461,461,,461,461,461,461,461,,,,,,,,,,,,,,,,,,,,,,,461,461,461,461,461,461,461,461,461,461,461,461,461,461,,,461,461,461,,,461,,461,461,,,461,461,,461,,461,,461,,461,461,,461,461,461,461,461,,461,461,461,1138,,1138,1138,1138,1138,1138,,,,,,,461,,1138,461,461,471,461,,461,,,,471,471,471,461,,471,471,471,,471,,,1138,,,,,471,471,471,471,471,,1138,1138,,,,1138,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,472,471,,,,,471,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,472,472,,472,,472,,473,473,473,472,473,,,,473,473,,,,473,,473,473,473,473,473,473,473,,,,,,473,473,473,473,473,473,473,,,473,,,,,,,473,,,473,473,473,473,473,473,473,473,,473,473,473,,473,473,473,473,473,,,,,,,,,,,,,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,,473,,,,,473,473,473,473,,473,473,473,473,,,,,473,473,,,,500,500,500,473,500,473,473,473,500,500,473,473,,500,,500,500,500,500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,,,500,,,500,500,500,500,500,500,500,500,,500,500,500,,500,500,500,500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,,,,,500,,,,,,,,,500,,,,,500,500,500,500,,500,500,500,500,,,,,500,500,,,,513,513,513,500,513,500,500,500,513,513,500,500,,513,,513,513,513,513,513,513,513,,,,,,513,513,513,513,513,513,513,,,513,,,,,,,513,,,513,513,513,513,513,513,513,513,,513,513,513,,513,513,513,513,513,,,,,,,,,,,,,,,,,,,,513,,,513,,,513,513,,,513,,,,,,513,,,,,,,,,513,,,,,513,513,513,513,,513,513,513,513,,,,,513,513,,,,523,523,523,513,523,513,513,513,523,523,513,513,,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,523,523,,,,,523,523,,,,525,525,525,523,525,523,523,523,525,525,523,523,,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,,,,526,526,526,525,526,525,525,525,526,526,525,525,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526,,526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,,,,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526,,,,527,527,527,526,527,526,526,526,527,527,526,526,,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,527,558,,527,527,,,,558,558,558,,,558,558,558,410,558,410,410,410,410,410,,,558,558,558,,,,410,,,,,,558,558,,558,558,558,558,558,,647,,647,647,647,647,647,410,410,,,,,,,647,410,410,410,410,,,,410,,1133,,1133,1133,1133,1133,1133,558,,,,,647,,558,1133,,,,558,558,647,647,647,647,,,,647,,,,,,,,,1133,410,,,,558,558,,,1133,1133,1133,1133,,,,1133,,,,558,,,558,,563,563,563,558,563,,647,,563,563,558,,,563,,563,563,563,563,563,563,563,,,,,,563,563,563,563,563,563,563,,,563,,,,,,,563,,,563,563,563,563,563,563,563,563,,563,563,563,,563,563,563,563,563,,,,,,,,,,,,,,,,,,,,563,,,563,,,563,563,,,563,,,,,,563,,,,,,,,,563,,,,,563,563,563,563,,563,563,563,563,,,,,563,563,,,,573,573,573,563,573,563,563,563,573,573,563,563,,573,,573,573,573,573,573,573,573,,,,,,573,573,573,573,573,573,573,,,573,,,,,,,573,,,573,573,573,573,573,573,573,573,573,573,573,573,,573,573,573,573,573,,,,,,,,,,,,,,,,,,,,573,,,573,,,573,573,,,573,,573,,573,,573,,,573,,,,,,573,,,,,573,573,573,573,,573,573,573,573,,,,,573,573,,,,575,575,575,573,575,573,573,573,575,575,573,573,,575,,575,575,575,575,575,575,575,,,,,,575,575,575,575,575,575,575,,,575,,,,,,,575,,,575,575,575,575,575,575,575,575,575,575,575,575,,575,575,575,575,575,,,,,,,,,,,,,,,,,,,,575,,,575,,,575,575,,,575,,,,575,,575,,,575,,,,,,575,,,,,575,575,575,575,,575,575,575,575,,,,,575,575,,,,577,577,577,575,577,575,575,575,577,577,575,575,,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,,,,,577,577,,,,,,,577,,577,577,577,,,577,577,583,583,583,583,583,,,,583,583,,,,583,,583,583,583,583,583,583,583,,,,,,583,583,583,583,583,583,583,,,583,,,,,,583,583,583,583,583,583,583,583,583,583,583,583,,583,583,583,,583,583,583,583,583,,,,,,,,,,,,,,,,,,,,583,,,583,,,583,583,,,583,,583,,,,583,,,,,,,,,583,,,,,583,583,583,583,,583,583,583,583,,,,,583,583,,,,,,583,583,,583,583,583,,,583,583,593,593,593,,593,,,,593,593,,,,593,,593,593,593,593,593,593,593,,,,,,593,593,593,593,593,593,593,,,593,,,,,,,593,,,593,593,593,593,593,593,593,593,593,593,593,593,,593,593,593,593,593,,,,,,,,,,,,,,,,,,,,593,,,593,,,593,593,,,593,,593,,593,,593,,,593,,,,,,593,,,,,593,593,593,593,,593,593,593,593,,,,,593,593,,,,603,603,603,593,603,593,593,593,603,603,593,593,,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,,,,606,606,606,603,606,603,603,603,606,606,603,603,,606,,606,606,606,606,606,606,606,,,,,,606,606,606,606,606,606,606,,,606,,,,,,,606,,,606,606,606,606,606,606,606,606,,606,606,606,,606,606,606,606,606,,,,,,,,,,,,,,,,,,,,606,,,606,,,606,606,,,606,,,,,,606,,,,,,,,,606,,,,,606,606,606,606,,606,606,606,606,,,,,606,606,,,,608,608,608,606,608,606,606,606,608,608,606,606,,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,,,,614,614,614,608,614,608,608,608,614,614,608,608,,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,614,,,,617,617,617,614,617,614,614,614,617,617,614,614,,617,,617,617,617,617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617,,,,,,,617,,,617,617,617,617,617,617,617,617,617,617,617,617,,617,617,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,617,,,,,,617,,,,,617,617,617,617,,617,617,617,617,,,,,617,617,,,,630,630,630,617,630,617,617,617,630,630,617,617,,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,630,630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,630,,,,630,,,,,,,,,630,,,,,630,630,630,630,,630,630,630,630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631,631,630,630,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,631,631,631,631,,631,631,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,631,,631,,631,,,631,,,,,,631,,,,,631,631,631,631,,631,631,631,631,,,,,631,631,,,,641,641,641,631,641,631,631,631,641,641,631,631,,641,,641,641,641,641,641,641,641,,,,,,641,641,641,641,641,641,641,,,641,,,,,,,641,,,641,641,641,641,641,641,641,641,641,641,641,641,,641,641,641,641,641,,,,,,,,,,,,,,,,,,,,641,,,641,,,641,641,,,641,,641,,641,,641,,,641,,,,,,641,,,,,641,641,641,641,,641,641,641,641,,,,,641,641,,,,,,,641,,641,641,641,,,641,641,672,672,672,672,672,,,,672,672,,,,672,,672,672,672,672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,672,672,,672,672,672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672,,672,,,,672,,,,,,,,,672,,,,,672,672,672,672,,672,672,672,672,,,,,672,672,,,,674,674,674,672,674,672,672,672,674,674,672,672,,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,,,,675,675,675,674,675,674,674,674,675,675,674,674,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675,675,,675,675,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,,,675,,,,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,676,676,676,675,676,675,675,675,676,676,675,675,,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,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,,,,,679,679,679,679,,679,679,679,679,,,,,679,679,,,,680,680,680,679,680,679,679,679,680,680,679,679,,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,,,,683,683,683,680,683,680,680,680,683,683,680,680,,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,,,,,683,683,,,,684,684,684,683,684,683,683,683,684,684,683,683,,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,684,,,,,684,684,,,,685,685,685,684,685,684,684,684,685,685,684,684,,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,,,,686,686,686,685,686,685,685,685,686,686,685,685,,686,,686,686,686,686,686,686,686,,,,,,686,686,686,686,686,686,686,,,686,,,,,,,686,,,686,686,686,686,686,686,686,686,,686,686,686,,686,686,686,686,686,,,,,,,,,,,,,,,,,,,,686,,,686,,,686,686,,,686,,,,,,686,,,,,,,,,686,,,,,686,686,686,686,,686,686,686,686,,,,,686,686,,,,690,690,690,686,690,686,686,686,690,690,686,686,,690,,690,690,690,690,690,690,690,,,,,,690,690,690,690,690,690,690,,,690,,,,,,,690,,,690,690,690,690,690,690,690,690,,690,690,690,,690,690,690,690,690,,,,,,,,,,,,,,,,,,,,690,,,690,,,690,690,,,690,,,,,,690,,,,,,,,,690,,,,,690,690,690,690,,690,690,690,690,,,,,690,690,,,,691,691,691,690,691,690,690,690,691,691,690,690,,691,,691,691,691,691,691,691,691,,,,,,691,691,691,691,691,691,691,,,691,,,,,,,691,,,691,691,691,691,691,691,691,691,,691,691,691,,691,691,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,,,,,,691,,,,,,,,,691,,,,,691,691,691,691,,691,691,691,691,,,,,691,691,,,,697,697,697,691,697,691,691,691,697,697,691,691,,697,,697,697,697,697,697,697,697,,,,,,697,697,697,697,697,697,697,,,697,,,,,,,697,,,697,697,697,697,697,697,697,697,,697,697,697,,697,697,697,697,697,,,,,,,,,,,,,,,,,,,,697,,,697,,,697,697,,,697,,697,,,,697,,,,,,,,,697,,,,,697,697,697,697,,697,697,697,697,,,,,697,697,,,,713,713,713,697,713,697,697,697,713,713,697,697,,713,,713,713,713,713,713,713,713,,,,,,713,713,713,713,713,713,713,,,713,,,,,,,713,,,713,713,713,713,713,713,713,713,,713,713,713,,713,713,713,713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,,,,,,713,,,,,,,,,713,,,,,713,713,713,713,,713,713,713,713,,,,,713,713,,,,735,735,735,713,735,713,713,713,735,735,713,713,,735,,735,735,735,735,735,735,735,,,,,,735,735,735,735,735,735,735,,,735,,,,,,,735,,,735,735,735,735,735,735,735,735,,735,735,735,,735,735,735,735,735,,,,,,,,,,,,,,,,,,,,735,,,735,,,735,735,,,735,,,,,,735,,,,,,,,,735,,,,,735,735,735,735,,735,735,735,735,,,,,735,735,,,,736,736,736,735,736,735,735,735,736,736,735,735,,736,,736,736,736,736,736,736,736,,,,,,736,736,736,736,736,736,736,,,736,,,,,,,736,,,736,736,736,736,736,736,736,736,,736,736,736,,736,736,736,736,736,,,,,,,,,,,,,,,,,,,,736,,,736,,,736,736,,,736,,,,,,736,,,,,,,,,736,,,,,736,736,736,736,,736,736,736,736,,,,,736,736,,,,791,791,791,736,791,736,736,736,791,791,736,736,,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,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,,,,800,800,800,791,800,791,791,791,800,800,791,791,,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,,,,803,803,803,800,803,800,800,800,803,803,800,800,,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,803,803,,,,,803,803,,,,821,821,821,803,821,803,803,803,821,821,803,803,,821,,821,821,821,821,821,821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,,,,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821,821,,821,821,821,821,,,,,821,821,,,,850,850,850,821,850,821,821,821,850,850,821,821,,850,,850,850,850,850,850,850,850,,,,,,850,850,850,850,850,850,850,,,850,,,,,,,850,,,850,850,850,850,850,850,850,850,,850,850,850,,850,850,850,850,850,,,,,,,,,,,,,,,,,,,,850,,,850,,,850,850,,,850,,,,,,850,,,,,,,,,850,,,,,850,850,850,850,,850,850,850,850,,,,,850,850,,,,870,870,870,850,870,850,850,850,870,870,850,850,,870,,870,870,870,870,870,870,870,,,,,,870,870,870,870,870,870,870,,,870,,,,,,,870,,,870,870,870,870,870,870,870,870,,870,870,870,,870,870,870,870,870,,,,,,,,,,,,,,,,,,,,870,,,870,,,870,870,,,870,,,,,,870,,,,,,,,,870,,,,,870,870,870,870,,870,870,870,870,,,,,870,870,,,,878,878,878,870,878,870,870,870,878,878,870,870,,878,,878,878,878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878,,,878,878,878,878,878,878,878,878,,878,878,878,,878,878,878,878,878,,,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,,878,,,,,878,878,878,878,,878,878,878,878,,,,,878,878,,,,891,891,891,878,891,878,878,878,891,891,878,878,,891,,891,891,891,891,891,891,891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891,891,,891,891,891,,891,891,891,891,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,,,,,891,,,,,,,,,891,,,,,891,891,891,891,,891,891,891,891,,,,,891,891,,,,892,892,892,891,892,891,891,891,892,892,891,891,,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,,892,892,892,892,,,,,892,892,,,,920,920,920,892,920,892,892,892,920,920,892,892,,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,,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,,,,,,,,,,,,,,,,,,,,921,,,921,,,921,921,,,921,,,,,,921,,,,,,,,,921,,,,,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,,,,,,,,,,,,,,,,,,,,922,,,922,,,922,922,,,922,,,,,,922,,,,,,,,,922,,,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,923,923,923,922,923,922,922,922,923,923,922,922,,923,,923,923,923,923,923,923,923,,,,,,923,923,923,923,923,923,923,,,923,,,,,,,923,,,923,923,923,923,923,923,923,923,,923,923,923,,923,923,923,923,923,,,,,,,,,,,,,,,,,,,,923,,,923,,,923,923,,,923,,,,,,923,,,,,,,,,923,,,,,923,923,923,923,,923,923,923,923,,,,,923,923,,,,924,924,924,923,924,923,923,923,924,924,923,923,,924,,924,924,924,924,924,924,924,,,,,,924,924,924,924,924,924,924,,,924,,,,,,,924,,,924,924,924,924,924,924,924,924,,924,924,924,,924,924,924,924,924,,,,,,,,,,,,,,,,,,,,924,,,924,,,924,924,,,924,,,,,,924,,,,,,,,,924,,,,,924,924,924,924,,924,924,924,924,,,,,924,924,,,,925,925,925,924,925,924,924,924,925,925,924,924,,925,,925,925,925,925,925,925,925,,,,,,925,925,925,925,925,925,925,,,925,,,,,,,925,,,925,925,925,925,925,925,925,925,,925,925,925,,925,925,925,925,925,,,,,,,,,,,,,,,,,,,,925,,,925,,,925,925,,,925,,,,,,925,,,,,,,,,925,,,,,925,925,925,925,,925,925,925,925,,,,,925,925,,,,958,958,958,925,958,925,925,925,958,958,925,925,,958,,958,958,958,958,958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,,958,,,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958,,,,,,,,,,,,,,,,,,,,958,,,958,,,958,958,,,958,,,,,,958,,,,,,,,,958,,,,,958,958,958,958,,958,958,958,958,,,,,958,958,,,,961,961,961,958,961,958,958,958,961,961,958,958,,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,,961,961,961,961,,,,,961,961,,,,984,984,984,961,984,961,961,961,984,984,961,961,,984,,984,984,984,984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984,984,984,984,984,984,984,984,,984,984,984,,984,984,984,984,984,,,,,,,,,,,,,,,,,,,,984,,,984,,,984,984,,,984,,,,,,984,,,,,,,,,984,,,,,984,984,984,984,,984,984,984,984,,,,,984,984,,,,989,989,989,984,989,984,984,984,989,989,984,984,,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,989,,989,989,989,989,989,,,,,,,,,,,,,,,,,,,,989,,,989,,,989,989,,,989,,989,,,,989,,,,,,,,,989,,,,,989,989,989,989,,989,989,989,989,,,,,989,989,,,,1008,1008,1008,989,1008,989,989,989,1008,1008,989,989,,1008,,1008,1008,1008,1008,1008,1008,1008,,,,,,1008,1008,1008,1008,1008,1008,1008,,,1008,,,,,,,1008,,,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,,1008,1008,1008,1008,1008,,,,,,,,,,,,,,,,,,,,1008,,,1008,,,1008,1008,,,1008,,,,1008,,1008,,,1008,,,,,,1008,,,,,1008,1008,1008,1008,,1008,1008,1008,1008,,,,,1008,1008,,,,1034,1034,1034,1008,1034,1008,1008,1008,1034,1034,1008,1008,,1034,,1034,1034,1034,1034,1034,1034,1034,,,,,,1034,1034,1034,1034,1034,1034,1034,,,1034,,,,,,,1034,,,1034,1034,1034,1034,1034,1034,1034,1034,,1034,1034,1034,,1034,1034,1034,1034,1034,,,,,,,,,,,,,,,,,,,,1034,,,1034,,,1034,1034,,,1034,,,,,,1034,,,,,,,,,1034,,,,,1034,1034,1034,1034,,1034,1034,1034,1034,,,,,1034,1034,,,,1147,1147,1147,1034,1147,1034,1034,1034,1147,1147,1034,1034,,1147,,1147,1147,1147,1147,1147,1147,1147,,,,,,1147,1147,1147,1147,1147,1147,1147,,,1147,,,,,,,1147,,,1147,1147,1147,1147,1147,1147,1147,1147,,1147,1147,1147,,1147,1147,1147,1147,1147,,,,,,,,,,,,,,,,,,,,1147,,,1147,,,1147,1147,,,1147,,,,,,1147,,,,,,,,,1147,,,,,1147,1147,1147,1147,,1147,1147,1147,1147,,,,,1147,1147,,,,1148,1148,1148,1147,1148,1147,1147,1147,1148,1148,1147,1147,,1148,,1148,1148,1148,1148,1148,1148,1148,,,,,,1148,1148,1148,1148,1148,1148,1148,,,1148,,,,,,,1148,,,1148,1148,1148,1148,1148,1148,1148,1148,,1148,1148,1148,,1148,1148,1148,1148,1148,,,,,,,,,,,,,,,,,,,,1148,,,1148,,,1148,1148,,,1148,,,,,,1148,,,,,,,,,1148,,,,,1148,1148,1148,1148,,1148,1148,1148,1148,,,,,1148,1148,,,,1160,1160,1160,1148,1160,1148,1148,1148,1160,1160,1148,1148,,1160,,1160,1160,1160,1160,1160,1160,1160,,,,,,1160,1160,1160,1160,1160,1160,1160,,,1160,,,,,,,1160,,,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,,1160,1160,1160,1160,1160,,,,,,,,,,,,,,,,,,,,1160,,,1160,,,1160,1160,,,1160,,1160,,1160,,1160,,,1160,,,,,,1160,,,,,1160,1160,1160,1160,,1160,1160,1160,1160,,,,,1160,1160,,,,39,39,39,1160,39,1160,1160,1160,39,39,1160,1160,,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,,,,40,40,40,39,40,39,39,39,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,,,1206,,1206,1206,1206,1206,1206,,,,,,,,,1206,,40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1206,40,,40,40,40,76,76,76,,76,1206,1206,,76,76,1206,,,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,,,,77,77,77,76,77,76,76,76,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,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,78,78,77,78,77,77,77,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,,,,342,342,342,78,342,78,78,78,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,,,1208,,1208,1208,1208,1208,1208,,,,,,,,,1208,,342,342,342,342,,342,342,342,342,,,,,342,342,,,,342,,1208,342,,342,342,342,361,361,361,,361,1208,1208,,361,361,1208,,,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,,,,591,591,591,361,591,361,361,361,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,,,,600,600,600,591,600,591,591,591,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,,,,806,806,806,600,806,600,600,600,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806,806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806,806,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,806,806,806,,806,806,806,806,,,,,806,806,,,,817,817,817,806,817,806,806,806,817,817,,,,817,,817,817,817,817,817,817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817,817,817,817,817,817,,817,817,817,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,,,817,,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,817,817,817,,817,817,817,817,,,,,817,817,,,,1016,1016,1016,817,1016,817,817,817,1016,1016,,,,1016,,1016,1016,1016,1016,1016,1016,1016,,,,,,1016,1016,1016,1016,1016,1016,1016,,,1016,,,,,,,1016,,,1016,1016,1016,1016,1016,1016,1016,1016,,1016,1016,1016,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,,,1016,,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,1016,1016,1016,,1016,1016,1016,1016,,,,,1016,1016,,,,1080,1080,1080,1016,1080,1016,1016,1016,1080,1080,,,,1080,,1080,1080,1080,1080,1080,1080,1080,,,,,,1080,1080,1080,1080,1080,1080,1080,,,1080,,,,,,,1080,,,1080,1080,1080,1080,1080,1080,1080,1080,,1080,1080,1080,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,,,1080,,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,1080,1080,1080,,1080,1080,1080,1080,,,,,1080,1080,,,,1142,1142,1142,1080,1142,1080,1080,1080,1142,1142,,,,1142,,1142,1142,1142,1142,1142,1142,1142,,,,,,1142,1142,1142,1142,1142,1142,1142,,,1142,,,,,,,1142,,,1142,1142,1142,1142,1142,1142,1142,1142,,1142,1142,1142,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,,,1142,,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,1142,1142,1142,,1142,1142,1142,1142,,,,,1142,1142,,,,,,,1142,,1142,1142,1142,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,,10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10,,,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,,,,,,11,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,,,,428,428,428,428,428,428,428,428,428,428,,,,,,428,428,428,428,428,428,428,428,428,,,428,,,,,,,,428,428,,428,428,428,428,428,428,428,,,428,428,,,,428,428,428,428,,,,,,,,,,,,,,428,428,,428,428,428,428,428,428,428,428,428,428,428,428,,,428,428,,,,,,,,,,,,,,428,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,670,,,,670,670,670,670,,,,,,,,,,,,,,670,670,,670,670,670,670,670,670,670,670,670,670,670,670,,,670,670,,,,,,,,,,,,,,670,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,530,530,530,530,,,1210,,1210,1210,1210,1210,1210,,,,530,530,530,530,,1210,,530,530,,,,,530,530,,,530,530,,,,,,,,,1210,,,,,,,,,,530,1210,1210,530,,,1210,530,,,530,,530,,,,,,,530,,,,,,,530,,,,530,530,530,530,,530,530,530,530,,,,,530,530,531,531,531,531,,,530,,530,530,530,,,530,530,,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,531,748,748,748,748,,,531,,531,531,531,,,531,531,,748,748,748,748,,,,748,,,,,,748,748,,,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,,748,,,748,,748,,,,,,,710,,710,710,710,710,710,748,,,,748,748,748,748,710,748,748,748,748,,,,,748,748,748,756,756,756,756,,748,,748,748,748,710,,748,748,,,756,756,756,756,,710,710,756,,,710,,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,,756,,,756,,,710,,,,,,,,,,,,,756,,,,756,756,756,756,,756,756,756,756,,,,,756,756,,,,,,,756,,756,756,756,,,756,756,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,,,,783,783,783,783,783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,783,783,,,783,,,,,,,,783,783,,783,783,783,783,783,783,783,,,783,783,,,,783,783,783,783,,,,,,,,,,,,,,783,783,,783,783,783,783,783,783,783,783,783,783,783,783,,,783,927,927,927,927,,,,,,1021,,1021,1021,1021,1021,1021,927,927,927,927,,,,927,1021,,,,,927,927,,,927,,,,,,,,,,,,,1021,,,,,,,927,,,927,1021,1021,,927,,1021,927,,927,,,,,,,,,,,,,,927,,,,927,927,927,927,,927,927,927,927,,,,,927,927,929,929,929,929,1021,,927,,927,927,927,,,927,927,,929,929,929,929,,,1136,929,1136,1136,1136,1136,1136,929,929,,,929,,,,1136,,,,,,,,,,,,,,,,929,,,929,,,1136,929,,,929,,,,,1136,1136,1136,1136,,,,1136,,,,929,,,,929,929,929,929,,929,929,929,929,,,,,929,929,932,932,932,932,,,929,,929,929,929,,,929,929,,932,932,932,932,,,,932,932,,,,,932,932,,,932,932,,,,,,,,,,,,,,,,,,,932,,,932,,,,932,,,932,,932,,,,,,,932,,,,,,,932,,,,932,932,932,932,,932,932,932,932,,,,,932,932,933,933,933,933,,,932,,932,932,932,,,932,932,,933,933,933,933,,,,933,933,,,,,933,933,,,933,933,,,,,,,,,,,,,,,,,,,933,,,933,,,,933,,,933,,933,,,,,,,933,,,,,,,933,,,,933,933,933,933,,933,933,933,933,,,,,933,933,939,939,939,939,,,933,,933,933,933,,,933,933,,939,939,939,939,,,1204,939,1204,1204,1204,1204,1204,939,939,,,939,,,,1204,,,,,,,,,,,,,,,,939,,,939,,,1204,939,,,939,,939,,,1204,1204,1204,1204,,,,1204,,,,939,,,,939,939,939,939,,939,939,939,939,,,,,939,939,945,945,945,945,,,939,,939,939,939,,,939,939,,945,945,945,945,,,1227,945,1227,1227,1227,1227,1227,945,945,,,945,,,,1227,,,,,,,,,,,,,,,,945,,,945,,,1227,945,,,945,,,,,,,1227,1227,,,,1227,,,,945,,,,945,945,945,945,,945,945,945,945,,,,,945,945,946,946,946,946,,,945,,945,945,945,,,945,945,,946,946,946,946,,,,946,,,,,,946,946,,,946,,,,,,,,,,,,,,,,,,,,946,,,946,,,,946,,,946,,,,,,,,,,,,,,,,946,,,,946,946,946,946,,946,946,946,946,,,,,946,946,988,988,988,988,,,946,,946,946,946,,,946,946,,988,988,988,988,,,,988,988,,,,,988,988,,,988,988,,,,,,,,,,,,,,,,,,,988,,,988,,,,988,,,988,,988,,,,,,,988,,,,,,,988,,,,988,988,988,988,,988,988,988,988,,,,,988,988,1115,1115,1115,1115,,,988,,988,988,988,,,988,988,,1115,1115,1115,1115,,,,1115,,,,,,1115,1115,,,1115,,,,,,,,,,,,,,,,,,,,1115,,,1115,,,,1115,,,1115,,,,,,,,,,,,,,,,1115,,,,1115,1115,1115,1115,,1115,1115,1115,1115,,,,,1115,1115,1123,1123,1123,1123,,,1115,,1115,1115,1115,,,1115,1115,,1123,1123,1123,1123,,,,1123,,,,,,1123,1123,,,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,,1123,,,1123,,,,,,,,,,,,,,,,1123,,,,1123,1123,1123,1123,,1123,1123,1123,1123,,,,,1123,1123,1127,1127,1127,1127,,,1123,,1123,1123,1123,,,1123,1123,,1127,1127,1127,1127,,,,1127,,,,,,1127,1127,,,1127,,,,,,,,,,,,,,,,,,,,1127,,,1127,,,,1127,,,1127,,1127,,,,,,,,,,,,,,1127,,,,1127,1127,1127,1127,,1127,1127,1127,1127,,,,,1127,1127,1202,1202,1202,1202,,,1127,,1127,1127,1127,,,1127,1127,,1202,1202,1202,1202,,,,1202,,,,,,1202,1202,,,1202,,,,,,,,766,766,766,766,,,,,,,,,1202,,,1202,766,766,766,1202,,,1202,,,,,,,766,766,,,766,,,,,1202,,,,1202,1202,1202,1202,,1202,1202,1202,1202,,,,,1202,1202,,,,,,,1202,,1202,1202,1202,,,1202,1202,971,,971,971,971,971,971,,,,,766,766,766,766,971,766,766,766,766,,,,,766,766,952,952,952,952,,,766,,766,766,766,971,,,,,952,952,952,,971,971,971,971,,,,971,,952,952,,,952,953,953,953,953,,,,,,,,,,,,,953,953,953,971,,,,,,,,,,953,953,,,953,,,,,,,,,,,,,,,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952,,,,,,,,,953,953,953,953,,953,953,953,953,,,,,953,953,,,,,,,953,,953,953,953,706,,706,706,706,706,706,,708,,708,708,708,708,708,706,,,,,,,,708,,1019,,1019,1019,1019,1019,1019,,,,,,706,,,1019,,,,,708,706,706,706,706,,,,706,708,708,708,708,,,,708,1019,,,,,,,,,1019,1019,1019,1019,,,1023,1019,1023,1023,1023,1023,1023,1025,,1025,1025,1025,1025,1025,,1023,706,,,,,,1025,,708,1164,,1164,1164,1164,1164,1164,,,,,,1023,,,1164,1019,,,1025,,,,1023,1023,,,,1023,,1025,1025,,,,1025,,1164,,,,,,,,,,,1164,1164,,,,1164,,,,,,,,,,,,226,226,,1023,226,,,,,,1025,,226,226,,226,226,226,226,226,226,226,,,226,226,,,1164,226,226,226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,227,227,226,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,,,227,227,,,,227,227,227,227,,,,,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,227,227,227,227,227,303,303,227,,303,,,,,,,,303,303,,303,303,303,303,303,303,303,,,303,303,,,,303,303,303,303,,,,,,,,,,,,,,303,303,,303,303,303,303,303,303,303,303,303,303,303,303,521,521,303,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,,,521,521,,,,521,521,521,521,,,,,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,521,521,521,521,521,522,522,521,,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,594,594,522,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,,,594,594,,,,594,594,594,594,,,,,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,594,594,594,594,594,595,595,594,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,,,595,595,,,,595,595,595,595,,,,,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,595,595,595,595,595,604,604,595,,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,605,605,604,,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,632,632,605,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,,,632,632,,,,632,632,632,632,,,,,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,632,632,632,632,632,633,633,632,,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,639,639,633,,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,640,640,639,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,,,640,640,,,,640,640,640,640,,,,,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,640,640,640,640,640,677,677,640,,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,678,678,677,,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,1161,1161,678,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,,,1161,1161,,,,1161,1161,1161,1161,,,,,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1162,1162,1161,,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,1185,1185,1162,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,,,1185,1185,,,,1185,1185,1185,1185,,,,,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,,,1185"),k=e.large_array_unpack(",204,979,226,,-110,,5154,964,144,24967,25095,159,,157,176,525,279,-62,-84,162,374,,-71,5285,1123,25479,358,,171,,-8,5426,5536,5670,5801,5932,,1123,23109,23240,,281,525,531,368,6063,6194,205,6325,6456,525,6587,318,342,,,,,,,,,,6728,,6869,7000,7131,35,,7262,7393,,,7524,23379,23510,23641,,,,,,,,,,612,,,,,,,,,,,,,,,,,,,,,,,0,112,,,,,,,,,,,,,7667,,,,,7810,7941,8072,8203,8346,,1267,,588,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,345,,1411,8477,8608,8739,8870,9001,9132,27591,27652,,,363,1555,372,,719,831,384,1699,9263,9394,9525,,,514,-23,141,480,193,409,536,,9656,307,388,1843,541,,,9787,9918,10049,10180,10311,10442,10573,10704,10835,10966,11097,11228,11359,11490,11621,11752,11883,12014,12145,12276,12407,12538,,,,,12669,,,226,302,515,517,518,532,550,558,584,585,,,,12800,,,27713,,,541,12931,13062,,,,,,,,13193,,1843,,512,532,,13324,585,13455,,,13586,13717,,,221,,13860,1252,599,579,1987,626,687,648,23772,2131,694,806,873,748,878,,724,691,225,743,748,,,,750,221,707,23911,,564,879,3283,3427,778,,779,13991,,757,2275,1396,721,,139,574,760,743,583,773,,577,-1,11,14122,2419,2563,264,845,727,-18,10,893,810,11,842,,,441,481,513,,962,,761,14253,,15821,,193,378,396,402,412,-41,-27,463,,,,,,,,756,25223,,,,,759,,835,746,14384,747,,,736,,968,246,850,,,1267,,,,,,1411,764,,763,765,615,669,14525,,,,,222,334,825,,,14657,14793,14930,908,913,,,-1,793,792,800,,,805,816,818,,,,,,,,,,807,3125,,,15061,,,,,,,,902,,,907,361,15192,950,,,,-35,,870,27774,27835,15323,253,15454,15585,15716,823,828,25562,25660,3571,3715,-45,1018,908,912,925,927,5285,5375,5488,3859,4003,4147,4291,4435,4579,3311,3455,4723,4867,1987,5011,,-33,,15857,,,,,15987,886,885,889,,,,892,,,16118,,16249,,16380,,329,,,,16523,1540,,918,917,,,918,24042,923,16666,27896,27957,972,968,,,24173,925,,16797,28018,28079,16928,5154,17059,,1051,932,976,,17190,,,17321,,,,2707,1056,,2851,62,1060,1064,508,1066,17452,17583,28140,28201,27,,,995,,28262,28323,17714,,,81,2995,,15851,,,,,1033,,,,958,,,153,,263,,,944,,947,,,,25351,,17857,950,17988,18119,18250,28384,28445,18393,18524,693,991,18655,18786,18917,19048,997,,,19179,19310,1002,,1060,1555,1091,19441,,,,,888,,,544,27424,,27432,,25811,,961,19572,,3154,,976,978,729,983,,,,,1087,1699,,,,277,286,473,612,1001,19703,19834,,-77,,,,,1023,,,,582,25758,94,,1002,1085,1006,,,25857,,,303,,,654,,,6728,27202,,,,,,,,,,,,838,612,,,1016,26000,,1140,,1123,91,,,19965,,1038,1050,1156,,1046,,1096,20096,,,20227,,245,24304,1070,,1074,236,250,1120,360,1123,1124,1084,24435,,1153,2131,20358,,,,604,738,,1208,,,,,,1218,1226,,,26,1106,40,41,151,152,3139,970,1267,,1107,3283,20489,,1238,63,1118,,,,,,3427,,,,,,,,,1117,20620,1123,306,343,722,834,,2275,20751,,1122,,,,,,,,,,,20882,21013,1248,,3571,1124,1173,,,1131,,1223,,,1142,1143,,1146,1147,,1148,,,,1153,3184,3164,,,21144,21275,21406,21537,21668,21799,347,26083,1252,26181,-41,252,26279,26377,622,-32,1174,1176,,26475,,1175,359,,1196,26573,26671,,637,1236,333,,27300,27334,,,,,21930,,,22061,,,1218,,,1234,1218,,,27255,3715,,,,,1220,338,,-7,,1345,,22192,1348,,,26769,22323,3859,68,1352,,1354,442,4003,,,,,1231,1281,1252,1247,445,,,22454,2419,2563,,4147,,,32,24566,,,27449,,26073,,27501,,27508,,,,,1248,1258,2707,2851,22585,,1259,,,,,1264,1267,1269,1271,1274,1278,,,,1331,1286,1287,,1293,,,122,1291,,,,,,,1295,2995,4291,,,1294,1314,,1315,1317,1319,,1344,1337,1326,24697,,,,,,33,,34,728,,615,,,,1482,4435,4579,1109,,,,4723,35,36,1165,1437,42,,1364,1365,1368,1372,3651,3795,26867,,,,,,,,26965,,370,,27063,,,1444,,,15876,,,26184,,14588,,,1398,24828,1309,1460,4867,,22716,22847,,,,,1410,1515,636,,,,1518,22978,28506,28567,98,27526,,,,,1397,1402,1403,,,1404,,,1405,1408,1412,1413,,1419,,1411,28628,,797,5011,,,,,,1829,,1432,102,138,145,181,1430,27161,,26478,,23287,,23819,,25549,,,1475,1478,,38,,146,,1435,1436,1438,1458,,,,26576,,,,,1459,"),A=e.large_array_unpack("-1,-741,-4,-741,-2,-727,-5,-741,-8,-741,-741,-741,-741,-31,-741,-741,-36,-741,-741,-637,-637,-313,-52,-729,-741,-61,-741,-69,-70,-71,-75,-287,-287,-287,-326,-354,-355,-87,-13,-91,-99,-101,-741,-624,-625,-741,-741,-741,-741,-741,-741,-239,-741,-729,-258,-304,-305,-306,-307,-308,-309,-310,-311,-312,-717,-315,-319,-740,-705,-335,-337,-741,-741,-63,-63,-727,-741,-741,-741,-356,-357,-359,-360,-361,-362,-421,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-611,-612,-613,-715,-716,-616,-617,-618,-619,-620,-621,-622,-623,-628,-629,1234,-3,-728,-736,-737,-738,-7,-741,-741,-741,-741,-741,-9,-4,-19,-741,-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,-741,-741,-741,-741,-741,-277,-741,-741,-725,-726,-741,-13,-636,-634,-660,-660,-741,-13,-741,-741,-729,-730,-56,-741,-624,-625,-741,-313,-741,-741,-245,-741,-637,-637,-13,-741,-57,-59,-222,-223,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-259,-260,-261,-262,-741,-65,-66,-741,-130,-131,-170,-171,-172,-188,-193,-200,-203,-624,-625,-703,-741,-430,-432,-741,-723,-724,-76,-277,-741,-334,-436,-445,-447,-82,-442,-83,-729,-84,-265,-282,-292,-292,-286,-290,-293,-295,-587,-707,-711,-714,-85,-86,-727,-14,-741,-17,-741,-89,-13,-729,-741,-92,-95,-13,-107,-108,-741,-741,-115,-326,-329,-729,-741,-637,-637,-354,-355,-358,-443,-741,-97,-741,-103,-323,-741,-224,-225,-606,-233,-234,-741,-246,-251,-13,-317,-729,-266,-729,-729,-741,-741,-729,-741,-336,-62,-741,-741,-741,-13,-13,-727,-741,-728,-624,-625,-741,-741,-313,-741,-372,-373,-125,-126,-741,-128,-741,-313,-632,-741,-350,-660,-567,-741,-741,-741,-741,-741,-741,-741,-741,-6,-739,-25,-26,-27,-28,-29,-741,-741,-21,-22,-23,-138,-741,-32,-35,-300,-295,-741,-299,-33,-741,-37,-741,-313,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-729,-278,-292,-292,-715,-716,-287,-440,-717,-718,-719,-716,-715,-287,-439,-441,-717,-719,-741,-555,-741,-385,-386,-686,-729,-702,-702,-642,-643,-645,-645,-645,-659,-661,-662,-663,-664,-665,-666,-667,-668,-669,-741,-671,-673,-675,-680,-682,-683,-684,-691,-693,-694,-696,-697,-698,-700,-741,-741,-741,-48,-219,-55,-729,-333,-741,-741,-741,-277,-323,-741,-741,-741,-741,-741,-741,-741,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-729,-263,-67,-729,-451,-287,-715,-716,-73,-77,-661,-729,-292,-729,-288,-449,-451,-729,-328,-283,-741,-284,-741,-289,-741,-294,-741,-710,-713,-12,-728,-16,-18,-729,-88,-321,-104,-93,-741,-729,-277,-741,-741,-114,-741,-636,-606,-741,-100,-105,-741,-741,-741,-741,-264,-741,-330,-741,-729,-741,-267,-735,-734,-269,-735,-324,-325,-706,-13,-363,-364,-13,-741,-741,-741,-741,-741,-741,-277,-741,-741,-323,-63,-125,-126,-127,-741,-741,-277,-346,-630,-741,-13,-422,-660,-425,-568,-588,-593,-741,-595,-571,-590,-741,-592,-573,-741,-576,-741,-578,-581,-741,-582,-741,-604,-10,-20,-741,-30,-741,-303,-741,-741,-277,-741,-741,-741,-741,-444,-741,-279,-281,-741,-741,-78,-276,-437,-741,-741,-80,-438,-44,-254,-740,-740,-352,-524,-685,-635,-741,-640,-641,-741,-741,-652,-741,-655,-741,-657,-741,-741,-374,-741,-376,-378,-381,-384,-729,-674,-695,-699,-638,-46,-256,-353,-332,-731,-715,-716,-715,-716,-729,-741,-741,-58,-465,-468,-469,-470,-471,-473,-475,-478,-479,-534,-729,-491,-494,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-741,-741,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-741,-741,-553,-60,-741,-741,-704,-741,-452,-72,-433,-449,-272,-279,-274,-741,-411,-741,-327,-292,-291,-296,-298,-708,-709,-741,-15,-90,-741,-96,-102,-729,-715,-716,-275,-720,-113,-741,-98,-741,-218,-232,-252,-741,-316,-318,-320,-729,-740,-365,-740,-64,-366,-367,-340,-341,-741,-741,-457,-343,-741,-729,-715,-716,-720,-322,-13,-125,-126,-129,-729,-13,-741,-348,-741,-741,-729,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-301,-298,-729,-715,-716,-716,-715,-50,-271,-741,-732,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-741,-741,-740,-370,-13,-556,-740,-557,-558,-702,-681,-686,-701,-644,-645,-645,-672,-645,-645,-692,-645,-669,-388,-687,-729,-741,-741,-383,-670,-741,-741,-741,-741,-741,-741,-444,-466,-741,-741,-476,-477,-741,-741,-741,-496,-729,-729,-490,-497,-501,-741,-741,-493,-741,-741,-741,-507,-514,-518,-741,-522,-530,-531,-535,-536,-548,-549,-741,-126,-551,-741,-68,-431,-411,-435,-434,-741,-729,-446,-412,-729,-13,-448,-285,-297,-712,-94,-444,-106,-729,-268,-741,-368,-741,-741,-342,-344,-741,-741,-13,-444,-741,-444,-741,-741,-13,-351,-423,-426,-428,-415,-741,-741,-302,-444,-39,-213,-280,-45,-255,-11,-13,-562,-371,-741,-741,-560,-639,-741,-648,-741,-650,-741,-653,-741,-656,-658,-375,-377,-379,-382,-47,-257,-741,-467,-504,-472,-474,-483,-487,-729,-729,-729,-729,-729,-729,-552,-488,-489,-511,-498,-499,-502,-729,-587,-733,-729,-505,-509,-512,-517,-521,-528,-529,-729,-253,-13,-74,-273,-702,-702,-392,-394,-394,-394,-410,-741,-729,-669,-677,-678,-689,-450,-331,-338,-741,-339,-741,-462,-296,-740,-345,-347,-631,-741,-13,-13,-741,-424,-596,-561,-13,-624,-625,-741,-741,-313,-559,-645,-645,-645,-645,-741,-741,-741,-480,-481,-482,-484,-485,-486,-503,-741,-492,-741,-495,-741,-550,-453,-741,-390,-391,-395,-401,-403,-741,-406,-741,-408,-413,-741,-741,-676,-741,-13,-458,-741,-741,-454,-455,-456,-349,-741,-741,-729,-417,-419,-420,-555,-277,-741,-741,-323,-741,-646,-649,-651,-654,-380,-505,-500,-506,-510,-702,-679,-393,-394,-394,-394,-394,-690,-394,-414,-688,-741,-323,-740,-13,-463,-464,-427,-429,-416,-741,-554,-729,-715,-716,-720,-322,-645,-741,-389,-741,-398,-741,-400,-741,-404,-741,-407,-409,-322,-720,-369,-740,-418,-444,-647,-394,-394,-394,-394,-459,-460,-461,-741,-396,-399,-402,-405,-394,-397"),S=e.large_array_unpack("44,412,475,341,340,44,142,142,514,319,319,319,696,419,233,233,226,302,286,638,496,496,142,285,298,383,128,304,455,385,386,714,893,390,137,218,44,345,345,145,145,713,15,629,357,357,835,15,388,389,566,703,704,900,461,468,907,621,624,737,781,562,376,125,44,135,574,310,314,982,439,440,242,124,394,298,298,798,15,798,801,357,357,357,306,313,315,237,422,423,424,425,367,910,303,906,128,908,793,17,740,740,446,360,17,446,15,337,1029,601,564,613,616,479,512,620,399,487,487,446,720,1031,801,44,707,709,711,1036,320,320,320,558,44,1002,44,17,4,972,339,1052,943,452,129,391,610,785,1074,1,903,1156,1158,903,2,1181,1011,515,804,795,936,1043,1046,377,217,17,985,15,407,409,400,1054,659,661,598,598,15,435,15,954,955,8,317,330,331,428,8,433,530,798,798,801,531,829,1051,287,783,789,496,759,759,1059,319,670,370,574,1058,608,379,788,299,380,398,642,373,655,657,660,660,44,611,375,340,1181,17,472,821,849,996,645,1030,44,937,17,1076,17,1134,44,1078,579,1155,230,236,521,646,374,998,1217,1158,233,233,714,1077,410,44,918,853,847,738,738,1096,15,420,441,462,1097,441,557,568,569,434,445,427,15,445,964,1149,1088,1224,15,441,988,834,1188,319,319,1037,304,445,1038,932,648,933,319,942,487,15,798,321,321,321,945,1060,1061,8,957,340,897,1029,1067,1177,340,1015,426,411,8,438,438,17,1169,17,967,237,17,464,464,413,602,734,1172,17,378,381,414,44,415,17,17,44,1035,915,807,345,44,1041,1044,594,625,416,357,816,461,468,17,555,128,626,627,417,1141,418,345,1075,855,604,860,1063,1064,357,850,1059,902,905,44,901,1170,15,907,1059,1175,15,,1173,1171,,15,,,44,44,310,,583,,585,632,314,960,809,,,464,582,565,320,599,910,590,,337,1109,,320,128,337,15,1042,1045,852,1072,,,,237,812,,142,761,761,1150,15,15,1215,17,812,496,839,17,,,586,,17,677,885,592,848,1124,,890,694,,714,714,669,,567,1173,,145,628,863,812,863,570,,,,239,,812,,17,1018,528,529,935,,384,384,,871,384,1174,949,907,,17,17,,725,,,,496,519,496,,372,688,319,,,,,,693,461,468,,,,990,584,798,801,687,,,1089,472,,,692,1178,,,1179,854,,775,775,487,,,724,968,384,384,384,384,909,,911,974,,,1020,1022,898,1024,1026,1047,1027,1225,,977,602,446,462,740,981,907,,,,602,,446,446,319,571,321,446,446,,,,903,,321,1072,,44,1072,,1072,,,826,,345,828,472,587,1220,688,,357,,345,759,759,472,881,883,,357,319,886,888,759,844,787,,,,759,319,464,464,44,994,,44,15,1142,974,,450,451,472,462,,,,1226,472,,,,,462,1131,1132,44,517,518,830,714,714,,1072,319,1072,935,1072,759,1072,,935,935,,15,,,15,851,142,,462,950,44,1057,,1072,472,,462,44,,,17,,,,,15,,1102,,,464,464,899,,867,,,1195,,145,464,464,,,,556,,,,,,,15,462,738,441,,,17,15,,17,,445,838,441,441,,464,464,441,441,701,445,445,464,464,,445,445,,,17,1151,966,1203,775,,1071,1165,1166,1167,1168,,775,,,1079,1145,446,1146,,,775,775,,,1095,,17,602,728,17,464,464,962,17,965,,142,285,979,17,17,,,,17,17,,,438,384,,597,1006,,902,,,,,1073,,345,496,,,995,784,992,357,,644,,345,,790,612,792,615,615,357,796,615,,1003,761,761,,,,,,,797,,761,1129,805,1080,1219,44,761,,808,,44,688,868,1110,693,1111,,1112,,876,,44,,,1014,,,823,,,,1154,,,,,,,,825,,,,,,,761,15,,,453,1013,15,,,1017,44,,,,,682,,15,516,,,,,,,,,1071,,,1071,382,1071,1065,,441,1079,,,1079,,,775,445,775,,,775,775,,,,15,,775,1083,,,17,1086,775,775,880,17,,,,775,775,,,,,1091,17,,,,,,1196,,,1125,1180,,1182,44,,,919,,17,,,1101,,,1071,,1071,,1071,775,1071,44,812,1079,,17,,44,1201,782,,,1080,,,1080,,1071,1080,,1080,,,44,,15,,1104,,1094,,,,,357,,,,,,,,,15,,,,,1221,15,1222,,1223,,,,,,,,,,,,,15,880,,,1108,,1232,,,,1153,,,44,436,449,1159,17,,,,1080,,1080,,1080,298,1080,,,,,,357,18,17,,,,18,,17,44,44,1080,1135,1137,1139,44,,,1161,,1189,1190,15,243,17,,1187,,775,,,,,243,243,243,775,18,346,346,775,,,,,,,681,,,319,15,15,,,298,,15,44,,,,357,,,18,,,,1216,243,243,,472,243,395,405,405,,17,,,,1028,576,,578,,,580,581,,682,,,,472,,1039,,15,44,,516,,453,682,944,17,17,,,462,,17,775,1205,1207,1209,1211,,1212,,,18,,,,,243,243,243,243,18,,18,1069,,,,,980,,15,,,,,1084,,,,,,,,,17,,1228,1229,1230,1231,,,,,682,,,384,1233,464,464,,,,,,,,818,,615,,,,,,,,,767,767,,,464,682,673,,17,,,,,,682,,,1116,1117,1118,1001,,,,,,18,243,443,243,243,443,243,1126,,,,682,18,,,1128,,,18,443,243,243,,,,,,,,19,,,,,19,18,,,,,,,,721,,882,884,,,,887,889,,,,,,,,,384,,,,,19,353,353,,,,682,,,,,682,682,,,,243,768,768,,,384,,243,243,,,,19,,,,243,,,,,20,353,353,353,,20,926,,,1001,,,,18,799,,382,18,802,,938,346,18,,,,,,,,,,,,,,20,354,354,,346,,,,,,,,,,19,,18,,,799,,,382,19,,19,,,20,,243,18,18,,,449,,,354,354,354,,,,,978,682,682,682,,,243,,,767,,944,,,,,,767,,,,,,,,,767,767,,,991,,,,869,1001,,,,993,,,20,799,382,,,,,,,20,,20,,1007,,896,,,,,1005,19,,19,384,384,19,,,243,,914,,19,,,,,,19,19,,,,,,,,,,,,,,,,19,882,884,889,887,,,,,,,,,243,1193,,,,,768,,,,243,1040,,,768,,1048,1049,,,,,,768,768,20,,20,,,20,,,,,,,20,,,799,,682,20,20,,,,,975,,,976,,,,,,,,20,,,,769,769,,19,,,18,19,,,,353,19,767,346,767,243,,767,767,,,,346,,767,,,,,353,767,767,,,,1007,,767,767,,,19,,18,,,18,,,,,,,243,1004,,19,19,,1119,1120,1121,,243,,,,18,,,,,,767,,20,,,,20,,,,354,20,,,,,,,,,,18,,,443,243,,,18,354,,,,,443,443,,,,443,443,20,,,,,,768,,768,,,768,768,,,20,20,,768,,,,,,768,768,,,,,,768,768,,,,,,,,,,,,,,,,,,,,,,,,,,,1090,,,,,,,,768,,,,,,,,,,,382,,,,,,,,767,,,,,,,,767,,,1218,767,,,,,769,,,,,,,,769,,,346,,,,,,769,769,,,,346,,,,243,,,,21,,,,19,21,,,,,,,353,,,,,,,18,,353,,,18,243,,,,,,,,770,770,18,21,348,348,,767,,19,,,19,,,,,,,,443,,,,,,,,768,,,21,,19,,,768,18,771,771,768,397,406,406,20,,,,,,,,354,,,,,,,,19,354,,19,,,,19,,,,,,19,19,,,,19,19,,,20,,,20,,,,,21,,,,,,772,772,,21,243,21,,,,,20,,,,,,,,18,768,769,,769,,,769,769,,,,243,,769,,,,18,20,769,769,20,,18,,20,769,769,,,,20,20,,,,20,20,,18,,,,1105,,,,,,,,,,,,,,,,,,,769,,,,,,,21,,444,,,444,,,,,353,,21,,,,,,21,444,,353,,,,18,,,,,,,,,770,21,,,1143,,,,770,,,,,,19,,,770,770,19,18,18,,,,,18,,,,19,,,,,,,,771,,,,,,,,771,,19,354,,,,,,771,771,,,,354,,,,,19,1184,,,18,,243,243,,,,,,,,,21,,,243,21,769,20,,348,21,,20,,769,,772,,769,,,,,20,772,,,,348,,,,18,772,772,,,,,,21,20,,,,,,,,,,,,,,21,21,,20,,,,19,,,,,,,,,,,,,,,,,,19,,,,,,19,,,,,,,769,,,,,,770,,770,19,,770,770,353,,,,,770,,,,,,770,770,,,,,,770,770,,,,,,,,,,20,,771,,771,,,771,771,,,,,,771,,,,20,,771,771,19,,20,770,,771,771,,,,,,,353,,,,,20,,,,354,,,,,,,19,19,,,,,19,,,772,,772,771,,772,772,,,,,,772,,,,,,772,772,,,,,,772,772,,,,,,,,,20,,353,773,773,19,,,,,,,,354,,,,,,,21,,,,,,772,,348,20,20,,,,,20,,348,,,,,,,,,,,19,,,,,,,,,770,21,,,21,,,,770,,,,770,,,31,,,354,,31,20,,,,21,,,,,,,859,,,,,31,771,,,,,,,,771,31,31,31,771,31,21,,,444,,43,,21,,,43,,20,444,444,,,,444,444,,,,,,,,31,,297,,,31,31,,770,31,,,,,43,344,344,772,,,,,,,,772,,,,772,,,,,,,,,,,,,43,,,,771,,,,,,393,297,297,,,,,31,,,,,31,31,31,31,31,,31,,,,,,,,,,,,,,,773,,,,,,,,773,,,,,,,,43,773,773,772,,,348,,,43,,43,,,,,,348,,,,,,,,774,774,,,,,,,,,,,,,,,,,,21,,,,,21,,,31,31,31,31,31,31,31,,21,,,,31,,,,,,31,31,31,31,,,,,444,,,,,,,,,31,,,,,,,43,21,,,,,,,,,,,43,,,,,,43,,,,,,,,,,,,,,,,,43,,,,31,,,,,,,31,31,,,,,,,,31,,,,,,,,,,,,,,773,,773,,31,773,773,,31,21,,,773,31,,,,,773,773,,,,,,773,773,21,,,,,,21,,,,,,,,,,31,,,43,,,21,43,,,1107,344,43,,31,31,31,,773,,,,,,,,,,,,344,,,,,31,,774,,,,,43,,34,774,,,,34,,,,,774,774,,43,43,,,21,,,,,34,,,,,,,,406,,34,34,34,,34,,,,,,,,,,21,21,,,,,21,,,,31,,,,,,,,34,,,,,34,34,,,34,,,,,,,,,,,,,,,,,,,406,776,776,21,31,,,,,773,,,,,31,,,773,,,,773,,,,,,,,,,34,,,,,34,34,34,34,34,,34,,,,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,31,,,,,,774,,774,,31,774,774,,,,,,774,,,,773,,774,774,,,,,,774,774,,,,,,31,,,31,43,,,,,,31,,344,34,34,34,34,34,34,34,31,344,,,31,34,,,,774,,34,34,34,34,,,,,,,,43,,,43,,,34,,,31,,,31,31,,,31,,,,,,31,31,43,,,31,31,,,,,,,,,,,,,,,,,,,,,,,43,34,,,,,,43,34,34,,,,,776,,,34,,,,,776,,,,,,,,,776,776,,,34,,,,34,,,,,34,,,,,,,,,,,,,,,,,,,774,,,,,,,,774,,,34,774,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,31,,34,,,,,,,,,,,,,,,,,,,,,31,,,,344,31,31,,,,,,,,,344,31,,,,774,,,,,,,,,,,,,,31,,,,,,,,43,,34,,,43,,,,31,,,,,,,43,,,,,776,,776,,,776,776,,,,,,776,,,,,,776,776,,34,,,,776,776,,,,43,34,,,,,,,,,,,,,,,,,,,,31,,,,,,,,,,776,,,,31,,,,,,,,,,,,31,,,,,,31,,,,,,31,,34,,,,,,,,,,34,,,,31,,43,,,,,,,,,,,,,,,,,,43,,,,34,,43,34,,,,,,,34,,,,,,,,43,,34,,1103,,34,,,,,,,31,,,,,,,,,,,,,,,,,,,,34,,,34,34,,,34,776,31,31,,,34,34,31,776,,34,34,776,250,43,,,,,,,,,318,318,318,,297,,,,,,,,365,366,,368,369,,371,,43,43,,,,,43,31,,31,31,,,318,318,,,,,,,,31,,,,,,,,,,,,,,,,,,,,,,776,,297,,,43,31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,318,448,,,454,318,34,,,,,,,,,,,,454,,,,,,,,,,,,,250,,,,,,,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,,,,,554,,,,,34,,,,,,,,,,,,,,34,,,,318,318,,,,,,,34,318,,,,,34,,318,,318,,34,318,318,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,607,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,34,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,695,,,34,,34,34,,,,,,,,,,,,34,,,,,,,,,318,,,,,,,,,,,,,726,,,,,,34,,,,318,,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,366,,,,,,,,,,318,,318,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,454,,,819,,820,,,,,,318,,,318,,,,,,,,,,,,,318,318,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,454,318,,,,877,,,318,318,454,454,,,,454,454,,,,,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,695,726,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,318,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,454,,,,,,,,,,,,,1009,1010,,,,,,,,,,,,,,,,,,,,,,,,,,,,1032,1033,454,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318"),x=e.large_array_unpack("72,198,10,68,11,72,75,75,10,36,36,36,12,198,87,87,33,158,46,73,230,230,75,48,72,107,117,33,31,19,19,128,13,19,17,17,72,72,72,77,77,135,23,112,82,82,113,23,44,44,92,139,139,133,55,55,231,110,110,41,41,57,87,7,72,9,94,91,91,111,24,24,22,5,72,72,72,95,23,95,239,82,82,82,56,56,56,119,19,19,19,19,80,235,51,146,117,146,58,29,177,177,20,69,29,20,23,64,127,70,31,89,89,157,157,89,23,225,225,20,129,130,239,72,228,228,228,192,88,88,88,55,72,149,72,29,2,147,65,192,187,28,6,5,10,161,145,1,140,151,152,140,3,236,14,28,16,161,175,178,178,88,18,29,13,23,74,74,21,178,214,214,224,224,23,25,23,202,202,8,63,63,63,27,8,11,42,95,95,239,43,45,191,50,52,60,230,200,200,191,36,78,83,94,193,84,86,93,105,106,114,116,120,215,215,215,215,72,121,122,11,236,29,75,123,124,125,126,131,72,176,29,136,29,142,72,143,198,150,35,35,33,153,8,154,151,152,87,87,128,149,155,72,128,156,73,174,174,159,23,6,23,91,160,23,162,164,165,22,22,2,23,22,168,169,170,171,23,23,172,112,173,36,36,180,33,22,182,183,157,184,36,188,225,23,95,90,90,90,189,195,196,8,205,11,206,127,147,145,11,207,8,210,8,88,88,29,130,29,58,119,29,61,61,211,68,31,192,29,90,90,212,72,213,29,29,72,175,129,70,72,72,175,175,33,19,216,82,70,55,55,29,51,117,11,11,217,149,218,72,146,219,33,220,202,202,82,223,191,200,229,72,233,193,23,231,191,234,23,,191,193,,23,,,72,72,91,,7,,9,33,91,73,31,,,61,5,88,88,80,235,69,,64,146,,88,117,64,23,176,176,10,140,,,,119,55,,75,201,201,13,23,23,111,29,55,230,31,29,,,65,,29,33,57,65,31,187,,57,36,,128,128,17,,63,191,,77,5,215,55,215,63,,,,40,,55,,29,139,35,35,174,,26,26,,31,26,133,174,231,,29,29,,36,,,,230,66,230,,40,91,36,,,,,,91,55,55,,,,110,8,95,239,56,,,41,75,,,56,146,,,146,157,,72,72,225,,,117,92,26,26,26,26,144,,144,94,,,228,228,24,228,228,73,228,13,,70,68,20,91,177,89,231,,,,68,,20,20,36,66,90,20,20,,,,140,,90,140,,72,140,,140,,,11,,72,11,75,66,146,91,,82,,72,200,200,75,28,28,,82,36,28,28,200,44,56,,,,200,36,61,61,72,10,,72,23,135,94,,26,26,75,91,,,,113,75,,,,,91,139,139,72,26,26,117,128,128,,140,36,140,174,140,200,140,,174,174,,23,,,23,117,75,,91,198,72,174,,140,75,,91,72,,,29,,,,,23,,110,,,61,61,87,,17,,,12,,77,61,61,,,,26,,,,,,,23,91,174,23,,,29,23,,29,,22,88,23,23,,61,61,23,23,66,22,22,61,61,,22,22,,,29,112,107,139,72,,132,228,228,228,228,,72,,,230,110,20,110,,,72,72,,,10,,29,68,66,29,61,61,46,29,158,,75,48,68,29,29,,,,29,29,,,88,26,,40,28,,200,,,,,144,,72,230,,,19,66,11,82,,26,,72,,66,40,66,40,40,82,66,40,,11,201,201,,,,,,,90,,201,10,66,232,228,72,201,,66,,72,91,8,144,91,144,,144,,8,,72,,,11,,,66,,,,10,,,,,,,,90,,,,,,,201,23,,,79,87,23,,,87,72,,,,,40,,23,79,,,,,,,,,132,,,132,85,132,19,,23,230,,,230,,,72,22,72,,,72,72,,,,23,,72,11,,,29,19,72,72,90,29,,,,72,72,,,,,11,29,,,,,,31,,,198,144,,144,72,,,66,,29,,,11,,,132,,132,,132,72,132,72,55,230,,29,,72,144,40,,,232,,,232,,132,232,,232,,,72,,23,,72,,117,,,,,82,,,,,,,,,23,,,,,144,23,144,,144,,,,,,,,,,,,,23,90,,,23,,144,,,,11,,,72,85,85,11,29,,,,232,,232,,232,72,232,,,,,,82,30,29,,,,30,,29,72,72,232,141,141,141,72,,,33,,19,19,23,30,29,,11,,72,,,,,30,30,30,72,30,30,30,72,,,,,,,32,,,36,23,23,,,72,,23,72,,,,82,,,30,,,,11,30,30,,75,30,30,30,30,,29,,,,66,85,,85,,,85,85,,40,,,,75,,66,,23,72,,79,,79,40,40,29,29,,,91,,29,72,141,141,141,141,,141,,,30,,,,,30,30,30,30,30,,30,66,,,,,26,,23,,,,,66,,,,,,,,,29,,141,141,141,141,,,,,40,,,26,141,61,61,,,,,,,,79,,40,,,,,,,,,97,97,,,61,40,85,,29,,,,,,40,,,66,66,66,40,,,,,,30,30,30,30,30,30,30,66,,,,40,30,,,66,,,30,30,30,30,,,,,,,,34,,,,,34,30,,,,,,,,85,,79,79,,,,79,79,,,,,,,,,26,,,,,34,34,34,,,,40,,,,,40,40,,,,30,98,98,,,26,,30,30,,,,34,,,,30,,,,,38,34,34,34,,38,32,,,40,,,,30,85,,85,30,85,,32,30,30,,,,,,,,,,,,,,38,38,38,,30,,,,,,,,,,34,,30,,,85,,,85,34,,34,,,38,,30,30,30,,,85,,,38,38,38,,,,,32,40,40,40,,,30,,,97,,40,,,,,,97,,,,,,,,,97,97,,,32,,,,85,40,,,,32,,,38,85,85,,,,,,,38,,38,,79,,85,,,,,32,34,,34,26,26,34,,,30,,85,,34,,,,,,34,34,,,,,,,,,,,,,,,,34,79,79,79,79,,,,,,,,,30,40,,,,,98,,,,30,32,,,98,,32,32,,,,,,98,98,38,,38,,,38,,,,,,,38,,,85,,40,38,38,,,,,85,,,85,,,,,,,,38,,,,99,99,,34,,,30,34,,,,34,34,97,30,97,30,,97,97,,,,30,,97,,,,,34,97,97,,,,79,,97,97,,,34,,30,,,30,,,,,,,30,85,,34,34,,32,32,32,,30,,,,30,,,,,,97,,38,,,,38,,,,38,38,,,,,,,,,,30,,,30,30,,,30,38,,,,,30,30,,,,30,30,38,,,,,,98,,98,,,98,98,,,38,38,,98,,,,,,98,98,,,,,,98,98,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,,,,,98,,,,,,,,,,,85,,,,,,,,97,,,,,,,,97,,,32,97,,,,,99,,,,,,,,99,,,30,,,,,,99,99,,,,30,,,,30,,,,39,,,,34,39,,,,,,,34,,,,,,,30,,34,,,30,30,,,,,,,,100,100,30,39,39,39,,97,,34,,,34,,,,,,,,30,,,,,,,,98,,,39,,34,,,98,30,101,101,98,39,39,39,38,,,,,,,,38,,,,,,,,34,38,,34,,,,34,,,,,,34,34,,,,34,34,,,38,,,38,,,,,39,,,,,,102,102,,39,30,39,,,,,38,,,,,,,,30,98,99,,99,,,99,99,,,,30,,99,,,,30,38,99,99,38,,30,,38,99,99,,,,38,38,,,,38,38,,30,,,,30,,,,,,,,,,,,,,,,,,,99,,,,,,,39,,39,,,39,,,,,34,,39,,,,,,39,39,,34,,,,30,,,,,,,,,100,39,,,30,,,,100,,,,,,34,,,100,100,34,30,30,,,,,30,,,,34,,,,,,,,101,,,,,,,,101,,34,38,,,,,,101,101,,,,38,,,,,34,30,,,30,,30,30,,,,,,,,,39,,,30,39,99,38,,39,39,,38,,99,,102,,99,,,,,38,102,,,,39,,,,30,102,102,,,,,,39,38,,,,,,,,,,,,,,39,39,,38,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,34,,,,,,,99,,,,,,100,,100,34,,100,100,34,,,,,100,,,,,,100,100,,,,,,100,100,,,,,,,,,,38,,101,,101,,,101,101,,,,,,101,,,,38,,101,101,34,,38,100,,101,101,,,,,,,34,,,,,38,,,,38,,,,,,,34,34,,,,,34,,,102,,102,101,,102,102,,,,,,102,,,,,,102,102,,,,,,102,102,,,,,,,,,38,,34,103,103,34,,,,,,,,38,,,,,,,39,,,,,,102,,39,38,38,,,,,38,,39,,,,,,,,,,,34,,,,,,,,,100,39,,,39,,,,100,,,,100,,,59,,,38,,59,38,,,,39,,,,,,,39,,,,,59,101,,,,,,,,101,59,59,59,101,59,39,,,39,,71,,39,,,71,,38,39,39,,,,39,39,,,,,,,,59,,71,,,59,59,,100,59,,,,,71,71,71,102,,,,,,,,102,,,,102,,,,,,,,,,,,,71,,,,101,,,,,,71,71,71,,,,,59,,,,,59,59,59,59,59,,59,,,,,,,,,,,,,,,103,,,,,,,,103,,,,,,,,71,103,103,102,,,39,,,71,,71,,,,,,39,,,,,,,,104,104,,,,,,,,,,,,,,,,,,39,,,,,39,,,59,59,59,59,59,59,59,,39,,,,59,,,,,,59,59,59,59,,,,,39,,,,,,,,,59,,,,,,,71,39,,,,,,,,,,,71,,,,,,71,,,,,,,,,,,,,,,,,71,,,,59,,,,,,,59,59,,,,,,,,59,,,,,,,,,,,,,,103,,103,,59,103,103,,59,39,,,103,59,,,,,103,103,,,,,,103,103,39,,,,,,39,,,,,,,,,,59,,,71,,,39,71,,,39,71,71,,59,59,59,,103,,,,,,,,,,,,71,,,,,59,,104,,,,,71,,62,104,,,,62,,,,,104,104,,71,71,,,39,,,,,62,,,,,,,,39,,62,62,62,,62,,,,,,,,,,39,39,,,,,39,,,,59,,,,,,,,62,,,,,62,62,,,62,,,,,,,,,,,,,,,,,,,39,109,109,39,59,,,,,103,,,,,59,,,103,,,,103,,,,,,,,,,62,,,,,62,62,62,62,62,,62,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,104,,104,,59,104,104,,,,,,104,,,,103,,104,104,,,,,,104,104,,,,,,59,,,59,71,,,,,,59,,71,62,62,62,62,62,62,62,59,71,,,59,62,,,,104,,62,62,62,62,,,,,,,,71,,,71,,,62,,,59,,,59,59,,,59,,,,,,59,59,71,,,59,59,,,,,,,,,,,,,,,,,,,,,,,71,62,,,,,,71,62,62,,,,,109,,,62,,,,,109,,,,,,,,,109,109,,,62,,,,62,,,,,62,,,,,,,,,,,,,,,,,,,104,,,,,,,,104,,,62,104,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,59,,62,,,,,,,,,,,,,,,,,,,,,59,,,,71,59,59,,,,,,,,,71,59,,,,104,,,,,,,,,,,,,,59,,,,,,,,71,,62,,,71,,,,59,,,,,,,71,,,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,62,,,,109,109,,,,71,62,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,109,,,,59,,,,,,,,,,,,59,,,,,,59,,,,,,59,,62,,,,,,,,,,62,,,,59,,71,,,,,,,,,,,,,,,,,,71,,,,62,,71,62,,,,,,,62,,,,,,,,71,,62,,71,,62,,,,,,,59,,,,,,,,,,,,,,,,,,,,62,,,62,62,,,62,109,59,59,,,62,62,59,109,,62,62,109,37,71,,,,,,,,,37,37,37,,71,,,,,,,,37,37,,37,37,,37,,71,71,,,,,71,59,,59,59,,,37,37,,,,,,,,59,,,,,,,,,,,,,,,,,,,,,,109,,71,,,71,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,37,37,,,37,37,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,,,,,62,,,,,,,,,,,,,,62,,,,37,37,,,,,,,62,37,,,,,62,,37,,37,,62,37,37,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,62,,,,,62,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,62,,62,62,,,,,,,,,,,,62,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,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,,,,,,,,,37,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"),C=e.large_array_unpack(",147,134,152,,68,135,58,177,56,-229,-34,-462,-664,-739,,-427,24,151,-42,-119,92,48,40,-150,-45,405,46,-83,97,1084,-197,677,-2,1330,220,-25,3624,1403,1907,443,-471,-70,-67,-25,-434,-8,,-3,,167,65,-361,,,-172,53,-245,-470,2540,-366,96,2955,146,69,100,253,,-36,63,-252,2582,-2,-384,89,-4,,29,-231,663,44,,5,151,-167,846,139,-5,94,-266,262,36,-257,-351,-255,-496,,747,855,1131,1412,1450,1508,1943,2202,182,141,-44,,2520,-328,-757,-348,-582,134,,-196,21,,67,147,-156,153,-385,-417,-625,-182,-808,-466,-377,-796,-688,-223,-649,,-455,-739,,,-429,-554,24,-839,-735,-169,-825,-611,-657,,-721,-860,-949,-948,-168,-609,166,-392,-121,-10,-741,-737,-412,-36,,-45,-45,,,-513,-817,-713,-940,-557,-865,-274,-590,-518,-430,-773,,-644,,-642,-459,-457,,,-609,-457,-451,,-747,-800,-742,,-648,-647,,-89,,-333,-105,-588,,,-475,-392,-587,,,224,231,237,238,-245,-200,250,259,260,-291,-290,,,-276,-181,-117,,,-360,-336,-214,-650,-131,-330,-753,-615,-983,,,-495"),T=e.large_array_unpack(",,,,5,,6,392,335,,,474,,983,,332,333,,,,13,14,22,248,,,16,,442,249,364,,,640,252,,27,25,253,247,520,,,,,,,387,144,26,,,,28,29,815,,,,352,,30,349,456,37,,,39,42,41,,244,245,404,,465,143,87,,447,103,51,54,284,,324,,894,457,,458,470,483,689,572,322,308,55,56,57,58,59,60,61,62,63,,309,69,70,,,,,,77,,622,78,231,,,,,,,,716,495,,717,718,481,476,477,,1176,712,1070,,482,,,,484,,486,,970,,,,493,,,,,,,,,,,469,,,794,786,,,,,,,1050,,739,940,741,742,746,743,744,,,745,747,,,,939,941,751,,753,754,755,756,,760,478,504,762,763,764,113,,,86,88,89,,,,,650,,,,,,99,100,,232,904,235,480,,485,912,498,500,501,1081,505,1082,508,511,327"),z=e.large_array_unpack("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,1,235,_reduce_295,3,235,_reduce_296,4,235,_reduce_297,3,235,_reduce_298,1,172,_reduce_299,1,172,_reduce_none,3,171,_reduce_301,4,171,_reduce_302,2,171,_reduce_303,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_314,0,267,_reduce_315,4,229,_reduce_316,0,268,_reduce_317,4,229,_reduce_318,0,269,_reduce_319,4,229,_reduce_320,3,229,_reduce_321,3,229,_reduce_322,2,229,_reduce_323,3,229,_reduce_324,3,229,_reduce_325,1,229,_reduce_326,4,229,_reduce_327,3,229,_reduce_328,1,229,_reduce_329,0,270,_reduce_330,6,229,_reduce_331,4,229,_reduce_332,3,229,_reduce_333,2,229,_reduce_334,1,229,_reduce_none,2,229,_reduce_336,1,229,_reduce_none,6,229,_reduce_338,6,229,_reduce_339,4,229,_reduce_340,4,229,_reduce_341,5,229,_reduce_342,4,229,_reduce_343,5,229,_reduce_344,6,229,_reduce_345,0,271,_reduce_346,6,229,_reduce_347,0,272,_reduce_348,7,229,_reduce_349,0,273,_reduce_350,5,229,_reduce_351,4,229,_reduce_352,4,229,_reduce_353,1,229,_reduce_354,1,229,_reduce_355,1,229,_reduce_356,1,229,_reduce_357,1,177,_reduce_none,1,262,_reduce_359,1,265,_reduce_360,1,196,_reduce_361,1,209,_reduce_362,1,257,_reduce_none,1,257,_reduce_none,2,257,_reduce_365,1,192,_reduce_none,1,192,_reduce_none,1,258,_reduce_none,5,258,_reduce_369,1,160,_reduce_none,2,160,_reduce_371,1,261,_reduce_none,1,261,_reduce_none,1,274,_reduce_374,3,274,_reduce_375,1,277,_reduce_376,3,277,_reduce_377,1,276,_reduce_none,3,276,_reduce_379,5,276,_reduce_380,1,276,_reduce_381,3,276,_reduce_382,2,278,_reduce_383,1,278,_reduce_384,1,279,_reduce_none,1,279,_reduce_none,0,284,_reduce_387,2,282,_reduce_388,4,283,_reduce_389,2,283,_reduce_390,2,283,_reduce_391,1,283,_reduce_392,2,288,_reduce_393,0,288,_reduce_394,1,289,_reduce_none,6,290,_reduce_396,8,290,_reduce_397,4,290,_reduce_398,6,290,_reduce_399,4,290,_reduce_400,2,290,_reduce_none,6,290,_reduce_402,2,290,_reduce_403,4,290,_reduce_404,6,290,_reduce_405,2,290,_reduce_406,4,290,_reduce_407,2,290,_reduce_408,4,290,_reduce_409,1,290,_reduce_none,0,294,_reduce_411,1,294,_reduce_412,3,295,_reduce_413,4,295,_reduce_414,1,296,_reduce_415,4,296,_reduce_416,1,297,_reduce_417,3,297,_reduce_418,1,298,_reduce_419,1,298,_reduce_none,0,302,_reduce_421,0,303,_reduce_422,5,256,_reduce_423,4,300,_reduce_424,1,300,_reduce_425,0,306,_reduce_426,4,301,_reduce_427,0,307,_reduce_428,4,301,_reduce_429,0,309,_reduce_430,4,305,_reduce_431,2,201,_reduce_432,4,201,_reduce_433,5,201,_reduce_434,5,201,_reduce_435,2,255,_reduce_436,4,255,_reduce_437,4,255,_reduce_438,3,255,_reduce_439,3,255,_reduce_440,3,255,_reduce_441,2,255,_reduce_442,1,255,_reduce_443,4,255,_reduce_444,0,311,_reduce_445,4,254,_reduce_446,0,312,_reduce_447,4,254,_reduce_448,0,313,_reduce_449,3,205,_reduce_450,0,314,_reduce_451,0,315,_reduce_452,4,308,_reduce_453,5,259,_reduce_454,1,316,_reduce_455,1,316,_reduce_none,0,319,_reduce_457,0,320,_reduce_458,7,260,_reduce_459,1,318,_reduce_460,1,318,_reduce_none,1,317,_reduce_462,3,317,_reduce_463,3,317,_reduce_464,1,188,_reduce_none,2,188,_reduce_466,3,188,_reduce_467,1,188,_reduce_468,1,188,_reduce_469,1,188,_reduce_470,1,321,_reduce_none,3,326,_reduce_472,1,326,_reduce_none,3,328,_reduce_474,1,328,_reduce_none,1,330,_reduce_476,1,331,_reduce_477,1,329,_reduce_none,1,329,_reduce_none,4,329,_reduce_480,4,329,_reduce_481,4,329,_reduce_482,3,329,_reduce_483,4,329,_reduce_484,4,329,_reduce_485,4,329,_reduce_486,3,329,_reduce_487,3,329,_reduce_488,3,329,_reduce_489,2,329,_reduce_490,0,335,_reduce_491,4,329,_reduce_492,2,329,_reduce_493,0,336,_reduce_494,4,329,_reduce_495,1,322,_reduce_496,1,322,_reduce_497,2,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,339,_reduce_507,1,339,_reduce_508,1,340,_reduce_509,3,340,_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_526,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_none,1,219,_reduce_617,1,219,_reduce_618,1,219,_reduce_619,1,219,_reduce_620,1,219,_reduce_621,1,219,_reduce_622,1,219,_reduce_623,1,252,_reduce_624,1,252,_reduce_625,1,176,_reduce_626,1,176,_reduce_627,1,186,_reduce_628,1,186,_reduce_629,0,370,_reduce_630,4,263,_reduce_631,0,263,_reduce_632,1,182,_reduce_none,1,182,_reduce_634,3,371,_reduce_635,1,266,_reduce_none,0,373,_reduce_637,3,266,_reduce_638,4,372,_reduce_639,2,372,_reduce_640,2,372,_reduce_641,1,372,_reduce_642,1,372,_reduce_643,2,375,_reduce_644,0,375,_reduce_645,6,304,_reduce_646,8,304,_reduce_647,4,304,_reduce_648,6,304,_reduce_649,4,304,_reduce_650,6,304,_reduce_651,2,304,_reduce_652,4,304,_reduce_653,6,304,_reduce_654,2,304,_reduce_655,4,304,_reduce_656,2,304,_reduce_657,4,304,_reduce_658,1,304,_reduce_659,0,304,_reduce_660,1,239,_reduce_661,1,299,_reduce_662,1,299,_reduce_663,1,299,_reduce_664,1,299,_reduce_665,1,275,_reduce_none,1,275,_reduce_667,1,377,_reduce_668,1,378,_reduce_669,3,378,_reduce_670,1,291,_reduce_671,3,291,_reduce_672,1,379,_reduce_673,2,380,_reduce_674,1,380,_reduce_675,2,381,_reduce_676,1,381,_reduce_677,1,285,_reduce_678,3,285,_reduce_679,1,374,_reduce_680,3,374,_reduce_681,1,347,_reduce_none,1,347,_reduce_none,1,281,_reduce_684,2,280,_reduce_685,1,280,_reduce_686,3,382,_reduce_687,3,383,_reduce_688,1,292,_reduce_689,3,292,_reduce_690,1,376,_reduce_691,3,376,_reduce_692,1,384,_reduce_none,1,384,_reduce_none,2,293,_reduce_695,1,293,_reduce_696,1,385,_reduce_none,1,385,_reduce_none,2,287,_reduce_699,1,287,_reduce_700,2,286,_reduce_701,0,286,_reduce_702,1,197,_reduce_none,3,197,_reduce_704,0,253,_reduce_705,2,253,_reduce_none,1,237,_reduce_707,3,237,_reduce_708,3,386,_reduce_709,2,386,_reduce_710,1,386,_reduce_711,4,386,_reduce_712,2,386,_reduce_713,1,386,_reduce_714,1,208,_reduce_none,1,208,_reduce_none,1,208,_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_725,1,180,_reduce_726,0,152,_reduce_none,1,152,_reduce_none,0,187,_reduce_none,1,187,_reduce_none,2,213,_reduce_731,2,179,_reduce_732,2,334,_reduce_733,1,236,_reduce_none,1,236,_reduce_none,1,264,_reduce_736,1,264,_reduce_none,1,154,_reduce_none,2,154,_reduce_none,0,234,_reduce_740"),D=741,N=1234,L=v(new Map([[!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]])),R=147,M=!0,l(O[0],"Racc_arg",[F,E,A,k,S,x,T,C,R,z,L,N,D,M]),i((H=w("Ractor","skip_raise"))?"constant":n)&&w("Ractor").$make_shareable(w("Racc_arg")),l(O[0],"Racc_token_to_s_table",e.large_array_unpack("$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_rest,p_args_post,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")),i((P=w("Ractor","skip_raise"))?"constant":n)&&w("Ractor").$make_shareable(w("Racc_token_to_s_table")),l(O[0],"Racc_debug_parser",!1),t(y,"$_reduce_1",function(t,s,o){var i=this;return i.current_arg_stack.$push(n),i.max_numparam_stack.$push(new Map([["static",!0]])),o}),t(y,"$_reduce_2",function(t,n,s){var o=this;return s=t["$[]"](1),o.current_arg_stack.$pop(),o.max_numparam_stack.$pop(),s}),t(y,"$_reduce_3",function(t){var o=this;return o.builder.$compstmt(t["$[]"](0))}),t(y,"$_reduce_4",function(){return[]}),t(y,"$_reduce_5",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_6",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_7",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_9",function(t){var i=this;return r(i.builder,"preexe",[t["$[]"](0)].concat(o(t["$[]"](1))))}),t(y,"$_reduce_10",function(t){return t}),t(y,"$_reduce_11",function(t){var h=this,u=n,d=n,m=n,f=n,p=n,u=t["$[]"](1),l=t["$[]"](2),c=s(l);return d=c[0]==null?n:c[0],m=c[1]==null?n:c[1],l,l=t["$[]"](3),c=s(l),f=c[0]==null?n:c[0],p=c[1]==null?n:c[1],l,i(u["$empty?"]())&&a(d["$nil?"]())&&h.$diagnostic("error","useless_else",n,d),h.builder.$begin_body(t["$[]"](0),u,d,m,f,p)}),t(y,"$_reduce_12",function(t){var o=this;return o.builder.$compstmt(t["$[]"](0))}),t(y,"$_reduce_13",function(){return[]}),t(y,"$_reduce_14",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_15",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_16",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_18",function(t,s,o){var i=this;return i.$diagnostic("error","begin_in_method",n,t["$[]"](0)),o}),t(y,"$_reduce_19",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),s}),t(y,"$_reduce_20",function(t){var o=this;return o.builder.$alias(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_21",function(t){var o=this;return o.builder.$alias(t["$[]"](0),o.builder.$gvar(t["$[]"](1)),o.builder.$gvar(t["$[]"](2)))}),t(y,"$_reduce_22",function(t){var o=this;return o.builder.$alias(t["$[]"](0),o.builder.$gvar(t["$[]"](1)),o.builder.$back_ref(t["$[]"](2)))}),t(y,"$_reduce_23",function(t,s,o){var i=this;return i.$diagnostic("error","nth_ref_alias",n,t["$[]"](2)),o}),t(y,"$_reduce_24",function(t){var o=this;return o.builder.$undef_method(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_25",function(t){var i=this;return i.builder.$condition_mod(t["$[]"](0),n,t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_26",function(t){var i=this;return i.builder.$condition_mod(n,t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_27",function(t){var o=this;return o.builder.$loop_mod("while",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_28",function(t){var o=this;return o.builder.$loop_mod("until",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_29",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_30",function(t){var o=this;return o.builder.$postexe(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_32",function(t){var o=this;return o.builder.$multi_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_33",function(t){var i=this;return i.builder.$assign(t["$[]"](0),t["$[]"](1),i.builder.$array(n,t["$[]"](2),n))}),t(y,"$_reduce_34",function(t){var i=this,a=n,r=n,a=i.builder.$rescue_body(t["$[]"](3),n,n,n,n,t["$[]"](4)),r=i.builder.$begin_body(t["$[]"](2),[a]);return i.builder.$multi_assign(t["$[]"](0),t["$[]"](1),r)}),t(y,"$_reduce_35",function(t){var o=this;return o.builder.$multi_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_37",function(t){var o=this;return o.builder.$assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_38",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_39",function(t){var o=this;return o.builder.$op_assign(o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3)),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_40",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_41",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_42",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)));return i.builder.$op_assign(a,t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_43",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_44",function(t,o,i){var a,r=this,u=n,l=n,h=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(a=s(c[1]==null?n:c[1]),l=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),d,r.$endless_method_name(l),i=r.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_45",function(t,o,i){var r,a=this,u=n,l=n,h=n,m=n,f=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(r=s(c[1]==null?n:c[1]),l=r[0]==null?n:r[0],h=r[1]==null?n:r[1]),d,a.$endless_method_name(l),m=a.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),f=a.builder.$begin_body(t["$[]"](3),[m]),i=a.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),f),a.$local_pop(),a.current_arg_stack.$pop(),a.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_46",function(t,o,i){var r,c=this,u=n,h=n,m=n,l=n,f=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),l=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),d,c.$endless_method_name(l),i=c.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_47",function(t,o,i){var c,r=this,u=n,h=n,m=n,l=n,f=n,p=n,g=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(c=s(a[3]==null?n:a[3]),l=c[0]==null?n:c[0],f=c[1]==null?n:c[1]),d,r.$endless_method_name(l),p=r.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),g=r.builder.$begin_body(t["$[]"](3),[p]),i=r.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),g),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_48",function(t,n,s){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2)),s}),t(y,"$_reduce_50",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_53",function(t){var o=this;return o.builder.$logical_op("and",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_54",function(t){var o=this;return o.builder.$logical_op("or",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_55",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](2),n)}),t(y,"$_reduce_56",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_57",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_58",function(t){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](2)),o.builder.$match_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_59",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_60",function(t){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](2)),o.builder.$match_pattern_p(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_63",function(t,n,s){var o=this;return o.lexer.$cond().$push(!0),s}),t(y,"$_reduce_64",function(t){var o=this;return o.lexer.$cond().$pop(),[t["$[]"](1),t["$[]"](2)]}),t(y,"$_reduce_65",function(t,s,o){var i=this;return i.$local_push(),i.current_arg_stack.$push(n),o=[t["$[]"](0),i.context.$dup()],i.context["$in_def="](!0),o}),t(y,"$_reduce_66",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_67",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_68",function(t){return[t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](4)]}),t(y,"$_reduce_72",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_73",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_74",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_76",function(t){var i=this;return i.builder.$call_method(n,n,t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_77",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(n,n,t["$[]"](0),n,t["$[]"](1),n),r=t["$[]"](2),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_78",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_79",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_80",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_81",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_82",function(t){var i=this;return i.builder.$keyword_cmd("super",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_83",function(t){var i=this;return i.builder.$keyword_cmd("yield",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_84",function(t){var i=this;return i.builder.$keyword_cmd("return",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_85",function(t){var i=this;return i.builder.$keyword_cmd("break",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_86",function(t){var i=this;return i.builder.$keyword_cmd("next",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_87",function(t){var i=this;return i.builder.$multi_lhs(n,t["$[]"](0),n)}),t(y,"$_reduce_88",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_89",function(t){var i=this;return i.builder.$multi_lhs(n,t["$[]"](0),n)}),t(y,"$_reduce_90",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_92",function(t){return t["$[]"](0).$push(t["$[]"](1))}),t(y,"$_reduce_93",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_94",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1),t["$[]"](2))).$concat(t["$[]"](4))}),t(y,"$_reduce_95",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1)))}),t(y,"$_reduce_96",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1))).$concat(t["$[]"](3))}),t(y,"$_reduce_97",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_98",function(t){var i=this;return[i.builder.$splat(t["$[]"](0),t["$[]"](1))].concat(o(t["$[]"](3)))}),t(y,"$_reduce_99",function(t){var o=this;return[o.builder.$splat(t["$[]"](0))]}),t(y,"$_reduce_100",function(t){var i=this;return[i.builder.$splat(t["$[]"](0))].concat(o(t["$[]"](2)))}),t(y,"$_reduce_102",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_103",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_104",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_105",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_106",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_107",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_108",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_109",function(t){var o=this;return o.builder.$index_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_110",function(t){var i=this;return u(t["$[]"](1)["$[]"](0),"anddot")&&i.$diagnostic("error","csend_in_lhs_of_masgn",n,t["$[]"](1)),i.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_111",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_112",function(t){var i=this;return u(t["$[]"](1)["$[]"](0),"anddot")&&i.$diagnostic("error","csend_in_lhs_of_masgn",n,t["$[]"](1)),i.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_113",function(t){var o=this;return o.builder.$assignable(o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_114",function(t){var o=this;return o.builder.$assignable(o.builder.$const_global(t["$[]"](0),t["$[]"](1)))}),t(y,"$_reduce_115",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_116",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_117",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_118",function(t){var o=this;return o.builder.$index_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_119",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_120",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_121",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_122",function(t){var o=this;return o.builder.$assignable(o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_123",function(t){var o=this;return o.builder.$assignable(o.builder.$const_global(t["$[]"](0),t["$[]"](1)))}),t(y,"$_reduce_124",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_125",function(t,s,o){var i=this;return i.$diagnostic("error","module_name_const",n,t["$[]"](0)),o}),t(y,"$_reduce_127",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_128",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_129",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_135",function(t){var o=this;return o.builder.$symbol_internal(t["$[]"](0))}),t(y,"$_reduce_137",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_138",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),s}),t(y,"$_reduce_139",function(t){return t["$[]"](0)["$<<"](t["$[]"](3))}),t(y,"$_reduce_211",function(t){var o=this;return o.builder.$assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_212",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_213",function(t){var o=this;return o.builder.$op_assign(o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3)),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_214",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_215",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_216",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_217",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)));return i.builder.$op_assign(a,t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_218",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_global(t["$[]"](0),t["$[]"](1)));return i.builder.$op_assign(a,t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_219",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_220",function(t){var o=this;return o.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_221",function(t){var o=this;return o.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_222",function(t){var i=this;return i.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_223",function(t){var i=this;return i.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_224",function(t){var i=this;return i.builder.$range_inclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_225",function(t){var i=this;return i.builder.$range_exclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_226",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_227",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_228",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_229",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_230",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_231",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_232",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),o.builder.$binary_op(t["$[]"](1),t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_233",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_234",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_235",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_236",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_237",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_238",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_240",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_241",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_242",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_243",function(t){var o=this;return o.builder.$match_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_244",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_245",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_246",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_247",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_248",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_249",function(t){var o=this;return o.builder.$logical_op("and",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_250",function(t){var o=this;return o.builder.$logical_op("or",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_251",function(t,n,s){var o=this;return o.context["$in_defined="](!0),s}),t(y,"$_reduce_252",function(t){var i=this;return i.context["$in_defined="](!1),i.builder.$keyword_cmd("defined?",t["$[]"](0),n,[t["$[]"](3)],n)}),t(y,"$_reduce_253",function(t){var o=this;return o.builder.$ternary(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_254",function(t,o,i){var a,r=this,u=n,l=n,h=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(a=s(c[1]==null?n:c[1]),l=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),d,r.$endless_method_name(l),i=r.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_255",function(t,o,i){var r,a=this,u=n,l=n,h=n,m=n,f=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(r=s(c[1]==null?n:c[1]),l=r[0]==null?n:r[0],h=r[1]==null?n:r[1]),d,a.$endless_method_name(l),m=a.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),f=a.builder.$begin_body(t["$[]"](3),[m]),i=a.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),f),a.$local_pop(),a.current_arg_stack.$pop(),a.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_256",function(t,o,i){var r,c=this,u=n,h=n,m=n,l=n,f=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),l=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),d,c.$endless_method_name(l),i=c.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_257",function(t,o,i){var c,r=this,u=n,h=n,m=n,l=n,f=n,p=n,g=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(c=s(a[3]==null?n:a[3]),l=c[0]==null?n:c[0],f=c[1]==null?n:c[1]),d,r.$endless_method_name(l),p=r.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),g=r.builder.$begin_body(t["$[]"](3),[p]),i=r.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),g),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_263",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_264",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_268",function(t){var i=this;return t["$[]"](0)["$<<"](i.builder.$associate(n,t["$[]"](2),n))}),t(y,"$_reduce_269",function(t){var i=this;return[i.builder.$associate(n,t["$[]"](0),n)]}),t(y,"$_reduce_271",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_272",function(t){return t}),t(y,"$_reduce_273",function(t){var a=this;return i(a.static_env["$declared_forward_args?"]())||a.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),t["$[]"](3)),[t["$[]"](0),[].concat(o(t["$[]"](1))).concat([a.builder.$forwarded_args(t["$[]"](3))]),t["$[]"](4)]}),t(y,"$_reduce_274",function(t){var o=this;return i(o.static_env["$declared_forward_args?"]())||o.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),t["$[]"](1)),[t["$[]"](0),[o.builder.$forwarded_args(t["$[]"](1))],t["$[]"](2)]}),t(y,"$_reduce_275",function(){return[n,[],n]}),t(y,"$_reduce_277",function(){return[]}),t(y,"$_reduce_280",function(t){var i=this;return t["$[]"](0)["$<<"](i.builder.$associate(n,t["$[]"](2),n))}),t(y,"$_reduce_281",function(t){var i=this;return[i.builder.$associate(n,t["$[]"](0),n)]}),t(y,"$_reduce_282",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_283",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_284",function(t,s,o){var i=this;return o=[i.builder.$associate(n,t["$[]"](0),n)],o.$concat(t["$[]"](1)),o}),t(y,"$_reduce_285",function(t,s,o){var a=this,i=n,i=a.builder.$associate(n,t["$[]"](2),n);return o=t["$[]"](0)["$<<"](i),o.$concat(t["$[]"](3)),o}),t(y,"$_reduce_286",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_287",function(t,s,o){var a=this,r=n,c=n,l=n,d=n,r=a.last_token["$[]"](0),c=i(l=r["$=="]("tLBRACK"))?l:r["$=="]("tLPAREN_ARG");return i(c)?(d=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(!0),a.lexer.$cmdarg().$push(d)):a.lexer.$cmdarg().$push(!0),o}),t(y,"$_reduce_288",function(t){var a=this,r=n,c=n,l=n,r=a.last_token["$[]"](0),c=r["$=="]("tLBRACE_ARG");return i(c)?(l=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(l)):a.lexer.$cmdarg().$pop(),t["$[]"](1)}),t(y,"$_reduce_289",function(t){var o=this;return o.builder.$block_pass(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_290",function(t){var i=this;return a(i.static_env["$declared_anonymous_blockarg?"]())&&i.$diagnostic("error","no_anonymous_blockarg",n,t["$[]"](0)),i.builder.$block_pass(t["$[]"](0),n)}),t(y,"$_reduce_291",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_292",function(){return[]}),t(y,"$_reduce_293",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_294",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_295",function(t){var i=this;return a(i.static_env["$declared_anonymous_restarg?"]())&&i.$diagnostic("error","no_anonymous_restarg",n,t["$[]"](0)),[i.builder.$forwarded_restarg(t["$[]"](0))]}),t(y,"$_reduce_296",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_297",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$splat(t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_298",function(t){var i=this;return a(i.static_env["$declared_anonymous_restarg?"]())&&i.$diagnostic("error","no_anonymous_restarg",n,t["$[]"](2)),t["$[]"](0)["$<<"](i.builder.$forwarded_restarg(t["$[]"](2)))}),t(y,"$_reduce_299",function(t){var i=this;return i.builder.$array(n,t["$[]"](0),n)}),t(y,"$_reduce_301",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_302",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$splat(t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_303",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_314",function(t){var i=this;return i.builder.$call_method(n,n,t["$[]"](0))}),t(y,"$_reduce_315",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_316",function(t){var o=this;return o.lexer.$cmdarg().$pop(),o.builder.$begin_keyword(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_317",function(t,n,s){var o=this;return o.lexer["$state="]("expr_endarg"),s}),t(y,"$_reduce_318",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_319",function(t,n,s){var o=this;return o.lexer["$state="]("expr_endarg"),s}),t(y,"$_reduce_320",function(t){var i=this;return i.builder.$begin(t["$[]"](0),n,t["$[]"](3))}),t(y,"$_reduce_321",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_322",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_323",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_324",function(t){var o=this;return o.builder.$array(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_325",function(t){var o=this;return o.builder.$associate(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_326",function(t){var o=this;return o.builder.$keyword_cmd("return",t["$[]"](0))}),t(y,"$_reduce_327",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_328",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0),t["$[]"](1),[],t["$[]"](2))}),t(y,"$_reduce_329",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0))}),t(y,"$_reduce_330",function(t,n,s){var o=this;return o.context["$in_defined="](!0),s}),t(y,"$_reduce_331",function(t){var o=this;return o.context["$in_defined="](!1),o.builder.$keyword_cmd("defined?",t["$[]"](0),t["$[]"](2),[t["$[]"](4)],t["$[]"](5))}),t(y,"$_reduce_332",function(t){var o=this;return o.builder.$not_op(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_333",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),t["$[]"](1),n,t["$[]"](2))}),t(y,"$_reduce_334",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(n,n,t["$[]"](0)),r=t["$[]"](1),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_336",function(t){var h=this,c=n,l=n,d=n,u=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],u=a[3]==null?n:a[3],r,h.builder.$block(t["$[]"](0),c,l,d,u)}),t(y,"$_reduce_338",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),c,l,t["$[]"](5))}),t(y,"$_reduce_339",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),l,c,t["$[]"](3),t["$[]"](5))}),t(y,"$_reduce_340",function(t){var i=this;return r(i.builder,"loop",["while",t["$[]"](0)].concat(o(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))}),t(y,"$_reduce_341",function(t){var i=this;return r(i.builder,"loop",["until",t["$[]"](0)].concat(o(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))}),t(y,"$_reduce_342",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](3))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case(t["$[]"](0),t["$[]"](1),u,h,m,t["$[]"](4))}),t(y,"$_reduce_343",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](2))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case(t["$[]"](0),n,u,h,m,t["$[]"](3))}),t(y,"$_reduce_344",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](3))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case_match(t["$[]"](0),t["$[]"](1),u,h,m,t["$[]"](4))}),t(y,"$_reduce_345",function(t){var i=this;return r(i.builder,"for",[t["$[]"](0),t["$[]"](1),t["$[]"](2)].concat(o(t["$[]"](3))).concat([t["$[]"](4),t["$[]"](5)]))}),t(y,"$_reduce_346",function(t,n,s){var o=this;return o.context["$in_class="](!0),o.$local_push(),s}),t(y,"$_reduce_347",function(t,o,a){var l=this,d=n,u=n,h=n,m=n,c=t["$[]"](0),r=s(c);return d=r[0]==null?n:r[0],u=r[1]==null?n:r[1],c,i(l.context.$in_def())&&l.$diagnostic("error","class_in_def",n,d),c=t["$[]"](2),r=s(c),h=r[0]==null?n:r[0],m=r[1]==null?n:r[1],c,a=l.builder.$def_class(d,t["$[]"](1),h,m,t["$[]"](4),t["$[]"](5)),l.$local_pop(),l.context["$in_class="](u.$in_class()),a}),t(y,"$_reduce_348",function(t,n,s){var o=this;return o.context["$in_def="](!1),o.context["$in_class="](!1),o.$local_push(),s}),t(y,"$_reduce_349",function(t,o,i){var r=this,d=n,c=n,l=t["$[]"](0),a=s(l);return d=a[0]==null?n:a[0],c=a[1]==null?n:a[1],l,i=r.builder.$def_sclass(d,t["$[]"](1),t["$[]"](2),t["$[]"](5),t["$[]"](6)),r.$local_pop(),r.context["$in_def="](c.$in_def()),r.context["$in_class="](c.$in_class()),i}),t(y,"$_reduce_350",function(t,n,s){var o=this;return o.context["$in_class="](!0),o.$local_push(),s}),t(y,"$_reduce_351",function(t,o,a){var r=this,l=n,u=n,d=t["$[]"](0),c=s(d);return l=c[0]==null?n:c[0],u=c[1]==null?n:c[1],d,i(r.context.$in_def())&&r.$diagnostic("error","module_in_def",n,l),a=r.builder.$def_module(l,t["$[]"](1),t["$[]"](3),t["$[]"](4)),r.$local_pop(),r.context["$in_class="](u.$in_class()),a}),t(y,"$_reduce_352",function(t,o,i){var a,c=this,d=n,u=n,h=n,l=t["$[]"](0),r=s(l);return d=r[0]==null?n:r[0],(a=s(r[1]==null?n:r[1]),u=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),l,i=c.builder.$def_method(d,u,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_353",function(t,o,i){var r,c=this,d=n,u=n,h=n,m=n,f=n,l=t["$[]"](0),a=s(l);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),m=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),l,i=c.builder.$def_singleton(d,u,h,m,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_354",function(t){var o=this;return o.builder.$keyword_cmd("break",t["$[]"](0))}),t(y,"$_reduce_355",function(t){var o=this;return o.builder.$keyword_cmd("next",t["$[]"](0))}),t(y,"$_reduce_356",function(t){var o=this;return o.builder.$keyword_cmd("redo",t["$[]"](0))}),t(y,"$_reduce_357",function(t){var o=this;return o.builder.$keyword_cmd("retry",t["$[]"](0))}),t(y,"$_reduce_359",function(t){var o=this;return[t["$[]"](0),o.context.$dup()]}),t(y,"$_reduce_360",function(t){var o=this;return[t["$[]"](0),o.context.$dup()]}),t(y,"$_reduce_361",function(t,n,s){var o=this;return s=t["$[]"](0),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_362",function(t,s,o){var r=this,c=n;return i(r.context.$in_class())&&a(r.context.$in_def())&&a(i(c=r.$context().$in_block())?c:r.$context().$in_lambda())&&r.$diagnostic("error","invalid_return",n,t["$[]"](0)),o}),t(y,"$_reduce_365",function(t){return t["$[]"](1)}),t(y,"$_reduce_369",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,[t["$[]"](0),d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),c,l,n)]}),t(y,"$_reduce_371",function(t){return t}),t(y,"$_reduce_374",function(t){var o=this;return o.builder.$arg(t["$[]"](0))}),t(y,"$_reduce_375",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_376",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_377",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_379",function(t){return t["$[]"](0).$push(t["$[]"](2))}),t(y,"$_reduce_380",function(t){return t["$[]"](0).$push(t["$[]"](2)).$concat(t["$[]"](4))}),t(y,"$_reduce_381",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_382",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2)))}),t(y,"$_reduce_383",function(t){var o=this;return o.builder.$restarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_384",function(t){var o=this;return o.builder.$restarg(t["$[]"](0))}),t(y,"$_reduce_387",function(t,n,s){var o=this;return o.context["$in_argdef="](!1),s}),t(y,"$_reduce_388",function(t){return t["$[]"](1)}),t(y,"$_reduce_389",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_390",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_391",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_392",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_393",function(t){return t["$[]"](1)}),t(y,"$_reduce_394",function(){return[]}),t(y,"$_reduce_396",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_397",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](6)).$concat(t["$[]"](7))}),t(y,"$_reduce_398",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_399",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_400",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_402",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_403",function(t,n,s){var o=this;return i(t["$[]"](1)["$empty?"]())&&u(t["$[]"](0).$size(),1)?s=[o.builder.$procarg0(t["$[]"](0)["$[]"](0))]:s=t["$[]"](0).$concat(t["$[]"](1)),s}),t(y,"$_reduce_404",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_405",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_406",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_407",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_408",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_409",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_411",function(){var i=this;return i.builder.$args(n,[],n)}),t(y,"$_reduce_412",function(t,n,s){var o=this;return o.lexer["$state="]("expr_value"),s}),t(y,"$_reduce_413",function(t){var i=this;return i.max_numparam_stack["$has_ordinary_params!"](),i.current_arg_stack.$set(n),i.context["$in_argdef="](!1),i.builder.$args(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_414",function(t){var i=this;return i.max_numparam_stack["$has_ordinary_params!"](),i.current_arg_stack.$set(n),i.context["$in_argdef="](!1),i.builder.$args(t["$[]"](0),t["$[]"](1).$concat(t["$[]"](2)),t["$[]"](3))}),t(y,"$_reduce_415",function(){return[]}),t(y,"$_reduce_416",function(t){return t["$[]"](2)}),t(y,"$_reduce_417",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_418",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_419",function(t){var o=this;return o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.builder.$shadowarg(t["$[]"](0))}),t(y,"$_reduce_421",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_422",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_423",function(t){var r=this,d=n,u=n,h=n,m=n,f=n,d=r.builder.$call_lambda(t["$[]"](0)),u=i(r.max_numparam_stack["$has_numparams?"]())?r.builder.$numargs(r.max_numparam_stack.$top()):t["$[]"](2),l=t["$[]"](4),c=s(l);return h=c[0]==null?n:c[0],m=c[1]==null?n:c[1],f=c[2]==null?n:c[2],l,r.max_numparam_stack.$pop(),r.static_env.$unextend(),r.lexer.$cmdarg().$pop(),r.context["$in_lambda="](t["$[]"](1).$in_lambda()),r.builder.$block(d,h,u,m,f)}),t(y,"$_reduce_424",function(t){var o=this;return o.context["$in_argdef="](!1),o.max_numparam_stack["$has_ordinary_params!"](),o.builder.$args(t["$[]"](0),t["$[]"](1).$concat(t["$[]"](2)),t["$[]"](3))}),t(y,"$_reduce_425",function(t){var a=this;return a.context["$in_argdef="](!1),i(t["$[]"](0)["$any?"]())&&a.max_numparam_stack["$has_ordinary_params!"](),a.builder.$args(n,t["$[]"](0),n)}),t(y,"$_reduce_426",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_427",function(t){var o=this;return o.context["$in_lambda="](t["$[]"](1).$in_lambda()),[t["$[]"](0),t["$[]"](2),t["$[]"](3)]}),t(y,"$_reduce_428",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_429",function(t){var o=this;return o.context["$in_lambda="](t["$[]"](1).$in_lambda()),[t["$[]"](0),t["$[]"](2),t["$[]"](3)]}),t(y,"$_reduce_430",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_431",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_432",function(t){var h=this,c=n,l=n,d=n,u=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],u=a[3]==null?n:a[3],r,h.builder.$block(t["$[]"](0),c,l,d,u)}),t(y,"$_reduce_433",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_434",function(t){var l=this,d=n,c=n,u=n,h=n,m=n,f=n,p=n,r=t["$[]"](3),a=s(r);return d=a[0]==null?n:a[0],c=a[1]==null?n:a[1],u=a[2]==null?n:a[2],r,h=l.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),d,c,u),r=t["$[]"](4),a=s(r),m=a[0]==null?n:a[0],c=a[1]==null?n:a[1],f=a[2]==null?n:a[2],p=a[3]==null?n:a[3],r,l.builder.$block(h,m,c,f,p)}),t(y,"$_reduce_435",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_436",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(n,n,t["$[]"](0),c,l,d)}),t(y,"$_reduce_437",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_438",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_439",function(t){var o=this;return o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_440",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](2),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),n,c,l,d)}),t(y,"$_reduce_441",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](2),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),n,c,l,d)}),t(y,"$_reduce_442",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$keyword_cmd("super",t["$[]"](0),c,l,d)}),t(y,"$_reduce_443",function(t){var o=this;return o.builder.$keyword_cmd("zsuper",t["$[]"](0))}),t(y,"$_reduce_444",function(t){var o=this;return o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_445",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_446",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_447",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_448",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_449",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s}),t(y,"$_reduce_450",function(t,s,o){var a=this,r=n,r=i(a.max_numparam_stack["$has_numparams?"]())?a.builder.$numargs(a.max_numparam_stack.$top()):t["$[]"](1);return o=[r,t["$[]"](2)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),o}),t(y,"$_reduce_451",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s}),t(y,"$_reduce_452",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_453",function(t,s,o){var a=this,r=n,r=i(a.max_numparam_stack["$has_numparams?"]())?a.builder.$numargs(a.max_numparam_stack.$top()):t["$[]"](2);return o=[r,t["$[]"](3)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),o}),t(y,"$_reduce_454",function(t){var i=this;return[i.builder.$when(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))].concat(o(t["$[]"](4)))}),t(y,"$_reduce_455",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_457",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_458",function(t,n,s){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](1)),s}),t(y,"$_reduce_459",function(t){var i=this;return[r(i.builder,"in_pattern",[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3),t["$[]"](5)]))].concat(o(t["$[]"](6)))}),t(y,"$_reduce_460",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_462",function(t){return[t["$[]"](0),n]}),t(y,"$_reduce_463",function(t){var o=this;return[t["$[]"](0),o.builder.$if_guard(t["$[]"](1),t["$[]"](2))]}),t(y,"$_reduce_464",function(t){var o=this;return[t["$[]"](0),o.builder.$unless_guard(t["$[]"](1),t["$[]"](2))]}),t(y,"$_reduce_466",function(t){var i=this,a=n,a=i.builder.$match_with_trailing_comma(t["$[]"](0),t["$[]"](1));return i.builder.$array_pattern(n,[a],n)}),t(y,"$_reduce_467",function(t){var i=this;return i.builder.$array_pattern(n,[t["$[]"](0)].$concat(t["$[]"](2)),n)}),t(y,"$_reduce_468",function(t){var i=this;return i.builder.$find_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_469",function(t){var i=this;return i.builder.$array_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_470",function(t){var i=this;return i.builder.$hash_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_472",function(t){var o=this;return o.builder.$match_as(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_474",function(t){var o=this;return o.builder.$match_alt(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_476",function(t,n,s){var o=this;return s=t["$[]"](0),o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_477",function(t,n,s){var o=this;return s=t["$[]"](0),o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_480",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$array_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_481",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$find_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_482",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$hash_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_483",function(t){var i=this,a=n,a=i.builder.$array_pattern(t["$[]"](1),n,t["$[]"](2));return i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](2))}),t(y,"$_reduce_484",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$array_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_485",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$find_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_486",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$hash_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_487",function(t){var i=this,a=n,a=i.builder.$array_pattern(t["$[]"](1),n,t["$[]"](2));return i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](2))}),t(y,"$_reduce_488",function(t){var o=this;return o.builder.$array_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_489",function(t){var o=this;return o.builder.$find_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_490",function(t){var o=this;return o.builder.$array_pattern(t["$[]"](0),[],t["$[]"](1))}),t(y,"$_reduce_491",function(t,n,s){var o=this;return o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!1),s}),t(y,"$_reduce_492",function(t){var o=this;return o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](1)),o.builder.$hash_pattern(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_493",function(t){var o=this;return o.builder.$hash_pattern(t["$[]"](0),[],t["$[]"](1))}),t(y,"$_reduce_494",function(t,n,s){var o=this;return o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_495",function(t){var o=this;return o.pattern_hash_keys.$pop(),o.builder.$begin(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_496",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_497",function(t){return t["$[]"](0)}),t(y,"$_reduce_498",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)])}),t(y,"$_reduce_499",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)])}),t(y,"$_reduce_500",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)]).concat(o(t["$[]"](3)))}),t(y,"$_reduce_502",function(t){var a=this,i=n,i=a.builder.$match_with_trailing_comma(t["$[]"](0),t["$[]"](1));return[i]}),t(y,"$_reduce_503",function(t){var r=this,a=n,a=r.builder.$match_with_trailing_comma(t["$[]"](1),t["$[]"](2));return[].concat(o(t["$[]"](0))).concat([a])}),t(y,"$_reduce_504",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_505",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2)))}),t(y,"$_reduce_506",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](4)])}),t(y,"$_reduce_507",function(t){var o=this;return o.builder.$match_rest(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_508",function(t){var o=this;return o.builder.$match_rest(t["$[]"](0))}),t(y,"$_reduce_509",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_510",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](2)])}),t(y,"$_reduce_512",function(t){return[].concat(o(t["$[]"](0))).concat(o(t["$[]"](2)))}),t(y,"$_reduce_513",function(t){return t["$[]"](0)}),t(y,"$_reduce_514",function(t){return t["$[]"](0)}),t(y,"$_reduce_515",function(t){return t["$[]"](0)}),t(y,"$_reduce_516",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_517",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](2)])}),t(y,"$_reduce_518",function(t){var i=this;return r(i.builder,"match_pair",o(t["$[]"](0)).concat([t["$[]"](1)]))}),t(y,"$_reduce_519",function(t){var i=this;return r(i.builder,"match_label",o(t["$[]"](0)))}),t(y,"$_reduce_520",function(t){return["label",t["$[]"](0)]}),t(y,"$_reduce_521",function(t){return["quoted",[t["$[]"](0),t["$[]"](1),t["$[]"](2)]]}),t(y,"$_reduce_522",function(t){var o=this;return[o.builder.$match_rest(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_523",function(t){var i=this;return[i.builder.$match_rest(t["$[]"](0),n)]}),t(y,"$_reduce_524",function(t){return t}),t(y,"$_reduce_526",function(t){var o=this;return[o.builder.$match_nil_pattern(t["$[]"](0)["$[]"](0),t["$[]"](0)["$[]"](1))]}),t(y,"$_reduce_528",function(t){var o=this;return o.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_529",function(t){var o=this;return o.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_530",function(t){var i=this;return i.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_531",function(t){var i=this;return i.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_535",function(t){var i=this;return i.builder.$range_inclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_536",function(t){var i=this;return i.builder.$range_exclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_545",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_547",function(t){var o=this;return o.builder.$assignable(o.builder.$match_var(t["$[]"](0)))}),t(y,"$_reduce_548",function(t){var a=this,r=n,c=n,r=t["$[]"](1)["$[]"](0),c=a.builder.$accessible(a.builder.$ident(t["$[]"](1)));return i(a.$static_env()["$declared?"](r))||a.$diagnostic("error","undefined_lvar",new Map([["name",r]]),t["$[]"](1)),a.builder.$pin(t["$[]"](0),c)}),t(y,"$_reduce_549",function(t){var i=this,a=n,a=i.builder.$accessible(t["$[]"](1));return i.builder.$pin(t["$[]"](0),a)}),t(y,"$_reduce_550",function(t){var i=this,a=n,a=i.builder.$begin(t["$[]"](1),t["$[]"](2),t["$[]"](3));return i.builder.$pin(t["$[]"](0),a)}),t(y,"$_reduce_551",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_552",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_553",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_554",function(t){var d=this,u=n,h=n,m=n,l=t["$[]"](2),c=s(l);return u=c[0]==null?n:c[0],h=c[1]==null?n:c[1],l,i(t["$[]"](1))&&(m=d.builder.$array(n,t["$[]"](1),n)),[d.builder.$rescue_body(t["$[]"](0),m,u,h,t["$[]"](3),t["$[]"](4))].concat(o(t["$[]"](5)))}),t(y,"$_reduce_555",function(){return[]}),t(y,"$_reduce_556",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_559",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_561",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_565",function(t){var i=this;return i.builder.$string_compose(n,t["$[]"](0),n)}),t(y,"$_reduce_566",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_567",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_568",function(t){var i=this,a=n,a=i.builder.$string_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_569",function(t){var i=this,a=n,a=i.builder.$string(t["$[]"](0));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_570",function(t){var o=this;return o.builder.$character(t["$[]"](0))}),t(y,"$_reduce_571",function(t){var i=this,a=n,a=i.builder.$xstring_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_572",function(t){var i=this,a=n,a=i.builder.$regexp_options(t["$[]"](3));return i.builder.$regexp_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2),a)}),t(y,"$_reduce_573",function(t){var o=this;return o.builder.$words_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_574",function(){return[]}),t(y,"$_reduce_575",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$word(t["$[]"](1)))}),t(y,"$_reduce_576",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_577",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_578",function(t){var o=this;return o.builder.$symbols_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_579",function(){return[]}),t(y,"$_reduce_580",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$word(t["$[]"](1)))}),t(y,"$_reduce_581",function(t){var o=this;return o.builder.$words_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_582",function(t){var o=this;return o.builder.$symbols_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_583",function(){return[]}),t(y,"$_reduce_584",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$string_internal(t["$[]"](1)))}),t(y,"$_reduce_585",function(){return[]}),t(y,"$_reduce_586",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$symbol_internal(t["$[]"](1)))}),t(y,"$_reduce_587",function(){return[]}),t(y,"$_reduce_588",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_589",function(){return[]}),t(y,"$_reduce_590",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_591",function(){return[]}),t(y,"$_reduce_592",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_593",function(t){var o=this;return o.builder.$string_internal(t["$[]"](0))}),t(y,"$_reduce_594",function(t){return t["$[]"](1)}),t(y,"$_reduce_595",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),o.lexer.$cond().$push(!1),s}),t(y,"$_reduce_596",function(t){var o=this;return o.lexer.$cmdarg().$pop(),o.lexer.$cond().$pop(),o.builder.$begin(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_597",function(t){var o=this;return o.builder.$gvar(t["$[]"](0))}),t(y,"$_reduce_598",function(t){var o=this;return o.builder.$ivar(t["$[]"](0))}),t(y,"$_reduce_599",function(t){var o=this;return o.builder.$cvar(t["$[]"](0))}),t(y,"$_reduce_603",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$symbol(t["$[]"](0))}),t(y,"$_reduce_604",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$symbol_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_605",function(t){return t["$[]"](0)}),t(y,"$_reduce_606",function(t,n,s){var o=this;return i(o.builder["$respond_to?"]("negate"))?s=o.builder.$negate(t["$[]"](0),t["$[]"](1)):s=o.builder.$unary_num(t["$[]"](0),t["$[]"](1)),s}),t(y,"$_reduce_607",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$integer(t["$[]"](0))}),t(y,"$_reduce_608",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$float(t["$[]"](0))}),t(y,"$_reduce_609",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$rational(t["$[]"](0))}),t(y,"$_reduce_610",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$complex(t["$[]"](0))}),t(y,"$_reduce_611",function(t){var o=this;return o.builder.$ivar(t["$[]"](0))}),t(y,"$_reduce_612",function(t){var o=this;return o.builder.$gvar(t["$[]"](0))}),t(y,"$_reduce_613",function(t){var o=this;return o.builder.$cvar(t["$[]"](0))}),t(y,"$_reduce_614",function(t){var o=this;return o.builder.$ident(t["$[]"](0))}),t(y,"$_reduce_615",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_617",function(t){var o=this;return o.builder.$nil(t["$[]"](0))}),t(y,"$_reduce_618",function(t){var o=this;return o.builder.$self(t["$[]"](0))}),t(y,"$_reduce_619",function(t){var o=this;return o.builder.$true(t["$[]"](0))}),t(y,"$_reduce_620",function(t){var o=this;return o.builder.$false(t["$[]"](0))}),t(y,"$_reduce_621",function(t){var o=this;return o.builder.$__FILE__(t["$[]"](0))}),t(y,"$_reduce_622",function(t){var o=this;return o.builder.$__LINE__(t["$[]"](0))}),t(y,"$_reduce_623",function(t){var o=this;return o.builder.$__ENCODING__(t["$[]"](0))}),t(y,"$_reduce_624",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_625",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_626",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_627",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_628",function(t){var o=this;return o.builder.$nth_ref(t["$[]"](0))}),t(y,"$_reduce_629",function(t){var o=this;return o.builder.$back_ref(t["$[]"](0))}),t(y,"$_reduce_630",function(t,n,s){var o=this;return o.lexer["$state="]("expr_value"),s}),t(y,"$_reduce_631",function(t){return[t["$[]"](0),t["$[]"](2)]}),t(y,"$_reduce_632",d(n)),t(y,"$_reduce_634",function(){var i=this;return i.context["$in_argdef="](!1),i.builder.$args(n,[],n)}),t(y,"$_reduce_635",function(t,n,s){var o=this;return s=o.builder.$args(t["$[]"](0),t["$[]"](1),t["$[]"](2)),o.lexer["$state="]("expr_value"),o.context["$in_argdef="](!1),s}),t(y,"$_reduce_637",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_kwarg="](!0),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_638",function(t){var i=this;return i.context["$in_kwarg="](t["$[]"](0).$in_kwarg()),i.context["$in_argdef="](!1),i.builder.$args(n,t["$[]"](1),n)}),t(y,"$_reduce_639",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_640",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_641",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_642",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_643",function(t){var o=this;return o.static_env.$declare_forward_args(),[o.builder.$forward_arg(t["$[]"](0))]}),t(y,"$_reduce_644",function(t){return t["$[]"](1)}),t(y,"$_reduce_645",function(){return[]}),t(y,"$_reduce_646",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_647",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](6)).$concat(t["$[]"](7))}),t(y,"$_reduce_648",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_649",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_650",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_651",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_652",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_653",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_654",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_655",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_656",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_657",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_658",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_659",function(t){return t["$[]"](0)}),t(y,"$_reduce_660",function(){return[]}),t(y,"$_reduce_661",function(t){return t["$[]"](0)}),t(y,"$_reduce_662",function(t,s,o){var i=this;return i.$diagnostic("error","argument_const",n,t["$[]"](0)),o}),t(y,"$_reduce_663",function(t,s,o){var i=this;return i.$diagnostic("error","argument_ivar",n,t["$[]"](0)),o}),t(y,"$_reduce_664",function(t,s,o){var i=this;return i.$diagnostic("error","argument_gvar",n,t["$[]"](0)),o}),t(y,"$_reduce_665",function(t,s,o){var i=this;return i.$diagnostic("error","argument_cvar",n,t["$[]"](0)),o}),t(y,"$_reduce_667",function(t){var o=this;return o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.max_numparam_stack["$has_ordinary_params!"](),t["$[]"](0)}),t(y,"$_reduce_668",function(t){var o=this;return o.current_arg_stack.$set(t["$[]"](0)["$[]"](0)),t["$[]"](0)}),t(y,"$_reduce_669",function(t){var o=this;return o.current_arg_stack.$set(0),o.builder.$arg(t["$[]"](0))}),t(y,"$_reduce_670",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_671",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_672",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_673",function(t){var o=this;return o.$check_kwarg_name(t["$[]"](0)),o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.max_numparam_stack["$has_ordinary_params!"](),o.current_arg_stack.$set(t["$[]"](0)["$[]"](0)),o.context["$in_argdef="](!1),t["$[]"](0)}),t(y,"$_reduce_674",function(t){var i=this;return i.current_arg_stack.$set(n),i.context["$in_argdef="](!0),i.builder.$kwoptarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_675",function(t){var i=this;return i.current_arg_stack.$set(n),i.context["$in_argdef="](!0),i.builder.$kwarg(t["$[]"](0))}),t(y,"$_reduce_676",function(t){var o=this;return o.context["$in_argdef="](!0),o.builder.$kwoptarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_677",function(t){var o=this;return o.context["$in_argdef="](!0),o.builder.$kwarg(t["$[]"](0))}),t(y,"$_reduce_678",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_679",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_680",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_681",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_684",function(t){var o=this;return[o.builder.$kwnilarg(t["$[]"](0)["$[]"](0),t["$[]"](0)["$[]"](1))]}),t(y,"$_reduce_685",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),[o.builder.$kwrestarg(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_686",function(t){var o=this;return o.static_env.$declare_anonymous_kwrestarg(),[o.builder.$kwrestarg(t["$[]"](0))]}),t(y,"$_reduce_687",function(t){var o=this;return o.current_arg_stack.$set(0),o.context["$in_argdef="](!0),o.builder.$optarg(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_688",function(t){var o=this;return o.current_arg_stack.$set(0),o.context["$in_argdef="](!0),o.builder.$optarg(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_689",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_690",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_691",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_692",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_695",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),[o.builder.$restarg(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_696",function(t){var o=this;return o.static_env.$declare_anonymous_restarg(),[o.builder.$restarg(t["$[]"](0))]}),t(y,"$_reduce_699",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),o.builder.$blockarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_700",function(t){var i=this;return i.static_env.$declare_anonymous_blockarg(),i.builder.$blockarg(t["$[]"](0),n)}),t(y,"$_reduce_701",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_702",function(){return[]}),t(y,"$_reduce_704",function(t){return t["$[]"](1)}),t(y,"$_reduce_705",function(){return[]}),t(y,"$_reduce_707",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_708",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_709",function(t){var o=this;return o.builder.$pair(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_710",function(t){var o=this;return o.builder.$pair_keyword(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_711",function(t){var o=this;return o.builder.$pair_label(t["$[]"](0))}),t(y,"$_reduce_712",function(t){var o=this;return o.builder.$pair_quoted(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_713",function(t){var o=this;return o.builder.$kwsplat(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_714",function(t){var i=this;return a(i.static_env["$declared_anonymous_kwrestarg?"]())&&i.$diagnostic("error","no_anonymous_kwrestarg",n,t["$[]"](0)),i.builder.$forwarded_kwrestarg(t["$[]"](0))}),t(y,"$_reduce_725",function(t){return["dot",t["$[]"](0)["$[]"](1)]}),t(y,"$_reduce_726",function(t){return["anddot",t["$[]"](0)["$[]"](1)]}),t(y,"$_reduce_731",function(t){return t["$[]"](1)}),t(y,"$_reduce_732",function(t){return t["$[]"](1)}),t(y,"$_reduce_733",function(t){return t["$[]"](1)}),t(y,"$_reduce_736",function(t,n,s){var o=this;return o.$yyerrok(),s}),t(y,"$_reduce_740",d(n)),t(y,"$_reduce_none",function(t){return t["$[]"](0)})}(y[0],h(w("Parser"),"Base"),y)}(m[0],m)},Opal.modules["opal/ast/builder"]=function(e){var n=e.module,i=e.klass,a=e.Opal,r=e.def,s=e.top,o=[],c=e.nil,t=e.$$$;return e.add_stubs("require,emit_lambda=,new"),s.$require("opal/ast/node"),s.$require("parser/ruby32"),function(e,s){var c=n(e,"Opal"),o=[c].concat(s);return function(e,s){var o=n(e,"AST"),c=[o].concat(s);return function(e,n){var s=i(e,n,"Builder");return s["$emit_lambda="](!0),r(s,"$n",function(n,s,o){return t(t(a,"AST"),"Node").$new(n,s,new Map([["location",o]]))})}(c[0],t(t(t("Parser"),"Builders"),"Default"))}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/base"]=function(e){var u=e.module,d=e.klass,c=e.slice,t=e.def,y=e.return_self,i=e.return_val,_=e.const_set,a=e.truthy,r=e.Opal,p=e.defs,o=e.alias,h=e.rb_plus,m=e.send,j=e.to_a,b=e.send2,g=e.find_super,v=e.assign_ivar_val,l=e.top,f=[],s=e.nil,n=e.$$$;return e.add_stubs("require,new,current_node,loc,process_regular_node,on_send,+,stmts_of,begin_with_stmts,nil?,include?,type,children,length,[],s,attr_accessor,current_node=,location=,raise,[]=,meta"),l.$require("parser"),l.$require("opal/ast/node"),function(l,f){var O=u(l,"Opal"),w=[O].concat(f);return function(l,f){var O=u(l,"Rewriters"),w=[O].concat(f);return function(l,u,f){var w=d(l,u,"Base"),O=[w].concat(f),x=e.$r(O),C=w.$$prototype;return C.dynamic_cache_result=s,function(o,a,r){var l=d(o,a,"DummyLocation"),u=[l].concat(r),h=e.$r(u);return t(l,"$node=",function(){var n=c(arguments),o=n;return s},-1),t(l,"$expression",y),t(l,"$begin_pos",i(0)),t(l,"$end_pos",i(0)),t(l,"$source",i("")),t(l,"$line",i(0)),t(l,"$column",i(0)),t(l,"$last_line",function(){return n(h("Float"),"INFINITY")})}(O[0],null,O),_(O[0],"DUMMY_LOCATION",x("DummyLocation").$new()),t(w,"$s",function(t){var i=this,l=s,d=c(arguments,1),u=d,l=a(i.$current_node())?i.$current_node().$loc():x("DUMMY_LOCATION");return n(n(r,"AST"),"Node").$new(t,u,new Map([["location",l]]))},-2),p(w,"$s",function(t){var o=c(arguments,1),i=o;return n(n(r,"AST"),"Node").$new(t,i,new Map([["location",x("DUMMY_LOCATION")]]))},-2),o(w,"on_iter","process_regular_node"),o(w,"on_zsuper","process_regular_node"),o(w,"on_jscall","on_send"),o(w,"on_jsattr","process_regular_node"),o(w,"on_jsattrasgn","process_regular_node"),o(w,"on_kwsplat","process_regular_node"),t(w,"$prepend_to_body",function(t,n){var o=this,i=s,i=h(o.$stmts_of(n),o.$stmts_of(t));return o.$begin_with_stmts(i)}),t(w,"$append_to_body",function(t,n){var o=this,i=s,i=h(o.$stmts_of(t),o.$stmts_of(n));return o.$begin_with_stmts(i)}),t(w,"$stmts_of",function(t){return a(t["$nil?"]())?[]:a(["begin","kwbegin"]["$include?"](t.$type()))?t.$children():[t]}),t(w,"$begin_with_stmts",function(t){var n=this;switch(t.$length().valueOf()){case 0:return s;case 1:return t["$[]"](0);default:return m(n,"s",["begin"].concat(j(t)))}}),w.$attr_accessor("current_node"),t(w,"$process",function e(t){var n,i=e.$$p||s,o=this;return e.$$p=null,function(){try{return o["$current_node="](t),b(o,g(o,"process",e,!1,!0),"process",[t],i)}finally{n=[s],m(o,"current_node=",n),n[n.length-1]}}()}),t(w,"$error",function(t){var o=this,i=s,i=n(r,"RewritingError").$new(t);return a(o.$current_node())&&i["$location="](o.$current_node().$loc()),o.$raise(i)}),t(w,"$on_top",function(t){var n=this;return t=n.$process_regular_node(t),a(n.dynamic_cache_result)&&t.$meta()["$[]="]("dynamic_cache_result",!0),t}),t(w,"$dynamic!",v("dynamic_cache_result",!0))}(w[0],n(n(n("Parser"),"AST"),"Processor"),w)}(w[0],w)}(f[0],f)},Opal.modules["opal/rewriters/opal_engine_check"]=function(e){var i=e.module,r=e.klass,c=e.to_a,n=e.truthy,l=e.send2,d=e.find_super,o=e.def,s=e.const_set,u=e.top,a=[],t=e.nil;return e.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),u.$require("opal/rewriters/base"),function(a,u){var m=i(a,"Opal"),h=[m].concat(u);return function(a,u){var m=i(a,"Rewriters"),h=[m].concat(u),f=e.$r(h);return function(i,a,u){var h=r(i,a,"OpalEngineCheck"),m=[h].concat(u),f=e.$r(m);return o(h,"$on_if",function e(s){var o,m=e.$$p||t,i=this,r=t,u=t,h=t,a=t;return e.$$p=null,o=[].concat(c(s.$children())),r=o[0]==null?t:o[0],u=o[1]==null?t:o[1],h=o[2]==null?t:o[2],o,n(i["$skip_check_present?"](r))?i.$process(n(a=u)?a:i.$s("nil")):n(i["$skip_check_present_not?"](r))?i.$process(n(a=h)?a:i.$s("nil")):l(i,d(i,"on_if",e,!1,!0),"on_if",[s],m)}),o(h,"$skip_check_present?",function(s){var o=t;return n(o=s["$=="](f("RUBY_ENGINE_CHECK")))?o:s["$=="](f("RUBY_PLATFORM_CHECK"))}),o(h,"$skip_check_present_not?",function(s){var o=t;return n(o=s["$=="](f("RUBY_ENGINE_CHECK_NOT")))?o:s["$=="](f("RUBY_PLATFORM_CHECK_NOT"))}),s(m[0],"RUBY_ENGINE_CHECK",h.$s("send",h.$s("const",t,"RUBY_ENGINE"),"==",h.$s("str","opal"))),s(m[0],"RUBY_ENGINE_CHECK_NOT",h.$s("send",h.$s("const",t,"RUBY_ENGINE"),"!=",h.$s("str","opal"))),s(m[0],"RUBY_PLATFORM_CHECK",h.$s("send",h.$s("const",t,"RUBY_PLATFORM"),"==",h.$s("str","opal"))),s(m[0],"RUBY_PLATFORM_CHECK_NOT",h.$s("send",h.$s("const",t,"RUBY_PLATFORM"),"!=",h.$s("str","opal")))}(h[0],f("Base"),h)}(h[0],h)}(a[0],a)},Opal.modules["opal/rewriters/targeted_patches"]=function(e){var l=e.module,v=e.klass,m=e.to_a,n=e.truthy,h=e.rb_ge,s=e.eqeq,u=e.to_ary,r=e.range,i=e.send2,o=e.find_super,c=e.def,f=e.rb_gt,a=e.send,p=e.not,g=e.top,d=[],t=e.nil;return e.add_stubs("require,>=,length,children,==,type,last,first,updated,[],<<,>,all?,include?,=~,to_s,!,cover?,join,map,s"),g.$require("opal/rewriters/base"),function(d,g){var j=l(d,"Opal"),b=[j].concat(g);return function(d,g){var j=l(d,"Rewriters"),b=[j].concat(g),y=e.$r(b);return function(e,l){var d=v(e,l,"TargetedPatches");return c(d,"$on_def",function e(a){var c,g,y=e.$$p||t,p=this,v=t,b=t,l=t,d=t,f=t,j=t;return e.$$p=null,c=[].concat(m(a)),v=c[0]==null?t:c[0],b=c[1]==null?t:c[1],l=c[2]==null?t:c[2],c,n(l)&&s(l.$type(),"begin")&&n(h(l.$children().$length(),2))?(d=l.$children(),g=d.$last(2),c=u(g),f=c[0]==null?t:c[0],j=c[1]==null?t:c[1],g,s(f.$type(),"lvasgn")&&s(j.$type(),"lvar")&&s(f.$children().$first(),j.$children().$first())?s(d.$length(),2)?a.$updated(t,[v,b,f.$children()["$[]"](1)]):(d=d["$[]"](r(0,-3,!1))["$<<"](f.$children()["$[]"](1)),a.$updated(t,[v,b,l.$updated(t,d)])):i(p,o(p,"on_def",e,!1,!0),"on_def",[a],y)):i(p,o(p,"on_def",e,!1,!0),"on_def",[a],y)}),c(d,"$on_array",function e(c){var u=e.$$p||t,l=this,d=t,h=t,m=t;return e.$$p=null,d=c.$children(),n(f(d.$length(),32))?(h=a(d,"all?",[],function(o){return o==null&&(o=t),!!n(["str","sym","int","nil"]["$include?"](o.$type()))&&!(n(["str","sym"]["$include?"](o.$type()))&&n(o.$children().$first().$to_s()["$=~"](/^[0-9-]|^$|,/)))&&(!s(o.$type(),"int")||!p(r(-1e6,1e6,!1)["$cover?"](o.$children().$first())))}),n(h)?(m=a(d,"map",[],function(n){return n==null&&(n=t),n.$children().$first().$to_s()}).$join(","),c.$updated("jscall",[l.$s("js_tmp","Opal"),"large_array_unpack",l.$s("sym",m)])):i(l,o(l,"on_array",e,!1,!0),"on_array",[c],u)):i(l,o(l,"on_array",e,!1,!0),"on_array",[c],u)})}(b[0],y("Base"))}(b[0],b)}(d[0],d)},Opal.modules["opal/rewriters/for_rewriter"]=function(e){var a=e.module,c=e.klass,d=e.assign_ivar_val,o=e.defs,l=e.truthy,i=e.rb_plus,s=e.to_a,n=e.def,u=e.send,h=e.send2,m=e.find_super,f=e.top,r=[],t=e.nil;return e.add_stubs("require,+,generate_outer_assignments,next_tmp,class,s,prepend_to_body,assign_loop_variable,transform_for_to_each_loop,updated,private,find,map,type,<<,process,attr_reader,new,to_a,result"),f.$require("opal/rewriters/base"),function(r,f){var g=a(r,"Opal"),p=[g].concat(f);return function(r,f){var g=a(r,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(a,r,f){var p=c(a,r,"ForRewriter"),g=[p].concat(f),v=e.$r(g);return o(p,"$reset_tmp_counter!",d("counter",0)),o(p,"$next_tmp",function(){var n=this,s=t;return n.counter==null&&(n.counter=t),n.counter=l(s=n.counter)?s:0,n.counter=i(n.counter,1),"$for_tmp"+n.counter}),n(p,"$on_for",function(n){var i=this,r=t,l=t,a=t,d=t,c=t,u=t,o=[].concat(s(n));return r=o[0]==null?t:o[0],l=o[1]==null?t:o[1],a=o[2]==null?t:o[2],o,d=i.$generate_outer_assignments(r,a),c=i.$class().$next_tmp(),u=i.$s("js_tmp",c),a=i.$prepend_to_body(a,i.$assign_loop_variable(r,u)),n=i.$transform_for_to_each_loop(n,l,c,a),n.$updated("begin",[].concat(s(d)).concat([n]))}),p.$private(),n(p,"$generate_outer_assignments",function(n,s){var r=this,o=t,a=t,o=v("LocalVariableAssigns").$find(n),a=v("LocalVariableAssigns").$find(s);return u(i(o,a),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("lvdeclare",n)},{$$s:r})}),n(p,"$assign_loop_variable",function(t,n){switch(t.$type().valueOf()){case"mlhs":return t.$updated("masgn",[t,n]);default:return t["$<<"](n)}}),n(p,"$transform_for_to_each_loop",function(t,n,s,o){var i=this;return t.$updated("send",[n,"each",t.$updated("iter",[i.$s("args",i.$s("arg",s)),i.$process(o)])])}),function(i,a,r){var l=c(i,a,"LocalVariableAssigns"),d=[l].concat(r),u=e.$r(d);return l.$attr_reader("result"),o(l,"$find",function(n){var o=this,s=t,s=o.$new();return s.$process(n),s.$result().$to_a()}),n(l,"$initialize",function(){var t=this;return t.result=u("Set").$new()}),n(l,"$on_lvasgn",function e(n){var o,r=e.$$p||t,i=this,a=t,c=t;return e.$$p=null,o=[].concat(s(n)),a=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,i.$result()["$<<"](a),h(i,m(i,"on_lvasgn",e,!1,!0),"on_lvasgn",[n],r)})}(g[0],v("Base"),g)}(p[0],v("Base"),p)}(p[0],p)}(r[0],r)},Opal.modules["opal/rewriters/js_reserved_words"]=function(e){var l=e.module,p=e.klass,i=e.const_set,o=e.regexp,n=e.truthy,d=e.defs,s=e.def,m=e.range,a=e.to_a,r=e.send2,c=e.find_super,f=e.alias,u=e.top,h=[],t=e.nil;return e.add_stubs("require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name,on_restarg"),u.$require("opal/rewriters/base"),u.$require("opal/regexp_anchors"),function(u,h){var v=l(u,"Opal"),g=[v].concat(h);return function(u,h){var v=l(u,"Rewriters"),g=[v].concat(h),b=e.$r(g);return function(l,u,h){var v=p(l,u,"JsReservedWords"),b=[v].concat(h),g=e.$r(b);return i(b[0],"ES51_RESERVED_WORD",o([g("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)",g("REGEXP_END")]).$freeze()),i(b[0],"ES3_RESERVED_WORD_EXCLUSIVE",o([g("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",g("REGEXP_END")]).$freeze()),i(b[0],"PROTO_SPECIAL_PROPS",o([g("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",g("REGEXP_END")]).$freeze()),i(b[0],"PROTO_SPECIAL_METHODS",o([g("REGEXP_START"),"(?:hasOwnProperty|valueOf)",g("REGEXP_END")]).$freeze()),i(b[0],"IMMUTABLE_PROPS",o([g("REGEXP_START"),"(?:NaN|Infinity|undefined)",g("REGEXP_END")]).$freeze()),i(b[0],"BASIC_IDENTIFIER_RULES",o([g("REGEXP_START"),"[$_a-z][$_a-z\\d]*",g("REGEXP_END")],"i").$freeze()),i(b[0],"RESERVED_FUNCTION_NAMES",o([g("REGEXP_START"),"(?:Array)",g("REGEXP_END")]).$freeze()),d(v,"$valid_name?",function(s){var o=t,i=t,a=t;return n(o=g("BASIC_IDENTIFIER_RULES")["$=~"](s))?(n(i=n(a=g("ES51_RESERVED_WORD")["$=~"](s))?a:g("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](s))?i:g("IMMUTABLE_PROPS")["$=~"](s))["$!"]():o}),d(v,"$valid_ivar_name?",function(s){var o=t;return(n(o=g("PROTO_SPECIAL_PROPS")["$=~"](s))?o:g("PROTO_SPECIAL_METHODS")["$=~"](s))["$!"]()}),s(v,"$fix_var_name",function(t){var s=this;return n(s.$class()["$valid_name?"](t))?t:(""+t+"$").$to_sym()}),s(v,"$fix_ivar_name",function(t){var s=this;return n(s.$class()["$valid_ivar_name?"](t.$to_s()["$[]"](m(1,-1,!1))))?t:(""+t+"$").$to_sym()}),s(v,"$on_lvar",function e(n){var s,d=e.$$p||t,o=this,i=t,l=t;return e.$$p=null,s=[].concat(a(n)),i=s[0]==null?t:s[0],l=s[1]==null?t:s[1],s,n=n.$updated(t,[o.$fix_var_name(i)]),r(o,c(o,"on_lvar",e,!1,!0),"on_lvar",[n],null)}),s(v,"$on_lvasgn",function e(s){var o,u=e.$$p||t,i=this,l=t,d=t;return e.$$p=null,o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,s=n(d)?s.$updated(t,[i.$fix_var_name(l),d]):s.$updated(t,[i.$fix_var_name(l)]),r(i,c(i,"on_lvasgn",e,!1,!0),"on_lvasgn",[s],null)}),s(v,"$on_ivar",function e(n){var s,d=e.$$p||t,o=this,i=t,l=t;return e.$$p=null,s=[].concat(a(n)),i=s[0]==null?t:s[0],l=s[1]==null?t:s[1],s,n=n.$updated(t,[o.$fix_ivar_name(i)]),r(o,c(o,"on_ivar",e,!1,!0),"on_ivar",[n],null)}),s(v,"$on_ivasgn",function e(s){var o,u=e.$$p||t,i=this,l=t,d=t;return e.$$p=null,o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,s=n(d)?s.$updated(t,[i.$fix_ivar_name(l),d]):s.$updated(t,[i.$fix_ivar_name(l)]),r(i,c(i,"on_ivasgn",e,!1,!0),"on_ivasgn",[s],null)}),s(v,"$on_restarg",function(s){var r=this,i=t,c=t,o=[].concat(a(s));return i=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,n(i)&&(s=s.$updated(t,[r.$fix_var_name(i)],new Map([["meta",new Map([["arg_name",i]])]]))),s}),f(v,"on_kwrestarg","on_restarg"),s(v,"$on_argument",function e(s){var o,m=e.$$p||t,i=this,l=t,d=t,u=t,h=t;return e.$$p=null,s=r(i,c(i,"on_argument",e,!1,!0),"on_argument",[s],null),o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,u=i.$fix_var_name(l),h=n(d)?[u,d]:[u],s.$updated(t,h,new Map([["meta",new Map([["arg_name",l]])]]))})}(g[0],b("Base"),g)}(g[0],g)}(h[0],h)},Opal.modules["opal/rewriters/block_to_iter"]=function(e){var n=e.module,o=e.klass,i=e.to_a,a=e.rb_plus,r=e.def,c=e.top,s=[],t=e.nil;return e.add_stubs("require,s,process,updated,+,children"),c.$require("opal/rewriters/base"),function(s,c){var d=n(s,"Opal"),l=[d].concat(c);return function(s,c){var d=n(s,"Rewriters"),l=[d].concat(c),u=e.$r(l);return function(e,n){var s=o(e,n,"BlockToIter");return r(s,"$on_block",function(n){var r=this,o=t,c=t,l=t,d=t,s=[].concat(i(n));return o=s[0]==null?t:s[0],c=s[1]==null?t:s[1],l=s[2]==null?t:s[2],s,d=r.$s("iter",c,l),r.$process(o.$updated(t,a(o.$children(),[d])))})}(l[0],u("Base"))}(l[0],l)}(s[0],s)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(e){var r=e.module,f=e.klass,n=e.to_a,u=e.slice,c=e.eqeq,d=e.truthy,a=e.neqeq,o=e.send2,i=e.find_super,s=e.def,h=e.send,m=e.top,l=[],t=e.nil;return e.add_stubs("require,==,type,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s"),m.$require("opal/rewriters/base"),function(l,m){var g=r(l,"Opal"),p=[g].concat(m);return function(l,m){var g=r(l,"Rewriters"),p=[g].concat(m),v=e.$r(p);return function(e,r){var l=f(e,r,"DotJsSyntax");return s(l,"$on_send",function e(s){var r,v=e.$$p||t,l=this,m=t,g=t,h=t,f=t,b=t,y=t,p=t,j=t;if(e.$$p=null,r=[].concat(n(s)),m=r[0]==null?t:r[0],g=r[1]==null?t:r[1],h=u(r,2),r,d(m)&&c(m.$type(),"send")){if(r=[].concat(n(m)),f=r[0]==null?t:r[0],b=r[1]==null?t:r[1],y=r[2]==null?t:r[2],r,c(b,"JS")){switch(g.valueOf()){case"[]":a(h.$size(),1)&&l.$error(".JS[:property] syntax supports only one argument"),p=h.$first(),s=l.$to_js_attr_call(f,p);break;case"[]=":a(h.$size(),2)&&l.$error(".JS[:property]= syntax supports only two arguments"),r=[].concat(n(h)),p=r[0]==null?t:r[0],j=r[1]==null?t:r[1],r,s=l.$to_js_attr_assign_call(f,p,j);break;default:s=l.$to_native_js_call(f,g,h)}return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],null)}return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],v)}else return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],v)}),s(l,"$to_native_js_call",function(t,s,o){var i=this;return h(i,"s",["jscall",t,s].concat(n(o)))}),s(l,"$to_js_attr_call",function(t,n){var s=this;return s.$s("jsattr",t,n)}),s(l,"$to_js_attr_assign_call",function(t,n,s){var o=this;return o.$s("jsattrasgn",t,n,s)})}(p[0],v("Base"))}(p[0],p)}(l[0],l)},Opal.modules["opal/rewriters/pattern_matching"]=function(e){var m=e.module,u=e.klass,p=e.send2,_=e.find_super,n=e.def,s=e.to_a,l=e.rb_plus,c=e.slice,a=e.truthy,i=e.send,y=e.not,j=e.neqeq,g=e.eqeq,f=e.return_ivar,o=e.alias,r=e.eqeqeq,v=e.Opal,b=e.top,h=[],t=e.nil,d=e.$$$;return e.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,[],==="),b.$require("opal/rewriters/base"),function(h,b){var O=m(h,"Opal"),w=[O].concat(b);return function(h,b){var O=m(h,"Rewriters"),w=[O].concat(b),x=e.$r(w);return function(h,m,b){var w=u(h,m,"PatternMatching"),O=[w].concat(b),x=e.$r(O),C=w.$$prototype;return C.depth=t,n(w,"$initialize",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.depth=0,p(n,_(n,"initialize",e,!1,!0),"initialize",[],s)}),n(w,"$on_match_pattern",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$s("begin",i.$s("lvasgn","$pmvar",a),i.$s("if",i.$convert_full_pattern(a,r),t,i.$raise_no_matching_pattern_error("$pmvar")))}),n(w,"$on_match_pattern_p",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$s("if",i.$convert_full_pattern(a,r),i.$s("true"),i.$s("false"))}),n(w,"$on_case_match",function(n){var o,d,r=this,h=t,m=t,f=t,u=t;return r.depth=l(r.depth,1),h="$cmvar"+r.depth,o=[].concat(s(n)),m=o[0]==null?t:o[0],d=o.length-1,d=d<1?1:d,f=c(o,1,d),u=o[d]==null?t:o[d],o,a(u)?r.$process(u):u=r.$raise_no_matching_pattern_error(h),r.$s("begin",r.$s("lvasgn",h,m),i(r,"single_case_match",[h].concat(s(f)).concat([u])))}),w.$private(),n(w,"$raise_no_matching_pattern_error",function(n){var s=this;return s.$s("send",t,"raise",s.$s("const",s.$s("cbase"),"NoMatchingPatternError"),s.$s("lvar",n))}),n(w,"$single_case_match",function(n){var l,d=this,v=t,u=t,m=t,b=t,g=t,f=c(arguments,1),p=f.splice(0,f.length-1),h=f.shift();if(h==null&&(h=t),v=p.$shift(),l=[].concat(s(v)),u=l[0]==null?t:l[0],m=l[1]==null?t:l[1],b=l[2]==null?t:l[2],l,u=d.$convert_full_pattern(n,u),a(m))switch(l=[].concat(s(m)),g=l[0]==null?t:l[0],l,m.$type().valueOf()){case"if_guard":u=d.$s("and",u,g);break;case"unless_guard":u=d.$s("and",u,d.$s("send",g,"!"));break;default:t}return d.$s("if",u,d.$process(b),y(p["$empty?"]())?i(d,"single_case_match",[n].concat(s(p)).concat([h])):j(h,d.$s("empty_else"))?h:t)},-3),n(w,"$convert_full_pattern",function(n,o){var a=this,r=t;return g(n.$class(),x("Symbol"))&&(n=a.$s("lvar",n)),r=x("PatternConverter").$new(o),r["$run!"](),a.$s("masgn",i(a,"s",["mlhs"].concat(s(r.$variables()))),a.$s("send",a.$s("const",a.$s("cbase"),"PatternMatching"),"call",n,r.$pattern()))}),function(d,h,m){var p=u(d,h,"PatternConverter"),b=[p].concat(m),g=e.$r(b),v=p.$$prototype;return v.pat=v.variables=t,n(p,"$initialize",function(t){var n=this;return n.pat=t,n.variables=[]}),n(p,"$run!",function(){var t=this;return t.outpat=t.$process(t.pat)}),n(p,"$pattern",f("outpat")),n(p,"$variables",function(){var n=this;return i(n.variables,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("lvasgn",n)},{$$s:n})}),n(p,"$on_match_var",function(n){var i=this,a=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],o,i.variables["$<<"](a),i.$s("sym","var")}),n(p,"$on_match_as",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$process(r),i.$array(i.$s("sym","save"),i.$process(a))}),n(p,"$on_literal",function(t){var n=this;return n.$array(n.$s("sym","lit"),t)}),o(p,"on_int","on_literal"),o(p,"on_float","on_literal"),o(p,"on_complex","on_literal"),o(p,"on_rational","on_literal"),o(p,"on_array","on_literal"),o(p,"on_str","on_literal"),o(p,"on_dstr","on_literal"),o(p,"on_xstr","on_literal"),o(p,"on_sym","on_literal"),o(p,"on_irange","on_literal"),o(p,"on_erange","on_literal"),o(p,"on_const","on_literal"),o(p,"on_regexp","on_literal"),o(p,"on_lambda","on_literal"),o(p,"on_begin","on_literal"),n(p,"$on_pin",function(t){var n=this;return n.$on_literal(t.$children().$first())}),n(p,"$on_match_rest",function(t){var n=this;return a(t.$children()["$empty?"]())?n.$array(n.$s("sym","rest")):n.$array(n.$s("sym","rest"),n.$process(t.$children().$first()))}),n(p,"$on_match_alt",function(t){var n=this;return i(n,"array",[n.$s("sym","any")].concat(s(i(t.$children(),"map",[],n.$method("process").$to_proc()))))}),n(p,"$on_const_pattern",function(t){var n=this;return i(n,"array",[n.$s("sym","all")].concat(s(i(t.$children(),"map",[],n.$method("process").$to_proc()))))}),n(p,"$on_array_pattern",function(n,o){var r=this,c=t,u=t,d=t;return o==null&&(o=!1),c=[].concat(s(n)),a(o)&&c["$<<"](r.$s("match_rest")),u=!0,d=0,c=i(c,"each",[],function(n){switch(n==null&&(n=t),n.$type().valueOf()){case"match_rest":return u=!1;default:return d=l(d,1)}}),r.$array(r.$s("sym","array"),r.$to_ast(u),r.$to_ast(d),r.$to_ast(i(c,"map",[],r.$method("process").$to_proc())))},-2),n(p,"$on_array_pattern_with_tail",function(t){var n=this;return n.$on_array_pattern(t,!0)}),n(p,"$on_hash_pattern",function(n){var o=this,r=t,c=t,r=[].concat(s(n)),c=a(r["$empty?"]())?o.$to_ast(!1):o.$to_ast(!0),r=i(r,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"pair":return s.$array(n.$children()["$[]"](0),s.$process(n.$children()["$[]"](1)));case"match_var":return s.$array(s.$s("sym",n.$children()["$[]"](0)),s.$process(n));case"match_nil_pattern":return c=s.$to_ast(!1),t;case"match_rest":return a(n.$children().$first())?c=s.$process(n.$children().$first()):c=s.$to_ast(!0),t;default:return t}},{$$s:o}).$compact();return o.$array(o.$s("sym","hash"),c,i(o,"array",s(r)))}),n(p,"$on_find_pattern",function(n){var o=this,a=t,a=[].concat(s(n)),a=i(a,"map",[],o.$method("process").$to_proc());return o.$array(o.$s("sym","find"),i(o,"array",s(a)))}),p.$private(),n(p,"$array",function(){var o=this,n=c(arguments),s=n;return o.$to_ast(s)},-1),n(p,"$to_ast",function(n){var o=this,a=t;return r(g("Array"),a=n)?i(o,"s",["array"].concat(s(n))):r(g("Integer"),a)?o.$s("int",n):r(!0,a)?o.$s("true"):r(!1,a)?o.$s("false"):r(t,a)?o.$s("nil"):t})}(O[0],d(d(v,"Rewriters"),"Base"),O)}(w[0],x("Base"),w)}(w[0],w)}(h[0],h)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(e){var f=e.module,a=e.klass,r=e.class_variable_set,i=e.defs,o=e.truthy,c=e.class_variable_get,j=e.rb_plus,s=e.const_set,d=e.lambda,u=e.eqeq,n=e.to_a,h=e.slice,m=e.send,l=e.def,g=e.send2,v=e.find_super,b=e.top,p=[],t=e.nil;return e.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),b.$require("opal/rewriters/base"),function(p,b){var _=f(p,"Opal"),y=[_].concat(b);return function(p,b){var _=f(p,"Rewriters"),y=[_].concat(b),w=e.$r(y);return function(f,p,b){var w=a(f,p,"LogicalOperatorAssignment"),y=[w].concat(b),_=e.$r(y);return i(w,"$reset_tmp_counter!",function(){return r(y[0],"@@counter",0)}),i(w,"$new_temp",function(){var n,s=t;return r(y[0],"@@counter",o((n=y[0].$$cvars["@@counter"],n!=null?"class variable":t))?o(s=c(y[0],"@@counter",!1))?s:0:0),r(y[0],"@@counter",j(c(y[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+c(y[0],"@@counter",!1)}),s(y[0],"GET_SET",d(function e(s,i){var a=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),d(function e(a,r,c){var l=e.$$s==null?this:e.$$s,h=t,d=t,m=t;return a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),h=a.$updated(s),d=l.$s(c,h,r),o(["const","cvar"]["$include?"](s))&&u(c,"or")&&(m=l.$s("defined?",h),d=l.$s("if",m,l.$s("begin",d),r)),a.$updated(i,[].concat(n(a)).concat([d]))},{$$s:a})},{$$s:w})),s(y[0],"LocalVariableHandler",_("GET_SET")["$[]"]("lvar","lvasgn")),s(y[0],"InstanceVariableHandler",_("GET_SET")["$[]"]("ivar","ivasgn")),s(y[0],"ConstantHandler",_("GET_SET")["$[]"]("const","casgn")),s(y[0],"GlobalVariableHandler",_("GET_SET")["$[]"]("gvar","gvasgn")),s(y[0],"ClassVariableHandler",_("GET_SET")["$[]"]("cvar","cvasgn")),function(e,s){var r=a(e,s,"SendHandler");return i(r,"$call",function(s,i,a){var l=this,r=t,d=t,m=t,f=t,p=t,v=t,b=t,j=t,g=t,c=[].concat(n(s));return r=c[0]==null?t:c[0],d=c[1]==null?t:c[1],m=h(c,2),c,o(r)&&u(r.$type(),"send")&&(f=l.$new_temp(),p=l.$s("lvasgn",f,r),r=l.$s("js_tmp",f)),v=""+d+"=",b=s.$updated("send",[r,d].concat(n(m))),j=s.$updated("send",[r,v].concat(n(m)).concat([i])),g=l.$s(a,b,j),o(p)?l.$s("begin",p,g):g})}(y[0],w),function(e,s){var o=a(e,s,"ConditionalSendHandler");return i(o,"$call",function(s,o,i){var r,a=this,c=t,d=t,u=t,l=t,m=t,f=t,p=t,g=t;return i=""+i+"_asgn",r=[].concat(n(s)),c=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u=h(r,2),r,l=a.$new_temp(),m=a.$s("lvasgn",l,c),c=a.$s("js_tmp",l),f=a.$s("send",c,"nil?"),p=s.$updated("send",[c,d].concat(n(u))),g=a.$s(i,p,o),a.$s("begin",m,a.$s("if",f,a.$s("nil"),g))})}(y[0],w),s(y[0],"HANDLERS",new Map([["lvasgn",_("LocalVariableHandler")],["ivasgn",_("InstanceVariableHandler")],["casgn",_("ConstantHandler")],["gvasgn",_("GlobalVariableHandler")],["cvasgn",_("ClassVariableHandler")],["send",_("SendHandler")],["csend",_("ConditionalSendHandler")]]).$freeze()),l(w,"$on_or_asgn",function(s){var a=this,i=t,r=t,c=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c=m(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(i,r,"or"),a.$process(c)}),l(w,"$on_and_asgn",function(s){var a=this,i=t,r=t,c=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c=m(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(i,r,"and"),a.$process(c)}),s(y[0],"ASSIGNMENT_STRING_NODE",w.$s("str","assignment")),l(w,"$on_defined?",function e(s){var i,l=e.$$p||t,a=this,r=t,c=t;return e.$$p=null,i=[].concat(n(s)),r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,o(["or_asgn","and_asgn"]["$include?"](r.$type()))?_("ASSIGNMENT_STRING_NODE"):g(a,v(a,"on_defined?",e,!1,!0),"on_defined?",[s],null)})}(y[0],w("Base"),y)}(y[0],y)}(p[0],p)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(e){var d=e.module,a=e.klass,r=e.class_variable_set,o=e.defs,i=e.truthy,c=e.class_variable_get,j=e.rb_plus,s=e.const_set,l=e.lambda,n=e.to_a,u=e.slice,h=e.eqeq,p=e.send,m=e.def,g=e.send2,v=e.find_super,b=e.top,f=[],t=e.nil;return e.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),b.$require("opal/rewriters/base"),function(f,b){var _=d(f,"Opal"),y=[_].concat(b);return function(f,b){var _=d(f,"Rewriters"),y=[_].concat(b),w=e.$r(y);return function(d,f,b){var w=a(d,f,"BinaryOperatorAssignment"),y=[w].concat(b),_=e.$r(y);return o(w,"$reset_tmp_counter!",function(){return r(y[0],"@@counter",0)}),o(w,"$new_temp",function(){var n,s=t;return r(y[0],"@@counter",i((n=y[0].$$cvars["@@counter"],n!=null?"class variable":t))?i(s=c(y[0],"@@counter",!1))?s:0:0),r(y[0],"@@counter",j(c(y[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+c(y[0],"@@counter",!1)}),s(y[0],"GET_SET",l(function(s,o){return s==null&&(s=t),o==null&&(o=t),l(function(i,a,r,c){var l=t,d=t;return i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l=a.$updated(s),d=i.$updated("send",[l,r,c]),a.$updated(o,[].concat(n(a)).concat([d]))})})),s(y[0],"LocalVariableHandler",_("GET_SET")["$[]"]("lvar","lvasgn")),s(y[0],"InstanceVariableHandler",_("GET_SET")["$[]"]("ivar","ivasgn")),s(y[0],"ConstantHandler",_("GET_SET")["$[]"]("const","casgn")),s(y[0],"GlobalVariableHandler",_("GET_SET")["$[]"]("gvar","gvasgn")),s(y[0],"ClassVariableHandler",_("GET_SET")["$[]"]("cvar","cvasgn")),function(e,s){var r=a(e,s,"SendHandler");return o(r,"$call",function(s,o,a,r){var d=this,c=t,m=t,f=t,p=t,g=t,b=t,j=t,y=t,v=t,l=[].concat(n(o));return c=l[0]==null?t:l[0],m=l[1]==null?t:l[1],f=u(l,2),l,i(c)&&h(c.$type(),"send")&&(p=d.$new_temp(),g=d.$s("lvasgn",p,c),c=d.$s("js_tmp",p)),b=""+m+"=",j=o.$updated("send",[c,m].concat(n(f))),y=s.$updated("send",[j,a,r]),v=o.$updated("send",[c,b].concat(n(f)).concat([y])),i(g)?s.$updated("begin",[g,v]):v})}(y[0],w),function(e,s){var i=a(e,s,"ConditionalSendHandler");return o(i,"$call",function(s,o,i,a){var r=this,l=t,h=t,m=t,d=t,f=t,p=t,g=t,v=t,c=[].concat(n(o));return l=c[0]==null?t:c[0],h=c[1]==null?t:c[1],m=u(c,2),c,d=r.$new_temp(),f=r.$s("lvasgn",d,l),l=r.$s("js_tmp",d),p=r.$s("send",l,"nil?"),g=o.$updated("send",[l,h].concat(n(m))),v=s.$updated("op_asgn",[g,i,a]),r.$s("begin",f,r.$s("if",p,r.$s("nil"),v))})}(y[0],w),s(y[0],"HANDLERS",new Map([["lvasgn",_("LocalVariableHandler")],["ivasgn",_("InstanceVariableHandler")],["casgn",_("ConstantHandler")],["gvasgn",_("GlobalVariableHandler")],["cvasgn",_("ClassVariableHandler")],["send",_("SendHandler")],["csend",_("ConditionalSendHandler")]]).$freeze()),m(w,"$on_op_asgn",function(s){var a=this,i=t,r=t,c=t,l=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],c=o[2]==null?t:o[2],o,l=p(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(s,i,r,c),a.$process(l)}),s(y[0],"ASSIGNMENT_STRING_NODE",w.$s("str","assignment")),m(w,"$on_defined?",function e(s){var o,c=e.$$p||t,i=this,a=t,r=t;return e.$$p=null,o=[].concat(n(s)),a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,h(a.$type(),"op_asgn")?_("ASSIGNMENT_STRING_NODE"):g(i,v(i,"on_defined?",e,!1,!0),"on_defined?",[s],null)})}(y[0],w("Base"),y)}(y[0],y)}(f[0],f)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(e){var o=e.module,u=e.klass,n=e.def,r=e.send2,a=e.find_super,s=e.to_a,i=e.truthy,c=e.eqeq,m=e.Opal,l=e.top,d=[],t=e.nil,h=e.$$$;return e.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),l.$require("opal/rewriters/base"),l.$require("set"),function(l,d){var p=o(l,"Opal"),f=[p].concat(d);return function(l,d){var p=o(l,"Rewriters"),f=[p].concat(d);return function(l,d){var p=o(l,"Hashes"),f=[p].concat(d);return function(o,l,d){var h=u(o,l,"KeyDuplicatesRewriter"),m=[h].concat(d),f=e.$r(m),p=h.$$prototype;return p.keys=t,n(h,"$initialize",function(){var t=this;return t.keys=f("UniqKeysSet").$new()}),n(h,"$on_hash",function e(n){var o,c=e.$$p||t,s=this,i=t;return e.$$p=null,function(){try{return o=[s.keys,f("UniqKeysSet").$new()],i=o[0],s.keys=o[1],o,r(s,a(s,"on_hash",e,!1,!0),"on_hash",[n],null)}finally{s.keys=i}}()}),n(h,"$on_pair",function e(n){var o,u=e.$$p||t,c=this,l=t,d=t;return e.$$p=null,o=[].concat(s(n)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,i(["str","sym"]["$include?"](l.$type()))&&c.keys["$<<"](l),r(c,a(c,"on_pair",e,!1,!0),"on_pair",[n],null)}),n(h,"$on_kwsplat",function(n){var a=this,i=t,r=t,o=[].concat(s(n));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c(i.$type(),"hash")&&(i=a.$process_regular_node(i)),n.$updated(t,[i])}),function(o,a,r){var l=u(o,a,"UniqKeysSet"),h=[l].concat(r),d=e.$r(h),m=l.$$prototype;return m.set=t,n(l,"$initialize",function(){var t=this;return t.set=d("Set").$new()}),n(l,"$<<",function(n){var o,r=this,a=t,l=t;return i(r.set["$include?"](n))?(o=[].concat(s(n)),a=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,a=c(n.$type(),"str")?a.$inspect():":"+a,d("Kernel").$warn("warning: key "+a+" is duplicated and overwritten")):r.set["$<<"](n)})}(m[0],null,m)}(f[0],h(h(m,"Rewriters"),"Base"),f)}(f[0],f)}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/dump_args"]=function(e){var a=e.module,c=e.klass,n=e.send2,s=e.find_super,o=e.to_a,i=e.def,l=e.top,r=[],t=e.nil;return e.add_stubs("require,updated"),l.$require("opal/rewriters/base"),function(r,l){var u=a(r,"Opal"),d=[u].concat(l);return function(r,l){var u=a(r,"Rewriters"),d=[u].concat(l),h=e.$r(d);return function(e,a){var r=c(e,a,"DumpArgs");return i(r,"$on_def",function e(i){var a,u=e.$$p||t,r=this,l=t,c=t,d=t;return e.$$p=null,i=n(r,s(r,"on_def",e,!1,!0),"on_def",[i],null),a=[].concat(o(i)),l=a[0]==null?t:a[0],c=a[1]==null?t:a[1],d=a[2]==null?t:a[2],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))}),i(r,"$on_defs",function e(i){var a,h=e.$$p||t,r=this,l=t,d=t,c=t,u=t;return e.$$p=null,i=n(r,s(r,"on_defs",e,!1,!0),"on_defs",[i],null),a=[].concat(o(i)),l=a[0]==null?t:a[0],d=a[1]==null?t:a[1],c=a[2]==null?t:a[2],u=a[3]==null?t:a[3],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))}),i(r,"$on_iter",function e(i){var a,d=e.$$p||t,r=this,c=t,l=t;return e.$$p=null,i=n(r,s(r,"on_iter",e,!1,!0),"on_iter",[i],null),a=[].concat(o(i)),c=a[0]==null?t:a[0],l=a[1]==null?t:a[1],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))})}(d[0],h("Base"))}(d[0],d)}(r[0],r)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(e){var o=e.module,r=e.klass,n=e.send,c=e.send2,l=e.find_super,s=e.def,i=e.truthy,d=e.to_ary,u=e.rb_plus,h=e.rb_gt,a=[],t=e.nil;return e.add_stubs("new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>"),function(a,m){var p=o(a,"Opal"),f=[p].concat(m);return function(a,m){var p=o(a,"Rewriters"),f=[p].concat(m),g=e.$r(f);return function(o,a,m){var f=r(o,a,"DeduplicateArgName"),p=[f].concat(m),g=e.$r(p),v=f.$$prototype;return v.arg_name_count=t,s(f,"$on_args",function e(s){var a=e.$$p||t,o=this,i=t;return e.$$p=null,o.arg_name_count=g("Hash").$new(0),i=n(s.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$rename_arg(n)},{$$s:o}),c(o,l(o,"on_args",e,!1,!0),"on_args",[s.$updated(t,i)],null)}),s(f,"$rename_arg",function(s){var o,r,c=this,a=t,l=t,u=t;switch(s.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return a=s.$children()["$[]"](0),i(a)?s.$updated(t,[c.$unique_name(a)]):s;break;case"optarg":case"kwoptarg":return r=s.$children(),o=d(r),a=o[0]==null?t:o[0],l=o[1]==null?t:o[1],r,s.$updated(t,[c.$unique_name(a),l]);case"mlhs":return u=n(s.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$rename_arg(n)},{$$s:c}),s.$updated(t,u);default:return s}}),s(f,"$unique_name",function(s){var o,r=this,a=t,a=(o=[s,u(r.arg_name_count["$[]"](s),1)],n(r.arg_name_count,"[]=",o),o[o.length-1]);return i(h(a,1))?""+s+"_$"+a:s})}(f[0],g("Base"),f)}(f[0],f)}(a[0],a)},Opal.modules["opal/rewriters/mlhs_args"]=function(e){var c=e.module,r=e.klass,a=e.send2,i=e.find_super,o=e.to_a,s=e.truthy,n=e.def,h=e.assign_ivar_val,m=e.rb_plus,l=e.send,d=e.eqeq,f=e.top,u=[],t=e.nil;return e.add_stubs("require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?"),f.$require("opal/rewriters/base"),function(u,f){var g=c(u,"Opal"),p=[g].concat(f);return function(u,f){var g=c(u,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(c,u,f){var g=r(c,u,"MlhsArgs"),v=[g].concat(f),p=e.$r(v);return n(g,"$on_def",function e(n){var r,f=e.$$p||t,d=this,h=t,l=t,c=t,u=t,m=t;return e.$$p=null,n=a(d,i(d,"on_def",e,!1,!0),"on_def",[n],null),r=[].concat(o(n)),h=r[0]==null?t:r[0],l=r[1]==null?t:r[1],c=r[2]==null?t:r[2],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(m=c)?m:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[h,l,c])}),n(g,"$on_defs",function e(n){var r,g=e.$$p||t,d=this,h=t,m=t,l=t,c=t,u=t,f=t;return e.$$p=null,n=a(d,i(d,"on_defs",e,!1,!0),"on_defs",[n],null),r=[].concat(o(n)),h=r[0]==null?t:r[0],m=r[1]==null?t:r[1],l=r[2]==null?t:r[2],c=r[3]==null?t:r[3],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(f=c)?f:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[h,m,l,c])}),n(g,"$on_iter",function e(n){var r,m=e.$$p||t,d=this,l=t,c=t,u=t,h=t;return e.$$p=null,n=a(d,i(d,"on_iter",e,!1,!0),"on_iter",[n],null),r=[].concat(o(n)),l=r[0]==null?t:r[0],c=r[1]==null?t:r[1],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(h=c)?h:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[l,c])}),function(i,a,c){var u=r(i,a,"Arguments"),p=[u].concat(c),g=e.$r(p),f=u.$$prototype;return f.counter=f.args=f.initialization=t,u.$attr_reader("rewritten","initialization"),n(u,"$initialize",function(t){var n=this;return n.args=t,n.rewritten=[],n.initialization=[],n.rewriter=g("MlhsRewriter").$new(),n["$split!"]()}),n(u,"$reset_tmp_counter!",h("counter",0)),n(u,"$new_mlhs_tmp",function(){var n=this,o=t;return n.counter=s(o=n.counter)?o:0,n.counter=m(n.counter,1),"$mlhs_tmp"+n.counter}),n(u,"$split!",function(){var n=this;return l(n.args.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s,o=t,i=t,a=t;return s.rewriter==null&&(s.rewriter=t),s.initialization==null&&(s.initialization=t),s.rewritten==null&&(s.rewritten=t),n==null&&(n=t),d(n.$type(),"mlhs")?(o=s.$new_mlhs_tmp(),i=s.$s("lvar",o),a=s.rewriter.$process(n),s.initialization["$<<"](s.$s("masgn",a,i)),s.rewritten["$<<"](s.$s("arg",o).$updated(t,t,new Map([["meta",new Map([["arg_name",o]])]])))):s.rewritten["$<<"](n)},{$$s:n}),d(n.initialization.$length(),1)?n.initialization=n.initialization["$[]"](0):s(n.initialization["$empty?"]())?n.initialization=t:n.initialization=l(n,"s",["begin"].concat(o(n.initialization)))})}(v[0],p("Base"),v),function(e,o){var i=r(e,o,"MlhsRewriter");return n(i,"$on_arg",function(t){return t.$updated("lvasgn")}),n(i,"$on_restarg",function(n){var o=this,i=t,i=n.$children()["$[]"](0);return s(i)?o.$s("splat",n.$updated("lvasgn")):o.$s("splat")})}(v[0],p("Base"))}(p[0],v("Base"),p)}(p[0],p)}(u[0],u)},Opal.modules["opal/rewriters/arguments"]=function(e){var o=e.module,a=e.klass,r=e.send,n=e.truthy,s=e.def,i=[],t=e.nil;return e.add_stubs("attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function(e,i){var l=o(e,"Opal"),c=[l].concat(i);return function(e,i){var c=o(e,"Rewriters"),l=[c].concat(i);return function(e,o){var i=a(e,o,"Arguments"),c=i.$$prototype;return c.restarg=c.postargs=c.kwargs=c.kwoptargs=c.kwrestarg=c.optargs=t,i.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),s(i,"$initialize",function(s){var o=this;return o.args=[],o.optargs=[],o.restarg=t,o.postargs=[],o.kwargs=[],o.kwoptargs=[],o.kwrestarg=t,o.kwnilarg=!1,o.shadowargs=[],o.blockarg=t,r(s,"each",[],function e(s){var o=e.$$s==null?this:e.$$s;switch(o.optargs==null&&(o.optargs=t),o.restarg==null&&(o.restarg=t),o.postargs==null&&(o.postargs=t),o.args==null&&(o.args=t),o.kwargs==null&&(o.kwargs=t),o.kwoptargs==null&&(o.kwoptargs=t),o.shadowargs==null&&(o.shadowargs=t),s==null&&(s=t),s.$type().valueOf()){case"arg":case"mlhs":return(n(o.restarg)||n(o.optargs["$any?"]())?o.postargs:o.args)["$<<"](s);case"optarg":return o.optargs["$<<"](s);case"restarg":return o.restarg=s;case"kwarg":return o.kwargs["$<<"](s);case"kwoptarg":return o.kwoptargs["$<<"](s);case"kwnilarg":return o.kwnilarg=!0;case"kwrestarg":return o.kwrestarg=s;case"shadowarg":return o.shadowargs["$<<"](s);case"blockarg":return o.blockarg=s;default:return o.$raise("Unsupported arg type "+s.$type())}},{$$s:o})}),s(i,"$has_post_args?",function(){var s=this,i=t,o=t;return n(i=n(o=s.restarg["$nil?"]()["$!"]())?o:s.postargs["$any?"]())?i:n(o=s["$has_any_kwargs?"]())?s["$can_inline_kwargs?"]()["$!"]():o}),s(i,"$has_any_kwargs?",function(){var s=this,o=t,i=t;return n(o=n(i=s.kwargs["$any?"]())?i:s.kwoptargs["$any?"]())?o:s.kwrestarg["$nil?"]()["$!"]()}),s(i,"$can_inline_kwargs?",function(){var s=this,o=t,i=t;return n(o=n(i=s.optargs["$empty?"]())?s.restarg["$nil?"]():i)?s.postargs["$empty?"]():o})}(l[0],null)}(c[0],c)}(i[0],i)},Opal.modules["opal/rewriters/inline_args"]=function(e){var u=e.module,l=e.klass,a=e.send2,r=e.find_super,i=e.to_a,s=e.truthy,n=e.def,v=e.const_set,m=e.ensure_kwargs,g=e.get_kwarg,o=e.send,p=e.eqeq,f=e.Opal,c=e.top,h=[],t=e.nil,d=e.$$$;return e.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,[]"),c.$require("opal/rewriters/base"),c.$require("opal/rewriters/arguments"),function(c,h){var j=u(c,"Opal"),b=[j].concat(h);return function(c,h){var j=u(c,"Rewriters"),b=[j].concat(h),y=e.$r(b);return function(c,u,h){var b=l(c,u,"InlineArgs"),j=[b].concat(h),y=e.$r(j);return n(b,"$on_def",function e(n){var o,p=e.$$p||t,l=this,h=t,d=t,c=t,m=t,u=t,f=t;return e.$$p=null,n=a(l,r(l,"on_def",e,!1,!0),"on_def",[n],null),o=[].concat(i(n)),h=o[0]==null?t:o[0],d=o[1]==null?t:o[1],c=o[2]==null?t:o[2],o,c=s(m=c)?m:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","def"]])),f=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[h,f,c])}),n(b,"$on_defs",function e(n){var o,g=e.$$p||t,l=this,h=t,m=t,d=t,c=t,f=t,u=t,p=t;return e.$$p=null,n=a(l,r(l,"on_defs",e,!1,!0),"on_defs",[n],null),o=[].concat(i(n)),h=o[0]==null?t:o[0],m=o[1]==null?t:o[1],d=o[2]==null?t:o[2],c=o[3]==null?t:o[3],o,c=s(f=c)?f:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","defs"]])),p=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[h,m,p,c])}),n(b,"$on_iter",function e(n){var o,f=e.$$p||t,l=this,d=t,c=t,h=t,u=t,m=t;return e.$$p=null,n=a(l,r(l,"on_iter",e,!1,!0),"on_iter",[n],null),o=[].concat(i(n)),d=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,c=s(h=c)?h:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","iter"]])),m=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[m,c])}),function(a,r,c){var d=l(a,r,"Initializer"),h=[d].concat(c),f=e.$r(h),u=d.$$prototype;return u.initialization=u.args=u.inline=t,d.$attr_reader("inline","initialization"),v(h[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()),n(d,"$initialize",function(n,a){var c,r=this;return a=m(a),c=g(a,"type"),r.args=f("Arguments").$new(n.$children()),r.inline=[],r.initialization=[],r.type=c,o(f("STEPS"),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$send(n)},{$$s:r}),s(r.initialization["$any?"]())?r.initialization=o(r,"s",["begin"].concat(i(r.initialization))):r.initialization=t}),n(d,"$extract_blockarg",function(){var n=this,o=t;return s(o=n.args.$blockarg())?n.initialization["$<<"](o.$updated("extract_blockarg")):t}),n(d,"$initialize_shadowargs",function(){var n=this;return o(n.args.$shadowargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("initialize_shadowarg"))},{$$s:n})}),n(d,"$extract_args",function(){var n=this;return o(n.args.$args(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.type==null&&(s.type=t),s.initialization==null&&(s.initialization=t),s.inline==null&&(s.inline=t),n==null&&(n=t),p(s.type,"iter")&&s.initialization["$<<"](n.$updated("initialize_iter_arg")),s.inline["$<<"](n)},{$$s:n})}),n(d,"$prepare_post_args",function(){var n=this;return s(n.args["$has_post_args?"]())?n.initialization["$<<"](n.$s("prepare_post_args",n.args.$args().$length())):t}),n(d,"$prepare_kwargs",function(){var n=this;return s(n.args["$has_any_kwargs?"]())?(s(n.args["$can_inline_kwargs?"]())?n.inline["$<<"](n.$s("arg","$kwargs")):(n.initialization["$<<"](n.$s("extract_kwargs")),n.inline["$<<"](n.$s("fake_arg"))),n.initialization["$<<"](n.$s("ensure_kwargs_are_kwargs"))):t}),n(d,"$extract_kwargs",function(){var n=this;return o(n.args.$kwargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_kwarg"))},{$$s:n})}),n(d,"$extract_kwoptargs",function(){var n=this;return o(n.args.$kwoptargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_kwoptarg"))},{$$s:n})}),n(d,"$extract_kwrestarg",function(){var n=this,o=t;return s(o=n.args.$kwrestarg())?n.initialization["$<<"](o.$updated("extract_kwrestarg")):t}),n(d,"$extract_post_args",function(){var n=this;return o(n.args.$postargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),s.inline==null&&(s.inline=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_post_arg")),s.inline["$<<"](s.$s("fake_arg"))},{$$s:n})}),n(d,"$extract_optargs",function(){var n=this,a=t,a=n.args["$has_post_args?"]();return o(n.args.$optargs(),"each",[],function e(n){var r,o=e.$$s==null?this:e.$$s,c=t,l=t;return o.initialization==null&&(o.initialization=t),o.inline==null&&(o.inline=t),n==null&&(n=t),s(a)?(r=[].concat(i(n)),c=r[0]==null?t:r[0],l=r[1]==null?t:r[1],r,o.initialization["$<<"](n.$updated("extract_post_optarg",[c,l,o.$args_to_keep()])),o.inline["$<<"](o.$s("fake_arg"))):(o.inline["$<<"](n.$updated("arg")),o.initialization["$<<"](n.$updated("extract_optarg")))},{$$s:n})}),n(d,"$extract_restarg",function(){var n=this,o=t,i=t;return s(o=n.args.$restarg())?(i=o.$children()["$[]"](0),n.initialization["$<<"](o.$updated("extract_restarg",[i,n.$args_to_keep()])),n.inline["$<<"](n.$s("fake_arg"))):t}),n(d,"$args_to_keep",function(){var t=this;return t.args.$postargs().$length()})}(j[0],d(d(f,"Rewriters"),"Base"),j)}(b[0],y("Base"),b)}(b[0],b)}(h[0],h)},Opal.modules["opal/rewriters/numblocks"]=function(e){var n=e.module,a=e.klass,r=e.to_ary,s=e.send,c=e.to_a,o=e.def,l=e.top,i=[],t=e.nil;return e.add_stubs("require,children,s,gen_args,map"),l.$require("opal/rewriters/base"),function(i,l){var u=n(i,"Opal"),d=[u].concat(l);return function(i,l){var u=n(i,"Rewriters"),d=[u].concat(l),h=e.$r(d);return function(n,i){var l=a(n,i,"Numblocks");return o(l,"$on_numblock",function(n){var i=this,l=t,d=t,u=t,a=n.$children(),o=r(a);return l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],u=o[2]==null?t:o[2],a,i.$s("block",l,s(i,"s",["args"].concat(c(i.$gen_args(d)))),u)}),o(l,"$gen_args",function(o){var i=this;return s(e.Range.$new(1,o,!1),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("arg","_"+n)},{$$s:i})})}(d[0],h("Base"))}(d[0],d)}(i[0],i)},Opal.modules["opal/rewriters/returnable_logic"]=function(e){var r=e.module,g=e.klass,n=e.truthy,f=e.rb_plus,s=e.def,m=e.rb_minus,h=e.assign_ivar_val,o=e.to_a,a=e.send2,c=e.find_super,i=e.slice,l=e.send,d=e.eqeq,p=e.top,u=[],t=e.nil;return e.add_stubs("require,+,-,children,check_control_flow!,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,type,error,build_rule_from_parts,empty?"),p.$require("opal/rewriters/base"),function(u,p){var b=r(u,"Opal"),v=[b].concat(p);return function(u,p){var b=r(u,"Rewriters"),v=[b].concat(p),j=e.$r(v);return function(e,r){var u=g(e,r,"ReturnableLogic"),p=u.$$prototype;return p.counter=t,s(u,"$next_tmp",function(){var s=this,o=t;return s.counter=n(o=s.counter)?o:0,s.counter=f(s.counter,1),"$ret_or_"+s.counter}),s(u,"$free_tmp",function(){var t=this;return t.counter=m(t.counter,1)}),s(u,"$reset_tmp_counter!",h("counter",t)),s(u,"$on_if",function e(s){var i,d=e.$$p||t,l=this,r=t;return e.$$p=null,i=[].concat(o(s.$children())),r=i[0]==null?t:i[0],i,l["$check_control_flow!"](r),n(r)&&r.$meta()["$[]="]("if_test",!0),a(l,c(l,"on_if",e,!1,!0),"on_if",[s],d)}),s(u,"$on_case",function(s){var r,c=this,l=t,u=t,d=t,h=t,m=t,f=t,a=[].concat(o(s.$children()));return l=a[0]==null?t:a[0],r=a.length-1,r=r<1?1:r,u=i(a,1,r),d=a[r]==null?t:a[r],a,d=n(h=d)?h:c.$s("nil"),n(l)&&(m=c.$next_tmp()),f=c.$build_if_from_when(s,l,m,u,d),n(l)&&c.$free_tmp(),f}),s(u,"$on_or",function(s){var a=this,r=t,c=t,d=t,u=t,i=[].concat(o(s.$children()));return r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,a["$check_control_flow!"](r),n(s.$meta()["$[]"]("if_test"))?(r.$meta()["$[]="]("if_test",(i=["if_test",!0],l(c.$meta(),"[]=",i),i[i.length-1])),d=a.$process(s.$updated("if",[r,a.$s("true"),c]))):(u=a.$next_tmp(),d=a.$process(s.$updated("if",[a.$s("lvasgn",u,r),a.$s("js_tmp",u),c])),a.$free_tmp()),d}),s(u,"$on_and",function(s){var a=this,r=t,c=t,d=t,u=t,i=[].concat(o(s.$children()));return r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,a["$check_control_flow!"](r),n(s.$meta()["$[]"]("if_test"))?(r.$meta()["$[]="]("if_test",(i=["if_test",!0],l(c.$meta(),"[]=",i),i[i.length-1])),d=a.$process(s.$updated("if",[r,c,a.$s("false")]))):(u=a.$next_tmp(),d=a.$process(s.$updated("if",[a.$s("lvasgn",u,r),c,a.$s("js_tmp",u)])),a.$free_tmp()),d}),s(u,"$on_begin",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,n(s.$meta()["$[]"]("if_test"))&&d(s.$children().$count(),1)&&s.$children().$first().$meta()["$[]="]("if_test",!0),s.$meta().$delete("if_test"),a(o,c(o,"on_begin",e,!1,!0),"on_begin",[s],i)}),u.$private(),s(u,"$check_control_flow!",function(n){var s=this;switch(n.$type().valueOf()){case"break":case"next":case"redo":case"retry":case"return":return s.$error("void value expression");default:return t}}),s(u,"$build_if_from_when",function(s,a,r,c,l){var u,h=this,m=t,f=t,p=t,g=t,v=t,d=[].concat(o(c));return m=d[0]==null?t:d[0],f=i(d,1),d,d=[].concat(o(m.$children())),u=d.length-1,u=u<0?0:u,p=i(d,0,u),g=d[u]==null?t:d[u],d,v=h.$build_rule_from_parts(s,a,r,p),m.$updated("if",[v,h.$process(g),n(f["$empty?"]())?h.$process(l):h.$build_if_from_when(t,t,r,f,l)])}),s(u,"$build_rule_from_parts",function(s,a,r,c){var u,l=this,h=t,m=t,f=t,v=t,p=t,g=t;return a=n(s)&&n(r)?s.$updated("lvasgn",[r,l.$process(a)]):l.$s("js_tmp",r),u=[].concat(o(c)),h=u[0]==null?t:u[0],m=i(u,1),u,f=d(h.$type(),"splat")?(v=h.$children().$first(),p=l.$next_tmp(),g=l.$s("send",l.$process(v),"any?",l.$s("iter",l.$s("args",l.$s("arg",p)),l.$build_rule_from_parts(t,t,r,[l.$s("lvar",p)]))),n(s)&&n(r)?l.$s("begin",a,g):g):n(r)?l.$s("send",l.$process(h),"===",a):l.$process(h),n(m["$empty?"]())?f:l.$s("if",f,l.$s("true"),l.$build_rule_from_parts(t,t,r,m))})}(v[0],j("Base"))}(v[0],v)}(u[0],u)},Opal.modules["opal/rewriters/forward_args"]=function(e){var r=e.module,f=e.klass,n=e.def,i=e.not,o=e.send2,s=e.find_super,a=e.eqeq,c=e.truthy,l=e.range,d=e.to_a,h=e.neqeq,m=e.top,u=[],t=e.nil;return e.add_stubs("require,process,s,!,first,children,updated,==,type,last,[],!=,class"),m.$require("opal/rewriters/base"),function(u,m){var g=r(u,"Opal"),p=[g].concat(m);return function(u,m){var g=r(u,"Rewriters"),p=[g].concat(m),v=e.$r(p);return function(r,u,m){var p=f(r,u,"ForwardArgs"),g=[p].concat(m),v=e.$r(g);return n(p,"$on_forward_args",function(){var n=this;return n.$process(n.$s("args",n.$s("forward_arg","$")))}),n(p,"$on_forwarded_restarg",function(){var n=this;return n.$process(n.$s("splat",n.$s("lvar","$fwd_rest")))}),n(p,"$on_forwarded_kwrestarg",function(){var n=this;return n.$process(n.$s("kwsplat",n.$s("lvar","$fwd_kwrest")))}),n(p,"$on_block_pass",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?a.$process(n.$updated(t,[a.$s("lvar","$fwd_block")])):o(a,s(a,"on_block_pass",e,!1,!0),"on_block_pass",[n],r)}),n(p,"$on_args",function e(n){var u=e.$$p||t,i=this,r=t;return e.$$p=null,c(n.$children().$last())&&a(n.$children().$last().$type(),"forward_arg")?(r=n.$children()["$[]"](l(0,-2,!1)),o(i,s(i,"on_args",e,!1,!0),"on_args",[n.$updated(t,[].concat(d(r)).concat([i.$s("restarg","$fwd_rest"),i.$s("blockarg","$fwd_block")]))],null)):o(i,s(i,"on_args",e,!1,!0),"on_args",[n],u)}),n(p,"$on_restarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_rest"]):o(a,s(a,"on_restarg",e,!1,!0),"on_restarg",[n],r)}),n(p,"$on_kwrestarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_kwrest"]):o(a,s(a,"on_kwrestarg",e,!1,!0),"on_kwrestarg",[n],r)}),n(p,"$on_blockarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_block"]):o(a,s(a,"on_blockarg",e,!1,!0),"on_blockarg",[n],r)}),n(p,"$on_send",function e(n){var u=e.$$p||t,i=this,r=t;return e.$$p=null,c(n.$children().$last())&&h(n.$children().$last().$class(),v("Symbol"))&&a(n.$children().$last().$type(),"forwarded_args")?(r=n.$children()["$[]"](l(0,-2,!1)),o(i,s(i,"on_send",e,!1,!0),"on_send",[n.$updated(t,[].concat(d(r)).concat([i.$s("splat",i.$s("lvar","$fwd_rest")),i.$s("block_pass",i.$s("lvar","$fwd_block"))]))],null)):o(i,s(i,"on_send",e,!1,!0),"on_send",[n],u)})}(p[0],v("Base"),p)}(p[0],p)}(u[0],u)},Opal.modules["opal/rewriters/thrower_finder"]=function(e){var c=e.module,m=e.klass,n=e.def,o=e.send2,a=e.find_super,s=e.send,i=e.find_block_super,r=e.truthy,u=e.range,h=e.slice,l=[],t=e.nil,d=e.$$$;return e.add_stubs("tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta"),function(l,f){var g=c(l,"Opal"),p=[g].concat(f);return function(l,f){var g=c(l,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(c,l){var d=m(c,l,"ThrowerFinder"),f=d.$$prototype;return f.break_stack=f.redo_stack=f.retry_stack=f.rescue_else_stack=t,n(d,"$initialize",function(){var t=this;return t.break_stack=[],t.redo_stack=[],t.retry_stack=[],t.rescue_else_stack=[]}),n(d,"$on_break",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("break",s.break_stack),o(s,a(s,"on_break",e,!1,!0),"on_break",[n],i)}),n(d,"$on_redo",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("redo",s.redo_stack),o(s,a(s,"on_redo",e,!1,!0),"on_redo",[n],i)}),n(d,"$on_retry",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("retry",s.retry_stack),o(s,a(s,"on_retry",e,!1,!0),"on_retry",[n],i)}),n(d,"$on_iter",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.break_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_iter",t.$$def||e,!1,!0),"on_iter",[n],r)},{$$s:a})}),n(d,"$on_loop",function e(n){var i=e.$$p||t,o=this;return e.$$p=null,s(o,"pushing",[[o.redo_stack,n],[o.break_stack,t]],i.$to_proc())}),n(d,"$on_for",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_for",t.$$def||e,!1,!0),"on_for",[n],r)},{$$s:a})}),n(d,"$on_while",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_while",t.$$def||e,!1,!0),"on_while",[n],r)},{$$s:a})}),n(d,"$on_while_post",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_while_post",t.$$def||e,!1,!0),"on_while_post",[n],r)},{$$s:a})}),n(d,"$on_until",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_until",t.$$def||e,!1,!0),"on_until",[n],r)},{$$s:a})}),n(d,"$on_until_post",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_until_post",t.$$def||e,!1,!0),"on_until_post",[n],r)},{$$s:a})}),n(d,"$on_defined",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.redo_stack,t],[a.break_stack,t],[a.retry_stack,t]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_defined",t.$$def||e,!1,!0),"on_defined",[n],r)},{$$s:a})}),n(d,"$on_ensure",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.rescue_else_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_ensure",t.$$def||e,!1,!0),"on_ensure",[n],r)},{$$s:a})}),n(d,"$on_rescue",function e(n){var c=e.$$p||t,a=this;return e.$$p=null,r(s(n.$children()["$[]"](u(1,-1,!1)),"detect",[],function(n){var s=t;return n==null&&(n=t),r(s=n)?n.$type()["$!="]("resbody"):s}))&&a.$tracking("rescue_else",a.rescue_else_stack),s(a,"pushing",[[a.rescue_else_stack,t],[a.retry_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_rescue",t.$$def||e,!1,!0),"on_rescue",[n],c)},{$$s:a})}),d.$private(),n(d,"$pushing",function n(){var i,a,c=n.$$p||t,r=t;return n.$$p=null,a=h(arguments),i=a,s(i,"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$push(s)}),r=e.yieldX(c,[]),s(s(i,"map",[],"first".$to_proc()),"each",[],"pop".$to_proc()),r},-1),n(d,"$tracking",function(n,o){var i;return r(o.$last())?(i=["has_"+n,!0],s(o.$last().$meta(),"[]=",i),i[i.length-1]):t})}(p[0],d(d(v("Opal"),"Rewriters"),"Base"))}(p[0],p)}(l[0],l)},Opal.modules["opal/rewriter"]=function(e){var h=e.module,m=e.klass,i=e.truthy,o=e.def,r=e.ensure_kwargs,c=e.hash_get,l=e.eqeq,d=e.assign_ivar,u=e.send,n=e.top,a=[],s=e.nil,t=e.$$$;return e.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),n.$require("opal/rewriters/opal_engine_check"),n.$require("opal/rewriters/targeted_patches"),n.$require("opal/rewriters/for_rewriter"),n.$require("opal/rewriters/js_reserved_words"),n.$require("opal/rewriters/block_to_iter"),n.$require("opal/rewriters/dot_js_syntax"),n.$require("opal/rewriters/pattern_matching"),n.$require("opal/rewriters/logical_operator_assignment"),n.$require("opal/rewriters/binary_operator_assignment"),n.$require("opal/rewriters/hashes/key_duplicates_rewriter"),n.$require("opal/rewriters/dump_args"),n.$require("opal/rewriters/deduplicate_arg_name"),n.$require("opal/rewriters/mlhs_args"),n.$require("opal/rewriters/inline_args"),n.$require("opal/rewriters/numblocks"),n.$require("opal/rewriters/returnable_logic"),n.$require("opal/rewriters/forward_args"),n.$require("opal/rewriters/thrower_finder"),function(n,a){var p=h(n,"Opal"),f=[p].concat(a);return function(n,a,h){var f=m(n,a,"Rewriter"),g=[f].concat(h),p=e.$r(g),v=f.$$prototype;return v.sexp=s,f.disabled=!1,function(t){return o(t,"$list",function(){var t=this,n=s;return t.list==null&&(t.list=s),t.list=i(n=t.list)?n:[]}),o(t,"$use",function(t){var n=this;return n.$list()["$<<"](t)}),o(t,"$delete",function(t){var n=this;return n.$list().$delete(t)}),o(t,"$disable",function t(n){var a,u=t.$$p||s,o=this,l=s,d=s;return o.disabled==null&&(o.disabled=s),t.$$p=null,n=r(n),a=c(n,"except"),a==null&&(a=s),function(){try{return l=o.disabled,o.disabled=!i(d=a)||d,e.yieldX(u,[])}finally{o.disabled=l}}()},-1),o(t,"$disabled?",function(){var t=this;return t.disabled==null&&(t.disabled=s),t.disabled["$=="](!0)}),o(t,"$rewritter_disabled?",function(t){var n=this;return n.disabled==null&&(n.disabled=s),!l(n.disabled,!1)&&n.disabled["$!="](t)})}(e.get_singleton_class(f),g),f.$use(t(p("Rewriters"),"OpalEngineCheck")),f.$use(t(p("Rewriters"),"ForRewriter")),f.$use(t(p("Rewriters"),"Numblocks")),f.$use(t(p("Rewriters"),"ForwardArgs")),f.$use(t(p("Rewriters"),"BlockToIter")),f.$use(t(p("Rewriters"),"TargetedPatches")),f.$use(t(p("Rewriters"),"DotJsSyntax")),f.$use(t(p("Rewriters"),"PatternMatching")),f.$use(t(p("Rewriters"),"JsReservedWords")),f.$use(t(p("Rewriters"),"LogicalOperatorAssignment")),f.$use(t(p("Rewriters"),"BinaryOperatorAssignment")),f.$use(t(t(p("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),f.$use(t(p("Rewriters"),"ReturnableLogic")),f.$use(t(p("Rewriters"),"DeduplicateArgName")),f.$use(t(p("Rewriters"),"DumpArgs")),f.$use(t(p("Rewriters"),"MlhsArgs")),f.$use(t(p("Rewriters"),"InlineArgs")),f.$use(t(p("Rewriters"),"ThrowerFinder")),o(f,"$initialize",d("sexp")),o(f,"$process",function(){var t=this;return i(t.$class()["$disabled?"]())?t.sexp:(u(t.$class().$list(),"each",[],function e(t){var n=e.$$s==null?this:e.$$s,o=s;return n.sexp==null&&(n.sexp=s),t==null&&(t=s),i(n.$class()["$rewritter_disabled?"](t))?s:(o=t.$new(),n.sexp=o.$process(n.sexp))},{$$s:t}),t.sexp)})}(f[0],null,f)}(a[0],a)},Opal.modules["opal/parser/source_buffer"]=function(e){var n=e.module,i=e.klass,a=e.truthy,r=e.send2,c=e.find_super,l=e.defs,s=[],o=e.nil,t=e.$$$;return function(s,d){var h=n(s,"Opal"),u=[h].concat(d);return function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(n,s,d){var u=i(n,s,"SourceBuffer"),h=[u].concat(d),m=e.$r(h);return l(u,"$recognize_encoding",function e(n){var l=e.$$p||o,s=this,i=o;return e.$$p=null,a(i=r(s,c(s,"recognize_encoding",e,!1,!0),"recognize_encoding",[n],l))?i:t(m("Encoding"),"UTF_8")})}(u[0],t(t(t("Parser"),"Source"),"Buffer"),u)}(u[0],u)}(s[0],s)},Opal.modules["opal/parser/default_config"]=function(e){var o=e.module,i=e.send2,a=e.find_super,s=e.def,m=e.lambda,h=e.send,u=e.defs,l=e.slice,d=e.truthy,r=e.Opal,c=[],t=e.nil,n=e.$$$;return e.add_stubs("attr_accessor,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,diagnostics_consumer,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class"),function(c,f){var g=o(c,"Opal"),p=[g].concat(f);return function(c,f){var g=o(c,"Parser"),p=[g].concat(f);return function(c,f){var p=o(c,"DefaultConfig"),v=[p].concat(f),g=e.$r(v);return function(e){var n=o(e,"ClassMethods");return n.$attr_accessor("diagnostics_consumer"),s(n,"$default_parser",function e(){var o=e.$$p||t,s=this,n=t;return e.$$p=null,n=i(s,a(s,"default_parser",e,!1,!0),"default_parser",[],o),n.$diagnostics()["$all_errors_are_fatal="](!0),n.$diagnostics()["$ignore_warnings="](!1),n.$diagnostics()["$consumer="](s.$diagnostics_consumer()),n})}(v[0]),u(p,"$included",function(n){var s;return n.$extend(g("ClassMethods")),(s=[m(function(n){return n==null&&(n=t),t})],h(n,"diagnostics_consumer=",s),s[s.length-1])}),s(p,"$initialize",function e(){var o,c,d=e.$$p||t,r=this;return e.$$p=null,o=l(arguments),c=o,i(r,a(r,"initialize",e,!1,!0),"initialize",[n(n(g("Opal"),"AST"),"Builder").$new()],null)},-1),s(p,"$parse",function e(s){var h=e.$$p||t,o=this,c=t,l=t,u=t;return e.$$p=null,c=d(l=i(o,a(o,"parse",e,!1,!0),"parse",[s],h))?l:n(n(r,"AST"),"Node").$new("nil"),u=n(n(r,"AST"),"Node").$new("top",[c]),o.$rewrite(u)}),s(p,"$rewrite",function(t){return n(g("Opal"),"Rewriter").$new(t).$process()})}(p[0],p),function(e){return e.$attr_accessor("default_parser_class"),s(e,"$default_parser",function(){var t=this;return t.$default_parser_class().$default_parser()})}(e.get_singleton_class(g),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/parser/with_ruby_lexer"]=function(e){var o=e.klass,i=e.send,n=[],s=e.$r(n),a=e.nil,t=e.$$$;return e.add_stubs("include,default_parser_class="),function(n,s,a){var r,c=o(n,s,"WithRubyLexer"),d=[c].concat(a),l=e.$r(d);return c.$include(t(t(l("Opal"),"Parser"),"DefaultConfig")),(r=[c],i(t(l("Opal"),"Parser"),"default_parser_class=",r),r[r.length-1])}(t(s("Opal"),"Parser"),t(s("Parser"),"Ruby32"),n)},Opal.modules["opal/parser/patch"]=function(e){var r=e.klass,n=e.truthy,o=e.send,i=e.def,c=e.rb_plus,l=e.eqeq,j=e.not,b=e.rb_le,d=e.eqeqeq,h=e.rb_minus,m=e.rb_gt,f=e.rb_times,p=e.rb_divide,g=e.thrower,v=e.module,u=[],a=e.$r(u),t=e.nil,s=e.$$$;return e.add_stubs("source,unpack,source_buffer=,source_pts=,+,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(e,s){var c=r(e,s,"Lexer"),a=c.$$prototype;return a.source_buffer=a.strings=a.source_pts=t,i(c,"$source_buffer=",function(s){var a,i=this,r=t;return i.source_buffer=s,n(i.source_buffer)?(r=i.source_buffer.$source(),i.source_pts=r.$unpack("U*")):i.source_pts=t,n(i.strings)?(i.strings["$source_buffer="](i.source_buffer),(a=[i.source_pts],o(i.strings,"source_pts=",a),a[a.length-1])):t})}(a("Parser"),null),function(s,o){var a=r(s,o,"Literal"),l=a.$$prototype;return l.buffer_s=l.buffer=t,e.udef(a,"$extend_string"),i(a,"$extend_string",function(s,o,i){var a=this,r=t;return a.buffer_s=n(r=a.buffer_s)?r:o,a.buffer_e=i,a.buffer=c(a.buffer,s)})}(s(a("Parser"),"Lexer"),null),function(e,s){var a=r(e,s,"Buffer"),c=a.$$prototype;return c.lines=c.source=t,i(a,"$source_lines",function(){var s=this,a=t,i=t;return s.lines=n(a=s.lines)?a:(i=s.source.$lines().$to_a(),n(s.source["$end_with?"](` +`))?i["$<<"](""):t,o(i,"map",[],function(n){return n==null&&(n=t),n.$chomp(` +`)}))})}(s(a("Parser"),"Source"),null),function(e,a){var c=r(e,a,"Default");return i(c,"$check_lvar_name",function(s,o){var i=this;return n(s["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?t:i.$diagnostic("error","lvar_name",new Map([["name",s]]),o)}),i(c,"$dedent_string",function(i,a){var r=t,c=t;if(!n(a["$nil?"]()))switch(r=s(s(s("Parser"),"Lexer"),"Dedenter").$new(a),i.$type().valueOf()){case"str":i=i.$updated(t,[r.$dedent(i.$children().$first())]);break;case"dstr":case"xstr":c=o(i.$children(),"map",[],function(s){if(s==null&&(s=t),l(s.$type(),"str")){if(s=s.$updated(t,[r.$dedent(s.$children().$first())]),n(s.$children().$first()["$empty?"]()))return t}else r.$interrupt();return s}),i=i.$updated(t,c.$compact());break;default:t}return i})}(s(a("Parser"),"Builders"),null),function(a,u,v){var _=r(a,u,"Dedenter"),w=[_].concat(v),y=e.$r(w);return i(_,"$dedent",function(a){var v=this,u=t,r=t,u=a.$encoding(),r=a.$force_encoding(s(y("Encoding"),"BINARY")).$split(`\\ +`);return l(r.$length(),1)?r=[a.$force_encoding(u)]:o(r,"map!",[],function(n){return n==null&&(n=t),n.$force_encoding(u)}),o(r,"each_with_index",[],function s(i,a){var w,u=s.$$s==null?this:s.$$s,_=t,v=t;return u.at_line_begin==null&&(u.at_line_begin=t),u.dedent_level==null&&(u.dedent_level=t),i==null&&(i=t),a==null&&(a=t),l(a,0)&&j(u.at_line_begin)?t:(_=u.dedent_level,v=0,function(){try{var e=g("break");return o(i,"each_char",[],function s(o){var i=s.$$s==null?this:s.$$s,a=t;if(i.dedent_level==null&&(i.dedent_level=t),o==null&&(o=t),n(b(_,0))&&e.$throw(t,s.$$is_lambda),d(" ",a=o))return v=c(v,1),_=h(_,1);if(d(" ",a))return n(m(f(y("TAB_WIDTH"),c(p(v,y("TAB_WIDTH")),1)),i.dedent_level))&&e.$throw(t,s.$$is_lambda),v=c(v,1),_=h(_,y("TAB_WIDTH"));e.$throw(t,s.$$is_lambda)},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),(w=[a,i["$[]"](e.Range.$new(v,-1,!1))],o(r,"[]=",w),w[w.length-1]))},{$$s:v}),a=r.$join(),v.at_line_begin=a["$end_with?"](` +`),a})}(s(a("Parser"),"Lexer"),null,u),function(s){var a=v(s,"Mixin");return e.udef(a,"$process"),i(a,"$process",function(s){var r,i=this,a=t,c=t,d=t,l=t;return i._on_handler_cache==null&&(i._on_handler_cache=t),n(s["$nil?"]())?t:(i._on_handler_cache=n(a=i._on_handler_cache)?a:new Map,c=s.$type(),d=n(a=i._on_handler_cache["$[]"](c))?a:(r=[c,(l="on_"+c,n(i["$respond_to?"](l))?t:l="handler_missing",l)],o(i._on_handler_cache,"[]=",r),r[r.length-1]),n(a=i.$send(d,s))?a:s)})}(s(a("AST"),"Processor")),function(t,n){var s=r(t,n,"Default");return e.udef(s,"$string_value"),i(s,"$string_value",function(t){var n=this;return n.$value(t)})}(s(a("Parser"),"Builders"),null)},Opal.modules["opal/parser"]=function(e){var t=e.top,n=e.nil;return e.add_stubs("require"),t.$require("opal/ast/builder"),t.$require("opal/rewriter"),t.$require("opal/parser/source_buffer"),t.$require("opal/parser/default_config"),t.$require("opal/parser/with_ruby_lexer"),t.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(e){var c=e.module,l=e.klass,n=e.def,s=e.truthy,o=e.eqeq,d=e.rb_plus,u=e.rb_gt,i=e.to_a,a=e.not,r=[],t=e.nil,h=e.$$$;return e.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(r,m){var p=c(r,"Opal"),f=[p].concat(m);return function(r,c,m){var f=l(r,c,"Fragment"),g=[f].concat(m),v=e.$r(g),p=f.$$prototype;return p.code=p.scope=p.sexp=t,f.$attr_reader("code"),n(f,"$initialize",function(n,s,o){var i=this;return o==null&&(o=t),i.code=n.$to_s(),i.sexp=o,i.scope=s},-3),n(f,"$inspect",function(){var t=this;return"f("+t.code.$inspect()+")"}),n(f,"$source_map_name_for",function(n){var r,c=this,l=t,m=t,g=t,f=t,p=t;switch(n.$type().valueOf()){case"top":switch(n.$meta()["$[]"]("kind").valueOf()){case"require":return"";case"eval":return"(eval)";case"main":return"
";default:return t}break;case"begin":case"newline":case"js_return":return s(c.scope)?c.$source_map_name_for(c.scope.$sexp()):t;break;case"iter":for(l=c.scope,m=1;s(l);)if(o(l.$class(),h(v("Nodes"),"IterNode")))m=d(m,1),l=l.$parent();else break;return s(u(m,1))&&(g=" ("+m+" levels)"),"block"+g+" in "+c.$source_map_name_for(l.$sexp());case"self":return"self";case"module":return r=[].concat(i(n)),f=r[0]==null?t:r[0],r,"";case"class":return r=[].concat(i(n)),f=r[0]==null?t:r[0],r,"";case"const":return r=[].concat(i(n)),l=r[0]==null?t:r[0],p=r[1]==null?t:r[1],r,a(l)||o(l.$type(),"cbase")?p.$to_s():""+c.$source_map_name_for(l)+"::"+p;break;case"int":return n.$children().$first();case"def":return n.$children().$first();case"defs":return n.$children()["$[]"](1);case"send":return n.$children()["$[]"](1);case"lvar":case"lvasgn":case"lvdeclare":case"ivar":case"ivasgn":case"gvar":case"cvar":case"cvasgn":case"gvars":case"gvasgn":case"arg":return n.$children().$first();case"str":case"xstr":return c.$source_map_name_for(c.scope.$sexp());default:return t}}),n(f,"$source_map_name",function(){var n=this;return s(n.sexp)?n.$source_map_name_for(n.sexp):t}),n(f,"$location",function(){var n=this,i=t,r=t;return a(n.sexp)?t:o(n.sexp.$type(),"send")?(i=n.sexp.$loc(),s(i["$respond_to?"]("dot"))?s(r=i.$dot())?r:i.$selector():s(i["$respond_to?"]("operator"))?i.$operator():n.sexp):o(n.sexp.$type(),"iter")?s(i["$respond_to?"]("begin"))?n.sexp.$loc().$begin():n.sexp:n.sexp}),n(f,"$line",function(){var n,s=this;return n=s.$location(),n===t||n==null?t:n.$line()}),n(f,"$column",function(){var n,s=this;return n=s.$location(),n===t||n==null?t:n.$column()}),n(f,"$skip_source_map?",function(){var t=this;return t.sexp["$=="](!1)})}(f[0],null,f)}(r[0],r)},Opal.modules["opal/nodes/closure"]=function(e){var r=e.module,b=e.klass,c=e.const_set,o=e.send,l=e.defs,s=e.def,n=e.truthy,i=e.eqeq,u=e.slice,v=e.extract_kwargs,p=e.ensure_kwargs,h=e.hash_get,m=e.neqeq,f=e.thrower,a=e.not,g=e.to_a,d=[],t=e.nil;return e.add_stubs("const_set,[]=,join,map,reject,==,&,to_proc,add_type,<<,include?,!=,type_inspect,type,class,attr_accessor,new,select_closure,closure_stack,compile_catcher,pop,last,node,push_closure,pop_closure,find,reverse,register_catcher,register_thrower,push,expr_or_nil,identify!,scope,helper,key?,throwers,[],unique_temp,compiler,parent,top_scope,add_scope_temp,|,!,generate_thrower_without_catcher,eval?,error,generate_thrower,is?,catchers,empty?,grep_v,indent,each,line,closure_is?,unshift,await_encountered,wrap"),function(d,j){var _=r(d,"Opal"),y=[_].concat(j);return function(d,j){var _=r(d,"Nodes"),y=[_].concat(j);return function(d,j,y){var _=b(d,j,"Closure"),w=[_].concat(y),x=e.$r(w),O=_.$$prototype;return O.catchers=O.throwers=O.type=O.node=t,c(w[0],"NONE",0),_.types=new Map,l(_,"$add_type",function(n,s){var i,a=this;return a.types==null&&(a.types=t),a.$const_set(n,s),(i=[n,s],o(a.types,"[]=",i),i[i.length-1])}),l(_,"$type_inspect",function(n){var s=this;return s.types==null&&(s.types=t),o(o(s.types,"reject",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n["$&"](o)["$=="](0)}),"map",[],"first".$to_proc()).$join("|")}),_.$add_type("JS_FUNCTION",1["$<<"](0)),_.$add_type("JS_LOOP",1["$<<"](1)),_.$add_type("JS_LOOP_INSIDE",1["$<<"](2)),_.$add_type("DEF",1["$<<"](3)),_.$add_type("LAMBDA",1["$<<"](4)),_.$add_type("ITER",1["$<<"](5)),_.$add_type("MODULE",1["$<<"](6)),_.$add_type("LOOP",1["$<<"](7)),_.$add_type("LOOP_INSIDE",1["$<<"](8)),_.$add_type("SEND",1["$<<"](9)),_.$add_type("TOP",1["$<<"](10)),_.$add_type("RESCUE_RETRIER",1["$<<"](11)),c(w[0],"ANY",4294967295),s(_,"$initialize",function(t,n,s){var o=this,i=[t,n,s];return o.node=i[0],o.type=i[1],o.parent=i[2],i,o.catchers=[],o.throwers=new Map}),s(_,"$register_catcher",function(t){var s=this;return t==null&&(t="return"),n(s.catchers["$include?"](t))||s.catchers["$<<"](t),"$t_"+t},-1),s(_,"$register_thrower",function(t,n){var s,i=this;return s=[t,n],o(i.throwers,"[]=",s),s[s.length-1]}),s(_,"$is?",function(t){var n=this;return n.type["$&"](t)["$!="](0)}),s(_,"$inspect",function(){var t=this;return"#"}),_.$attr_accessor("node","type","parent","catchers","throwers"),function(c,l){var b=r(c,"NodeSupport"),j=[b].concat(l),d=e.$r(j);return s(b,"$push_closure",function(n){var s=this,o=t;return s.compiler==null&&(s.compiler=t),n==null&&(n=d("JS_FUNCTION")),o=d("Closure").$new(s,n,s.$select_closure()),s.compiler.$closure_stack()["$<<"](o),s.closure=o},-1),b.$attr_accessor("closure"),s(b,"$pop_closure",function(){var s,n=this,o=t;return n.compiler==null&&(n.compiler=t),n.$compile_catcher(),n.compiler.$closure_stack().$pop(),o=n.compiler.$closure_stack().$last(),i((s=o,s===t||s==null?t:s.$node()),n)?n.closure=o:t}),s(b,"$in_closure",function n(s){var r=n.$$p||t,o=this,i=t,a=t;return n.$$p=null,s==null&&(s=d("JS_FUNCTION")),i=o.$push_closure(s),a=e.yield1(r,i),o.$pop_closure(),a},-1),s(b,"$select_closure",function(){var i,a,r,c,l=this;return l.compiler==null&&(l.compiler=t),i=u(arguments),a=v(i),a=p(a),i.length>0&&(r=i.shift()),r==null&&(r=d("ANY")),c=h(a,"break_after"),c==null&&(c=d("NONE")),function(){try{var e=f("break");return o(l.compiler.$closure_stack().$reverse(),"find",[],function n(s){return s==null&&(s=t),m(s.$type()["$&"](c),0)&&e.$throw(t,n.$$is_lambda),s.$type()["$&"](r)["$!="](0)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},-1),s(b,"$generate_thrower",function(n,s,o){var a=this,i=t,i=s.$register_catcher(n);return s.$register_thrower(n,i),a.$push(i,".$throw(",a.$expr_or_nil(o),", ",a.$scope()["$identify!"](),".$$is_lambda)"),i}),s(b,"$generate_thrower_without_catcher",function(s,o,i){var c,a=this,r=t,l=t,d=t;return a.$helper("thrower"),n(o.$throwers()["$key?"](s))?r=o.$throwers()["$[]"](s):(r=a.$compiler().$unique_temp("t_"),l=n(d=(c=o.$node().$scope(),c===t||c==null?t:c.$parent()))?d:a.$top_scope(),l.$add_scope_temp(""+r+" = $thrower('"+s+"')"),o.$register_thrower(s,r)),a.$push(r,".$throw(",a.$expr_or_nil(i),", ",a.$scope()["$identify!"](),".$$is_lambda)"),r}),s(b,"$thrower",function(s,o){var r=this,c=t,u=t,l=t,h=t;switch(o==null&&(o=t),s.valueOf()){case"return":return c=r.$select_closure(d("DEF"),new Map([["break_after",d("MODULE")["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")),a(c)?(l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?r.$generate_thrower_without_catcher("return",l,o):n(r.$compiler()["$eval?"]())?r.$push("Opal.t_eval_return.$throw(",r.$expr_or_nil(o),", false)"):r.$error("Invalid return")):i(c,u)?r.$push("return ",r.$expr_or_nil(o)):(h=r.$generate_thrower("return",c,o),l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?l.$register_thrower("return",h):t);break;case"eval_return":return c=r.$select_closure(d("DEF")["$|"](d("LAMBDA")),new Map([["break_after",d("MODULE")["$|"](d("TOP"))]])),n(c)?c.$register_catcher("eval_return"):t;break;case"next":case"redo":return c=r.$select_closure(d("ITER")["$|"](d("LOOP_INSIDE")),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")["$|"](d("JS_LOOP_INSIDE"))),a(c)?r.$error("Invalid next"):i(c,u)?n(c["$is?"](d("LOOP_INSIDE")))?r.$push("continue"):n(c["$is?"](d("ITER")["$|"](d("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(o)):t:r.$generate_thrower("next",c,o);break;case"break":return c=r.$select_closure(d("SEND")["$|"](d("LAMBDA"))["$|"](d("LOOP")),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")["$|"](d("JS_LOOP"))),a(c)?(l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?r.$generate_thrower_without_catcher("break",l,o):r.$error("Invalid break")):i(c,u)?n(c["$is?"](d("JS_FUNCTION")["$|"](d("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(o)):n(c["$is?"](d("LOOP")))?r.$push("break"):t:r.$generate_thrower("break",c,o);break;case"retry":return c=r.$select_closure(d("RESCUE_RETRIER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_LOOP_INSIDE")),a(c)?r.$error("Invalid retry"):i(c,u)?r.$push("continue"):r.$generate_thrower("retry",c,o);break;default:return t}},-2),s(b,"$closure_is?",function(n){var s=this;return s.closure==null&&(s.closure=t),s.closure["$is?"](n)}),s(b,"$compile_catcher",function(){var s=this,a=t,i=t;return s.closure==null&&(s.closure=t),a=s.closure.$catchers(),n(a["$empty?"]())?t:(s.$helper("thrower"),i=a.$grep_v("eval_return"),s.$push("} catch($e) {"),o(s,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.valueOf()){case"eval_return":return s.$line("if ($e === Opal.t_eval_return) return $e.$v;");default:return s.$line("if ($e === $t_"+n+") return $e.$v;")}},{$$s:n}),n.$line("throw $e;")},{$$s:s}),s.$line("}"),n(i["$empty?"]())||o(s,"push",[" finally {"].concat(g(o(i,"map",[],function(n){return n==null&&(n=t),"$t_"+n+".is_orphan = true;"}))).concat(["}"])),n(s["$closure_is?"](d("SEND")))&&s.$unshift("return "),n(i["$empty?"]())||s.$unshift("var ",o(i,"map",[],function(n){return n==null&&(n=t),"$t_"+n+" = $thrower('"+n+"')"}).$join(", "),"; "),s.$unshift("try { "),n(s["$closure_is?"](d("JS_FUNCTION")))?t:n(s.$scope().$await_encountered())?s.$wrap("(await (async function(){","})())"):s.$wrap("(function(){","})()"))})}(w[0],w),function(e){var o=r(e,"CompilerSupport");return s(o,"$closure_stack",function(){var s=this,o=t;return s.closure_stack==null&&(s.closure_stack=t),s.closure_stack=n(o=s.closure_stack)?o:[]})}(w[0])}(y[0],null,y)}(y[0],y)}(d[0],d)},Opal.modules["opal/nodes/helpers"]=function(e){var i=e.module,s=e.truthy,n=e.def,u=e.rb_plus,c=e.send,l=e.slice,a=e.to_a,o=e.eqeq,h=e.top,d=[],t=e.nil,r=e.$$$;return e.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,record_method_call,first,children,s,[]=,meta"),h.$require("opal/regexp_anchors"),function(d,h){var f=i(d,"Opal"),m=[f].concat(h);return function(d,h){var f=i(d,"Nodes"),m=[f].concat(h);return function(d,h){var m=i(d,"Helpers"),p=[m].concat(h),f=e.$r(p);return n(m,"$property",function(t){var n=this;return s(n["$valid_name?"](t))?"."+t:"["+t.$inspect()+"]"}),n(m,"$valid_name?",function(t){return r(r(f("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](t)}),n(m,"$mid_to_jsid",function(t){return s(/=|\+|-|\*|\/|!|\?|<|>|&|\||\^|%|~|\[|`/["$=~"](t.$to_s()))?"['$"+t+"']":u(".$",t)}),n(m,"$indent",function e(){var n=e.$$p||t,s=this;return e.$$p=null,c(s.$compiler(),"indent",[],n.$to_proc())}),n(m,"$current_indent",function(){var t=this;return t.$compiler().$parser_indent()}),n(m,"$line",function(){var n=this,s=l(arguments),o=s;return n.$push(n.$fragment(` +`+n.$current_indent(),new Map([["loc",!1]]))),c(n,"push",a(o))},-1),n(m,"$empty_line",function(){var t=this;return t.$push(t.$fragment(` +`,new Map([["loc",!1]])))}),n(m,"$js_truthy",function(n){var o=this,i=t;return s(i=o.$js_truthy_optimize(n))?i:(o.$helper("truthy"),[o.$fragment("$truthy("),o.$expr(n),o.$fragment(")")])}),n(m,"$js_truthy_optimize",function(n){var c,i=this,u=t,d=t,h=t,p=t,m=t,g=t,v=t,y=t,b=t,j=t;switch(n.$type().valueOf()){case"send":if(c=[].concat(a(n)),u=c[0]==null?t:c[0],d=c[1]==null?t:c[1],h=l(c,2),c,p=s(m=u)?i.$compiler().$handlers()["$[]"](u.$type()):m,g=s(m=s(v=r(f("Compiler"),"COMPARE")["$include?"](d.$to_s()))?p:v)?p["$truthy_optimize?"]():m,s(g)||o(d,"block_given?"))return i.$expr(n);if(o(h.$count(),1))switch(d.valueOf()){case"==":return i.$helper("eqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$eqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];case"===":return i.$helper("eqeqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$eqeqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];case"!=":return i.$helper("neqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$neqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];default:return t}else if(o(h.$count(),0))switch(d.valueOf()){case"!":return i.$helper("not"),i.$compiler().$record_method_call(d),[i.$fragment("$not("),i.$expr(u),i.$fragment(")")];default:return t}else return t;break;case"begin":return o(n.$children().$count(),1)?i.$js_truthy_optimize(n.$children().$first()):t;break;case"if":return c=[].concat(a(n)),y=c[0]==null?t:c[0],b=c[1]==null?t:c[1],j=c[2]==null?t:c[2],c,o(b,i.$s("true"))?(n.$meta()["$[]="]("do_js_truthy_on_false_body",!0),i.$expr(n)):o(j,i.$s("false"))?(n.$meta()["$[]="]("do_js_truthy_on_true_body",!0),i.$expr(n)):t;break;default:return t}})}(m[0],m)}(m[0],m)}(d[0],d)},Opal.modules["opal/nodes/base"]=function(e){var l=e.module,v=e.klass,s=e.truthy,r=e.defs,i=e.slice,o=e.send,g=e.return_val,t=e.def,u=e.ensure_kwargs,p=e.hash_get,f=e.Opal,h=e.neqeq,m=e.rb_plus,c=e.top,d=[],n=e.nil,a=e.$$$;return e.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,expression,respond_to?,name,source_buffer,start_with?,end_with?,line"),c.$require("opal/nodes/helpers"),c.$require("opal/nodes/closure"),function(c,d){var j=l(c,"Opal"),b=[j].concat(d);return function(c,d){var j=l(c,"Nodes"),b=[j].concat(d);return function(c,l,d){var b=v(c,l,"Base"),_=[b].concat(d),j=e.$r(_),y=b.$$prototype;return y.compiler=y.sexp=y.fragments=y.level=n,b.$include(j("Helpers")),b.$include(a(j("Closure"),"NodeSupport")),r(b,"$handlers",function(){var t=this,o=n;return t.handlers==null&&(t.handlers=n),t.handlers=s(o=t.handlers)?o:new Map}),r(b,"$handle",function(){var r=this,s=i(arguments),a=s;return o(a,"each",[],function e(t){var s,i=e.$$s==null?this:e.$$s;return t==null&&(t=n),(s=[t,i],o(j("Base").$handlers(),"[]=",s),s[s.length-1])},{$$s:r})},-1),r(b,"$children",function(){var r=this,s=i(arguments),a=s;return o(a,"each_with_index",[],function e(t,s){var i=e.$$s==null?this:e.$$s;return t==null&&(t=n),s==null&&(s=n),o(i,"define_method",[t],function e(){var t=e.$$s==null?this:e.$$s;return t.sexp==null&&(t.sexp=n),t.sexp.$children()["$[]"](s)},{$$s:i})},{$$s:r})},-1),r(b,"$truthy_optimize?",g(!1)),b.$attr_reader("compiler","type","sexp"),t(b,"$initialize",function(t,i,a){var c,r=this,l=n;return r.sexp=t,r.type=t.$type(),r.level=i,r.compiler=a,s(l=r.compiler.$top_scope())?l:(c=[r],o(r.compiler,"top_scope=",c),c[c.length-1])}),t(b,"$children",function(){var t=this;return t.sexp.$children()}),t(b,"$compile_to_fragments",function(){var o,t=this;return s((o=t.fragments,o!=null&&o!==n?"instance-variable":n))?t.fragments:(t.fragments=[],t.$compile(),t.fragments)}),t(b,"$compile",function(){var t=this;return t.$raise("Not Implemented")}),t(b,"$push",function(){var c=this,a=i(arguments),r=a;return o(r,"each",[],function e(t){var o=e.$$s==null?this:e.$$s;return o.fragments==null&&(o.fragments=n),t==null&&(t=n),s(t["$is_a?"](j("String")))&&(t=o.$fragment(t)),o.fragments["$<<"](t)},{$$s:c})},-1),t(b,"$unshift",function(){var c=this,a=i(arguments),r=a;return o(r,"reverse_each",[],function e(t){var o=e.$$s==null?this:e.$$s;return o.fragments==null&&(o.fragments=n),t==null&&(t=n),s(t["$is_a?"](j("String")))&&(t=o.$fragment(t)),o.fragments.$unshift(t)},{$$s:c})},-1),t(b,"$wrap",function(t,n){var s=this;return s.$unshift(t),s.$push(n)}),t(b,"$fragment",function(t,o){var i,r=this,c=n;return o=u(o),i=p(o,"loc"),i==null&&(i=!0),a(j("Opal"),"Fragment").$new(t,r.$scope(),s(c=i)?r.sexp:c)},-2),t(b,"$error",function(t){var n=this;return n.compiler.$error(t)}),t(b,"$scope",function(){var t=this;return t.compiler.$scope()}),t(b,"$top_scope",function(){var t=this;return t.compiler.$top_scope()}),t(b,"$s",function(t){var r=this,s=i(arguments,1),o=s;return a(a(f,"AST"),"Node").$new(t,o,new Map([["location",r.sexp.$loc()]]))},-2),t(b,"$expr?",function(){var t=this;return t.level["$=="]("expr")}),t(b,"$recv?",function(){var t=this;return t.level["$=="]("recv")}),t(b,"$stmt?",function(){var t=this;return t.level["$=="]("stmt")}),t(b,"$process",function(t,n){var s=this;return n==null&&(n="expr"),s.compiler.$process(t,n)},-2),t(b,"$expr",function(t){var n=this;return n.compiler.$process(t,"expr")}),t(b,"$recv",function(t){var n=this;return n.compiler.$process(t,"recv")}),t(b,"$stmt",function(t){var n=this;return n.compiler.$process(t,"stmt")}),t(b,"$expr_or_nil",function(t){var n=this;return s(t)?n.$expr(t):"nil"}),t(b,"$expr_or_empty",function(t){var n=this;return s(t)&&h(t.$type(),"nil")?n.$expr(t):""}),t(b,"$add_local",function(t){var n=this;return n.$scope().$add_scope_local(t.$to_sym())}),t(b,"$add_ivar",function(t){var n=this;return n.$scope().$add_scope_ivar(t)}),t(b,"$add_gvar",function(t){var n=this;return n.$scope().$add_scope_gvar(t)}),t(b,"$add_temp",function(t){var n=this;return n.$scope().$add_scope_temp(t)}),t(b,"$helper",function(t){var n=this;return n.compiler.$helper(t)}),t(b,"$with_temp",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.compiler,"with_temp",[],t.$to_proc())}),t(b,"$in_while?",function(){var t=this;return t.compiler["$in_while?"]()}),t(b,"$while_loop",function(){var t=this;return t.compiler.$instance_variable_get("@while_loop")}),t(b,"$has_rescue_else?",function(){var t=this;return t.$scope()["$has_rescue_else?"]()}),t(b,"$in_ensure",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.$scope(),"in_ensure",[],t.$to_proc())}),t(b,"$in_ensure?",function(){var t=this;return t.$scope()["$in_ensure?"]()}),t(b,"$in_resbody",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.$scope(),"in_resbody",[],t.$to_proc())}),t(b,"$in_resbody?",function(){var t=this;return t.$scope()["$in_resbody?"]()}),t(b,"$in_rescue",function e(t){var s=e.$$p||n,i=this;return e.$$p=null,o(i.$scope(),"in_rescue",[t],s.$to_proc())}),t(b,"$class_variable_owner_nesting_level",function(){for(var a=this,t=n,o=n,i=n,t=a.$scope(),o=0;s(s(i=t)?t["$class_scope?"]()["$!"]():i);)s(t["$sclass?"]())&&(o=m(o,1)),t=t.$parent();return o}),t(b,"$class_variable_owner",function(){var t=this;return s(t.$scope())?""+t.$scope().$nesting()+"["+t.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),t(b,"$comments",function(){var t=this;return t.$compiler().$comments()["$[]"](t.sexp.$loc())}),t(b,"$source_location",function(){var i=this,o=n,t=n,a=n,o=i.sexp.$loc().$expression();return s(o["$respond_to?"]("source_buffer"))?(t=o.$source_buffer().$name(),s(t["$start_with?"]("corelib/"))&&(t=""),s(t["$end_with?"](".js"))&&(t="")):t="(eval)",a=i.sexp.$loc().$line(),"['"+t+"', "+a+"]"})}(b[0],null,b)}(b[0],b)}(d[0],d)},Opal.modules["opal/nodes/literal"]=function(e){var v=e.module,o=e.klass,n=e.def,m=e.return_val,b=e.defs,s=e.truthy,c=e.const_set,u=e.regexp,i=e.send,a=e.rb_plus,j=e.lambda,C=e.rb_le,x=e.rb_minus,f=e.slice,O=e.send2,_=e.find_super,l=e.to_a,r=e.eqeq,d=e.eqeqeq,y=e.Opal,g=e.rb_gt,w=e.top,p=[],t=e.nil,h=e.$$$;return e.add_stubs("require,handle,push,to_s,type,self,scope,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?,===,static_as_dynamic,new,flags=,map,to_proc,value=,empty?,s,single_line?,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"),w.$require("opal/nodes/base"),function(p,w){var k=v(p,"Opal"),E=[k].concat(w);return function(p,w){var A=v(p,"Nodes"),E=[A].concat(w),k=e.$r(E);return function(e,t){var s=o(e,t,"ValueNode");return s.$handle("true","false","nil"),n(s,"$compile",function(){var t=this;return t.$push(t.$type().$to_s())}),b(s,"$truthy_optimize?",m(!0))}(E[0],k("Base")),function(e,t){var s=o(e,t,"SelfNode");return s.$handle("self"),n(s,"$compile",function(){var t=this;return t.$push(t.$scope().$self())})}(E[0],k("Base")),function(e,i){var a=o(e,i,"NumericNode");return a.$handle("int","float"),a.$children("value"),n(a,"$compile",function(){var n=this;return n.$push(n.$value().$to_s()),s(n["$recv?"]())?n.$wrap("(",")"):t}),b(a,"$truthy_optimize?",m(!0))}(E[0],k("Base")),function(r,l,d){var m=o(r,l,"StringNode"),f=[m].concat(d),h=e.$r(f);return m.$handle("str"),m.$children("value"),c(f[0],"ESCAPE_CHARS",new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),c(f[0],"ESCAPE_REGEX",u(["(\\\\+)([",h("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),n(m,"$translate_escape_chars",function(n){return i(n,"gsub",[h("ESCAPE_REGEX")],function(n){return n==null&&(n=t),s(h("Regexp").$last_match(1).$length()["$even?"]())?n:a(h("Regexp").$last_match(1).$chop(),h("ESCAPE_CHARS")["$[]"](h("Regexp").$last_match(2)))})}),n(m,"$compile",function(){var n=this,o=t,a=t,o=n.$value(),a=i(o.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],function e(){var s=e.$$s==null?this:e.$$s,n=t,n=h("Regexp").$last_match(1).$to_i(16);return s.$to_utf16(n)},{$$s:n});return n.$push(n.$translate_escape_chars(a)),t,s(n.$value()["$valid_encoding?"]())?t:(n.$helper("binary"),n.$wrap("$binary(",")"))}),n(m,"$to_utf16",function(n){var i=t,o=t,r=t,c=t,i=1023,o=j(function(n){return n==null&&(n=t),a("\\u",n.$to_s(16).$upcase())});return s(C(n,65535))?o.$call(n):(n=x(n,65536),r=a(55296,n["$>>"](10)),c=a(56320,n["$&"](i)),a(o.$call(r),o.$call(c)))})}(E[0],k("Base"),E),function(e,t){var s=o(e,t,"SymbolNode");return s.$handle("sym"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(t.$value().$to_s().$inspect())})}(E[0],k("Base")),function(a,m,p){var v=o(a,m,"RegexpNode"),b=[v].concat(p),j=e.$r(b),w=v.$$prototype;return w.sexp=t,v.$handle("regexp"),v.$attr_accessor("value","flags"),c(b[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),n(v,"$initialize",function e(){var o,i,a=e.$$p||t,s=this;return e.$$p=null,o=f(arguments),i=o,O(s,_(s,"initialize",e,!1,!0),"initialize",l(i),a),s.$extract_flags_and_value()},-1),n(v,"$compile",function(){var n=this;return i(n.$flags(),"select!",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),!!s(j("SUPPORTED_FLAGS")["$=~"](n))||(o.$compiler().$warning("Skipping the '"+n+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)},{$$s:n}),r(n.$value().$type(),"str")?n.$compile_static_regexp():n.$compile_dynamic_regexp()}),n(v,"$compile_dynamic_regexp",function(){var n=this;return n.$helper("regexp"),n.$push("$regexp(["),i(n.$value().$children(),"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),s(o["$zero?"]())||i.$push(", "),i.$push(i.$expr(n))},{$$s:n}),n.$push("]"),s(n.$flags()["$any?"]())&&n.$push(", '"+n.$flags().$join()+"'"),n.$push(")")}),n(v,"$compile_static_regexp",function(){var n=this,s=t,o=t,s=n.$value().$children()["$[]"](0);return d("",o=s)?n.$push("/(?:)/"):d(u(["\\(\\?[(<>#]|[*+?]\\+"]),o)?n.$static_as_dynamic(s):n.$push(""+j("Regexp").$new(s).$inspect()+n.$flags().$join())}),n(v,"$static_as_dynamic",function(t){var n=this;return n.$helper("regexp"),n.$push('$regexp(["'),n.$push(t.$gsub("\\","\\\\\\\\")),n.$push('"]'),s(n.$flags()["$any?"]())&&n.$push(", '"+n.$flags().$join()+"'"),n.$push(")")}),n(v,"$extract_flags_and_value",function(){var n=this,c=t,d=t,u=t,o=[].concat(l(n.$children())),a=o.length-1,a=a<0?0:a;return c=f(o,0,a),d=o[a]==null?t:o[a],o,n["$flags="](i(d.$children(),"map",[],"to_s".$to_proc())),n["$value="](s(c["$empty?"]())?n.$s("str",""):s(n["$single_line?"](c))?c["$[]"](0):i(n,"s",["dstr"].concat(l(c)))),s(n.$flags()["$include?"]("x"))&&(u=i(n.$value().$children(),"map",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t;return n==null&&(n=t),s(n["$is_a?"](h(h(y,"AST"),"Node")))&&r(n.$type(),"str")?(o=n.$children()["$[]"](0).$gsub(/^\s*#.*/,"").$gsub(/\s/,""),i.$s("str",o)):n},{$$s:n}),n["$value="](n.$value().$updated(t,u)),n.$flags().$delete("x")),r(n.$value().$type(),"str")?(o=[n.$s("str",n.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],i(n,"value=",o),o[o.length-1]):t}),n(v,"$raw_value",function(){var t,n=this;return t=[n.sexp.$loc().$expression().$source()],i(n,"value=",t),t[t.length-1]}),v.$private(),n(v,"$single_line?",function(n){var o=t,i=t;return!s(g(n.$length(),1))&&(o=n["$[]"](0),s(i=o.$type()["$!="]("str"))?i:o.$children()["$[]"](0)["$include?"](` +`)["$!"]())})}(E[0],k("Base"),E),function(e,s){var i=o(e,s,"MatchCurrentLineNode");return i.$handle("match_current_line"),i.$children("regexp"),n(i,"$compile",function(){var n=this,s=t,o=t,s=n.$s("gvar","$_"),o=n.$s("send",s,"=~",n.$regexp());return n.$push(n.$expr(o))})}(E[0],k("Base")),function(e,a){var c=o(e,a,"DynamicStringNode");return c.$handle("dstr"),n(c,"$compile",function(){var n=this,o=t;return s(g(n.$children().$length(),1))&&r(n.$children().$first().$type(),"str")?o=!0:n.$push('""'),i(n.$children(),"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(o)?o=!1:i.$push(" + "),r(n.$type(),"str")?i.$push(i.$expr(n)):i.$push("(",i.$expr(n),")"),s(i["$recv?"]())?i.$wrap("(",")"):t},{$$s:n})})}(E[0],k("Base")),function(e,t){var n=o(e,t,"DynamicSymbolNode");return n.$handle("dsym")}(E[0],k("DynamicStringNode")),function(i,a,r){var l=o(i,a,"RangeNode"),u=[l].concat(r),d=e.$r(u);return l.$children("start","finish"),c(u[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),n(l,"$compile",function(){var t=this;return s(t["$compile_inline?"]())?(t.$helper("range"),t.$compile_inline()):t.$compile_range_initialize()}),n(l,"$compile_inline?",function(){var n=this,a=t,o=t,i=t;return s(a=s(o=n.$start()["$!"]())?o:s(i=n.$start().$type())?d("SIMPLE_CHILDREN_TYPES")["$include?"](n.$start().$type()):i)?s(o=n.$finish()["$!"]())?o:s(i=n.$finish().$type())?d("SIMPLE_CHILDREN_TYPES")["$include?"](n.$finish().$type()):i:a}),n(l,"$compile_inline",function(){var t=this;return t.$raise(d("NotImplementedError"))}),n(l,"$compile_range_initialize",function(){var t=this;return t.$raise(d("NotImplementedError"))})}(E[0],k("Base"),E),function(e,t){var s=o(e,t,"InclusiveRangeNode");return s.$handle("irange"),n(s,"$compile_inline",function(){var t=this;return t.$push("$range(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", false)")}),n(s,"$compile_range_initialize",function(){var t=this;return t.$push("Opal.Range.$new(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", false)")})}(E[0],k("RangeNode")),function(e,t){var s=o(e,t,"ExclusiveRangeNode");return s.$handle("erange"),n(s,"$compile_inline",function(){var t=this;return t.$push("$range(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", true)")}),n(s,"$compile_range_initialize",function(){var t=this;return t.$push("Opal.Range.$new(",t.$expr_or_nil(t.$start()),",",t.$expr_or_nil(t.$finish()),", true)")})}(E[0],k("RangeNode")),function(e,t){var s=o(e,t,"RationalNode");return s.$handle("rational"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(""+t.$top_scope().$absolute_const()+"('Rational').$new("+t.$value().$numerator()+", "+t.$value().$denominator()+")")})}(E[0],k("Base")),function(e,t){var s=o(e,t,"ComplexNode");return s.$handle("complex"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(""+t.$top_scope().$absolute_const()+"('Complex').$new("+t.$value().$real()+", "+t.$value().$imag()+")")})}(E[0],k("Base"))}(E[0],E)}(p[0],p)},Opal.modules["opal/nodes/variables"]=function(e){var r=e.module,o=e.klass,s=e.truthy,t=e.def,i=e.send,a=e.range,l=e.send2,d=e.find_super,u=e.top,c=[],n=e.nil;return e.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"),u.$require("opal/nodes/base"),function(c,u){var m=r(c,"Opal"),h=[m].concat(u);return function(c,u){var f=r(c,"Nodes"),h=[f].concat(u),m=e.$r(h);return function(e,a){var r=o(e,a,"LocalVariableNode");return r.$handle("lvar"),r.$children("var_name"),t(r,"$using_irb?",function(){var t=this,o=n;return s(o=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():o}),t(r,"$compile",function(){var t=this;return s(t["$using_irb?"]())?i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push(s.$property(s.$var_name().$to_s())),s.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")},{$$s:t}):t.$push(t.$var_name().$to_s())})}(h[0],m("Base")),function(e,i){var a=o(e,i,"LocalAssignNode");return a.$handle("lvasgn"),a.$children("var_name","value"),t(a,"$using_irb?",function(){var t=this,o=n;return s(o=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():o}),t(a,"$compile",function(){var t=this;return s(t["$using_irb?"]())?t.$push("Opal.irb_vars"+t.$property(t.$var_name().$to_s())+" = "):(t.$add_local(t.$var_name().$to_s()),t.$push(""+t.$var_name()+" = ")),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"LocalDeclareNode");return i.$handle("lvdeclare"),i.$children("var_name"),t(i,"$compile",function(){var t=this;return t.$add_local(t.$var_name().$to_s()),n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"InstanceVariableNode");return i.$handle("ivar"),i.$children("name"),t(i,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(i,"$compile",function(){var t=this,s=n,s=t.$property(t.$var_name());return t.$add_ivar(s),t.$push(""+t.$scope().$self()+s)})}(h[0],m("Base")),function(e,i){var r=o(e,i,"InstanceAssignNode");return r.$handle("ivasgn"),r.$children("name","value"),t(r,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(r,"$compile",function(){var t=this,o=n,o=t.$property(t.$var_name());return t.$push(""+t.$scope().$self()+o+" = "),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"GlobalVariableNode");return i.$handle("gvar"),i.$children("name"),t(i,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(i,"$compile",function(){var t=this,s=n;return t.$helper("gvars"),s=t.$property(t.$var_name()),t.$add_gvar(s),t.$push("$gvars"+s)})}(h[0],m("Base")),function(s,a,r){var c=o(s,a,"BackRefNode"),u=[c].concat(r),h=e.$r(u);return c.$handle("back_ref"),t(c,"$compile",function e(){var s=e.$$p||n,t=this;switch(e.$$p=null,t.$helper("gvars"),t.$var_name().valueOf()){case"&":return t.$handle_global_match();case"'":return t.$handle_post_match();case"`":return t.$handle_pre_match();case"+":return l(t,d(t,"compile",e,!1,!0),"compile",[],s);default:return t.$raise(h("NotImplementedError"))}}),t(c,"$handle_global_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]'](0))")},{$$s:t})}),t(c,"$handle_pre_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$pre_match())")},{$$s:t})}),t(c,"$handle_post_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$post_match())")},{$$s:t})})}(h[0],m("GlobalVariableNode"),h),function(e,i){var r=o(e,i,"GlobalAssignNode");return r.$handle("gvasgn"),r.$children("name","value"),t(r,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(r,"$compile",function(){var t=this,o=n;return t.$helper("gvars"),o=t.$property(t.$var_name()),t.$push("$gvars"+o+" = "),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var a=o(e,s,"NthrefNode");return a.$handle("nth_ref"),a.$children("index"),t(a,"$compile",function(){var t=this;return t.$helper("gvars"),i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]']("+s.$index()+"))")},{$$s:t})})}(h[0],m("Base")),function(e,i){var a=o(e,i,"ClassVariableNode");return a.$handle("cvar"),a.$children("name"),t(a,"$compile",function(){var t=this,o=n;return t.$helper("class_variable_get"),o=!1,s(t["$stmt?"]())&&(o=!0),t.$push("$class_variable_get("+t.$class_variable_owner()+", '"+t.$name()+"', "+o.$inspect()+")")})}(h[0],m("Base")),function(e,n){var s=o(e,n,"ClassVarAssignNode");return s.$handle("cvasgn"),s.$children("name","value"),t(s,"$compile",function(){var t=this;return t.$helper("class_variable_set"),t.$push("$class_variable_set("+t.$class_variable_owner()+", '"+t.$name()+"', ",t.$expr(t.$value()),")")})}(h[0],m("Base"))}(h[0],h)}(c[0],c)},Opal.modules["opal/nodes/constants"]=function(e){var i=e.module,s=e.klass,t=e.truthy,r=e.eqeq,n=e.def,c=e.const_set,l=e.top,a=[],o=e.nil;return e.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"),l.$require("opal/nodes/base"),function(a,l){var u=i(a,"Opal"),d=[u].concat(l);return function(a,l){var h=i(a,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(i,a,l){var d=s(i,a,"ConstNode"),u=[d].concat(l),h=e.$r(u);return d.$handle("const"),d.$children("const_scope","name"),n(d,"$compile",function(){var n=this;return t(n["$magical_data_const?"]())?n.$push("$__END__"):t(n["$optimized_access?"]())?(n.$helper(""+n.$name()),n.$push("$"+n.$name())):r(n.$const_scope(),n.$s("cbase"))?n.$push(""+n.$top_scope().$absolute_const()+"('"+n.$name()+"')"):t(n.$const_scope())?n.$push(""+n.$top_scope().$absolute_const()+"(",n.$recv(n.$const_scope()),", '"+n.$name()+"')"):t(n.$compiler()["$eval?"]())?n.$push(""+n.$scope().$relative_access()+"('"+n.$name()+"')"):n.$push(""+n.$scope().$relative_access()+"('"+n.$name()+"')")}),n(d,"$magical_data_const?",function(){var n=this,s=o,i=o;return t(s=t(i=n.$const_scope()["$nil?"]())?n.$name()["$=="]("DATA"):i)?n.$compiler().$eof_content():s}),c(u[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),n(d,"$optimized_access?",function(){var n=this,s=o;return t(s=n.$const_scope()["$=="](n.$s("cbase")))?h("OPTIMIZED_ACCESS_CONSTS")["$include?"](n.$name()):s})}(d[0],u("Base"),d),function(e,t){var o=s(e,t,"CbaseNode");return o.$handle("cbase"),n(o,"$compile",function(){var t=this;return t.$push("'::'")})}(d[0],u("Base")),function(e,o){var i=s(e,o,"ConstAssignNode");return i.$handle("casgn"),i.$children("base","name","value"),n(i,"$compile",function(){var n=this;return n.$helper("const_set"),t(n.$base())?n.$push("$const_set(",n.$expr(n.$base()),", '"+n.$name()+"', ",n.$expr(n.$value()),")"):n.$push("$const_set("+n.$scope().$nesting()+"[0], '"+n.$name()+"', ",n.$expr(n.$value()),")")})}(d[0],u("Base"))}(d[0],d)}(a[0],a)},Opal.modules.pathname=function(e){var O=e.klass,v=e.const_set,f=e.regexp,d=e.eqeqeq,n=e.truthy,r=e.eqeq,s=e.def,j=e.defs,a=e.to_ary,g=e.slice,o=e.send,p=e.to_a,b=e.return_ivar,c=e.neqeq,i=e.rb_plus,m=e.not,y=e.thrower,u=e.alias,_=e.module,w=e.top,l=[],t=e.nil,h=e.$$$;return e.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?,hash,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),w.$require("corelib/comparable"),function(l,_,w){var C=O(l,_,"Pathname"),E=[C].concat(w),x=e.$r(E),k=C.$$prototype;return k.path=t,C.$include(x("Comparable")),v(E[0],"SEPARATOR_PAT",f([x("Regexp").$quote(h(x("File"),"SEPARATOR"))])),s(C,"$initialize",function(s){var o=this;return d(x("Pathname"),s)?o.path=s.$path().$to_s():n(s["$respond_to?"]("to_path"))?o.path=s.$to_path():n(s["$is_a?"](x("String")))?o.path=s:n(s["$nil?"]())?o.$raise(x("TypeError"),"no implicit conversion of nil into String"):o.$raise(x("TypeError"),"no implicit conversion of "+s.$class()+" into String"),r(o.path,"\x00")?o.$raise(x("ArgumentError")):t}),j(C,"$pwd",function(){var t=this;return t.$new(x("Dir").$pwd())}),C.$attr_reader("path"),s(C,"$==",function(t){var n=this;return t.$path()["$=="](n.path)}),s(C,"$absolute?",function(){var t=this;return t["$relative?"]()["$!"]()}),s(C,"$relative?",function(){for(var o,i,r=this,s=t,c=t,s=r.path;n(c=r.$chop_basename(s));)i=c,o=a(i),s=o[0]==null?t:o[0],i;return s["$=="]("")}),s(C,"$chop_basename",function(s){var o=t,o=x("File").$basename(s);return n(x("Regexp").$new("^"+h(x("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](o))?t:[s["$[]"](0,s.$rindex(o)),o]}),s(C,"$root?",function(){var t=this;return t.path["$=="]("/")}),s(C,"$parent",function(){var o=this,s=t,s=o.path.$sub(/\/([^/]+\/?$)/,"");return r(s,"")&&(s=n(o["$absolute?"]())?"/":"."),x("Pathname").$new(s)}),s(C,"$sub",function(){var i=this,n=g(arguments),s=n;return x("Pathname").$new(o(i.path,"sub",p(s)))},-1),s(C,"$cleanpath",function(){var n=this;return e.normalize(n.path)}),s(C,"$to_path",b("path")),s(C,"$hash",function(){var t=this;return t.path.$hash()}),s(C,"$expand_path",function(){var t=this;return x("Pathname").$new(x("File").$expand_path(t.path))}),s(C,"$+",function(t){var n=this;return d(x("Pathname"),t)||(t=x("Pathname").$new(t)),x("Pathname").$new(n.$plus(n.path,t.$to_s()))}),s(C,"$plus",function(o,l){for(var h,p,_=this,b=t,v=t,d=t,C=t,O=t,u=t,j=t,g=t,y=t,w=t,b=l,v=[],d=[];n(C=_.$chop_basename(b));)p=C,h=a(p),b=h[0]==null?t:h[0],O=h[1]==null?t:h[1],p,v.$unshift(b.$length()),d.$unshift(O);if(c(b,""))return l;for(u=o;n(!0);){for(;n(n(j=d["$empty?"]()["$!"]())?d.$first()["$=="]("."):j);)v.$shift(),d.$shift();if(!n(g=_.$chop_basename(u)))break;if(p=g,h=a(p),u=h[0]==null?t:h[0],y=h[1]==null?t:h[1],p,r(y,"."))continue;if(r(y,"..")||n(d["$empty?"]())||c(d.$first(),"..")){u=i(u,y);break}v.$shift(),d.$shift()}if(g=_.$chop_basename(u),m(g)&&n(f([x("SEPARATOR_PAT")])["$=~"](x("File").$basename(u))))for(;n(n(j=d["$empty?"]()["$!"]())?d.$first()["$=="](".."):j);)v.$shift(),d.$shift();return m(d["$empty?"]())?(w=l["$[]"](e.Range.$new(v.$first(),-1,!1)),n(g)?x("File").$join(u,w):i(u,w)):n(g)?u:x("File").$dirname(u)}),s(C,"$join",function(){try{var r=y("return"),u=this,a=t,l=g(arguments),c=l;return n(c["$empty?"]())?u:(a=c.$pop(),d(x("Pathname"),a)||(a=x("Pathname").$new(a)),n(a["$absolute?"]())?a:(o(c,"reverse_each",[],function e(s){if(s==null&&(s=t),d(x("Pathname"),s)||(s=x("Pathname").$new(s)),a=i(s,a),n(a["$absolute?"]()))r.$throw(a,e.$$is_lambda);else return t},{$$ret:r}),i(u,a)))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}},-1),s(C,"$split",function(){var t=this;return[t.$dirname(),t.$basename()]}),s(C,"$dirname",function(){var t=this;return x("Pathname").$new(x("File").$dirname(t.path))}),s(C,"$basename",function(){var t=this;return x("Pathname").$new(x("File").$basename(t.path))}),s(C,"$directory?",function(){var t=this;return x("File")["$directory?"](t.path)}),s(C,"$extname",function(){var t=this;return x("File").$extname(t.path)}),s(C,"$<=>",function(t){var n=this;return n.$path()["$<=>"](t.$path())}),v(E[0],"SAME_PATHS",n(h(x("File"),"FNM_SYSCASE")["$nonzero?"]())?o(C,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$casecmp(s)["$=="](0)}):o(C,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$=="](s)})),s(C,"$relative_path_from",function(s){var r,u,m=this,j=t,f=t,h=t,g=t,d=t,v=t,l=t,y=t,_=t,b=t,j=m.$cleanpath().$to_s();for(s=s.$cleanpath().$to_s(),f=j,h=[];n(g=m.$chop_basename(f));)u=g,r=a(u),f=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u,c(d,".")&&h.$unshift(d);for(v=s,l=[];n(g=m.$chop_basename(v));)u=g,r=a(u),v=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u,c(d,".")&&l.$unshift(d);for(n(x("SAME_PATHS")["$[]"](f,v))||m.$raise(x("ArgumentError"),"different prefix: "+f.$inspect()+" and "+s.$inspect());n(n(y=n(_=h["$empty?"]()["$!"]())?l["$empty?"]()["$!"]():_)?x("SAME_PATHS")["$[]"](h.$first(),l.$first()):y);)h.$shift(),l.$shift();return n(l["$include?"](".."))&&m.$raise(x("ArgumentError"),"base_directory has ..: "+s.$inspect()),l.$fill(".."),b=i(l,h),n(b["$empty?"]())?x("Pathname").$new("."):x("Pathname").$new(o(x("File"),"join",p(b)))}),s(C,"$entries",function(){var n=this;return o(x("Dir").$entries(n.path),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$class().$new(n)},{$$s:n})}),u(C,"===","=="),u(C,"eql?","=="),u(C,"to_s","to_path"),u(C,"to_str","to_path")}(l[0],null,l),function(t,n){var o=_(t,"Kernel"),i=[o].concat(n),a=e.$r(i);return s(o,"$Pathname",function(t){return a("Pathname").$new(t)})}(l[0],l)},Opal.modules["opal/nodes/call"]=function(e){var d=e.module,u=e.klass,h=e.const_set,s=e.send,p=e.defs,r=e.slice,w=e.send2,_=e.find_super,a=e.to_a,n=e.truthy,o=e.def,i=e.eqeq,y=e.rb_plus,f=e.not,j=e.neqeq,g=e.to_ary,v=e.Opal,b=e.range,l=e.top,m=[],t=e.nil,c=e.$$$;return e.add_stubs("require,handle,attr_reader,freeze,[]=,define_method,to_proc,include?,type,s,handle_special,record_method_call,compiler,meth,with_wrapper,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,[],meta,splat?,call_is_writer_that_needs_handling?,!,empty?,collect_refinements_temps,scope,==,auto_await?,push,await_encountered=,iter_has_break?,push_closure,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,pop_closure,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,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,to_sym,call,inline_operators?,fragment,resolve,new,<<,requires,file,dirname,cleanpath,join,Pathname,self,inspect,process,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,thrower,new_temp,scope_locals,source_location,size,last,csend?,handle_conditional_send,handle_writer,expr?,recv?,=~,wrap,dynamic_require_severity,handle_part,is_a?,expand_path,split,error,line,each_with_object,pop"),l.$require("set"),l.$require("pathname"),l.$require("opal/nodes/base"),function(l,m){var x=d(l,"Opal"),O=[x].concat(m);return function(l,m){var x=d(l,"Nodes"),O=[x].concat(m),C=e.$r(O);return function(l,d,m){var O=u(l,d,"CallNode"),C=[O].concat(m),x=e.$r(C),E=O.$$prototype;return E.sexp=E.conditional_recvr=E.with_writer_temp=E.compiler=t,O.$handle("send","csend"),O.$attr_reader("recvr","meth","arglist","iter"),h(C[0],"SPECIALS",new Map),h(C[0],"OPERATORS",new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),p(O,"$add_special",function e(n,o){var i=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=new Map),x("SPECIALS")["$[]="](n,o),s(a,"define_method",["handle_"+n],i.$to_proc())},-2),o(O,"$initialize",function e(){var i,l,h,m,p=e.$$p||t,c=this,d=t,f=t,u=t;return e.$$p=null,h=r(arguments),m=h,w(c,_(c,"initialize",e,!1,!0),"initialize",a(m),p),i=[].concat(a(c.sexp)),c.recvr=i[0]==null?t:i[0],c.meth=i[1]==null?t:i[1],d=r(i,2),i,i=[].concat(a(d)),l=i.length-1,l=l<0?0:l,f=r(i,0,l),u=i[l]==null?t:i[l],i,n(u)&&n(["iter","block_pass"]["$include?"](u.$type()))?(c.iter=u,d=f):c.iter=t,c.arglist=s(c,"s",["arglist"].concat(a(d)))},-1),o(O,"$compile",function(){var t=this;return s(t,"handle_special",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$compiler().$record_method_call(t.$meth()),s(t,"with_wrapper",[],function e(){var t=e.$$s==null?this:e.$$s;return n(t["$using_eval?"]())?t.$compile_eval_var():n(t["$using_irb?"]())?t.$compile_irb_var():t.$default_compile()},{$$s:t})},{$$s:t})}),O.$private(),o(O,"$iter_has_break?",function(){var t=this;return!!n(t.$iter())&&t.$iter().$meta()["$[]"]("has_break")}),o(O,"$invoke_using_send?",function(){var s=this,o=t,i=t;return n(o=n(i=s.$iter())?i:s["$splat?"]())?o:s["$call_is_writer_that_needs_handling?"]()}),o(O,"$invoke_using_refinement?",function(){var t=this;return t.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()}),o(O,"$csend?",function(){var t=this;return t.sexp.$type()["$=="]("csend")}),o(O,"$default_compile",function(){var s=this;return n(s["$auto_await?"]())&&(s.$push("(await "),s.$scope()["$await_encountered="](!0)),n(s["$iter_has_break?"]())&&s.$push_closure(c(x("Closure"),"SEND")),n(s["$invoke_using_refinement?"]())?s.$compile_using_refined_send():n(s["$invoke_using_send?"]())?s.$compile_using_send():s.$compile_simple_call_chain(),n(s["$iter_has_break?"]())&&s.$pop_closure(),n(s["$auto_await?"]())?s.$push(")"):t}),o(O,"$compile_using_send",function(){var t=this;return t.$helper("send"),t.$push("$send("),t.$compile_receiver(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),o(O,"$compile_using_refined_send",function(){var t=this;return t.$helper("refined_send"),t.$push("$refined_send("),t.$compile_refinements(),t.$compile_receiver(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),o(O,"$compile_receiver",function(){var s=this,o=t;return s.$push(n(o=s.conditional_recvr)?o:s.$recv(s.$receiver_sexp()))}),o(O,"$compile_method_name",function(){var t=this;return t.$push(", '"+t.$meth()+"'")}),o(O,"$compile_arguments",function(t){var s=this;return t==null&&(t=!1),n(t)||s.$push(", "),n(s.with_writer_temp)?s.$push(s.with_writer_temp):n(s["$splat?"]())?s.$push(s.$expr(s.$arglist())):n(s.$arglist().$children()["$empty?"]())?s.$push("[]"):s.$push("[",s.$expr(s.$arglist()),"]")},-1),o(O,"$compile_block_pass",function(){var s=this;return n(s.$iter())?s.$push(", ",s.$expr(s.$iter())):t}),o(O,"$compile_refinements",function(){var n=this,o=t,o=s(n.$scope().$collect_refinements_temps(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("js_tmp",n)},{$$s:n});return n.$push(n.$expr(s(n,"s",["array"].concat(a(o)))),", ")}),o(O,"$compile_simple_call_chain",function(){var t=this;return t.$compile_receiver(),t.$push(t.$method_jsid(),"(",t.$expr(t.$arglist()),")")}),o(O,"$splat?",function(){var n=this;return s(n.$arglist().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("splat")})}),o(O,"$receiver_sexp",function(){var s=this,o=t;return n(o=s.$recvr())?o:s.$s("self")}),o(O,"$method_jsid",function(){var t=this;return t.$mid_to_jsid(t.$meth().$to_s())}),o(O,"$compile_irb_var",function(){var n=this;return s(n,"with_temp",[],function e(n){var s=e.$$s==null?this:e.$$s,o=t,i=t,a=t;return n==null&&(n=t),o=s.$meth(),i=s.$s("send",s.$s("self"),s.$meth().$intern(),s.$s("arglist")),a="(typeof "+o+" !== 'undefined') ? "+o+" : ",s.$push("(("+n+" = Opal.irb_vars."+o+") == null ? ",a,s.$expr(i)," : "+n+")")},{$$s:n})}),o(O,"$compile_eval_var",function(){var t=this;return t.$push(t.$meth().$to_s())}),o(O,"$using_irb?",function(){var s=this,o=t,i=t;return n(o=n(i=s.compiler["$irb?"]())?s.$scope()["$top?"]():i)?s["$variable_like?"]():o}),o(O,"$using_eval?",function(){var s=this,o=t,i=t;return n(o=n(i=s.compiler["$eval?"]())?s.$scope()["$top?"]():i)?s.compiler.$scope_variables()["$include?"](s.$meth()):o}),o(O,"$variable_like?",function(){var s=this,o=t,i=t;return n(o=n(i=s.$arglist()["$=="](s.$s("arglist")))?s.$recvr()["$nil?"]():i)?s.$iter()["$nil?"]():o}),o(O,"$sexp_with_arglist",function(){var n=this;return n.sexp.$updated(t,[n.$recvr(),n.$meth(),n.$arglist()])}),o(O,"$auto_await?",function(){var o=this,s=t,i=t,a=t,s=o.$compiler().$async_await();return n(i=n(a=s)?s["$!="](!0):a)?s["$match?"](o.$meth().$to_s()):i}),o(O,"$handle_special",function s(){var r=s.$$p||t,a=this,o=t;return s.$$p=null,n(x("SPECIALS")["$include?"](a.$meth()))?(o=a.$method("handle_"+a.$meth()),i(o.$arity(),1)?o["$[]"](r):o["$[]"]()):e.yieldX(r,[])}),s(x("OPERATORS"),"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(a,"add_special",[o.$to_sym()],function e(s){var r,a=e.$$s==null?this:e.$$s,c=t,l=t;return s==null&&(s=t),n(a["$invoke_using_refinement?"]())?s.$call():n(a.$compiler()["$inline_operators?"]())?(a.$compiler().$record_method_call(o),a.$helper("rb_"+i),r=[a.$expr(a.$recvr()),a.$expr(a.$arglist())],c=r[0],l=r[1],r,a.$push(a.$fragment("$rb_"+i+"(")),a.$push(c),a.$push(a.$fragment(", ")),a.$push(l),a.$push(a.$fragment(")"))):s.$call()},{$$s:a})},{$$s:O}),s(O,"add_special",["require"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=x("DependencyResolver").$new(o.$compiler(),o.$arglist().$children()["$[]"](0)).$resolve(),n(i["$nil?"]())||o.$compiler().$requires()["$<<"](i),s.$call()},{$$s:O}),s(O,"add_special",["require_relative"],function e(){var n=e.$$s==null?this:e.$$s,s=t,o=t,a=t,s=n.$arglist().$children()["$[]"](0),o=n.$compiler().$file();return i(s.$type(),"str")&&(a=x("File").$dirname(o),n.$compiler().$requires()["$<<"](n.$Pathname(a).$join(s.$children()["$[]"](0)).$cleanpath().$to_s())),n.$push(n.$fragment(""+n.$scope().$self()+".$require("+o.$inspect()+"+ '/../' + ")),n.$push(n.$process(n.$arglist())),n.$push(n.$fragment(")"))},{$$s:O}),s(O,"add_special",["autoload"],function e(s){var o=e.$$s==null?this:e.$$s,a=t,r=t;return s==null&&(s=t),a=o.$arglist().$children(),i(a.$length(),2)&&i(a["$[]"](0).$type(),"sym")&&(r=x("DependencyResolver").$new(o.$compiler(),a["$[]"](1),"ignore").$resolve(),n(r["$nil?"]())?o.$compiler().$warning("File for autoload of constant '"+a["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(o.$compiler().$requires()["$<<"](r),o.$compiler().$autoloads()["$<<"](r))),s.$call()},{$$s:O}),s(O,"add_special",["require_tree"],function e(n){var c,s=e.$$s==null?this:e.$$s,o=t,u=t,l=t,h=t,d=t;return n==null&&(n=t),c=[].concat(a(s.$arglist().$children())),o=c[0]==null?t:c[0],u=r(c,1),c,i(o.$type(),"str")&&(l=o.$children()["$[]"](0),s.$compiler().$required_trees()["$<<"](l),h=x("File").$dirname(s.$compiler().$file()),d=s.$Pathname(h).$join(l).$cleanpath().$to_s(),d.$force_encoding(l.$encoding()),o=o.$updated(t,[d])),s.arglist=s.$arglist().$updated(t,y([o],u)),n.$call()},{$$s:O}),s(O,"add_special",["block_given?"],function e(){var n=e.$$s==null?this:e.$$s;return n.sexp==null&&(n.sexp=t),n.$push(n.$compiler().$handle_block_given_call(n.sexp))},{$$s:O}),s(O,"add_special",["__callee__"],function e(){var t=e.$$s==null?this:e.$$s;return n(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))},{$$s:O}),s(O,"add_special",["__method__"],function e(){var t=e.$$s==null?this:e.$$s;return n(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))},{$$s:O}),s(O,"add_special",["__dir__"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(x("File").$dirname(c(x("Opal"),"Compiler").$module_name(t.$compiler().$file())).$inspect())},{$$s:O}),s(O,"add_special",["using"],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(o.$scope()["$accepts_using?"]())&&i(o.$arglist().$children().$count(),1)?o.$using_refinement(o.$arglist().$children().$first()):s.$call()},{$$s:O}),o(O,"$using_refinement",function(s){var o=this,c=t,r=t,i=[].concat(a(o.$scope().$refinements_temp()));return c=i[0]==null?t:i[0],r=i[1]==null?t:i[1],i,n(c)?o.$push("("+r+" = "+c+".slice(), "+r+".push(",o.$expr(s),"), "+o.$scope().$self()+")"):o.$push("("+r+" = [",o.$expr(s),"], "+o.$scope().$self()+")")}),s(O,"add_special",["debugger"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(t.$fragment("debugger"))},{$$s:O}),s(O,"add_special",["__OPAL_COMPILER_CONFIG__"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(t.$fragment("(new Map([['arity_check', "+t.$compiler()["$arity_check?"]()+"]]))"))},{$$s:O}),s(O,"add_special",["lambda"],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(o.$scope(),"defines_lambda",[],function(){return n.$call()})},{$$s:O}),s(O,"add_special",["nesting"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=o["$push_nesting?"](),n(i)&&o.$push("(Opal.Module.$$nesting = "+o.$scope().$nesting()+", "),s.$call(),n(i)?o.$push(")"):t},{$$s:O}),s(O,"add_special",["constants"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=o["$push_nesting?"](),n(i)&&o.$push("(Opal.Module.$$nesting = "+o.$scope().$nesting()+", "),s.$call(),n(i)?o.$push(")"):t},{$$s:O}),s(O,"add_special",["eval"],function e(n){var o=e.$$s==null?this:e.$$s,i=t,a=t;return n==null&&(n=t),o.$thrower("eval_return"),j(o.$arglist().$children().$length(),1)||f([o.$s("self"),t]["$include?"](o.$recvr()))?n.$call():(o.$scope().$nesting(),i=o.$scope().$new_temp(),a=s(o.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),o.$push("("+i+" = ",o.$expr(o.$arglist())),o.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+i),o.$push(", {scope_variables: ",a),o.$push(", arity_check: "+o.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),o.$push(""+o.$scope().$self()+".$eval("+i+"))"))},{$$s:O}),s(O,"add_special",["local_variables"],function e(o){var i=e.$$s==null?this:e.$$s,a=t;return o==null&&(o=t),n([i.$s("self"),t]["$include?"](i.$recvr()))?(a=s(i.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),i.$push(a)):o.$call()},{$$s:O}),s(O,"add_special",["binding"],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(i.$recvr()["$nil?"]())?(i.$scope().$nesting(),i.$push("Opal.Binding.$new("),i.$push(" function($code) {"),i.$push(" return eval($code);"),i.$push(" },"),i.$push(" ",s(i.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),i.$push(" ",i.$scope().$self(),","),i.$push(" ",i.$source_location()),i.$push(")")):o.$call()},{$$s:O}),s(O,"add_special",["__await__"],function e(o){var a,i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(i.$compiler().$async_await())?(i.$push(i.$fragment("(await (")),i.$push(i.$process(i.$recvr())),i.$push(i.$fragment("))")),(a=[!0],s(i.$scope(),"await_encountered=",a),a[a.length-1])):o.$call()},{$$s:O}),o(O,"$push_nesting?",function(){var o=this,s=t,i=t,a=t,r=t,s=o.$children().$first();return n(i=o.$children().$size()["$=="](2))?n(a=s["$nil?"]())?a:n(r=s.$type()["$=="]("const"))?s.$children().$last()["$=="]("Module"):r:i}),o(O,"$with_wrapper",function o(){var a=o.$$p||t,i=this;return o.$$p=null,n(i["$csend?"]())&&f(i.conditional_recvr)?s(i,"handle_conditional_send",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"with_wrapper",[],a.$to_proc())},{$$s:i}):n(i["$call_is_writer_that_needs_handling?"]())?s(i,"handle_writer",[],a.$to_proc()):e.yieldX(a,[])}),o(O,"$call_is_writer_that_needs_handling?",function(){var s=this,i=t,o=t;return n(i=n(o=s["$expr?"]())?o:s["$recv?"]())?n(o=s.$meth().$to_s()["$=~"](/^\w+=$/))?o:s.$meth()["$=="]("[]="):i}),o(O,"$handle_conditional_send",function n(){var i=n.$$p||t,s=this,o=t;return n.$$p=null,o=s.$scope().$new_temp(),s.$push(""+o+" = ",s.$expr(s.$receiver_sexp())),s.$push(", ("+o+" === nil || "+o+" == null) ? nil : "),s.conditional_recvr=o,e.yieldX(i,[]),s.$wrap("(",")")}),o(O,"$handle_writer",function n(){var i=n.$$p||t,o=this;return n.$$p=null,s(o,"with_temp",[],function n(s){var o=n.$$s==null?this:n.$$s;return s==null&&(s=t),o.$push("("+s+" = "),o.$compile_arguments(!0),o.$push(", "),o.with_writer_temp=s,e.yieldX(i,[]),o.with_writer_temp=!1,o.$push(", "),o.$push(""+s+"["+s+".length - 1])")},{$$s:o})}),function(l,d,h){var m=u(l,d,"DependencyResolver"),j=[m].concat(h),p=e.$r(j),f=m.$$prototype;return f.compiler=f.sexp=f.missing_dynamic_require=t,o(m,"$initialize",function(s,o,i){var a=this,r=t;return i==null&&(i=t),a.compiler=s,a.sexp=o,a.missing_dynamic_require=n(r=i)?r:a.compiler.$dynamic_require_severity()},-3),o(m,"$resolve",function(){var t=this;return t.$handle_part(t.sexp)}),o(m,"$handle_part",function(o,l){var u,j,d=this,f=t,h=t,y=t,m=t;if(l==null&&(l=d.missing_dynamic_require),n(o))switch(o.$type().valueOf()){case"str":return o.$children()["$[]"](0);case"dstr":return s(o.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$handle_part(n)},{$$s:d}).$join();case"begin":if(i(o.$children().$length(),1))return d.$handle_part(o.$children()["$[]"](0));break;case"send":if(j=o.$children(),u=g(j),f=u[0]==null?t:u[0],h=u[1]==null?t:u[1],y=r(u,2),j,m=s(y,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$handle_part(n,"ignore")},{$$s:d}),n(m["$include?"](t)))return t;if(n(f["$is_a?"](c(c(v,"AST"),"Node")))&&i(f.$type(),"const")&&i(f.$children().$last(),"File")){{if(i(h,"expand_path"))return s(d,"expand_path",a(m));if(i(h,"join"))return d.$expand_path(m.$join("/"));if(i(h,"dirname"))return d.$expand_path(m["$[]"](0).$split("/")["$[]"](b(0,-1,!0)).$join("/"))}}else if(i(h,"__dir__"))return p("File").$dirname(c(p("Opal"),"Compiler").$module_name(d.compiler.$file()));break;default:t}switch(l.valueOf()){case"error":return d.compiler.$error("Cannot handle dynamic require",d.sexp.$line());case"warning":return d.compiler.$warning("Cannot handle dynamic require",d.sexp.$line());default:return t}},-2),o(m,"$expand_path",function(n,o){return o==null&&(o=""),s((""+o+"/"+n).$split("/"),"each_with_object",[[]],function(n,s){return n==null&&(n=t),s==null&&(s=t),i(n,"")?t:i(n,"..")?s.$pop():s["$<<"](n)}).$join("/")},-2)}(C[0],null,C)}(O[0],C("Base"),O)}(O[0],O)}(m[0],m)},Opal.modules["opal/nodes/call_special"]=function(e){var r=e.module,o=e.klass,t=e.def,m=e.slice,h=e.send2,u=e.find_super,a=e.to_a,s=e.truthy,c=e.eqeq,i=e.send,l=e.top,d=[],n=e.nil;return e.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,extract_names,empty?,generate_names_definition,generate_names_assignments,stmt?,handle_statement,handle_non_statement,process,private,map,flatten,scan,to_proc"),l.$require("opal/nodes/base"),l.$require("opal/nodes/call"),function(l,d){var p=r(l,"Opal"),f=[p].concat(d);return function(l,d){var g=r(l,"Nodes"),f=[g].concat(d),p=e.$r(f);return function(e,n){var s=o(e,n,"JsAttrNode");return s.$handle("jsattr"),s.$children("recvr","property"),t(s,"$compile",function(){var t=this;return t.$push(t.$recv(t.$recvr()),"[",t.$expr(t.$property()),"]")})}(f[0],p("Base")),function(e,n){var s=o(e,n,"JsAttrAsgnNode");return s.$handle("jsattrasgn"),s.$children("recvr","property","value"),t(s,"$compile",function(){var t=this;return t.$push(t.$recv(t.$recvr()),"[",t.$expr(t.$property()),"] = ",t.$expr(t.$value()))})}(f[0],p("Base")),function(e,i){var r=o(e,i,"JsCallNode"),c=r.$$prototype;return c.iter=c.arglist=n,r.$handle("jscall"),t(r,"$initialize",function e(){var i,r,c=e.$$p||n,o=this;return e.$$p=null,i=m(arguments),r=i,h(o,u(o,"initialize",e,!1,!0),"initialize",a(r),c),s(o.iter)&&(o.arglist=o.arglist["$<<"](o.iter)),o.iter=n},-1),t(r,"$compile",function(){var t=this;return t.$default_compile()}),t(r,"$method_jsid",function(){var t=this;return"."+t.$meth()}),t(r,"$compile_using_send",function(){var t=this;return t.$push(t.$recv(t.$receiver_sexp()),t.$method_jsid(),".apply(null"),t.$compile_arguments(),s(t.$iter())&&t.$push(".concat(",t.$expr(t.$iter()),")"),t.$push(")")})}(f[0],p("CallNode")),function(e,r){var l=o(e,r,"Match3Node"),d=l.$$prototype;return d.level=n,l.$handle("match_with_lvasgn"),l.$children("lhs","rhs"),t(l,"$compile",function(){var t=this,o=n,i=n,a=n,r=n,o=t.$s("send",t.$lhs(),"=~",t.$rhs());return c(t.$lhs().$type(),"regexp")&&c(t.$lhs().$children().$first().$type(),"str")&&(i=t.$extract_names(t.$lhs()),s(i["$empty?"]())||(a=t.$generate_names_definition(),r=t.$generate_names_assignments(i),o=s(t["$stmt?"]())?t.$handle_statement(o,a,r):t.$handle_non_statement(o,a,r))),t.$push(t.$process(o,t.level))}),l.$private(),t(l,"$extract_names",function(t){var s=n,s=t.$children().$first().$children().$first();return i(s.$scan(/\(\?<([^>]*)>/).$flatten(),"map",[],"to_sym".$to_proc())}),t(l,"$generate_names_definition",function(){var t=this;return t.$s("lvasgn","$m3names",t.$s("if",t.$s("gvar","$~"),t.$s("send",t.$s("gvar","$~"),"named_captures"),t.$s("hash")))}),t(l,"$generate_names_assignments",function(t){var s=this;return i(t,"map",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$s("lvasgn",t,s.$s("send",s.$s("lvar","$m3names"),"[]",s.$s("sym",t)))},{$$s:s})}),t(l,"$handle_statement",function(t,n,s){var o=this;return i(o,"s",["begin",t,n].concat(a(s)))}),t(l,"$handle_non_statement",function(t,n,s){var o=this;return i(o,"s",["begin",o.$s("lvasgn","$m3tmp",t),n].concat(a(s)).concat([o.$s("lvar","$m3tmp")]))})}(f[0],p("Base"))}(f[0],f)}(d[0],d)},Opal.modules["opal/nodes/scope"]=function(e){var d=e.module,b=e.klass,p=e.slice,f=e.send2,h=e.find_super,c=e.to_a,n=e.def,o=e.send,s=e.truthy,m=e.assign_ivar_val,a=e.return_ivar,l=e.not,r=e.rb_plus,i=e.eqeq,g=e.thrower,v=e.top,u=[],t=e.nil;return e.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?,unshift,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"),v.$require("opal/nodes/base"),function(u,v){var y=d(u,"Opal"),j=[y].concat(v);return function(u,v){var y=d(u,"Nodes"),j=[y].concat(v),_=e.$r(j);return function(d,u,v){var j=b(d,u,"ScopeNode"),w=[j].concat(v),_=e.$r(w),y=j.$$prototype;return y.type=y.is_lambda=y.defs=y.parent=y.temps=y.locals=y.proto_ivars=y.compiler=y.ivars=y.gvars=y.args=y.queue=y.while_stack=y.identity=y.rescues=y.next_retry_id=y.refinements_temp=y.block_prepared=t,j.$attr_accessor("parent"),j.$attr_accessor("name"),j.$attr_accessor("block_name"),j.$attr_reader("scope_name"),j.$attr_reader("locals"),j.$attr_reader("ivars"),j.$attr_reader("gvars"),j.$attr_accessor("mid"),j.$attr_accessor("defs"),j.$attr_reader("methods"),j.$attr_accessor("catch_return","has_break","has_retry"),j.$attr_accessor("rescue_else_sexp"),n(j,"$initialize",function e(){var o,i,a=e.$$p||t,s=this;return e.$$p=null,o=p(arguments),i=o,f(s,h(s,"initialize",e,!1,!0),"initialize",c(i),a),s.locals=[],s.temps=[],s.args=[],s.ivars=[],s.gvars=[],s.parent=t,s.queue=[],s.unique="a",s.while_stack=[],s.identity=t,s.defs=t,s.methods=[],s.uses_block=!1,s.in_ensure=!1,s.proto_ivars=[]},-1),n(j,"$in_scope",function n(){var i=n.$$p||t,s=this;return n.$$p=null,o(s,"indent",[],function n(){var a,s=n.$$s==null?this:n.$$s;return s.parent==null&&(s.parent=t),s.parent=s.$compiler().$scope(),s.$compiler()["$scope="](s),e.yield1(i,s),(a=[s.parent],o(s.$compiler(),"scope=",a),a[a.length-1])},{$$s:s})}),n(j,"$class_scope?",function(){var n=this,o=t;return s(o=n.type["$=="]("class"))?o:n.type["$=="]("module")}),n(j,"$class?",function(){var t=this;return t.type["$=="]("class")}),n(j,"$module?",function(){var t=this;return t.type["$=="]("module")}),n(j,"$sclass?",function(){var t=this;return t.type["$=="]("sclass")}),n(j,"$top?",function(){var t=this;return t.type["$=="]("top")}),n(j,"$iter?",function(){var t=this;return t.type["$=="]("iter")}),n(j,"$def?",function(){var n=this,o=t;return s(o=n.type["$=="]("def"))?o:n.type["$=="]("defs")}),n(j,"$lambda?",function(){var n=this,o=t;return s(o=n["$iter?"]())?n.is_lambda:o}),n(j,"$is_lambda!",m("is_lambda",!0)),n(j,"$defines_lambda",function n(){var o=n.$$p||t,s=this;return n.$$p=null,s.lambda_definition=!0,e.yieldX(o,[]),s.lambda_definition=!1}),n(j,"$lambda_definition?",a("lambda_definition")),n(j,"$def_in_class?",function(){var n=this,o=t,i=t,a=t;return s(o=s(i=s(a=n.defs["$!"]())?n.type["$=="]("def"):a)?n.parent:i)?n.parent["$class?"]():o}),n(j,"$to_vars",function(){var n=this,d=t,u=t,h=t,a=t,i=t,m=t,d=n.temps.$dup();return o(d,"push",c(o(n.locals,"map",[],function(n){return n==null&&(n=t),""+n+" = nil"}))),u=o(n.$ivars(),"map",[],function(n){return n==null&&(n=t),"if (self"+n+" == null) self"+n+` = nil; +`}),h=o(n.$gvars(),"map",[],function(n){return n==null&&(n=t),"if ($gvars"+n+" == null) $gvars"+n+` = nil; +`}),s(n["$class?"]())&&l(n.proto_ivars["$empty?"]())&&d["$<<"]("$proto = self.$$prototype"),a=n.compiler.$parser_indent(),i=s(d["$empty?"]())?"":"var "+d.$join(", ")+`; +`,s(n.$ivars()["$empty?"]())||(i=r(i,""+a+u.$join(a))),s(n.$gvars()["$empty?"]())||(i=r(i,""+a+h.$join(a))),s(n["$class?"]())&&l(n.proto_ivars["$empty?"]())&&(m=o(n.proto_ivars,"map",[],function(n){return n==null&&(n=t),"$proto"+n}).$join(" = "),i=""+i+` +`+a+m+" = nil;"),n.$fragment(i)}),n(j,"$add_scope_ivar",function(n){var o=this;return s(o["$def_in_class?"]())?o.parent.$add_proto_ivar(n):s(o.ivars["$include?"](n))?t:o.ivars["$<<"](n)}),n(j,"$add_scope_gvar",function(n){var o=this;return s(o.gvars["$include?"](n))?t:o.gvars["$<<"](n)}),n(j,"$add_proto_ivar",function(n){var o=this;return s(o.proto_ivars["$include?"](n))?t:o.proto_ivars["$<<"](n)}),n(j,"$add_arg",function(t){var n=this;return s(n.args["$include?"](t))||n.args["$<<"](t),t}),n(j,"$add_scope_local",function(n){var o=this;return s(o["$has_local?"](n))?t:o.locals["$<<"](n)}),n(j,"$has_local?",function(t){var n=this;return!!(s(n.locals["$include?"](t))||s(n.args["$include?"](t))||s(n.temps["$include?"](t)))||!!(s(n.parent)&&i(n.type,"iter"))&&n.parent["$has_local?"](t)}),n(j,"$scope_locals",function(){var n=this,a=t,a=n.locals["$|"](n.args)["$|"](s(n.parent)&&i(n.type,"iter")?n.parent.$scope_locals():[]);return o(a,"reject",[],function(n){return n==null&&(n=t),n.$to_s()["$start_with?"]("$")})}),n(j,"$add_scope_temp",function(n){var o=this;return s(o["$has_temp?"](n))?t:o.temps.$push(n)}),n(j,"$prepend_scope_temp",function(n){var o=this;return s(o["$has_temp?"](n))?t:o.temps.$unshift(n)}),n(j,"$has_temp?",function(t){var n=this;return n.temps["$include?"](t)}),n(j,"$new_temp",function(){var n=this,o=t;return s(n.queue["$empty?"]())?(o=n.$next_temp(),n.temps["$<<"](o),o):n.queue.$pop()}),n(j,"$next_temp",function(){var i=this,n=t,n=t;return function(){try{var e=g("break");return o(i,"loop",[],function o(){var i=o.$$s==null?this:o.$$s;if(i.unique==null&&(i.unique=t),n="$"+i.unique,i.unique=i.unique.$succ(),s(i["$has_local?"](n)))return t;e.$throw(t,o.$$is_lambda)},{$$s:i})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n}),n(j,"$queue_temp",function(t){var n=this;return n.queue["$<<"](t)}),n(j,"$push_while",function(){var s=this,n=t,n=new Map;return s.while_stack.$push(n),n}),n(j,"$pop_while",function(){var t=this;return t.while_stack.$pop()}),n(j,"$in_while?",function(){var t=this;return t.while_stack["$empty?"]()["$!"]()}),n(j,"$uses_block!",function(){var t=this;return i(t.type,"iter")&&s(t.parent)?t.parent["$uses_block!"]():(t.uses_block=!0,t["$identify!"]())}),n(j,"$identify!",function(n){var o=this,i=t,a=t,r=t;return n==null&&(n=t),s(o.identity)?o.identity:(s(o["$valid_name?"](o.$mid()))?o.identity="$$"+o.$mid():(n=s(i=n)?i:[s(a=o.$parent())?s(r=o.$parent().$name())?r:o.$parent().$scope_name():a,o.$mid()].$compact().$join("_"),o.identity=o.compiler.$unique_temp(n)),o.identity)},-1),j.$attr_reader("identity"),n(j,"$find_parent_def",function(){for(var o=this,n=t,n=o;s(n=n.$parent());)if(s(n["$def?"]())||s(n["$lambda?"]()))return n;return t}),n(j,"$super_chain",function(){var l=this,a=t,n=t,r=t,c=t,o=[[],l,"null","null"];for(a=o[0],n=o[1],r=o[2],c=o[3],o;s(n);)if(i(n.$type(),"iter"))a["$<<"](n["$identify!"]()),s(n.$parent())&&(n=n.$parent());else if(s(["def","defs"]["$include?"](n.$type()))){r=n["$identify!"](),c="'"+n.$mid()+"'";break}else break;return[a,r,c]}),n(j,"$uses_block?",a("uses_block")),n(j,"$has_rescue_else?",function(){var t=this;return t.$rescue_else_sexp()["$nil?"]()["$!"]()}),n(j,"$in_rescue",function n(o){var c=n.$$p||t,i=this,a=t,r=t;return n.$$p=null,i.rescues=s(a=i.rescues)?a:[],i.rescues.$push(o),r=e.yieldX(c,[]),i.rescues.$pop(),r}),n(j,"$current_rescue",function(){var t=this;return t.rescues.$last()}),n(j,"$in_resbody",function n(){var s=n.$$p||t,o=this,i=t;return n.$$p=null,s!==t?(o.in_resbody=!0,i=e.yieldX(s,[]),o.in_resbody=!1,i):t}),n(j,"$in_resbody?",a("in_resbody")),n(j,"$in_ensure",function n(){var s=n.$$p||t,o=this,i=t;return n.$$p=null,s!==t?(o.in_ensure=!0,i=e.yieldX(s,[]),o.in_ensure=!1,i):t}),n(j,"$in_ensure?",a("in_ensure")),n(j,"$gen_retry_id",function(){var n=this,o=t;return n.next_retry_id=s(o=n.next_retry_id)?o:"retry_0",n.next_retry_id=n.next_retry_id.$succ()}),n(j,"$accepts_using?",function(){var t=this;return[_("TopNode"),_("ModuleNode"),_("ClassNode"),_("IterNode")]["$include?"](t.$class())}),n(j,"$collect_refinements_temps",function(t){var n=this;return t==null&&(t=[]),s(n.refinements_temp)&&t["$<<"](n.refinements_temp),s(n.$parent())?n.$parent().$collect_refinements_temps(t):t},-1),n(j,"$new_refinements_temp",function(){var s=this,n=t,n=s.$compiler().$unique_temp("$refn");return s.$add_scope_local(n),n}),n(j,"$refinements_temp",function(){var s=this,i=t,o=t,n=[s.refinements_temp,s.$new_refinements_temp()];return i=n[0],o=n[1],n,s.refinements_temp=o,[i,o]}),n(j,"$self",function(){var t=this;return t.define_self=!0,"self"}),n(j,"$nesting",function(){var t=this;return t.define_nesting=!0,"$nesting"}),n(j,"$relative_access",function(){var t=this;return t.define_relative_access=t.define_nesting=!0,"$$"}),n(j,"$prepare_block",function(n){var o=this,i=t;return n==null&&(n=t),i=o.$scope().$identity(),s(n)&&o["$block_name="](n),o.$add_temp(""+o.$block_name()+" = "+i+".$$p || nil"),s(o.block_prepared)?t:(o.$line(""+i+".$$p = null;"),o.block_prepared=!0)},-1),j.$attr_accessor("await_encountered")}(j[0],_("Base"),j)}(j[0],j)}(u[0],u)},Opal.modules["opal/nodes/module"]=function(e){var o=e.module,l=e.klass,i=e.to_ary,n=e.truthy,a=e.send,d=e.rb_plus,s=e.def,u=e.top,r=[],t=e.nil,c=e.$$$;return e.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars"),u.$require("opal/nodes/scope"),function(r,u){var m=o(r,"Opal"),h=[m].concat(u);return function(r,u){var m=o(r,"Nodes"),h=[m].concat(u),f=e.$r(h);return function(o,r,u){var h=l(o,r,"ModuleNode"),p=[h].concat(u),m=e.$r(p),f=h.$$prototype;return f.define_nesting=f.define_relative_access=t,h.$handle("module"),h.$children("cid","body"),s(h,"$compile",function(){var s=this,r=t,l=t,u=t,h=t,f=t,p=s.$name_and_base(),o=i(p);return r=o[0]==null?t:o[0],l=o[1]==null?t:o[1],p,s.$helper("module"),n(s.$body()["$nil?"]())?n(s["$stmt?"]())?s.$unshift("$module(",l,", '"+r+"')"):s.$unshift("($module(",l,", '"+r+"'), nil)"):(s.$line(" var self = $module($base, '"+r+"');"),a(s,"in_scope",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$scope()["$name="](r),a(t,"in_closure",[c(m("Closure"),"MODULE")["$|"](c(m("Closure"),"JS_FUNCTION"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$compile_body()},{$$s:t})},{$$s:s}),n(s.$await_encountered())?(u="(await ",h=")",f="async ",s.$parent()["$await_encountered="](!0)):(o=["","",""],u=o[0],h=o[1],f=o[2],o),s.$unshift(""+u+"("+f+"function($base"+(n(s.define_nesting)?", $parent_nesting":t)+") {"),s.$line("})(",l,""+(n(s.define_nesting)?d(", ",s.$scope().$nesting()):t)+")"+h))}),h.$private(),s(h,"$name_and_base",function(){var o=this,a=t,r=t,c=o.$cid().$children(),s=i(c);return a=s[0]==null?t:s[0],r=s[1]==null?t:s[1],c,n(a["$nil?"]())?[r,""+o.$scope().$nesting()+"[0]"]:[r,o.$expr(a)]}),s(h,"$compile_body",function(){var s=this,o=t,o=s.$stmt(s.$compiler().$returns(s.$body()));return s.$empty_line(),n(s.define_nesting)&&s.$add_temp("$nesting = [self].concat($parent_nesting)"),n(s.define_relative_access)&&s.$add_temp("$$ = Opal.$r($nesting)"),s.$line(s.$scope().$to_vars()),s.$line(o)})}(h[0],f("ScopeNode"),h)}(h[0],h)}(r[0],r)},Opal.modules["opal/nodes/class"]=function(e){var s=e.module,c=e.klass,l=e.to_ary,n=e.truthy,o=e.send,d=e.rb_plus,i=e.def,u=e.top,a=[],t=e.nil,r=e.$$$;return e.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr"),u.$require("opal/nodes/module"),function(a,u){var m=s(a,"Opal"),h=[m].concat(u);return function(a,u){var m=s(a,"Nodes"),h=[m].concat(u),f=e.$r(h);return function(s,a,u){var h=c(s,a,"ClassNode"),f=[h].concat(u),m=e.$r(f),p=h.$$prototype;return p.define_nesting=t,h.$handle("class"),h.$children("cid","sup","body"),i(h,"$compile",function(){var s=this,a=t,c=t,u=t,h=t,f=t,p=s.$name_and_base(),i=l(p);return a=i[0]==null?t:i[0],c=i[1]==null?t:i[1],p,s.$helper("klass"),n(s.$body()["$nil?"]())?n(s["$stmt?"]())?s.$unshift("$klass(",c,", ",s.$super_code(),", '"+a+"')"):s.$unshift("($klass(",c,", ",s.$super_code(),", '"+a+"'), nil)"):(s.$line(" var self = $klass($base, $super, '"+a+"');"),o(s,"in_scope",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$scope()["$name="](a),o(t,"in_closure",[r(m("Closure"),"MODULE")["$|"](r(m("Closure"),"JS_FUNCTION"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$compile_body()},{$$s:t})},{$$s:s}),n(s.$await_encountered())?(u="(await ",h=")",f="async ",s.$parent()["$await_encountered="](!0)):(i=["","",""],u=i[0],h=i[1],f=i[2],i),s.$unshift(""+u+"("+f+"function($base, $super"+(n(s.define_nesting)?", $parent_nesting":t)+") {"),s.$line("})(",c,", ",s.$super_code(),""+(n(s.define_nesting)?d(", ",s.$scope().$nesting()):t)+")"+h))}),i(h,"$super_code",function(){var t=this;return n(t.$sup())?t.$expr(t.$sup()):"null"})}(h[0],f("ModuleNode"),h)}(h[0],h)}(a[0],a)},Opal.modules["opal/nodes/singleton_class"]=function(e){var n=e.module,i=e.klass,a=e.send,s=e.truthy,r=e.def,c=e.top,o=[],t=e.nil;return e.add_stubs("require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting"),c.$require("opal/nodes/scope"),function(o,c){var d=n(o,"Opal"),l=[d].concat(c);return function(o,c){var d=n(o,"Nodes"),l=[d].concat(c),u=e.$r(l);return function(e,n){var o=i(e,n,"SingletonClassNode");return o.$handle("sclass"),o.$children("object","body"),r(o,"$compile",function(){var n=this;return n.$push("(function(self, $parent_nesting) {"),a(n,"in_scope",[],function e(){var n=e.$$s==null?this:e.$$s,o=t;return n.define_nesting==null&&(n.define_nesting=t),n.define_relative_access==null&&(n.define_relative_access=t),o=n.$stmt(n.$compiler().$returns(n.$body())),s(n.define_nesting)&&n.$add_temp("$nesting = [self].concat($parent_nesting)"),s(n.define_relative_access)&&n.$add_temp("$$ = Opal.$r($nesting)"),n.$line(n.$scope().$to_vars()),n.$line(o)},{$$s:n}),n.$line("})(Opal.get_singleton_class(",n.$recv(n.$object()),"), "+n.$scope().$nesting()+")")})}(l[0],u("ScopeNode"))}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/args/arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ArgNode");return n.$handle("arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope().$add_arg(t.$name()),t.$push(t.$name().$to_s())})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/arity_check"]=function(e){var d=e.module,c=e.klass,v=e.slice,g=e.send2,m=e.find_super,o=e.to_a,s=e.def,n=e.truthy,i=e.rb_minus,u=e.not,p=e.rb_lt,r=e.rb_plus,f=e.rb_gt,a=e.send,h=e.top,l=[],t=e.nil,b=e.$$$;return e.add_stubs("require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity=,scope,arity,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"),h.$require("opal/nodes/base"),h.$require("opal/rewriters/arguments"),function(l,h){var y=d(l,"Opal"),j=[y].concat(h);return function(l,h){var _=d(l,"Nodes"),j=[_].concat(h),y=e.$r(j);return function(l,d,h){var j=c(l,d,"ArityCheckNode"),_=[j].concat(h),w=e.$r(_),y=j.$$prototype;return y.kwargs=y.kwoptargs=y.kwrestarg=y.all_args=y.args=y.optargs=y.restarg=y.postargs=y.arity_checks=t,j.$handle("arity_check"),j.$children("args_node"),s(j,"$initialize",function e(){var a,r,c=e.$$p||t,s=this,i=t;return e.$$p=null,a=v(arguments),r=a,g(s,m(s,"initialize",e,!1,!0),"initialize",o(r),c),i=b(w("Rewriters"),"Arguments").$new(s.$args_node().$children()),s.args=i.$args(),s.optargs=i.$optargs(),s.restarg=i.$restarg(),s.postargs=i.$postargs(),s.kwargs=i.$kwargs(),s.kwoptargs=i.$kwoptargs(),s.kwrestarg=i.$kwrestarg(),s.kwnilarg=i.$kwnilarg()},-1),s(j,"$compile",function(){var s=this,o=t;return s.$scope()["$arity="](s.$arity()),n(s.$compiler()["$arity_check?"]())?n(s.$arity_checks()["$empty?"]())?t:(s.$helper("ac"),o=s.$scope().$mid().$to_s().$inspect(),s.$line("var $arity = arguments.length;"),s.$push(" if ("+s.$arity_checks().$join(" || ")+") { $ac($arity, "+s.$arity()+", this, "+o+"); }")):t}),s(j,"$kwargs",function(){var t=this;return[].concat(o(t.kwargs)).concat(o(t.kwoptargs)).concat([t.kwrestarg]).$compact()}),s(j,"$all_args",function(){var s=this,i=t;return s.all_args=n(i=s.all_args)?i:[].concat(o(s.args)).concat(o(s.optargs)).concat([s.restarg]).concat(o(s.postargs)).concat(o(s.$kwargs())).$compact()}),s(j,"$arity_checks",function(){var a,s=this,o=t,c=t,l=t;return n((a=s.arity_checks,a!=null&&a!==t?"instance-variable":t))?s.arity_checks:(o=s.$all_args().$size(),o=i(o,s.optargs.$size()),n(s.restarg)&&(o=i(o,1)),o=i(o,s.$kwargs().$size()),(u(s.optargs["$empty?"]())||u(s.$kwargs()["$empty?"]())||n(s.restarg))&&(o=i(o["$-@"](),1)),s.arity_checks=[],n(p(o,0))?(c=r(o,1)["$-@"](),l=s.$all_args().$size(),n(f(c,0))&&s.arity_checks["$<<"]("$arity < "+c),n(s.restarg)||s.arity_checks["$<<"]("$arity > "+l)):s.arity_checks["$<<"]("$arity !== "+o),s.arity_checks)}),s(j,"$arity",function(){var t=this;return n(t.restarg)||n(t.optargs["$any?"]())||n(t["$has_only_optional_kwargs?"]())?t.$negative_arity():t.$positive_arity()}),s(j,"$negative_arity",function(){var o=this,c=t,s=t,c=a(o.$all_args(),"select",[],function(n){return n==null&&(n=t),["arg","mlhs"]["$include?"](n.$type())}),s=c.$size();return n(o["$has_required_kwargs?"]())&&(s=r(s,1)),i(s["$-@"](),1)}),s(j,"$positive_arity",function(){var o=this,s=t,s=o.$all_args().$size(),s=i(s,o.$kwargs().$size());return n(o.$kwargs()["$any?"]())&&(s=r(s,1)),s}),s(j,"$has_only_optional_kwargs?",function(){var s=this,o=t;return n(o=s.$kwargs()["$any?"]())?a(s.$kwargs(),"all?",[],function(n){return n==null&&(n=t),["kwoptarg","kwrestarg"]["$include?"](n.$type())}):o}),s(j,"$has_required_kwargs?",function(){var n=this;return a(n.$kwargs(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("kwarg")})})}(j[0],y("Base"),j),function(e,o){var i=c(e,o,"IterArityCheckNode");return i.$handle("iter_arity_check"),s(i,"$compile",function(){var o=this,s=t,a=t,r=t,c=t,i=t;if(o.$scope()["$arity="](o.$arity()),!n(o.$compiler()["$arity_check?"]()))return t;if(n(o.$arity_checks()["$empty?"]()))return t;for(s=o.$scope();!n(n(a=n(r=s["$def?"]())?r:s["$class_scope?"]())?a:s["$top?"]());)s=s.$parent();return c=n(s["$top?"]())?"'
'":n(s["$def?"]())?"'"+s.$mid()+"'":n(s["$class?"]())?"''":n(s["$module?"]())?"''":t,i=o.$scope().$identity(),o.$line("if ("+i+".$$is_lambda || "+i+".$$define_meth) {"),o.$line(" var $arity = arguments.length;"),o.$line(" if ("+o.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+o.$arity()+", "+c+"); }"),o.$line("}")})}(j[0],y("ArityCheckNode"))}(j[0],j)}(l[0],l)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,helper,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"EnsureKwargsAreKwargs");return n.$handle("ensure_kwargs_are_kwargs"),o(n,"$compile",function(){var t=this;return t.$helper("ensure_kwargs"),t.$push("$kwargs = $ensure_kwargs($kwargs)")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractBlockarg");return n.$handle("extract_blockarg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope()["$uses_block!"](),t.$scope().$add_arg(t.$name()),t.$scope().$prepare_block(t.$name())})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(e){var t=e.module,o=e.klass,i=e.def,a=e.top,n=[],s=e.nil;return e.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s"),a.$require("opal/nodes/base"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a);return function(n,a){var c=t(n,"Args"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=o(e,t,"ExtractKwarg"),a=n.$$prototype;return a.sexp=s,n.$handle("extract_kwarg"),n.$children("lvar_name"),i(n,"$compile",function(){var t=this,n=s,n=t.sexp.$meta()["$[]"]("arg_name");return t.$scope().$used_kwargs()["$<<"](n),t.$add_temp(t.$lvar_name()),t.$helper("get_kwarg"),t.$push(""+t.$lvar_name()+" = $get_kwarg($kwargs, "+n.$to_s().$inspect()+")")})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,add_temp,helper,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractKwargs");return n.$handle("extract_kwargs"),o(n,"$compile",function(){var t=this;return t.$add_temp("$kwargs"),t.$helper("extract_kwargs"),t.$push("$kwargs = $extract_kwargs($post_args)")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(e){var t=e.module,o=e.klass,i=e.eqeq,a=e.def,r=e.top,s=[],n=e.nil;return e.add_stubs("require,handle,children,helper,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,push,expr"),r.$require("opal/nodes/base"),function(s,r){var l=t(s,"Opal"),c=[l].concat(r);return function(s,r){var l=t(s,"Nodes"),c=[l].concat(r);return function(s,r){var l=t(s,"Args"),c=[l].concat(r),d=e.$r(c);return function(e,t){var s=o(e,t,"ExtractKwoptarg"),r=s.$$prototype;return r.sexp=n,s.$handle("extract_kwoptarg"),s.$children("lvar_name","default_value"),a(s,"$compile",function(){var t=this,s=n;return t.$helper("hash_get"),s=t.sexp.$meta()["$[]"]("arg_name"),t.$scope().$used_kwargs()["$<<"](s),t.$add_temp(t.$lvar_name()),t.$line(""+t.$lvar_name()+" = $hash_get($kwargs, "+s.$to_s().$inspect()+");"),i(t.$default_value().$children()["$[]"](1),"undefined")?n:t.$push("if ("+t.$lvar_name()+" == null) "+t.$lvar_name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(e){var n=e.module,i=e.klass,a=e.truthy,s=e.def,r=e.send,c=e.top,o=[],t=e.nil;return e.add_stubs("require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join"),c.$require("opal/nodes/base"),function(o,c){var d=n(o,"Opal"),l=[d].concat(c);return function(o,c){var d=n(o,"Nodes"),l=[d].concat(c);return function(o,c){var d=n(o,"Args"),l=[d].concat(c),u=e.$r(l);return function(e,n){var o=i(e,n,"ExtractKwrestarg");return o.$handle("extract_kwrestarg"),o.$children("name"),s(o,"$compile",function(){var n=this,s=t,o=t,s=a(o=n.$name())?o:"$kw_rest_arg";return n.$add_temp(s),n.$helper("kwrestargs"),n.$push(""+s+" = $kwrestargs($kwargs, "+n.$used_kwargs()+")")}),s(o,"$used_kwargs",function(){var s=this,n=t,n=r(s.$scope().$used_kwargs(),"map",[],function(n){return n==null&&(n=t),"'"+n+"': true"});return"{"+n.$join(",")+"}"})}(l[0],u("Base"))}(l[0],l)}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/args/extract_optarg"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,==,[],default_value,push,name,expr"),a.$require("opal/nodes/base"),function(n,a){var l=t(n,"Opal"),c=[l].concat(a);return function(n,a){var l=t(n,"Nodes"),c=[l].concat(a);return function(n,a){var l=t(n,"Args"),c=[l].concat(a),d=e.$r(c);return function(e,t){var n=s(e,t,"ExtractOptargNode");return n.$handle("extract_optarg"),n.$children("name","default_value"),i(n,"$compile",function(){var t=this;return o(t.$default_value().$children()["$[]"](1),"undefined")?r:t.$push("if ("+t.$name()+" == null) "+t.$name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractPostArg");return n.$handle("extract_post_arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$add_temp(t.$name()),t.$line(""+t.$name()+" = $post_args.shift();"),t.$push("if ("+t.$name()+" == null) "+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr"),a.$require("opal/nodes/base"),function(n,a){var l=t(n,"Opal"),c=[l].concat(a);return function(n,a){var l=t(n,"Nodes"),c=[l].concat(a);return function(n,a){var l=t(n,"Args"),c=[l].concat(a),d=e.$r(c);return function(e,t){var n=s(e,t,"ExtractPostOptarg");return n.$handle("extract_post_optarg"),n.$children("name","default_value","args_to_keep"),i(n,"$compile",function(){var t=this;return t.$add_temp(t.$name()),t.$line("if ($post_args.length > "+t.$args_to_keep()+") "+t.$name()+" = $post_args.shift();"),o(t.$default_value().$children()["$[]"](1),"undefined")?r:t.$push("if ("+t.$name()+" == null) "+t.$name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/args/extract_restarg"]=function(e){var t=e.module,o=e.klass,i=e.truthy,a=e.eqeq,r=e.def,c=e.top,n=[],s=e.nil;return e.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,push"),c.$require("opal/nodes/base"),function(n,c){var d=t(n,"Opal"),l=[d].concat(c);return function(n,c){var d=t(n,"Nodes"),l=[d].concat(c);return function(n,c){var d=t(n,"Args"),l=[d].concat(c),u=e.$r(l);return function(e,t){var n=o(e,t,"ExtractRestarg");return n.$handle("extract_restarg"),n.$children("name","args_to_keep"),r(n,"$compile",function(){var t=this,n=s,o=s,n=i(o=t.$name())?o:"$rest_arg";return t.$add_temp(n),a(t.$args_to_keep(),0)?t.$push(""+n+" = $post_args"):t.$push(""+n+" = $post_args.splice(0, $post_args.length - "+t.$args_to_keep()+")")})}(l[0],u("Base"))}(l[0],l)}(l[0],l)}(n[0],n)},Opal.modules["opal/nodes/args/fake_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,next_temp,scope,add_arg,push"),i.$require("opal/nodes/base"),function(n,i){var c=t(n,"Opal"),r=[c].concat(i);return function(n,i){var c=t(n,"Nodes"),r=[c].concat(i);return function(n,i){var c=t(n,"Args"),r=[c].concat(i),l=e.$r(r);return function(e,t){var n=s(e,t,"FakeArgNode");return n.$handle("fake_arg"),o(n,"$compile",function(){var t=this,n=a,n=t.$scope().$next_temp();return t.$scope().$add_arg(n),t.$push(n)})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,push,name"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"InitializeIterarg");return n.$handle("initialize_iter_arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$push("if ("+t.$name()+" == null) "+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"InitializeShadowarg");return n.$handle("initialize_shadowarg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope().$locals()["$<<"](t.$name()),t.$scope().$add_arg(t.$name()),t.$push(""+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/parameters"]=function(e){var s=e.module,c=e.klass,t=e.def,l=e.send,o=e.return_val,i=e.truthy,a=e.eqeq,r=[],n=e.nil;return e.add_stubs("children,map,public_send,type,join,compact,[],meta,=="),function(e,r){var u=s(e,"Opal"),d=[u].concat(r);return function(e,r){var u=s(e,"Nodes"),d=[u].concat(r);return function(e,r){var d=s(e,"Args"),u=[d].concat(r);return function(e,s){var r=c(e,s,"Parameters"),d=r.$$prototype;return d.args=n,t(r,"$initialize",function(t){var n=this;return n.args=t.$children()}),t(r,"$to_code",function(){var t=this,s=n,s=l(t.args,"map",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$public_send("on_"+t.$type(),t)},{$$s:t});return"["+s.$compact().$join(", ")+"]"}),t(r,"$on_arg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['req', '"+s+"']"}),t(r,"$on_mlhs",o("['req']")),t(r,"$on_optarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['opt', '"+s+"']"}),t(r,"$on_restarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return i(s)?(a(s,"fwd_rest_arg")&&(s="*"),"['rest', '"+s+"']"):"['rest']"}),t(r,"$on_kwarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['keyreq', '"+s+"']"}),t(r,"$on_kwoptarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['key', '"+s+"']"}),t(r,"$on_kwrestarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return i(s)?"['keyrest', '"+s+"']":"['keyrest']"}),t(r,"$on_blockarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return a(s,"fwd_block_arg")&&(s="&"),"['block', '"+s+"']"}),t(r,"$on_kwnilarg",o("['nokey']")),t(r,"$on_shadowarg",o(n))}(u[0],null)}(d[0],d)}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,add_temp,helper,==,offset,push"),a.$require("opal/nodes/base"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a);return function(n,a){var c=t(n,"Args"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=s(e,t,"PreparePostArgs");return n.$handle("prepare_post_args"),n.$children("offset"),i(n,"$compile",function(){var t=this;return t.$add_temp("$post_args"),t.$helper("slice"),o(t.$offset(),0)?t.$push("$post_args = $slice(arguments)"):t.$push("$post_args = $slice(arguments, "+t.$offset()+")")})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args"]=function(e){var n=e.module,i=e.klass,a=e.send,r=e.neqeq,c=e.def,t=e.top,s=[],o=e.nil;return e.add_stubs("require,handle,each_with_index,children,!=,push,process"),t.$require("opal/nodes/base"),t.$require("opal/nodes/args/arg"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),t.$require("opal/nodes/args/extract_block_arg"),t.$require("opal/nodes/args/extract_kwarg"),t.$require("opal/nodes/args/extract_kwargs"),t.$require("opal/nodes/args/extract_kwoptarg"),t.$require("opal/nodes/args/extract_kwrestarg"),t.$require("opal/nodes/args/extract_optarg"),t.$require("opal/nodes/args/extract_post_arg"),t.$require("opal/nodes/args/extract_post_optarg"),t.$require("opal/nodes/args/extract_restarg"),t.$require("opal/nodes/args/fake_arg"),t.$require("opal/nodes/args/initialize_iterarg"),t.$require("opal/nodes/args/initialize_shadowarg"),t.$require("opal/nodes/args/parameters"),t.$require("opal/nodes/args/prepare_post_args"),function(t,s){var d=n(t,"Opal"),l=[d].concat(s);return function(t,s){var d=n(t,"Nodes"),l=[d].concat(s),u=e.$r(l);return function(e,t){var n=i(e,t,"ArgsNode");return n.$handle("args"),c(n,"$compile",function(){var t=this;return a(t.$children(),"each_with_index",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),r(n,0)&&s.$push(", "),s.$push(s.$process(t))},{$$s:t})})}(l[0],u("Base"))}(l[0],l)}(s[0],s)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(e){var c=e.module,p=e.klass,f=e.const_set,n=e.send,i=e.def,m=e.ensure_kwargs,d=e.kwrestargs,s=e.truthy,l=e.defs,h=e.eqeq,u=e.thrower,o=e.lambda,a=e.range,r=[],t=e.nil;return e.add_stubs("new,instance_exec,to_proc,when,helper,name,transform,[],[]=,<<,select,include?,for,arity_check?,compiler,compile_body,is_a?,each,shortcuts_for,match?,==,mid,warn,compile,define_shortcut,type,stmts,push,simple_value?,expr,to_sym,to_s,first,children,updated,length,inline_args,last"),function(r,g){var b=c(r,"Opal"),v=[b].concat(g);return function(r,g){var b=c(r,"Nodes"),v=[b].concat(g),j=e.$r(v);return function(r,c,g){var v=p(r,c,"NodeWithArgs"),j=[v].concat(g),b=e.$r(j);return f(j[0],"Shortcut",n(b("Struct"),"new",["name","for","when","transform"],function e(){var t=e.$$s==null?this:e.$$s;return i(t,"$match?",function(t){var s=this;return n(t,"instance_exec",[],s.$when().$to_proc())}),i(t,"$compile",function(t){var s=this;return t.$helper(s.$name()),n(t,"instance_exec",[],s.$transform().$to_proc())})},{$$s:v})),v.shortcuts=[],v.shortcuts_for=new Map,l(v,"$define_shortcut",function e(n,o){var i,c=e.$$p||t,a=this,r=t;return a.shortcuts==null&&(a.shortcuts=t),e.$$p=null,o=m(o),i=d(o,{}),s(r=i["$[]"]("for"))?r:i["$[]="]("for","def"),a.shortcuts["$<<"](b("Shortcut").$new(n,i["$[]"]("for"),i["$[]"]("when"),c))},-2),l(v,"$shortcuts_for",function(o){var a,i=this,r=t;return i.shortcuts_for==null&&(i.shortcuts_for=t),i.shortcuts==null&&(i.shortcuts=t),s(r=i.shortcuts_for["$[]"](o))?r:(a=[o,n(i.shortcuts,"select",[],function(n){return n==null&&(n=t),[o,"*"]["$include?"](n.$for())})],n(i.shortcuts_for,"[]=",a),a[a.length-1])}),i(v,"$compile_body_or_shortcut",function(){try{var o=u("return"),i=this,a=t;return s(i.$compiler()["$arity_check?"]())?i.$compile_body():(a=s(i["$is_a?"](b("DefNode")))?"def":"iter",n(b("NodeWithArgs").$shortcuts_for(a),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,r=t;if(n==null&&(n=t),s(n["$match?"](i)))s(b("ENV")["$[]"]("OPAL_DEBUG_SHORTCUTS"))&&(r=h(a,"def")?"def "+i.$mid():"iter",i.$warn("* shortcut "+n.$name()+" used for "+r)),o.$throw(n.$compile(i),e.$$is_lambda);else return t},{$$s:i,$$ret:o}),i.$compile_body())}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),n(v,"define_shortcut",["return_self",new Map([["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t.$stmts().$type()["$=="]("self")},{$$s:v})]])],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$return_self")},{$$s:v}),i(v,"$simple_value?",function(t){var n=this;return t==null&&(t=n.$stmts()),["true","false","nil","int","float","str","sym"]["$include?"](t.$type())},-1),n(v,"define_shortcut",["return_val",new Map([["for","*"],["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t["$simple_value?"]()},{$$s:v})]])],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$return_val(",t.$expr(t.$stmts()),")")},{$$s:v}),n(v,"define_shortcut",["return_ivar",new Map([["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t.$stmts().$type()["$=="]("ivar")},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym();return n.$push("$return_ivar(",n.$expr(n.$stmts().$updated("sym",[s])),")")},{$$s:v}),n(v,"define_shortcut",["assign_ivar",new Map([["when",o(function e(){var n=e.$$s==null?this:e.$$s,o=t,i=t,a=t,r=t;return s(o=s(i=s(a=s(r=n.$stmts().$type()["$=="]("ivasgn"))?n.$inline_args().$children().$length()["$=="](1):r)?n.$inline_args().$children().$last().$type()["$=="]("arg"):a)?n.$stmts().$children().$last().$type()["$=="]("lvar"):i)?n.$stmts().$children().$last().$children().$last()["$=="](n.$inline_args().$children().$last().$children().$last()):o},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym(),s=n.$expr(n.$stmts().$updated("sym",[s]));return n.$push("$assign_ivar(",s,")")},{$$s:v}),n(v,"define_shortcut",["assign_ivar_val",new Map([["when",o(function e(){var n=e.$$s==null?this:e.$$s,o=t;return s(o=n.$stmts().$type()["$=="]("ivasgn"))?n["$simple_value?"](n.$stmts().$children().$last()):o},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym(),s=n.$expr(n.$stmts().$updated("sym",[s]));return n.$push("$assign_ivar_val(",s,", ",n.$expr(n.$stmts().$children().$last()),")")},{$$s:v})}(v[0],j("ScopeNode"),v)}(v[0],v)}(r[0],r)},Opal.modules["opal/nodes/node_with_args"]=function(e){var o=e.module,a=e.klass,r=e.slice,c=e.send2,l=e.find_super,d=e.to_a,t=e.def,u=e.truthy,n=e.top,i=[],s=e.nil,h=e.$$$;return e.add_stubs("require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new"),n.$require("opal/nodes/scope"),n.$require("opal/nodes/args/parameters"),n.$require("opal/nodes/node_with_args/shortcuts"),function(n,i){var f=o(n,"Opal"),m=[f].concat(i);return function(n,i){var f=o(n,"Nodes"),m=[f].concat(i),p=e.$r(m);return function(n,o,i){var m=a(n,o,"NodeWithArgs"),f=[m].concat(i),p=e.$r(f),g=m.$$prototype;return g.sexp=s,m.$attr_reader("used_kwargs"),m.$attr_accessor("arity"),m.$attr_reader("original_args"),t(m,"$initialize",function e(){var o,i,a=e.$$p||s,n=this;return e.$$p=null,o=r(arguments),i=o,c(n,l(n,"initialize",e,!1,!0),"initialize",d(i),a),n.original_args=n.sexp.$meta()["$[]"]("original_args"),n.used_kwargs=[],n.arity=0},-1),t(m,"$arity_check_node",function(){var t=this;return t.$s("arity_check",t.$original_args())}),t(m,"$compile_arity_check",function(){var t=this;return t.$push(t.$process(t.$arity_check_node()))}),t(m,"$compile_block_arg",function(){var t=this;return u(t.$scope()["$uses_block?"]())?t.$scope().$prepare_block():s}),t(m,"$parameters_code",function(){var t=this;return h(p("Args"),"Parameters").$new(t.$original_args()).$to_code()})}(m[0],p("ScopeNode"),m)}(m[0],m)}(i[0],i)},Opal.modules["opal/nodes/iter"]=function(e){var a=e.module,l=e.klass,n=e.truthy,d=e.rb_lt,r=e.eqeq,u=e.not,o=e.send,s=e.def,h=e.top,c=[],t=e.nil,i=e.$$$;return e.add_stubs("require,handle,children,lambda_definition?,scope,is_lambda!,compile_body_or_shortcut,<,arity,[]=,self,key?,throwers,[],arity_check?,compiler,parameters_code,enable_source_location?,source_location,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,keys,push,!,empty?,join,map,nesting,relative_access,in_scope,identify!,process,inline_args,compile_arity_check,in_closure,|,stmt,returned_body,add_temp,to_vars,line,unshift,await_encountered,block_arg,prepare_block,each,args,first,<<,updated,stmts,returns,s,any?,original_args,type,expression,loc,source,match"),h.$require("opal/nodes/node_with_args"),function(c,h){var f=a(c,"Opal"),m=[f].concat(h);return function(c,h){var f=a(c,"Nodes"),m=[f].concat(h),p=e.$r(m);return function(a,c,h){var m=l(a,c,"IterNode"),g=[m].concat(h),p=e.$r(g),f=m.$$prototype;return f.define_self=f.closure=f.define_nesting=f.define_relative_access=f.sexp=t,m.$handle("iter"),m.$children("inline_args","stmts"),s(m,"$compile",function(){var a,c,l,h,s=this,i=t;return n(s.$scope()["$lambda_definition?"]())&&s["$is_lambda!"](),s.$compile_body_or_shortcut(),i=new Map,n(d(s.$arity(),0))&&i["$[]="]("$$arity",s.$arity()),n(s.define_self)&&i["$[]="]("$$s",s.$scope().$self()),n((a=(c=s.closure,c===t||c==null?t:c.$throwers()),a===t||a==null?t:a["$key?"]("break")))&&i["$[]="]("$$brk",s.closure.$throwers()["$[]"]("break")),n((l=(h=s.closure,h===t||h==null?t:h.$throwers()),l===t||l==null?t:l["$key?"]("return")))&&i["$[]="]("$$ret",s.closure.$throwers()["$[]"]("return")),n(s.$compiler()["$arity_check?"]())&&i["$[]="]("$$parameters",s.$parameters_code()),n(s.$compiler()["$enable_source_location?"]())&&i["$[]="]("$$source_location",s.$source_location()),n(s["$has_top_level_mlhs_arg?"]())&&i["$[]="]("$$has_top_level_mlhs_arg","true"),n(s["$has_trailing_comma_in_args?"]())&&i["$[]="]("$$has_trailing_comma_in_args","true"),r(i.$keys(),["$$arity"])?s.$push(", "+s.$arity()):u(i["$empty?"]())&&s.$push(", {",o(i,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+": "+s}).$join(", "),"}"),n(s.define_nesting)&&s.$scope().$nesting(),n(s.define_relative_access)?s.$scope().$relative_access():t}),s(m,"$compile_body",function(){var s=this,r=t,c=t,a=t,l=t,r=t,c=a=l=t;return o(s,"in_scope",[],function e(){var s=e.$$s==null?this:e.$$s;return s.is_lambda==null&&(s.is_lambda=t),a=s.$scope()["$identify!"](),r=s.$process(s.$inline_args()),s.$compile_arity_check(),o(s,"in_closure",[i(p("Closure"),"JS_FUNCTION")["$|"](i(p("Closure"),"ITER"))["$|"](n(s.is_lambda)?i(p("Closure"),"LAMBDA"):0)],function e(){var s=e.$$s==null?this:e.$$s;return s.define_self==null&&(s.define_self=t),l=s.$stmt(s.$returned_body()),n(s.define_self)&&s.$add_temp("self = "+a+".$$s == null ? this : "+a+".$$s"),c=s.$scope().$to_vars(),s.$line(l)},{$$s:s})},{$$s:s}),s.$unshift(c),n(s.$await_encountered())?s.$unshift("async function "+a+"(",r,"){"):s.$unshift("function "+a+"(",r,"){"),s.$push("}")}),s(m,"$compile_block_arg",function(){var s=this;return n(s.$block_arg())?s.$scope().$prepare_block():t}),s(m,"$extract_underscore_args",function(){var s=this,i=t,a=t,i=[],a=!1;return o(s.$args().$children(),"each",[],function(s){var o=t;return s==null&&(s=t),o=s.$children().$first(),r(o,"_")?n(a)?t:(a=!0,i["$<<"](s)):i["$<<"](s)}),s.sexp=s.sexp.$updated(t,[s.$args().$updated(t,i),s.$stmts()])}),s(m,"$returned_body",function(){var s=this,o=t;return s.$compiler().$returns(n(o=s.$stmts())?o:s.$s("nil"))}),s(m,"$has_top_level_mlhs_arg?",function(){var n=this;return o(n.$original_args().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("mlhs")})}),s(m,"$has_trailing_comma_in_args?",function(){var s=this,o=t;return n(s.$original_args().$loc())&&n(s.$original_args().$loc().$expression())?(o=s.$original_args().$loc().$expression().$source(),o.$match(/,\s*\|/)):t}),s(m,"$arity_check_node",function(){var t=this;return t.$s("iter_arity_check",t.$original_args())})}(m[0],p("NodeWithArgs"),m)}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/def"]=function(e){var r=e.module,m=e.klass,n=e.truthy,d=e.rb_lt,c=e.eqeq,h=e.not,s=e.send,o=e.def,l=e.rb_plus,u=e.top,i=[],t=e.nil,a=e.$$$;return e.add_stubs("require,handle,children,compile_body_or_shortcut,<,arity,[]=,arity_check?,compiler,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,==,keys,push,!,empty?,join,map,wrap_with_definition,nesting,scope,relative_access,in_scope,mid=,mid,type,defs=,identify!,identity,block_name=,process,inline_args,in_closure,|,stmt,returns,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,await_encountered,helper,wrap,self,expr?,+,comments,inspect,text"),u.$require("opal/nodes/node_with_args"),function(i,u){var p=r(i,"Opal"),f=[p].concat(u);return function(i,u){var p=r(i,"Nodes"),f=[p].concat(u),g=e.$r(f);return function(i,r,u){var f=m(i,r,"DefNode"),v=[f].concat(u),p=e.$r(v),g=f.$$prototype;return g.define_nesting=g.define_relative_access=t,f.$handle("def"),f.$children("mid","inline_args","stmts"),o(f,"$compile",function(){var o=this,i=t;return o.$compile_body_or_shortcut(),i=new Map,n(d(o.$arity(),0))&&i["$[]="]("$$arity",o.$arity()),n(o.$compiler()["$arity_check?"]())&&i["$[]="]("$$parameters",o.$parameters_code()),n(o.$compiler()["$parse_comments?"]())&&i["$[]="]("$$comments",o.$comments_code()),n(o.$compiler()["$enable_source_location?"]())&&i["$[]="]("$$source_location",o.$source_location()),c(i.$keys(),["$$arity"])?o.$push(", "+o.$arity()):h(i["$empty?"]())&&o.$push(", {",s(i,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+": "+s}).$join(", "),"}"),o.$wrap_with_definition(),n(o.define_nesting)&&o.$scope().$nesting(),n(o.define_relative_access)?o.$scope().$relative_access():t}),o(f,"$compile_body",function(){var o=this,i=t,r=t,i=t,r=t;return s(o,"in_scope",[],function e(){var o=e.$$s==null?this:e.$$s;return o.sexp==null&&(o.sexp=t),o.$scope()["$mid="](o.$mid()),c(o.sexp.$type(),"defs")&&o.$scope()["$defs="](!0),o.$scope()["$identify!"](),r=o.$scope().$identity(),o.$scope()["$block_name="]("$yield"),i=o.$process(o.$inline_args()),s(o,"in_closure",[a(p("Closure"),"DEF")["$|"](a(p("Closure"),"JS_FUNCTION"))],function e(){var s=e.$$s==null?this:e.$$s,o=t;return s.define_self==null&&(s.define_self=t),o=s.$stmt(s.$compiler().$returns(s.$stmts())),s.$compile_block_arg(),n(s.define_self)&&s.$add_temp("self = this"),s.$compile_arity_check(),s.$unshift(` +`+s.$current_indent(),s.$scope().$to_vars()),s.$line(o)},{$$s:o})},{$$s:o}),o.$unshift(") {"),o.$unshift(i),o.$unshift("function "+r+"("),n(o.$await_encountered())&&o.$unshift("async "),o.$line("}")}),o(f,"$wrap_with_definition",function(){var s=this;return s.$helper("def"),s.$wrap("$def("+s.$scope().$self()+", '$"+s.$mid()+"', ",")"),n(s["$expr?"]())?t:s.$unshift(` +`+s.$current_indent())}),o(f,"$comments_code",function(){var n=this;return l(l("[",s(n.$comments(),"map",[],function(n){return n==null&&(n=t),n.$text().$inspect()}).$join(", ")),"]")})}(f[0],g("NodeWithArgs"),f)}(f[0],f)}(i[0],i)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),i.$require("opal/nodes/def"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"DefsNode");return n.$handle("defs"),n.$children("recvr","mid","inline_args","stmts"),o(n,"$wrap_with_definition",function(){var t=this;return t.$helper("defs"),t.$unshift("$defs(",t.$expr(t.$recvr()),", '$"+t.$mid()+"', "),t.$push(")")})}(a[0],c("DefNode"))}(a[0],a)}(n[0],n)},Opal.modules["opal/ast/matcher"]=function(e){var c=e.module,p=e.klass,o=e.send,n=e.def,m=e.slice,s=e.truthy,u=e.const_set,r=e.rb_plus,h=e.neqeq,a=e.eqeq,i=e.eqeqeq,f=e.range,l=e.top,d=[],t=e.nil;return e.add_stubs("require,instance_exec,to_proc,new,match,inspect,attr_accessor,nil?,+,type,children,!=,length,all?,times,[],==,is_a?,first,===,include?,<<,captures"),l.$require("ast"),l.$require("parser/ast/node"),function(l,d){var v=c(l,"Opal"),g=[v].concat(d);return function(l,d){var v=c(l,"AST"),g=[v].concat(d);return function(c,l,d){var g=p(c,l,"Matcher"),b=[g].concat(d),v=e.$r(b),j=g.$$prototype;return j.root=j.captures=t,n(g,"$initialize",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.root=o(n,"instance_exec",[],s.$to_proc())}),n(g,"$s",function(t){var s=m(arguments,1),o=s;return v("Node").$new(t,o)},-2),n(g,"$cap",function(t){return v("Node").$new("capture",[t])}),n(g,"$match",function(n){var o=this,i=t;if(o.captures=[],s(i=o.root.$match(n,o)))i;else return!1;return o.captures}),n(g,"$inspect",function(){var t=this;return"#"}),g.$attr_accessor("captures"),u(b[0],"Node",o(v("Struct"),"new",["type","children"],function e(){var c=e.$$s==null?this:e.$$s;return n(c,"$match",function(n,c){var u=this,l=t,d=t;return!s(n["$nil?"]())&&(l=r([n.$type()],n.$children()),d=r([u.$type()],u.$children()),!h(l.$length(),d.$length())&&o(l.$length().$times(),"all?",[],function(n){var r=t,o=t,h=t,m=t,u=t;return n==null&&(n=t),r=l["$[]"](n),o=d["$[]"](n),s(o["$is_a?"](v("Node")))&&a(o.$type(),"capture")&&(h=!0,o=o.$children().$first()),m=i(v("Node"),u=o)?o.$match(r,c):i(v("Array"),u)?o["$include?"](r):i("*",u)||o["$=="](r),s(h)&&c.$captures()["$<<"](r),m}))}),n(c,"$inspect",function(){var t=this;return a(t.$type(),"capture")?"{"+t.$children().$first().$inspect()+"}":"s("+t.$type().$inspect()+", "+t.$children().$inspect()["$[]"](f(1,-2,!1))+")"})},{$$s:g}))}(g[0],null,g)}(g[0],g)}(d[0],d)},Opal.modules["opal/nodes/if"]=function(e){var h=e.module,d=e.klass,n=e.truthy,a=e.eqeq,s=e.def,r=e.not,o=e.send,u=e.eqeqeq,c=e.const_set,l=e.to_a,g=e.neqeq,m=e.return_val,f=e.top,p=[],t=e.nil,i=e.$$$;return e.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,could_become_switch?,compile_with_switch,compile_with_if,expects_expression?,push_closure,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,pop_closure,returning_if?,await_encountered,scope,wrap,[],meta,returnify,returns,compiler,expr?,recv?,simple?,expr,sexp,===,single_line?,strip_empty_children,all?,new,cap,match,handle_additional_switch_rules,valid_switch_body?,could_become_switch_branch?,<<,!=,[]=,merge!,compile_switch_case,include?,last,each,returning?,compile_switch_default,helper,new_temp,top_scope,excl,start_condition,end_condition"),f.$require("opal/nodes/base"),f.$require("opal/ast/matcher"),function(f,p){var b=h(f,"Opal"),v=[b].concat(p);return function(f,p){var j=h(f,"Nodes"),v=[j].concat(p),b=e.$r(v);return function(h,m,f){var p=d(h,m,"IfNode"),b=[p].concat(f),v=e.$r(b),j=p.$$prototype;return j.sexp=j.switch_variable=j.switch_first_test=j.switch_additional_rules=t,p.$handle("if"),p.$children("test","true_body","false_body"),s(p,"$compile",function(){var t=this;return n(t["$should_compile_as_simple_expression?"]())?a(t.$true_body(),t.$s("true"))?t.$compile_with_binary_or():a(t.$false_body(),t.$s("false"))?t.$compile_with_binary_and():t.$compile_with_ternary():n(t["$could_become_switch?"]())?t.$compile_with_switch():t.$compile_with_if()}),s(p,"$compile_with_if",function(){var l,s=this,c=t,i=t,d=t;return n(s["$expects_expression?"]())&&s.$push_closure(),c=s.$truthy(),i=s.$falsy(),n(i)&&r(c)?(s.$push("if (!",s.$js_truthy(s.$test()),") {"),l=[c,i],i=l[0],c=l[1],l):s.$push("if (",s.$js_truthy(s.$test()),") {"),n(c)&&o(s,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(c))},{$$s:s}),n(i)?a(i.$type(),"if")?s.$line("} else ",s.$stmt(i)):(s.$line("} else {"),o(s,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(i))},{$$s:s}),s.$line("}")):(s.$line("}"),n(s["$expects_expression?"]())&&s.$line("return nil;")),n(s["$expects_expression?"]())&&s.$pop_closure(),n(s["$expects_expression?"]())?(n(s["$returning_if?"]())&&(d="return "),n(s.$scope().$await_encountered())?s.$wrap(""+d+"(await (async function() {","})())"):s.$wrap(""+d+"(function() {","})()")):t}),s(p,"$returning_if?",function(){var t=this;return t.sexp.$meta()["$[]"]("returning")}),s(p,"$truthy",function(){var t=this;return t.$returnify(t.$true_body())}),s(p,"$falsy",function(){var t=this;return t.$returnify(t.$false_body())}),s(p,"$returnify",function(t){var s=this;return n(s["$expects_expression?"]())&&n(t)?s.$compiler().$returns(t):t}),s(p,"$expects_expression?",function(){var s=this,o=t;return n(o=s["$expr?"]())?o:s["$recv?"]()}),s(p,"$should_compile_as_simple_expression?",function(){var s=this,o=t,i=t;return n(o=n(i=s["$expects_expression?"]())?s["$simple?"](s.$true_body()):i)?s["$simple?"](s.$false_body()):o}),s(p,"$compile_with_ternary",function(){var s=this,c=t,i=t,o=t,c=s.$true_body(),i=s.$false_body();return s.$push("("),s.$push(s.$js_truthy(s.$test())," ? "),s.$push("(",s.$expr(n(o=c)?o:s.$s("nil")),") : "),r(i)||a(i.$type(),"if")?s.$push(s.$expr(n(o=i)?o:s.$s("nil"))):s.$push("(",s.$expr(n(o=i)?o:s.$s("nil")),")"),s.$push(")")}),s(p,"$compile_with_binary_and",function(){var s=this,i=t,o=t;return n(s.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?i=s.$js_truthy(n(o=s.$true_body())?o:s.$s("nil")):i=s.$expr(n(o=s.$true_body())?o:s.$s("nil")),s.$push("("),s.$push(s.$js_truthy(s.$test())," && "),s.$push("(",i,")"),s.$push(")")}),s(p,"$compile_with_binary_or",function(){var s=this,i=t,o=t;return n(s.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?i=s.$js_truthy(n(o=s.$false_body())?o:s.$s("nil")):i=s.$expr(n(o=s.$false_body())?o:s.$s("nil")),s.$push("("),s.$push(s.$js_truthy(s.$test())," || "),s.$push("(",i,")"),s.$push(")")}),s(p,"$simple?",function(n){var s=this,a=t;if(u(i(v("AST"),"Node"),a=n))switch(n.$type().valueOf()){case"return":case"js_return":case"break":case"next":case"redo":case"retry":return!1;case"xstr":return v("XStringNode")["$single_line?"](v("XStringNode").$strip_empty_children(n.$children()));default:return o(n.$children(),"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$simple?"](n)},{$$s:s})}else return!0}),c(b[0],"SWITCH_TEST_MATCH",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*")))},{$$s:p})),c(b[0],"SWITCH_TEST_MATCH_CONTINUED",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*"))),t.$s("true"),t.$cap("*"))},{$$s:p})),c(b[0],"SWITCH_BRANCH_TEST_MATCH",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*")))},{$$s:p})),c(b[0],"SWITCH_BRANCH_TEST_MATCH_CONTINUED",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*"))),t.$s("true"),t.$cap("*"))},{$$s:p})),s(p,"$could_become_switch?",function(){var o,s=this,a=t,r=t,i=t;return!n(s["$expects_expression?"]())&&(!!n(s.$sexp().$meta()["$[]"]("switch_child"))||(a=n(r=v("SWITCH_TEST_MATCH").$match(s.$test()))?r:v("SWITCH_TEST_MATCH_CONTINUED").$match(s.$test()),!!n(a)&&(o=[].concat(l(a)),s.switch_test=o[0]==null?t:o[0],s.switch_variable=o[1]==null?t:o[1],s.switch_first_test=o[2]==null?t:o[2],i=o[3]==null?t:o[3],o,i=s.$handle_additional_switch_rules(i),!!n(i)&&(s.switch_additional_rules=i,!!n(s["$valid_switch_body?"](s.$true_body()))&&s["$could_become_switch_branch?"](s.$false_body())))))}),s(p,"$handle_additional_switch_rules",function(s){for(var o,h=this,i=t,r=t,c=t,d=t,u=t,i=[];n(s);){if(r=n(c=v("SWITCH_BRANCH_TEST_MATCH").$match(s))?c:v("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(s),!n(r))return!1;if(o=[].concat(l(r)),d=o[0]==null?t:o[0],u=o[1]==null?t:o[1],s=o[2]==null?t:o[2],o,!a(u,h.switch_variable))return!1;i["$<<"](d)}return i}),s(p,"$could_become_switch_branch?",function(s){var o,i=this,c=t,h=t,m=t,d=t,f=t,p=t,b=t,j=t,u=t;return!!r(s)||(g(s.$type(),"if")?!!n(i["$valid_switch_body?"](s))&&(s.$meta()["$[]="]("switch_default",!0),!0):(o=[].concat(l(s)),c=o[0]==null?t:o[0],h=o[1]==null?t:o[1],m=o[2]==null?t:o[2],o,d=n(f=v("SWITCH_BRANCH_TEST_MATCH").$match(c))?f:v("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(c),!n(d)&&n(i["$valid_switch_body?"](s,!0))?(s.$meta()["$[]="]("switch_default",!0),!0):(o=[].concat(l(d)),p=o[0]==null?t:o[0],b=o[1]==null?t:o[1],j=o[2]==null?t:o[2],o,u=i.$handle_additional_switch_rules(j),!!n(u)&&!!a(b,i.switch_variable)&&!!n(i["$valid_switch_body?"](h))&&!!n(i["$could_become_switch_branch?"](m))&&(s.$meta()["$merge!"](new Map([["switch_child",!0],["switch_test",p],["switch_variable",i.switch_variable],["switch_additional_rules",u]])),!0))))}),s(p,"$valid_switch_body?",function(n,s){var a=this,r=t;if(s==null&&(s=!1),u(i(v("AST"),"Node"),r=n))switch(n.$type().valueOf()){case"break":case"redo":case"retry":return!1;case"iter":case"while":return!0;default:return o(n.$children(),"all?",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o["$valid_switch_body?"](n,s)},{$$s:a})}else return!u(a.switch_variable,r)||s["$!"]()},-2),s(p,"$compile_with_switch",function(){var s=this;return n(s.$sexp().$meta()["$[]"]("switch_child"))?(s.switch_variable=s.$sexp().$meta()["$[]"]("switch_variable"),s.switch_additional_rules=s.$sexp().$meta()["$[]"]("switch_additional_rules"),s.$compile_switch_case(s.$sexp().$meta()["$[]"]("switch_test"))):(s.$line("switch (",s.$expr(s.switch_first_test),".valueOf()) {"),o(s,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return n.switch_test==null&&(n.switch_test=t),n.$compile_switch_case(n.switch_test)},{$$s:s}),s.$line("}"))}),s(p,"$returning?",function(s){var o=t,i=t;return n(o=["return","js_return","next"]["$include?"](s.$type()))?o:n(i=s.$type()["$=="]("begin"))?["return","js_return","next"]["$include?"](s.$children().$last().$type()):i}),s(p,"$compile_switch_case",function(s){var i=this;return i.$line("case ",i.$expr(s),":"),n(i.switch_additional_rules)&&o(i.switch_additional_rules,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$line("case ",s.$expr(n),":")},{$$s:i}),o(i,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return n.$line(n.$stmt(n.$true_body())),r(n.$true_body())||r(n["$returning?"](n.$true_body()))?n.$line("break;"):t},{$$s:i}),n(i.$false_body())?n(i.$false_body().$meta()["$[]"]("switch_default"))?i.$compile_switch_default():n(i.$false_body().$meta()["$[]"]("switch_child"))?i.$push(i.$stmt(i.$false_body())):t:i.$push(i.$stmt(i.$s("nil")))}),s(p,"$compile_switch_default",function(){var t=this;return t.$line("default:"),o(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$false_body()))},{$$s:t})})}(v[0],b("Base"),v),function(e,n){var o=d(e,n,"BaseFlipFlop");return o.$children("start_condition","end_condition"),s(o,"$compile",function(){var n=this,s=t,o=t;return n.$helper("truthy"),s=n.$top_scope().$new_temp(),o=""+s+".$$ff",n.$push("("+s+" = "+s+" || function(_start_func, _end_func){"),n.$push(" var flip_flop = "+o+" || false;"),n.$push(" if (!flip_flop) "+o+" = flip_flop = $truthy(_start_func());"),n.$push(" "+n.$excl()+"if (flip_flop && $truthy(_end_func())) "+o+" = false;"),n.$push(" return flip_flop;"),n.$push("})("),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$start_condition()))," },"),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$end_condition()))," }"),n.$push(")")})}(v[0],b("Base")),function(e,t){var n=d(e,t,"IFlipFlop");return n.$handle("iflipflop"),s(n,"$excl",m(""))}(v[0],b("BaseFlipFlop")),function(e,t){var n=d(e,t,"EFlipFlop");return n.$handle("eflipflop"),s(n,"$excl",m("else "))}(v[0],b("BaseFlipFlop"))}(v[0],v)}(p[0],p)},Opal.modules["opal/nodes/logic"]=function(e){var o=e.module,n=e.klass,t=e.def,i=e.send,a=e.to_a,s=e.truthy,c=e.rb_gt,l=e.top,r=[],d=e.nil;return e.add_stubs("require,handle,thrower,value,size,children,s,first,in_while?,compile_while,iter?,scope,compile_iter,push,[],while_loop,helper,identity,==,empty_splat?,recv,nil?,>,return_val,expr,to_s"),l.$require("opal/nodes/base"),function(r,l){var u=o(r,"Opal"),d=[u].concat(l);return function(r,l){var h=o(r,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(e,s){var o=n(e,s,"NextNode");return o.$handle("next"),t(o,"$compile",function(){var t=this;return t.$thrower("next",t.$value())}),t(o,"$value",function(){var t=this;switch(t.$children().$size().valueOf()){case 0:return t.$s("nil");case 1:return t.$children().$first();default:return i(t,"s",["array"].concat(a(t.$children())))}})}(d[0],u("Base")),function(e,s){var o=n(e,s,"BreakNode");return o.$handle("break"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$thrower("break",t.$value())})}(d[0],u("Base")),function(e,o){var i=n(e,o,"RedoNode");return i.$handle("redo"),t(i,"$compile",function(){var t=this;return s(t["$in_while?"]())?t.$compile_while():s(t.$scope()["$iter?"]())?t.$compile_iter():t.$push("REDO()")}),t(i,"$compile_while",function(){var t=this;return t.$push(""+t.$while_loop()["$[]"]("redo_var")+" = true;"),t.$thrower("redo")}),t(i,"$compile_iter",function(){var t=this;return t.$helper("slice"),t.$push("return "+t.$scope().$identity()+".apply(null, $slice(arguments))")})}(d[0],u("Base")),function(e,o){var i=n(e,o,"SplatNode");return i.$handle("splat"),i.$children("value"),t(i,"$empty_splat?",function(){var t=this;return t.$value()["$=="](t.$s("array"))}),t(i,"$compile",function(){var t=this;return s(t["$empty_splat?"]())?t.$push("[]"):(t.$helper("to_a"),t.$push("$to_a(",t.$recv(t.$value()),")"))})}(d[0],u("Base")),function(e,s){var o=n(e,s,"RetryNode");return o.$handle("retry"),t(o,"$compile",function(){var t=this;return t.$thrower("retry")})}(d[0],u("Base")),function(e,o){var r=n(e,o,"ReturnNode");return r.$handle("return"),r.$children("value"),t(r,"$return_val",function(){var t=this;return s(t.$value()["$nil?"]())?t.$s("nil"):s(c(t.$children().$size(),1))?i(t,"s",["array"].concat(a(t.$children()))):t.$value()}),t(r,"$compile",function(){var t=this;return t.$thrower("return",t.$return_val())})}(d[0],u("Base")),function(e,s){var o=n(e,s,"JSReturnNode");return o.$handle("js_return"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push("return "),t.$push(t.$expr(t.$value()))})}(d[0],u("Base")),function(e,s){var o=n(e,s,"JSTempNode");return o.$handle("js_tmp"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push(t.$value().$to_s())})}(d[0],u("Base")),function(e,s){var o=n(e,s,"BlockPassNode");return o.$handle("block_pass"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push(t.$expr(t.$s("send",t.$value(),"to_proc",t.$s("arglist"))))})}(d[0],u("Base"))}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/definitions"]=function(e){var l=e.module,i=e.klass,o=e.send,s=e.def,c=e.range,a=e.eqeq,n=e.truthy,p=e.rb_gt,d=e.to_a,f=e.slice,u=e.rb_plus,h=e.const_set,m=e.top,r=[],t=e.nil;return e.add_stubs("require,handle,children,each,line,self,scope,expr,type,new_name,helper,inspect,[],to_s,first,old_name,push,==,record_method_call,compiler,last,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,returned_children,in_closure,await_encountered,parent,+,returns,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc"),m.$require("opal/nodes/base"),function(r,m){var v=l(r,"Opal"),g=[v].concat(m);return function(r,m){var b=l(r,"Nodes"),g=[b].concat(m),v=e.$r(g);return function(e,n){var a=i(e,n,"UndefNode");return a.$handle("undef"),a.$children("value"),s(a,"$compile",function(){var n=this;return o(n.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$line("Opal.udef("+s.$scope().$self()+", '$' + ",s.$expr(n),");")},{$$s:n})})}(g[0],v("Base")),function(e,n){var o=i(e,n,"AliasNode");return o.$handle("alias"),o.$children("new_name","old_name"),s(o,"$compile",function(){var n=this,s=t,o=t;switch(n.$new_name().$type().valueOf()){case"gvar":return n.$helper("alias_gvar"),s=n.$new_name().$children().$first().$to_s()["$[]"](c(1,-1,!1)).$inspect(),o=n.$old_name().$children().$first().$to_s()["$[]"](c(1,-1,!1)).$inspect(),n.$push("$alias_gvar(",s,", ",o,")");case"dsym":case"sym":return n.$helper("alias"),a(n.$old_name().$type(),"sym")&&n.$compiler().$record_method_call(n.$old_name().$children().$last()),n.$push("$alias("+n.$scope().$self()+", ",n.$expr(n.$new_name()),", ",n.$expr(n.$old_name()),")");default:return n.$error("Opal doesn't know yet how to alias with "+n.$new_name().$type())}})}(g[0],v("Base")),function(r,c,l){var m=i(r,c,"BeginNode"),g=[m].concat(l),b=e.$r(g),v=m.$$prototype;return v.level=v.returned_children=t,m.$handle("begin"),s(m,"$compile",function(){var i,s=this;return n(s.$children()["$empty?"]())?s.$push("nil"):n(s["$stmt?"]())?s.$compile_children(s.$children(),s.level):n(s["$simple_children?"]())?(s.$compile_inline_children(s.$children(),s.level),n(p(s.$children().$size(),1))?s.$wrap("(",")"):t):a(s.$children().$size(),1)?s.$compile_inline_children(s.$returned_children(),s.level):(o(s,"in_closure",[],function e(){var n=e.$$s==null?this:e.$$s;return n.level==null&&(n.level=t),n.$compile_children(n.$returned_children(),n.level)},{$$s:s}),n((i=s.$scope().$parent(),i===t||i==null?t:i.$await_encountered()))?s.$wrap("(await (async function() {","})())"):s.$wrap("(function() {","})()"))}),s(m,"$returned_children",function(){var s,o,i=this,r=t,c=t,a=t;return i.returned_children=n(r=i.returned_children)?r:(o=[].concat(d(i.$children())),s=o.length-1,s=s<0?0:s,c=f(o,0,s),a=o[s]==null?t:o[s],o,n(a)?u(c,[i.$compiler().$returns(a)]):[i.$s("nil")])}),s(m,"$compile_children",function(n,s){var i=this;return o(n,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o.$line(o.$process(n,s),o.$fragment(";",new Map([["loc",!1]])))},{$$s:i})}),h(g[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),s(m,"$simple_children?",function(){var n=this;return o(n.$children(),"none?",[],function(n){return n==null&&(n=t),b("COMPLEX_CHILDREN")["$include?"](n.$type())})}),s(m,"$compile_inline_children",function(n,s){var i=this,r=t,r=o(n,"map",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o.$process(n,s)},{$$s:i});return o(o(r,"reject",[],"empty?".$to_proc()),"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),a(s,0)||o.$push(o.$fragment(", ",new Map([["loc",!1]]))),o.$push(n)},{$$s:i})})}(g[0],v("ScopeNode"),g),function(e,t){var n=i(e,t,"KwBeginNode");return n.$handle("kwbegin")}(g[0],v("BeginNode"))}(g[0],g)}(r[0],r)},Opal.modules["opal/nodes/yield"]=function(e){var i=e.module,o=e.klass,t=e.truthy,a=e.send,c=e.to_a,n=e.def,l=e.top,r=[],s=e.nil;return e.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"),l.$require("opal/nodes/base"),function(r,l){var u=i(r,"Opal"),d=[u].concat(l);return function(r,l){var h=i(r,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(e,i){var r=o(e,i,"BaseYieldNode");return n(r,"$compile_call",function(){var n=this,o=s,r=s,i=s,o=n.$find_yielding_scope();return o["$uses_block!"](),t(r=o.$block_name())?r:o["$block_name="]("$yield"),i=o.$block_name(),t(n["$yields_single_arg?"](n.$children()))?(n.$push(n.$expr(n.$children().$first())),n.$wrap("Opal.yield1("+i+", ",")")):(n.$push(n.$expr(a(n,"s",["arglist"].concat(c(n.$children()))))),t(n["$uses_splat?"](n.$children()))?n.$wrap("Opal.yieldX("+i+", ",")"):n.$wrap("Opal.yieldX("+i+", [","])"))}),n(r,"$find_yielding_scope",function(){for(var o=this,n=s,n=o.$scope();t(n);){if(t(n.$block_name())||t(n["$def?"]()))break;n=n.$parent()}return n}),n(r,"$yields_single_arg?",function(n){var i=this,o=s;return t(o=i["$uses_splat?"](n)["$!"]())?n.$size()["$=="](1):o}),n(r,"$uses_splat?",function(t){return a(t,"any?",[],function(t){return t==null&&(t=s),t.$type()["$=="]("splat")})})}(d[0],u("Base")),function(e,t){var s=o(e,t,"YieldNode");return s.$handle("yield"),n(s,"$compile",function(){var t=this;return t.$compile_call()})}(d[0],u("BaseYieldNode")),function(e,t){var s=o(e,t,"ReturnableYieldNode");return s.$handle("returnable_yield"),n(s,"$compile",function(){var t=this;return t.$compile_call(),t.$wrap("return ",";")})}(d[0],u("BaseYieldNode"))}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/rescue"]=function(e){var d=e.module,r=e.klass,t=e.truthy,s=e.send,o=e.def,u=e.range,c=e.neqeq,a=e.eqeq,h=e.to_a,m=e.top,l=[],n=e.nil,i=e.$$$;return e.add_stubs("require,handle,children,wrap_in_closure?,push_closure,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,pop_closure,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,[],meta,rescue_else_sexp=,detect,!=,type,handle_rescue_else_manually?,|,has_retry?,in_rescue,body_code,each_with_index,==,body,nil?,!,in_ensure?,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp"),m.$require("opal/nodes/base"),function(l,m){var p=d(l,"Opal"),f=[p].concat(m);return function(l,m){var g=d(l,"Nodes"),f=[g].concat(m),p=e.$r(f);return function(e,i){var a=r(e,i,"EnsureNode"),c=a.$$prototype;return c.sexp=n,a.$handle("ensure"),a.$children("begn","ensr"),o(a,"$compile",function(){var o=this;return t(o["$wrap_in_closure?"]())&&o.$push_closure(),o.$push("try {"),s(o,"in_ensure",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$body_sexp()))},{$$s:o}),o.$line("} finally {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return o.level==null&&(o.level=n),t(o["$has_rescue_else?"]())?(o.$unshift("var $no_errors = true; "),o.$line("var $rescue_else_result;"),o.$line("if ($no_errors) { "),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line("$rescue_else_result = (function() {"),s(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))},{$$s:t}),t.$line("})();")},{$$s:o}),o.$line("}"),o.$line(o.$compiler().$process(o.$ensr_sexp(),o.level)),o.$line("if ($no_errors) { return $rescue_else_result; }")):o.$line(o.$compiler().$process(o.$ensr_sexp(),o.level))},{$$s:o}),o.$line("}"),t(o["$wrap_in_closure?"]())&&o.$pop_closure(),t(o["$wrap_in_closure?"]())?t(o.$scope().$await_encountered())?o.$wrap("(await (async function() { ","; })())"):o.$wrap("(function() { ","; })()"):n}),o(a,"$body_sexp",function(){var n=this;return t(n["$wrap_in_closure?"]())?n.$compiler().$returns(n.$begn()):n.$begn()}),o(a,"$ensr_sexp",function(){var s=this,o=n;return t(o=s.$ensr())?o:s.$s("nil")}),o(a,"$wrap_in_closure?",function(){var s=this,o=n,i=n;return t(o=t(i=s["$recv?"]())?i:s["$expr?"]())?o:s["$has_rescue_else?"]()}),o(a,"$rescue_else_code",function(){var o=this,s=n,s=o.$scope().$rescue_else_sexp();return t(o["$stmt?"]())||(s=o.$compiler().$returns(s)),s}),o(a,"$has_rescue_else?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_rescue_else")})}(f[0],p("Base")),function(l,d,h){var m=r(l,d,"RescueNode"),p=[m].concat(h),f=e.$r(p),g=m.$$prototype;return g.sexp=n,m.$handle("rescue"),m.$children("body"),o(m,"$compile",function(){var o=this,l=n,r=n;return o.$scope()["$rescue_else_sexp="](s(o.$children()["$[]"](u(1,-1,!1)),"detect",[],function(s){var o=n;return s==null&&(s=n),t(o=s)?s.$type()["$!="]("resbody"):o})),l=!1,t(o["$handle_rescue_else_manually?"]())&&o.$line("var $no_errors = true;"),r=i(f("Closure"),"NONE"),(t(o["$expr?"]())||t(o["$recv?"]()))&&(r=r["$|"](i(f("Closure"),"JS_FUNCTION"))),t(o["$has_retry?"]())&&(r=r["$|"](i(f("Closure"),"JS_LOOP")["$|"](i(f("Closure"),"JS_LOOP_INSIDE"))["$|"](i(f("Closure"),"RESCUE_RETRIER")))),c(r,i(f("Closure"),"NONE"))&&o.$push_closure(r),s(o,"in_rescue",[o],function e(){var o=e.$$s==null?this:e.$$s;return o.$push("try {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$body_code()))},{$$s:o}),o.$line("} catch ($err) {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return t(o["$has_rescue_else?"]())&&o.$line("$no_errors = false;"),s(o.$children()["$[]"](u(1,-1,!1)),"each_with_index",[],function e(s,o){var i=e.$$s==null?this:e.$$s;return i.level==null&&(i.level=n),s==null&&(s=n),o==null&&(o=n),t(s)&&a(s.$type(),"resbody")?(l=!0,a(o,0)||i.$push(" else "),i.$line(i.$process(s,i.level))):n},{$$s:o}),o.$push(" else { throw $err; }")},{$$s:o}),o.$line("}"),t(o["$handle_rescue_else_manually?"]())?(o.$push("finally {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line("if ($no_errors) { "),s(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))},{$$s:t}),t.$line("}")},{$$s:o}),o.$push("}")):n},{$$s:o}),c(r,i(f("Closure"),"NONE"))&&o.$pop_closure(),t(o["$has_retry?"]())&&o.$wrap("do { "," break; } while(1)"),t(o["$expr?"]())||t(o["$recv?"]())?t(o.$scope().$await_encountered())?o.$wrap("(await (async function() { ","})())"):o.$wrap("(function() { ","})()"):n}),o(m,"$body_code",function(){var s=this,o=n,o=t(s.$body()["$nil?"]())||a(s.$body().$type(),"resbody")?s.$s("nil"):s.$body();return t(s["$stmt?"]())||(o=s.$compiler().$returns(o)),o}),o(m,"$rescue_else_code",function(){var o=this,s=n,s=o.$scope().$rescue_else_sexp();return t(o["$stmt?"]())||(s=o.$compiler().$returns(s)),s}),o(m,"$handle_rescue_else_manually?",function(){var s=this,o=n;return t(o=s["$in_ensure?"]()["$!"]())?s["$has_rescue_else?"]():o}),o(m,"$has_retry?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_retry")})}(f[0],p("Base"),f),function(e,i){var a=r(e,i,"ResBodyNode");return a.$handle("resbody"),a.$children("klasses_sexp","lvar","body"),o(a,"$compile",function(){var o=this;return o.$push("if (Opal.rescue($err, ",o.$expr(o.$klasses()),")) {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return t(o.$lvar())&&o.$push(o.$expr(o.$lvar().$updated(n,[].concat(h(o.$lvar().$children())).concat([o.$s("js_tmp","$err")])))),o.$line("try {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"in_resbody",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_body()))},{$$s:t})},{$$s:o}),o.$line("} finally { Opal.pop_exception($err); }")},{$$s:o}),o.$line("}")}),o(a,"$klasses",function(){var s=this,o=n;return t(o=s.$klasses_sexp())?o:s.$s("array",s.$s("const",n,"StandardError"))}),o(a,"$rescue_body",function(){var s=this,o=n,i=n,o=t(i=s.$body())?i:s.$s("nil");return t(s["$stmt?"]())||(o=s.$compiler().$returns(o)),o})}(f[0],p("Base"))}(f[0],f)}(l[0],l)},Opal.modules["opal/nodes/super"]=function(e){var p=e.module,r=e.klass,c=e.slice,u=e.send2,d=e.find_super,o=e.to_a,s=e.truthy,a=e.send,n=e.def,i=e.return_val,h=e.to_ary,g=e.eqeq,v=e.not,m=e.eqeqeq,b=e.top,f=[],t=e.nil,l=e.$$$;return e.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,!,<<,each,children,original_args,[],meta,empty?,==="),b.$require("opal/nodes/base"),function(f,b){var y=p(f,"Opal"),j=[y].concat(b);return function(f,b){var _=p(f,"Nodes"),j=[_].concat(b),y=e.$r(j);return function(e,l){var m=r(e,l,"BaseSuperNode"),f=m.$$prototype;return f.sexp=f.def_scope=t,n(m,"$initialize",function e(){var r,l,f,p,v=e.$$p||t,i=this,h=t,g=t,m=t;return e.$$p=null,f=c(arguments),p=f,u(i,d(i,"initialize",e,!1,!0),"initialize",o(p),v),h=[].concat(o(i.sexp)),l=[].concat(o(h)),r=l.length-1,r=r<0?0:r,g=c(l,0,r),m=l[r]==null?t:l[r],l,s(m)&&s(["iter","block_pass"]["$include?"](m.$type()))?(i.iter=m,h=g):i.iter=i.$s("js_tmp","null"),i.arglist=a(i,"s",["arglist"].concat(o(h))),i.recvr=i.$s("self")},-1),n(m,"$compile_using_send",function(){var t=this;return t.$helper("send2"),t.$push("$send2("),t.$compile_receiver(),t.$compile_method_body(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),m.$private(),n(m,"$def_scope",function(){var n=this,o=t;return n.def_scope=s(o=n.def_scope)?o:s(n.$scope()["$def?"]())?n.$scope():n.$scope().$find_parent_def()}),n(m,"$defined_check_param",i("false")),n(m,"$implicit_arguments_param",i("false")),n(m,"$method_id",function(){var t=this;return t.$def_scope().$mid().$to_s()}),n(m,"$def_scope_identity",function(){var t=this;return t.$def_scope()["$identify!"](t.$def_scope().$mid())}),n(m,"$allow_stubs",i("true")),n(m,"$super_method_invocation",function(){var t=this;return t.$helper("find_super"),"$find_super("+t.$scope().$self()+", '"+t.$method_id()+"', "+t.$def_scope_identity()+", "+t.$defined_check_param()+", "+t.$allow_stubs()+")"}),n(m,"$super_block_invocation",function(){var n,o,s=this,i=t,r=t,c=t,l=t;return s.$helper("find_block_super"),o=s.$scope().$super_chain(),n=h(o),i=n[0]==null?t:n[0],r=n[1]==null?t:n[1],c=n[2]==null?t:n[2],o,l=a(i,"map",[],function(n){return n==null&&(n=t),""+n+".$$def"}).$join(" || "),"$find_block_super("+s.$scope().$self()+", "+c+", ("+l+" || "+r+"), "+s.$defined_check_param()+", "+s.$implicit_arguments_param()+")"}),n(m,"$compile_method_body",function(){var t=this;return t.$push(", "),s(t.$scope()["$def?"]())?t.$push(t.$super_method_invocation()):s(t.$scope()["$iter?"]())?t.$push(t.$super_block_invocation()):t.$raise("super must be called from method body or block")}),n(m,"$compile_method_name",function(){var n,i,o=this,r=t,c=t,a=t;return s(o.$scope()["$def?"]())?o.$push(", '"+o.$method_id()+"'"):s(o.$scope()["$iter?"]())?(i=o.$scope().$super_chain(),n=h(i),r=n[0]==null?t:n[0],c=n[1]==null?t:n[1],a=n[2]==null?t:n[2],i,o.$push(", "+a)):t})}(j[0],y("CallNode")),function(e,t){var s=r(e,t,"DefinedSuperNode");return s.$handle("defined_super"),n(s,"$allow_stubs",i("false")),n(s,"$defined_check_param",i("true")),n(s,"$compile",function(){var t=this;return t.$compile_receiver(),t.$compile_method_body(),t.$wrap("((",') != null ? "super" : nil)')})}(j[0],y("BaseSuperNode")),function(e,i){var a=r(e,i,"SuperNode");return a.$handle("super"),n(a,"$initialize",function e(){var a,r,l=e.$$p||t,i=this;return e.$$p=null,a=c(arguments),r=a,u(i,d(i,"initialize",e,!1,!0),"initialize",o(r),l),s(i.$scope()["$def?"]())?i.$scope()["$uses_block!"]():t},-1),n(a,"$compile",function(){var t=this;return t.$compile_using_send()})}(j[0],y("BaseSuperNode")),function(h,f,p){var b=r(h,f,"ZsuperNode"),y=[b].concat(p),j=e.$r(y);return b.$handle("zsuper"),n(b,"$implicit_arguments_param",i("true")),n(b,"$initialize",function e(){var a,r,h=e.$$p||t,i=this,l=t;return e.$$p=null,a=c(arguments),r=a,u(i,d(i,"initialize",e,!1,!0),"initialize",o(r),h),g(i.$iter().$type(),"iter")?t:(i.$scope()["$uses_block!"](),i.iter=i.$s("js_tmp",s(l=i.$scope().$block_name())?l:"$yield"))},-1),n(b,"$compile",function(){var n=this,i=t,r=t;return s(n.$def_scope())&&(i=n.$implicit_arglist(),s(n.$block_name())&&v(n.$iter())&&(r=n.$s("block_pass",n.$s("lvar",n.$block_name())),i["$<<"](r)),n.arglist=a(n,"s",["arglist"].concat(o(i)))),n.$compile_using_send()}),n(b,"$implicit_arglist",function(){var r=this,n=t,i=t,n=[],i=[];return a(r.$def_scope().$original_args().$children(),"each",[],function e(o){var a=e.$$s==null?this:e.$$s,r=t,c=t,l=t;switch(o==null&&(o=t),r=o.$children()["$[]"](0),o.$type().valueOf()){case"arg":case"optarg":return c=a.$s("lvar",r),n["$<<"](c);case"restarg":return c=s(r)?a.$s("lvar",r):a.$s("js_tmp","$rest_arg"),n["$<<"](a.$s("splat",c));case"kwarg":case"kwoptarg":return l=o.$meta()["$[]"]("arg_name"),i["$<<"](a.$s("pair",a.$s("sym",l),a.$s("lvar",r)));case"kwrestarg":return c=s(r)?a.$s("lvar",r):a.$s("js_tmp","$kw_rest_arg"),i["$<<"](a.$s("kwsplat",c));default:return t}},{$$s:r}),s(i["$empty?"]())||n["$<<"](a(r,"s",["hash"].concat(o(i)))),n}),n(b,"$block_name",function(){var n=this,s=t;return m(l(l(j("Opal"),"Nodes"),"IterNode"),s=n.$def_scope())?n.$def_scope().$block_name():m(l(l(j("Opal"),"Nodes"),"DefNode"),s)?n.$def_scope().$block_name():n.$raise("Don't know what to do with super in the scope "+n.$def_scope())})}(j[0],y("SuperNode"),j)}(j[0],j)}(f[0],f)},Opal.modules["opal/version"]=function(e){var n=e.module,s=e.const_set,t=[],o=e.nil;return function(e,t){var o=n(e,"Opal"),i=[o].concat(t);return s(i[0],"VERSION","1.8.2")}(t[0],t)},Opal.modules["opal/nodes/top"]=function(e){var r=e.module,l=e.klass,t=e.truthy,d=e.eqeq,o=e.send,s=e.def,u=e.not,i=e.top,c=[],n=e.nil,a=e.$$$;return e.add_stubs("require,handle,children,top_scope=,compiler,[],meta,sexp,dynamic_cache_result=,push,version_comment,eof_content,helper,==,body,s,eval?,esm?,requirable?,unshift,definition,in_scope,use_strict?,line,in_closure,|,stmt,stmts,is_a?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,enable_file_source_embed?,add_file_source_embed,inspect,module_name,file,!,no_export?,await_encountered,load?,returns,irb?,reverse_each,to_a,helpers,prepend_scope_temp,method_missing?,method_calls,join,map,to_proc,empty?,source,to_json"),i.$require("pathname"),i.$require("json"),i.$require("opal/version"),i.$require("opal/nodes/scope"),function(i,c){var m=r(i,"Opal"),h=[m].concat(c);return function(i,c){var m=r(i,"Nodes"),h=[m].concat(c),f=e.$r(h);return function(i,r,c){var h=l(i,r,"TopNode"),f=[h].concat(c),m=e.$r(f);return h.$handle("top"),h.$children("body"),s(h,"$compile",function(){var s=this;return s.$compiler()["$top_scope="](s),t(s.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&s.$compiler()["$dynamic_cache_result="](!0),s.$push(s.$version_comment()),t(s.$compiler().$eof_content())&&s.$helper("return_val"),d(s.$body(),s.$s("nil"))?t(s.$compiler()["$requirable?"]())||t(s.$compiler()["$esm?"]())||t(s.$compiler()["$eval?"]())?(s.$unshift("Opal.return_val(Opal.nil); "),s.$definition()):s.$unshift("Opal.nil; "):(o(s,"in_scope",[],function e(){var s=e.$$s==null?this:e.$$s,i=n;return s.define_nesting==null&&(s.define_nesting=n),s.define_self==null&&(s.define_self=n),s.define_relative_access==null&&(s.define_relative_access=n),s.define_absolute_const==null&&(s.define_absolute_const=n),t(s.$compiler()["$use_strict?"]())&&s.$line('"use strict";'),i=o(s,"in_closure",[a(m("Closure"),"JS_FUNCTION")["$|"](a(m("Closure"),"TOP"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$stmt(t.$stmts())},{$$s:s}),t(i["$is_a?"](m("Array")))||(i=[i]),t(s.$compiler()["$eval?"]())?t(s.define_nesting)&&s.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(t(s.define_self)&&s.$add_temp("self = Opal.top"),t(s.define_nesting)&&s.$add_temp("$nesting = []")),t(s.define_relative_access)&&s.$add_temp("$$ = Opal.$r($nesting)"),s.$add_temp("nil = Opal.nil"),t(s.define_absolute_const)&&s.$add_temp("$$$ = Opal.$$$"),s.$add_used_helpers(),s.$line(s.$scope().$to_vars()),s.$compile_method_stubs(),s.$compile_irb_vars(),s.$compile_end_construct(),s.$line(i)},{$$s:s}),s.$opening(),s.$definition(),s.$closing()),t(s.$compiler()["$enable_file_source_embed?"]())?s.$add_file_source_embed():n}),s(h,"$module_name",function(){var t=this;return a(m("Opal"),"Compiler").$module_name(t.$compiler().$file()).$inspect()}),s(h,"$definition",function(){var s=this;return t(s.$compiler()["$requirable?"]())?s.$unshift("Opal.modules["+s.$module_name()+"] = "):t(s.$compiler()["$esm?"]())&&u(s.$compiler()["$no_export?"]())?s.$unshift("export default "):n}),s(h,"$opening",function(){var s=this,o=n;return t(s.$await_encountered())&&(o="async "),t(s.$compiler()["$requirable?"]())?s.$unshift(""+o+"function(Opal) {"):t(s.$compiler()["$eval?"]())?s.$unshift("("+o+"function(Opal, self) {"):s.$unshift("Opal.queue("+o+"function(Opal) {")}),s(h,"$closing",function(){var s=this;return t(s.$compiler()["$requirable?"]())?(s.$line(`}; +`),t(s.$compiler()["$load?"]())?s.$line("Opal.load_normalized("+s.$module_name()+");"):n):t(s.$compiler()["$eval?"]())?s.$line("})(Opal, self);"):s.$line(`}); +`)}),s(h,"$stmts",function(){var t=this;return t.$compiler().$returns(t.$body())}),s(h,"$absolute_const",function(){var t=this;return t.define_absolute_const=!0,"$$$"}),s(h,"$compile_irb_vars",function(){var s=this;return t(s.$compiler()["$irb?"]())?s.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):n}),s(h,"$add_used_helpers",function(){var t=this;return o(t.$compiler().$helpers().$to_a(),"reverse_each",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$prepend_scope_temp("$"+t+" = Opal."+t)},{$$s:t})}),s(h,"$compile_method_stubs",function(){var s=this,a=n,i=n;return t(s.$compiler()["$method_missing?"]())?(a=s.$compiler().$method_calls(),i=o(a.$to_a(),"map",[],"to_s".$to_proc()).$join(","),t(i["$empty?"]())?n:s.$line("Opal.add_stubs('"+i+"');")):n}),s(h,"$compile_end_construct",function(){var s=this,o=n;return t(o=s.$compiler().$eof_content())?(s.$line("var $__END__ = Opal.Object.$new();"),s.$line("$__END__.$read = $return_val("+o.$inspect()+");")):n}),s(h,"$version_comment",function(){return"/* Generated by Opal "+a(m("Opal"),"VERSION")+" */"}),s(h,"$add_file_source_embed",function(){var t=this,s=n,o=n,s=t.$compiler().$file(),o=t.$compiler().$source();return t.$unshift("Opal.file_sources["+s.$to_json()+"] = "+o.$to_json()+`; +`)})}(h[0],f("ScopeNode"),h)}(h[0],h)}(c[0],c)},Opal.modules["opal/nodes/while"]=function(e){var c=e.module,i=e.klass,t=e.truthy,a=e.send,n=e.def,r=e.return_val,d=e.top,l=[],s=e.nil,o=e.$$$;return e.add_stubs("require,handle,children,js_truthy,test,uses_redo?,new_temp,scope,in_while,compiler,wrap_in_closure?,[]=,while_loop,in_closure,|,line,indent,stmt,body,compile_with_redo,compile_without_redo,queue_temp,await_encountered,wrap,private,compile_while,unshift,while_open,while_close,[],meta,expr?,recv?"),d.$require("opal/nodes/base"),function(l,d){var h=c(l,"Opal"),u=[h].concat(d);return function(l,d){var m=c(l,"Nodes"),u=[m].concat(d),h=e.$r(u);return function(c,l,d){var u=i(c,l,"WhileNode"),f=[u].concat(d),h=e.$r(f),m=u.$$prototype;return m.redo_var=m.sexp=s,u.$handle("while"),u.$children("test","body"),n(u,"$compile",function(){var n=this,i=s,i=n.$js_truthy(n.$test());return t(n["$uses_redo?"]())&&(n.redo_var=n.$scope().$new_temp()),a(n.$compiler(),"in_while",[],function e(){var n=e.$$s==null?this:e.$$s;return n.redo_var==null&&(n.redo_var=s),t(n["$wrap_in_closure?"]())&&n.$while_loop()["$[]="]("closure",!0),n.$while_loop()["$[]="]("redo_var",n.redo_var),a(n,"in_closure",[o(h("Closure"),"LOOP")["$|"](o(h("Closure"),"JS_LOOP"))["$|"](t(n["$wrap_in_closure?"]())?o(h("Closure"),"JS_FUNCTION"):0)],function e(){var n=e.$$s==null?this:e.$$s;return a(n,"in_closure",[o(h("Closure"),"LOOP_INSIDE")["$|"](o(h("Closure"),"JS_LOOP_INSIDE"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(a(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$stmt(t.$body())},{$$s:t}))},{$$s:n}),t(n["$uses_redo?"]())?n.$compile_with_redo(i):n.$compile_without_redo(i)},{$$s:n})},{$$s:n}),t(n["$uses_redo?"]())&&n.$scope().$queue_temp(n.redo_var),t(n["$wrap_in_closure?"]())?t(n.$scope().$await_encountered())?n.$wrap("(await (async function() {","; return nil; })())"):n.$wrap("(function() {","; return nil; })()"):s}),u.$private(),n(u,"$compile_with_redo",function(t){var n=this;return n.$compile_while(t,""+n.redo_var+" = false;")}),n(u,"$compile_without_redo",function(t){var n=this;return n.$compile_while(t)}),n(u,"$compile_while",function(n,o){var i=this;return o==null&&(o=s),t(o)&&i.$unshift(o),i.$unshift(i.$while_open(),n,i.$while_close()),t(o)&&i.$unshift(o),i.$line("}")},-2),n(u,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o}),n(u,"$while_close",r(") {")),n(u,"$uses_redo?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_redo")}),n(u,"$wrap_in_closure?",function(){var n=this,o=s;return t(o=n["$expr?"]())?o:n["$recv?"]()})}(u[0],h("Base"),u),function(e,o){var a=i(e,o,"UntilNode"),c=a.$$prototype;return c.redo_var=s,a.$handle("until"),a.$private(),n(a,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o+"!("}),n(a,"$while_close",r(")) {"))}(u[0],h("WhileNode")),function(e,o){var a=i(e,o,"WhilePostNode");return a.$handle("while_post"),a.$private(),n(a,"$compile_while",function(n,o){var i=this;return o==null&&(o=s),t(o)&&i.$unshift(o),i.$unshift("do {"),i.$line("} ",i.$while_open(),n,i.$while_close())},-2),n(a,"$while_close",r(");"))}(u[0],h("WhileNode")),function(e,o){var a=i(e,o,"UntilPostNode"),c=a.$$prototype;return c.redo_var=s,a.$handle("until_post"),a.$private(),n(a,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o+"!("}),n(a,"$while_close",r("));"))}(u[0],h("WhilePostNode"))}(u[0],u)}(l[0],l)},Opal.modules["opal/nodes/hash"]=function(e){var r=e.module,l=e.klass,h=e.slice,u=e.send2,d=e.find_super,a=e.to_a,n=e.send,o=e.def,s=e.truthy,i=e.eqeq,m=e.to_ary,f=e.top,c=[],t=e.nil;return e.add_stubs("require,handle,attr_accessor,each,children,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,compile_hash,==,empty?,expr,s,each_with_index,push,inspect,to_s,simple_keys?,wrap,helper,value"),f.$require("opal/nodes/base"),function(c,f){var g=r(c,"Opal"),p=[g].concat(f);return function(c,f){var v=r(c,"Nodes"),p=[v].concat(f),g=e.$r(p);return function(e,r){var c=l(e,r,"HashNode");return c.$handle("hash"),c.$attr_accessor("has_kwsplat","keys","values"),o(c,"$initialize",function e(){var i,r,c=e.$$p||t,o=this;return e.$$p=null,i=h(arguments),r=i,u(o,d(o,"initialize",e,!1,!0),"initialize",a(r),c),o.has_kwsplat=!1,o.keys=[],o.values=[],n(o.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(s.keys==null&&(s.keys=t),s.values==null&&(s.values=t),n==null&&(n=t),n.$type().valueOf()){case"kwsplat":return s.has_kwsplat=!0;case"pair":return s.keys["$<<"](n.$children()["$[]"](0)),s.values["$<<"](n.$children()["$[]"](1));default:return t}},{$$s:o})},-1),o(c,"$simple_keys?",function(){var s=this;return n(s.$keys(),"all?",[],function(n){return n==null&&(n=t),["sym","str","int"]["$include?"](n.$type())})}),o(c,"$compile",function(){var t=this;return s(t.$has_kwsplat())?t.$compile_merge():t.$compile_hash()}),o(c,"$compile_merge",function(){var r=this,c=t,o=t,l=[[],[]];return c=l[0],o=l[1],l,n(r.$children(),"each",[],function e(r){var l=e.$$s==null?this:e.$$s;return r==null&&(r=t),i(r.$type(),"kwsplat")?(s(o["$empty?"]())||c["$<<"](l.$expr(n(l,"s",["hash"].concat(a(o))))),c["$<<"](l.$expr(r)),o=[]):o["$<<"](r)},{$$s:r}),s(o["$empty?"]())||c["$<<"](r.$expr(n(r,"s",["hash"].concat(a(o))))),n(c,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),i(s,0)?o.$push(n):o.$push(".$merge(",n,")")},{$$s:r})}),o(c,"$compile_hash",function(){var o=this;return n(o.$children(),"each_with_index",[],function e(n,o){var r,l,a=e.$$s==null?this:e.$$s,c=t,d=t;return n==null&&(n=t),o==null&&(o=t),l=n.$children(),r=m(l),c=r[0]==null?t:r[0],d=r[1]==null?t:r[1],l,i(o,0)||a.$push(", "),s(["sym","str"]["$include?"](c.$type()))?a.$push("["+c.$children()["$[]"](0).$to_s().$inspect(),", ",a.$expr(d),"]"):a.$push("[",a.$expr(c),", ",a.$expr(d),"]")},{$$s:o}),s(o.$keys()["$empty?"]())?o.$push("(new Map())"):s(o["$simple_keys?"]())?o.$wrap("(new Map([","]))"):(o.$helper("hash_rehash"),o.$wrap("$hash_rehash(new Map([","]))"))})}(p[0],g("Base")),function(e,t){var n=l(e,t,"KwSplatNode");return n.$handle("kwsplat"),n.$children("value"),o(n,"$compile",function(){var t=this;return t.$push("Opal.to_hash(",t.$expr(t.$value()),")")})}(p[0],g("Base"))}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/array"]=function(e){var s=e.module,i=e.klass,t=e.truthy,a=e.send,r=e.def,c=e.top,o=[],n=e.nil;return e.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),c.$require("opal/nodes/base"),function(o,c){var d=s(o,"Opal"),l=[d].concat(c);return function(o,c){var d=s(o,"Nodes"),l=[d].concat(c),u=e.$r(l);return function(e,s){var o=i(e,s,"ArrayNode");return o.$handle("array"),r(o,"$compile",function(){var r,i=this,s=n,o=n,c=n;return t(i.$children()["$empty?"]())?i.$push("[]"):(r=[[],[]],s=r[0],o=r[1],r,a(i.$children(),"each",[],function e(i){var a=e.$$s==null?this:e.$$s,c=n,r=n;return i==null&&(i=n),c=i.$type()["$=="]("splat"),r=a.$expr(i),t(c)?(t(o["$empty?"]())?t(s["$empty?"]())?s["$<<"](a.$fragment("[].concat("))["$<<"](r)["$<<"](a.$fragment(")")):s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")")):(t(s["$empty?"]())?s["$<<"](a.$fragment("["))["$<<"](o)["$<<"](a.$fragment("]")):s["$<<"](a.$fragment(".concat(["))["$<<"](o)["$<<"](a.$fragment("])")),s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")"))),o=[]):(t(o["$empty?"]())||o["$<<"](a.$fragment(", ")),o["$<<"](r))},{$$s:i}),t(o["$empty?"]())||(c=[i.$fragment("["),o,i.$fragment("]")],t(s["$empty?"]())?s=c:s.$push([i.$fragment(".concat("),c,i.$fragment(")")])),i.$push(s))})}(l[0],u("Base"))}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/defined"]=function(e){var a=e.module,d=e.klass,s=e.eqeq,n=e.def,o=e.truthy,i=e.to_a,u=e.slice,r=e.send,c=e.range,h=e.top,l=[],t=e.nil;return e.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"),h.$require("opal/nodes/base"),function(l,h){var f=a(l,"Opal"),m=[f].concat(h);return function(l,h){var f=a(l,"Nodes"),m=[f].concat(h),p=e.$r(m);return function(e,a){var l=d(e,a,"DefinedNode");return l.$handle("defined?"),l.$children("value"),n(l,"$compile",function(){var t=this;switch(t.$value().$type().valueOf()){case"self":case"nil":case"false":case"true":return t.$push(t.$value().$type().$to_s().$inspect());case"lvasgn":case"ivasgn":case"gvasgn":case"cvasgn":case"casgn":case"op_asgn":case"or_asgn":case"and_asgn":return t.$push("'assignment'");case"lvar":return t.$push("'local-variable'");case"begin":return s(t.$value().$children().$size(),1)&&s(t.$value().$children()["$[]"](0).$type(),"masgn")?t.$push("'assignment'"):t.$push("'expression'");break;case"send":return t.$compile_defined_send(t.$value()),t.$wrap("("," ? 'method' : nil)");case"ivar":return t.$compile_defined_ivar(t.$value()),t.$wrap("("," ? 'instance-variable' : nil)");case"zsuper":case"super":return t.$compile_defined_super();case"yield":return t.$compile_defined_yield(),t.$wrap("("," ? 'yield' : nil)");case"xstr":return t.$compile_defined_xstr(t.$value());case"const":return t.$compile_defined_const(t.$value()),t.$wrap("("," ? 'constant' : nil)");case"cvar":return t.$compile_defined_cvar(t.$value()),t.$wrap("("," ? 'class variable' : nil)");case"gvar":return t.$compile_defined_gvar(t.$value()),t.$wrap("("," ? 'global-variable' : nil)");case"back_ref":return t.$compile_defined_back_ref(),t.$wrap("("," ? 'global-variable' : nil)");case"nth_ref":return t.$compile_defined_nth_ref(),t.$wrap("("," ? 'global-variable' : nil)");case"array":return t.$compile_defined_array(t.$value()),t.$wrap("("," ? 'expression' : nil)");default:return t.$push("'expression'")}}),n(l,"$compile_defined",function(n){var s=this,i=t,a=t,i=n.$type();return o(s["$respond_to?"]("compile_defined_"+i))?s.$__send__("compile_defined_"+i,n):(a=s.$scope().$new_temp(),s.$push("("+a+" = ",s.$expr(n),")"),a)}),n(l,"$wrap_with_try_catch",function(n){var s=this,o=t,o=s.$scope().$new_temp();return s.$push("("+o+" = (function() { try {"),s.$push(" return "+n+";"),s.$push("} catch ($err) {"),s.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),s.$push(" try {"),s.$push(" return false;"),s.$push(" } finally { Opal.pop_exception($err); }"),s.$push(" } else { throw $err; }"),s.$push("}})())"),o}),n(l,"$compile_send_recv_doesnt_raise",function(t){var n=this;return n.$wrap_with_try_catch(t)}),n(l,"$compile_defined_send",function(n){var a=this,d=t,p=t,g=t,v=t,h=t,l=t,m=t,f=t,c=[].concat(i(n));return d=c[0]==null?t:c[0],p=c[1]==null?t:c[1],g=u(c,2),c,v=a.$mid_to_jsid(p.$to_s()),o(d)?(h=a.$compile_defined(d),a.$push(" && "),s(d.$type(),"send")&&(h=a.$compile_send_recv_doesnt_raise(h),a.$push(" && ")),l=a.$scope().$new_temp(),a.$push("("+l+" = ",h,", "+l+") && ")):l=a.$scope().$self(),m=a.$scope().$new_temp(),a.$push("("+m+" = "+l+") && "),f=a.$scope().$new_temp(),a.$push("((("+f+" = "+m+v+") && !"+f+".$$stub)"),a.$push(" || "+m+"['$respond_to_missing?']('"+p+"'))"),r(g,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"block_pass":return t;default:return s.$push(" && "),s.$compile_defined(n)}},{$$s:a}),a.$wrap("(",")"),""+f+"()"}),n(l,"$compile_defined_ivar",function(n){var o=this,i=t,s=t,i=n.$children()["$[]"](0).$to_s()["$[]"](c(1,-1,!1)),s=o.$scope().$new_temp();return o.$push("("+s+" = "+o.$scope().$self()+"['"+i+"'], "+s+" != null && "+s+" !== nil)"),s}),n(l,"$compile_defined_super",function(){var t=this;return t.$push(t.$expr(t.$s("defined_super")))}),n(l,"$compile_defined_yield",function(){var n=this,s=t,i=t;return n.$scope()["$uses_block!"](),s=o(i=n.$scope().$block_name())?i:n.$scope().$find_parent_def().$block_name(),n.$push("("+s+" != null && "+s+" !== nil)"),s}),n(l,"$compile_defined_xstr",function(t){var n=this;return n.$push("(typeof(",n.$expr(t),') !== "undefined")')}),n(l,"$compile_defined_const",function(n){var a=this,l=t,d=t,c=t,u=t,r=[].concat(i(n));return l=r[0]==null?t:r[0],d=r[1]==null?t:r[1],r,c=a.$scope().$new_temp(),o(l["$nil?"]())?a.$push("("+c+" = "+a.$scope().$relative_access()+"('"+d+"', 'skip_raise'))"):s(l,a.$s("cbase"))?a.$push("("+c+" = "+a.$top_scope().$absolute_const()+"('::', '"+d+"', 'skip_raise'))"):(u=a.$compile_defined(l),a.$push(" && ("+c+" = "+a.$top_scope().$absolute_const()+"("+u+", '"+d+"', 'skip_raise'))")),c}),n(l,"$compile_defined_cvar",function(n){var a=this,r=t,c=t,o=t,s=[].concat(i(n));return r=s[0]==null?t:s[0],c=s[1]==null?t:s[1],s,o=a.$scope().$new_temp(),a.$push("("+o+" = "+a.$class_variable_owner()+".$$cvars['"+r+"'], "+o+" != null)"),o}),n(l,"$compile_defined_gvar",function(n){var s=this,a=t,i=t;return s.$helper("gvars"),a=n.$children()["$[]"](0).$to_s()["$[]"](c(1,-1,!1)),i=s.$scope().$new_temp(),o(["~","!"]["$include?"](a))?s.$push("("+i+" = ",s.$expr(n)," || true)"):s.$push("("+i+" = $gvars["+a.$inspect()+"], "+i+" != null)"),i}),n(l,"$compile_defined_back_ref",function(){var s=this,n=t;return s.$helper("gvars"),n=s.$scope().$new_temp(),s.$push("("+n+" = $gvars['~'], "+n+" != null && "+n+" !== nil)"),n}),n(l,"$compile_defined_nth_ref",function(){var s=this,n=t;return s.$helper("gvars"),n=s.$scope().$new_temp(),s.$push("("+n+" = $gvars['~'], "+n+" != null && "+n+" != nil)"),n}),n(l,"$compile_defined_array",function(n){var o=this;return r(n.$children(),"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),s(o,0)||i.$push(" && "),i.$compile_defined(n)},{$$s:o})})}(m[0],p("Base"))}(m[0],m)}(l[0],l)},Opal.modules["opal/nodes/masgn"]=function(e){var a=e.module,m=e.klass,l=e.const_set,s=e.send,o=e.eqeq,n=e.truthy,i=e.def,d=e.rb_ge,u=e.not,r=e.rb_plus,h=e.top,c=[],t=e.nil;return e.add_stubs("require,freeze,handle,children,with_temp,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,new_temp,scope,queue_temp,>=,!,updated,include?,+,last,raise"),h.$require("opal/nodes/base"),function(c,h){var p=a(c,"Opal"),f=[p].concat(h);return function(c,h){var p=a(c,"Nodes"),f=[p].concat(h),g=e.$r(f);return function(a,c,h){var f=m(a,c,"MassAssignNode"),p=[f].concat(h),g=e.$r(p);return l(p[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),f.$handle("masgn"),f.$children("lhs","rhs"),i(f,"$compile",function(){var i=this;return s(i,"with_temp",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return i==null&&(i=t),o(a.$rhs().$type(),"array")?(a.$push(""+i+" = ",a.$expr(a.$rhs())),r=n(s(a.$rhs().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("splat")}))?t:a.$rhs().$children().$size(),a.$compile_masgn(a.$lhs().$children(),i,r),a.$push(", "+i)):(a.$helper("to_ary"),s(a,"with_temp",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$push(""+n+" = ",s.$expr(s.$rhs())),s.$push(", "+i+" = $to_ary("+n+")"),s.$compile_masgn(s.$lhs().$children(),i),s.$push(", "+n)},{$$s:a}))},{$$s:i})}),i(f,"$compile_masgn",function(i,a,r){var c=this,u=t,h=t,m=t,d=t,l=t;return r==null&&(r=t),u=s(i,"take_while",[],function(n){return n==null&&(n=t),n.$type()["$!="]("splat")}),h=i.$drop(u.$size()),s(u,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$compile_assignment(n,a,s,r)},{$$s:c}),n(h["$empty?"]())?t:(m=h.$shift(),n(h["$empty?"]())?n(d=m.$children()["$[]"](0))?(c.$helper("slice"),d=d.$dup()["$<<"](c.$s("js_tmp","$slice("+a+", "+u.$size()+")")),c.$push(", "),c.$push(c.$expr(d))):t:(l=c.$scope().$new_temp(),c.$push(", "+l+" = "+a+".length - "+h.$size()),c.$push(", "+l+" = ("+l+" < "+u.$size()+") ? "+u.$size()+" : "+l),n(d=m.$children()["$[]"](0))&&(c.$helper("slice"),d=d.$dup()["$<<"](c.$s("js_tmp","$slice("+a+", "+u.$size()+", "+l+")")),c.$push(", "),c.$push(c.$expr(d))),s(h,"each_with_index",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o(s,0)?i.$compile_assignment(n,a,l):i.$compile_assignment(n,a,""+l+" + "+s)},{$$s:c}),c.$scope().$queue_temp(l)))},-3),i(f,"$compile_assignment",function(s,i,a,c){var l=this,m=t,h=t,f=t;if(c==null&&(c=t),m=u(c)||n(d(a,c))?l.$s("js_tmp","("+i+"["+a+"] == null ? nil : "+i+"["+a+"])"):l.$s("js_tmp",""+i+"["+a+"]"),h=s.$updated(),n(g("SIMPLE_ASSIGNMENT")["$include?"](s.$type())))h=h.$updated(t,r(h.$children(),[m]));else if(o(s.$type(),"send"))h=h.$updated(t,r(h.$children(),[m]));else if(o(s.$type(),"attrasgn"))h.$last()["$<<"](m);else if(o(s.$type(),"mlhs"))return l.$helper("to_ary"),f=l.$scope().$new_temp(),l.$push(", ("+f+" = $to_ary("+m.$children()["$[]"](0)+")"),l.$compile_masgn(s.$children(),f),l.$push(")"),l.$scope().$queue_temp(f),t;else l.$raise("Bad child node in masgn LHS: "+s+". LHS: "+l.$lhs());return l.$push(", "),l.$push(l.$expr(h))},-4)}(f[0],g("Base"),f)}(f[0],f)}(c[0],c)},Opal.modules["opal/nodes/arglist"]=function(e){var s=e.module,a=e.klass,o=e.send,t=e.truthy,r=e.to_a,c=e.def,l=e.top,i=[],n=e.nil;return e.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),l.$require("opal/nodes/base"),function(i,l){var u=s(i,"Opal"),d=[u].concat(l);return function(i,l){var u=s(i,"Nodes"),d=[u].concat(l),h=e.$r(d);return function(e,s){var i=a(e,s,"ArglistNode");return i.$handle("arglist"),c(i,"$compile",function(){var a=this,s=n,i=n,l=n,c=[[],[]];return s=c[0],i=c[1],c,o(a.$children(),"each",[],function e(o){var a=e.$$s==null?this:e.$$s,c=n,r=n;return o==null&&(o=n),c=o.$type()["$=="]("splat"),r=a.$expr(o),t(c)?(t(i["$empty?"]())?t(s["$empty?"]())?s["$<<"](r):s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")")):(t(s["$empty?"]())?s["$<<"](a.$fragment("["))["$<<"](i)["$<<"](a.$fragment("]")):s["$<<"](a.$fragment(".concat(["))["$<<"](i)["$<<"](a.$fragment("])")),s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")"))),i=[]):(t(i["$empty?"]())||i["$<<"](a.$fragment(", ")),i["$<<"](r))},{$$s:a}),t(i["$empty?"]())||(l=i,t(s["$empty?"]())?s=l:s["$<<"](a.$fragment(".concat(["))["$<<"](l)["$<<"](a.$fragment("])"))),o(a,"push",r(s))})}(d[0],h("Base"))}(d[0],d)}(i[0],i)},Opal.modules["opal/nodes/x_string"]=function(e){var r=e.module,m=e.klass,n=e.truthy,s=e.def,i=e.send,d=e.to_a,a=e.defs,l=e.lambda,o=e.eqeq,u=e.not,h=e.range,c=[],t=e.nil;return e.add_stubs("handle,backtick_javascript_or_warn?,compiler,compile_javascript,compile_send,s,children,push,process,unpack_return,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,include?,self,scope,new,expr,raise,strip,=~,!,extract_last_value,expr?,warning,line"),function(c,f){var g=r(c,"Opal"),p=[g].concat(f);return function(c,f){var g=r(c,"Nodes"),p=[g].concat(f),v=e.$r(p);return function(r,c,f){var p=m(r,c,"XStringNode"),b=[p].concat(f),g=e.$r(b),v=p.$$prototype;return v.level=v.should_add_semicolon=v.returning=t,p.$handle("xstr"),s(p,"$compile",function(){var t=this;return n(t.$compiler()["$backtick_javascript_or_warn?"]())?t.$compile_javascript():t.$compile_send()}),s(p,"$compile_send",function(){var n=this,s=t,s=n.$s("send",t,"`",i(n,"s",["dstr"].concat(d(n.$children()))));return n.$push(n.$process(s,n.level))}),s(p,"$compile_javascript",function(){var s=this,o=t,a=t;return s.should_add_semicolon=!1,o=s.$unpack_return(s.$children()),a=g("XStringNode").$strip_empty_children(o),n(g("XStringNode")["$single_line?"](a))?s.$compile_single_line(a):i(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$compile_child(n)},{$$s:s}),n(s["$recv?"]())&&s.$wrap("(",")"),n(s.should_add_semicolon)?s.$push(";"):t}),a(p,"$single_line?",function(s){var o=t;return n(o=s.$size()["$=="](1))?o:i(s,"none?",[],function(s){var o=t;return s==null&&(s=t),n(o=s.$type()["$=="]("str"))?s.$loc().$expression().$source()["$end_with?"](` +`):o})}),a(p,"$strip_empty_children",function(s){var i=t,o=t;for(s=s.$dup(),i=l(function(s){var o=t,i=t;return s==null&&(s=t),n(o=s["$nil?"]())?o:n(i=s.$type()["$=="]("str"))?s.$loc().$expression().$source().$rstrip()["$empty?"]():i});n(n(o=s["$any?"]())?i["$[]"](s.$first()):o);)s.$shift();for(;n(n(o=s["$any?"]())?i["$[]"](s.$last()):o);)s.$pop();return s}),p.$private(),s(p,"$compile_child",function(s){var o=this,i=t;switch(s.$type().valueOf()){case"str":return i=s.$loc().$expression().$source(),n(i["$include?"]("self"))&&o.$scope().$self(),o.$push(g("Fragment").$new(i,o.$scope(),s));case"begin":case"gvar":case"ivar":case"nil":return o.$push(o.$expr(s));default:return o.$raise("Unsupported xstr part: "+s.$type())}}),s(p,"$compile_single_line",function(s){var a=this,d=t,r=t,h=t,l=t,m=t,c=t,f=t,d=!1,r=s.$shift(),h=s["$empty?"](),r=n(l=r)?l:a.$s("nil");return o(r.$type(),"str")&&(m=r.$loc().$expression().$source().$strip(),d=m["$=~"](/^return\b/)),n(a.returning)&&u(d)&&a.$push("return "),c=n(l=s.$pop())?l:r,o(c.$type(),"str")&&(f=a.$extract_last_value(c)),n(h)||(a.should_add_semicolon=!1,a.$compile_child(r),i(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$compile_child(n)},{$$s:a})),o(c.$type(),"str")?a.$push(g("Fragment").$new(f,a.$scope(),c)):a.$compile_child(c)}),s(p,"$extract_last_value",function(s){var o=this,i=t,i=s.$loc().$expression().$source().$rstrip();return n(i["$include?"]("self"))&&o.$scope().$self(),(n(o.returning)||n(o["$expr?"]()))&&n(i["$end_with?"](";"))&&(o.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",s.$line()),i=i["$[]"](h(0,-2,!1))),n(o.returning)&&(o.should_add_semicolon=!0),i}),s(p,"$unpack_return",function(n){var i=this,s=t,s=n.$first();return i.returning=!1,o(s.$type(),"js_return")&&(i.returning=!0,n=s.$children()),n})}(p[0],v("Base"),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/lambda"]=function(e){var t=e.module,s=e.klass,o=e.send,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),a.$require("opal/nodes/call"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=s(e,t,"LambdaNode");return n.$handle("lambda"),n.$children("iter"),i(n,"$compile",function(){var t=this;return t.$helper("lambda"),o(t.$scope(),"defines_lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$lambda(",t.$expr(t.$iter()),")")},{$$s:t})})}(r[0],l("Base"))}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes"]=function(e){var t=e.top,n=e.nil;return e.add_stubs("require"),t.$require("opal/nodes/closure"),t.$require("opal/nodes/base"),t.$require("opal/nodes/literal"),t.$require("opal/nodes/variables"),t.$require("opal/nodes/constants"),t.$require("opal/nodes/call"),t.$require("opal/nodes/call_special"),t.$require("opal/nodes/module"),t.$require("opal/nodes/class"),t.$require("opal/nodes/singleton_class"),t.$require("opal/nodes/args"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/iter"),t.$require("opal/nodes/def"),t.$require("opal/nodes/defs"),t.$require("opal/nodes/if"),t.$require("opal/nodes/logic"),t.$require("opal/nodes/definitions"),t.$require("opal/nodes/yield"),t.$require("opal/nodes/rescue"),t.$require("opal/nodes/super"),t.$require("opal/nodes/top"),t.$require("opal/nodes/while"),t.$require("opal/nodes/hash"),t.$require("opal/nodes/array"),t.$require("opal/nodes/defined"),t.$require("opal/nodes/masgn"),t.$require("opal/nodes/arglist"),t.$require("opal/nodes/x_string"),t.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(e){var a=e.module,r=e.klass,c=e.const_set,s=e.def,n=e.truthy,l=e.send,d=e.range,u=e.eqeq,o=e.to_ary,i=[],t=e.nil;return e.add_stubs("empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos"),function(i,h){var f=a(i,"Opal"),m=[f].concat(h);return function(i,a,h){var m=r(i,a,"EofContent"),p=[m].concat(h),f=m.$$prototype;return f.tokens=f.source=t,c(p[0],"DATA_SEPARATOR",`__END__ +`),s(m,"$initialize",function(t,n){var s=this;return s.tokens=t,s.source=n}),s(m,"$eof",function(){var i=this,o=t,a=t;return n(i.tokens["$empty?"]())?t:(o=i.source["$[]"](e.Range.$new(i.$last_token_position(),-1,!1)),n(o)?(o=l(o.$lines(),"drop_while",[],function(s){var o=t;return s==null&&(s=t),n(o=/^.*\r?\n?$/["$match?"](s))?s["$start_with?"]("__END__")["$!"]():o}),n(/^__END__\r?\n?$/["$match?"](o["$[]"](0)))?(o=n(a=o["$[]"](d(1,-1,!1)))?a:[],o.$join()):u(o,["__END__"])?"":t):t)}),m.$private(),s(m,"$last_token_position",function(){var c=this,i=t,a=t,r=t,s=c.tokens.$last(),n=o(s);return i=n[0]==null?t:n[0],a=n[1]==null?t:n[1],s,s=a,n=o(s),i=n[0]==null?t:n[0],r=n[1]==null?t:n[1],s,r.$end_pos()})}(m[0],null,m)}(i[0],i)},Opal.modules["opal/errors"]=function(e){var l=e.module,s=e.klass,h=e.send2,u=e.find_super,o=e.def,n=e.truthy,r=e.defs,i=e.rb_plus,d=e.alias,a=e.send,c=[],t=e.nil,m=e.$$$;return e.add_stubs("attr_reader,attr_accessor,new,respond_to?,location=,location,diagnostic=,diagnostic,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,lineno=,line,label=,source_line,expression"),function(c,f){var v=l(c,"Opal"),p=[v].concat(f),g=e.$r(p);return s(p[0],g("StandardError"),"Error"),function(e,n){var i=s(e,n,"GemNotFound");return i.$attr_reader("gem_name"),o(i,"$initialize",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,s.gem_name=n,h(s,u(s,"initialize",e,!1,!0),"initialize",["can't find gem "+n],null)})}(p[0],g("Error")),function(e,t){var n=s(e,t,"CompilationError");return n.$attr_accessor("location")}(p[0],g("Error")),s(p[0],g("CompilationError"),"ParsingError"),s(p[0],g("ParsingError"),"RewritingError"),function(e,t){var n=s(e,t,"SyntaxError");return n.$attr_accessor("location")}(p[0],m("SyntaxError")),r(v,"$opal_location_from_error",function(s){var o=t,o=g("OpalBacktraceLocation").$new();return n(s["$respond_to?"]("location"))&&o["$location="](s.$location()),n(s["$respond_to?"]("diagnostic"))&&o["$diagnostic="](s.$diagnostic()),o}),r(v,"$add_opal_location_to_error",function(n,s){var o=t,o=s.$backtrace().$to_a();return o.$unshift(n.$to_s()),s.$set_backtrace(o),s}),function(e,r){var c=s(e,r,"OpalBacktraceLocation");return c.$attr_accessor("path","lineno","label"),o(c,"$initialize",function(n,s,o){var i,a=this;return n==null&&(n=t),s==null&&(s=t),o==null&&(o=t),i=[n,s,o],a.path=i[0],a.lineno=i[1],a.label=i[2],i},-1),o(c,"$to_s",function(){var o=this,s=t,s=o.$path();return n(o.$lineno())&&(s=i(s,":"+o.$lineno())),s=i(s,":in "),n(o.$label())?s=i(s,"`"+o.$label()+"'"):s=i(s,"unknown"),s}),d(c,"line","lineno"),o(c,"$diagnostic=",function(s){var o,i=this;return n(s)?(o=[s.$location()],a(i,"location=",o),o[o.length-1]):t}),o(c,"$location=",function(s){var o,i=this;return n(s)?(i["$lineno="](s.$line()),n(s["$respond_to?"]("source_line"))?(o=[s.$source_line()],a(i,"label=",o),o[o.length-1]):n(s["$respond_to?"]("expression"))?(o=[s.$expression().$source_line()],a(i,"label=",o),o[o.length-1]):t):t})}(p[0],null)}(c[0],c)},Opal.modules["opal/magic_comments"]=function(e){var r=e.module,o=e.const_set,n=e.truthy,s=e.send,c=e.rb_ge,i=e.eqeqeq,l=e.defs,a=[],d=e.$r(a),t=e.nil;return e.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==="),function(a,d){var h=r(a,"MagicComments"),u=[h].concat(d),m=e.$r(u);return o(u[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),o(u[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),l(h,"$parse",function(o,a){var l=t,r=t,l=new Map;return n(o)&&(r=o.$loc().$line(),a=a.$take(r)),s(a,"each",[],function(o){var a=t;return o==null&&(o=t),n(r)&&n(c(o.$loc().$line(),r))?t:n((a=o.$text().$scan(m("MAGIC_COMMENT_RE")))["$any?"]())||n((a=o.$text().$scan(m("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?s(a,"each",[],function(n,o){var a,r=t;return n==null&&(n=t),o==null&&(o=t),(a=[n.$to_sym(),i("true",r=o)||(!i("false",r)&&o)],s(l,"[]=",a),a[a.length-1])}):t}),l})}(d("Opal"),a)},Opal.modules["opal/source_map/map"]=function(e){var r=e.module,o=e.truthy,t=e.def,c=e.send,l=e.slice,d=e.to_ary,i=e.top,a=[],u=e.$r(a),n=e.nil,s=e.$$$;return e.add_stubs("require,map,to_h,to_json,each,[],delete,to_s,encode64,generated_code"),i.$require("base64"),i.$require("json"),function(i,a){var u=r(i,"Map"),m=[u].concat(a),h=e.$r(m);return t(u,"$to_h",function(){var t=this,s=n;return t.to_h==null&&(t.to_h=n),o(s=t.to_h)?s:t.$map()}),t(u,"$to_json",function(){var i=this,o=n;try{return o=i.$to_h(),o.$to_json()}catch(t){if(e.rescue(t,[s(h("Encoding"),"UndefinedConversionError")]))try{return c(o["$[]"]("sections"),"each",[],function(i){i==null&&(i=n);try{return i.$to_json()}catch(t){if(e.rescue(t,[s(h("Encoding"),"UndefinedConversionError")]))try{return o["$[]"]("sections").$delete(i)}finally{e.pop_exception(t)}else throw t}}),o.$to_json()}finally{e.pop_exception(t)}else throw t}}),t(u,"$as_json",function(){var s=this,n=l(arguments),o=n;return s.$to_h()},-1),t(u,"$to_s",function(){var t=this;return t.$to_h().$to_s()}),t(u,"$to_data_uri_comment",function(){var t=this;return"//# sourceMappingURL=data:application/json;base64,"+h("Base64").$encode64(t.$to_json()).$delete(` +`)}),t(u,"$cache",function(){var t=this,s=n;return t.to_h==null&&(t.to_h=n),t.to_h=o(s=t.to_h)?s:t.$map(),t}),t(u,"$marshal_dump",function(){var t=this;return[t.$to_h(),t.$generated_code()]}),t(u,"$marshal_load",function(t){var s,o,i=this;return o=t,s=d(o),i.to_h=s[0]==null?n:s[0],i.generated_code=s[1]==null?n:s[1],o})}(s(u("Opal"),"SourceMap"),a)},Opal.modules["opal/source_map/file"]=function(e){var g=e.klass,s=e.send,o=e.def,n=e.truthy,c=e.ensure_kwargs,p=e.hash_get,m=e.eqeq,a=e.rb_minus,l=e.rb_lt,d=e.to_ary,u=e.rb_plus,h=e.not,r=[],f=e.$r(r),t=e.nil,i=e.$$$;return e.add_stubs("include,attr_reader,new,[]=,size,join,map,to_proc,file,==,encoding,source,encode,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,match?,split,with_index,!,zero?,last"),function(r,f,v){var b=g(r,f,"File"),_=[b].concat(v),y=e.$r(_),j=b.$$prototype;return j.generated_code=j.fragments=j.names=j.names_map=j.relative_mappings=j.absolute_mappings=t,b.$include(i(i(y("Opal"),"SourceMap"),"Map")),b.$attr_reader("fragments"),b.$attr_reader("file"),b.$attr_reader("source"),o(b,"$initialize",function(n,o,i,a){var r=this;return a==null&&(a=t),r.fragments=n,r.file=o,r.source=i,r.names_map=s(y("Hash"),"new",[],function(n,o){var i;return n==null&&(n=t),o==null&&(o=t),(i=[o,n.$size()],s(n,"[]=",i),i[i.length-1])}),r.generated_code=a,r.absolute_mappings=t},-4),o(b,"$generated_code",function(){var o=this,i=t;return o.generated_code=n(i=o.generated_code)?i:s(o.fragments,"map",[],"code".$to_proc()).$join()}),o(b,"$map",function(t){var s,n=this;return t=c(t),s=p(t,"source_root"),s==null&&(s=""),new Map([["version",3],["sourceRoot",s],["sources",[n.$file()]],["sourcesContent",[m(n.$source().$encoding(),i(y("Encoding"),"UTF_8"))?n.$source():n.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",n.$names()],["mappings",i(i(y("Opal"),"SourceMap"),"VLQ").$encode_mappings(n.$relative_mappings())]])},-1),o(b,"$names",function(){var o=this,i=t;return o.names=n(i=o.names)?i:(o.$absolute_mappings(),s(s(o.names_map.$to_a(),"sort_by",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s}),"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n}))}),o(b,"$segment_from_fragment",function(o,i){var d,u=this,h=t,c=t,r=t,m=t,f=t,h=0,c=a(n(r=o.$line())?r:0,1);return n(l(c,0))&&(c=0),m=n(r=o.$column())?r:0,n(o.$source_map_name())?(f=n(r=u.names_map["$[]"](o.$source_map_name().$to_s()))?r:(d=[o.$source_map_name().$to_s(),u.names_map.$size()],s(u.names_map,"[]=",d),d[d.length-1]),[i,h,c,m,f]):[i,h,c,m]}),o(b,"$relative_mappings",function(){var i=this,c=t,o=t,r=t;return i.relative_mappings=n(c=i.relative_mappings)?c:(o=[0,0,0,0,0],r=0,s(i.$absolute_mappings(),"map",[],function(i){return i==null&&(i=t),o["$[]="](0,0),s(i,"map",[],function(s){var c=t,i=t;return s==null&&(s=t),c=[],c["$[]="](0,a(s["$[]"](0),o["$[]"](0))),c["$[]="](1,a(s["$[]"](1),n(i=o["$[]"](1))?i:0)),c["$[]="](2,a(s["$[]"](2),n(i=o["$[]"](2))?i:0)),c["$[]="](3,a(s["$[]"](3),n(i=o["$[]"](3))?i:0)),n(s["$[]"](4))&&(c["$[]="](4,a(s["$[]"](4).$to_int(),(n(i=o["$[]"](4))?i:r).$to_int())),r=s["$[]"](4)),o=s,c})}))}),o(b,"$absolute_mappings",function(){var o=this,r=t,a=t;return o.absolute_mappings=n(r=o.absolute_mappings)?r:(a=[],s(o.$fragments_by_line(),"each",[],function e(o){var l=e.$$s==null?this:e.$$s,r=t,c=t;return o==null&&(o=t),r=0,c=[],s(o,"each",[],function e(s){var o,l,m=e.$$s==null?this:e.$$s,h=t,a=t;return s==null&&(s=t),l=s,o=d(l),h=o[0]==null?t:o[0],a=o[1]==null?t:o[1],l,n(a["$is_a?"](i(y("Opal"),"Fragment")))&&n(a["$skip_source_map?"]())||c["$<<"](m.$segment_from_fragment(a,r)),r=u(r,h.$size())},{$$s:l,$$has_top_level_mlhs_arg:!0}),a["$<<"](c)},{$$s:o}),a)}),b.$private(),o(b,"$fragments_by_line",function(){var i=this,o=t,o=[[]];return s(i.$fragments(),"flat_map",[],function(i){var a=t,r=t,c=t;return i==null&&(i=t),a=i.$code(),r=n(/\r/["$match?"](a))?/\r?\n/:` +`,c=a.$split(r,-1),s(c.$each(),"with_index",[],function(s,a){var r=t;return s==null&&(s=t),a==null&&(a=t),r=[s,i],n(a["$zero?"]())&&h(s.$size()["$zero?"]())?o.$last()["$<<"](r):n(a["$zero?"]())&&n(s.$size()["$zero?"]())?t:n(s.$size()["$zero?"]())?o["$<<"]([]):o["$<<"]([r])})}),o})}(i(f("Opal"),"SourceMap"),null,r)},Opal.modules["opal/source_map/index"]=function(e){var a=e.klass,r=e.ensure_kwargs,c=e.hash_get,o=e.def,l=e.send,d=e.truthy,n=e.rb_plus,i=[],u=e.$r(i),t=e.nil,s=e.$$$;return e.add_stubs("include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size"),function(i,u,h){var m=a(i,u,"Index"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.source_maps=t,m.$include(s(s(p("Opal"),"SourceMap"),"Map")),m.$attr_reader("source_maps"),o(m,"$initialize",function(n,s){var o,i=this;return s=r(s),o=c(s,"join"),o==null&&(o=t),i.source_maps=n,i.join=o},-2),o(m,"$map",function(){var a=this,o=t,i=t,o=0,i=0;return new Map([["version",3],["sections",l(a.source_maps,"map",[],function s(a){var c=s.$$s==null?this:s.$$s,l=t,r=t,u=t,h=t;return c.join==null&&(c.join=t),a==null&&(a=t),l=new Map([["offset",new Map([["line",o],["column",i]])],["map",a.$to_h()]]),r=a.$generated_code(),d(c.join)&&(r=n(r,c.join)),u=r.$count(` +`),h=r["$[]"](e.Range.$new(n(r.$rindex(` +`),1),-1,!1)),o=n(o,u),i=n(i,h.$size()),l},{$$s:a})]])})}(s(u("Opal"),"SourceMap"),null,i)},Opal.modules["opal/source_map/vlq"]=function(e){var m=e.module,s=e.const_set,p=e.rb_minus,n=e.send,h=e.range,o=e.truthy,d=e.rb_lt,a=e.rb_plus,c=e.rb_gt,u=e.thrower,i=e.defs,l=e.eqeq,r=[],f=e.$r(r),t=e.nil,g=e.$$$;return e.add_stubs("<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode"),function(r,f){var b=m(r,"VLQ"),v=[b].concat(f),g=e.$r(v);return s(v[0],"VLQ_BASE_SHIFT",5),s(v[0],"VLQ_BASE",1["$<<"](g("VLQ_BASE_SHIFT"))),s(v[0],"VLQ_BASE_MASK",p(g("VLQ_BASE"),1)),s(v[0],"VLQ_CONTINUATION_BIT",g("VLQ_BASE")),s(v[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),s(v[0],"BASE64_VALUES",n(h(0,64,!0),"inject",[new Map],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$[]="](g("BASE64_DIGITS")["$[]"](s),s),n})),i(b,"$encode",function(s){var r=this,i=t,i=[];return n(s,"each",[],function e(s){var l=e.$$s==null?this:e.$$s,r=t;return s==null&&(s=t),r=o(d(s,0))?a(s["$-@"]()["$<<"](1),1):s["$<<"](1),function(){try{var e=u("break");return n(l,"loop",[],function n(){var s=t,s=r["$&"](g("VLQ_BASE_MASK"));if(r=r["$>>"](g("VLQ_BASE_SHIFT")),o(c(r,0))&&(s=s["$|"](g("VLQ_CONTINUATION_BIT"))),i["$<<"](g("BASE64_DIGITS")["$[]"](s)),o(c(r,0)))return t;e.$throw(t,n.$$is_lambda)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:r}),i.$join()}),i(b,"$decode",function(n){for(var m=this,c=t,d=t,s=t,r=t,u=t,h=t,i=t,c=[],d=n.$split("");o(d["$any?"]());){for(s=0,r=0,u=!0;o(u);)h=d.$shift(),o(h)||m.$raise(g("ArgumentError")),i=g("BASE64_VALUES")["$[]"](h),l(i["$&"](g("VLQ_CONTINUATION_BIT")),0)&&(u=!1),i=i["$&"](g("VLQ_BASE_MASK")),s=a(s,i["$<<"](r)),r=a(r,g("VLQ_BASE_SHIFT"));c["$<<"](l(s["$&"](1),1)?s["$>>"](1)["$-@"]():s["$>>"](1))}return c}),i(b,"$encode_mappings",function(s){var o=this;return n(s,"map",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(s,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$encode(n)},{$$s:o}).$join(",")},{$$s:o}).$join(";")}),i(b,"$decode_mappings",function(s){var i=this,o=t,o=[];return n(s.$split(";"),"each_with_index",[],function e(s,i){var a=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),o["$[]="](i,[]),n(s.$split(","),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o["$[]"](i)["$<<"](s.$decode(n))},{$$s:a})},{$$s:i}),o})}(g(f("Opal"),"SourceMap"),r)},Opal.modules["opal/source_map"]=function(e){var t=e.module,n=[],s=e.nil;return e.add_stubs("autoload"),function(e,n){var s=t(e,"Opal"),o=[s].concat(n);return function(e){var n=t(e,"SourceMap");return n.$autoload("Map","opal/source_map/map"),n.$autoload("File","opal/source_map/file"),n.$autoload("Index","opal/source_map/index"),n.$autoload("VLQ","opal/source_map/vlq")}(o[0])}(n[0],n)},Opal.modules["opal/compiler"]=function(e){var _=e.module,u=e.defs,w=e.klass,h=e.const_set,i=e.send,s=e.truthy,f=e.not,n=e.def,c=e.eqeqeq,l=e.Opal,g=e.to_ary,O=e.alias,b=e.regexp,j=e.rb_minus,y=e.return_ivar,d=e.slice,m=e.rb_plus,r=e.to_a,p=e.eqeq,a=e.top,v=[],t=e.nil,o=e.$$$;return e.add_stubs("require,compile,new,include,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,compiler_option,===,backtick_javascript?,warning,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,async_await_before_typecasting,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,label=,lines,-,to_i,line,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,backtick_javascript_or_warn?,==,uses_block!,block_name,find_parent_def,cache,source_map"),a.$require("corelib/string/unpack"),a.$require("set"),a.$require("opal/parser"),a.$require("opal/fragment"),a.$require("opal/nodes"),a.$require("opal/eof_content"),a.$require("opal/errors"),a.$require("opal/magic_comments"),a.$require("opal/nodes/closure"),a.$require("opal/source_map"),function(a,v){var C=_(a,"Opal"),x=[C].concat(v),E=e.$r(x);return u(C,"$compile",function(t,n){return n==null&&(n=new Map),E("Compiler").$new(t,n).$compile()},-2),function(a,v,_){var x=w(a,v,"Compiler"),k=[x].concat(_),C=e.$r(k),E=x.$$prototype;return E.option_values=E.options=E.magic_comments=E.backtick_javascript_warned=E.fragments=E.buffer=E.source=E.source_map=E.result=E.helpers=E.method_calls=E.async_await=E.unique=E.indent=E.scope=E.case_stmt=E.handlers=E.requires=E.required_trees=E.autoloads=t,x.$include(o(o(C("Nodes"),"Closure"),"CompilerSupport")),h(k[0],"INDENT"," "),h(k[0],"COMPARE",["<",">","<=",">="].$freeze()),u(x,"$module_name",function(t){var n=this;return t=C("File").$join(C("File").$dirname(t),C("File").$basename(t).$split(".").$first()),n.$Pathname(t).$cleanpath().$to_s()}),u(x,"$compiler_option",function(n,s){var o=this,a=t;return s==null&&(s=new Map),a=s.$fetch("as",n),i(o,"define_method",[a],function e(){var t=e.$$s==null?this:e.$$s;return t.$option_value(n,s)},{$$s:o})},-2),n(x,"$option_value",function(n,o){var c,a=this,d=t,l=t,u=t,r=t;return s(a.option_values["$key?"](n))?a.option_values["$[]"](n):(d=o["$[]"]("default"),l=o["$[]"]("valid_values"),u=o["$[]"]("magic_comment"),r=a.options.$fetch(n,d),s(u)&&s(a.magic_comments["$key?"](n))&&(r=a.magic_comments.$fetch(n)),s(l)&&f(l["$include?"](r))&&a.$raise(C("ArgumentError"),""+("invalid value "+r.$inspect()+" for option "+n.$inspect()+" ")+("(valid values: "+l.$inspect()+")")),(c=[n,r],i(a.option_values,"[]=",c),c[c.length-1]))}),x.$compiler_option("file",new Map([["default","(file)"]])),x.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),x.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),x.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),x.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),x.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),x.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),x.$compiler_option("load",new Map([["default",!1],["as","load?"]])),x.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),x.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),x.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),x.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),x.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),x.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),x.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),x.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),x.$compiler_option("backtick_javascript",new Map([["default",t],["as","backtick_javascript?"],["magic_comment",!0]])),n(x,"$backtick_javascript_or_warn?",function(){var n=this,o=t,i=t;return!!c(!0,o=n["$backtick_javascript?"]())||(c(t,o)?(n.backtick_javascript_warned=s(i=n.backtick_javascript_warned)?i:(n.$warning("Backtick operator usage interpreted as intent to embed JavaScript; this code will break in Opal 2.0; add a magic comment: `# backtick_javascript: true`"),!0),!0):!c(!1,o)&&t)}),x.$compiler_option("scope_variables",new Map([["default",[]]])),x.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),x.$attr_reader("result"),x.$attr_reader("fragments"),x.$attr_accessor("scope"),x.$attr_accessor("top_scope"),x.$attr_reader("case_stmt"),x.$attr_reader("eof_content"),x.$attr_reader("comments"),x.$attr_reader("method_calls"),x.$attr_reader("magic_comments"),x.$attr_reader("source"),x.$attr_accessor("dynamic_cache_result"),n(x,"$initialize",function(n,s){var o=this;return s==null&&(s=new Map),o.source=n,o.indent="",o.unique=0,o.options=s,o.comments=C("Hash").$new([]),o.case_stmt=t,o.method_calls=C("Set").$new(),o.option_values=new Map,o.magic_comments=new Map,o.dynamic_cache_result=!1},-2),n(x,"$compile",function(){var n=this;return n.$parse(),n.fragments=i(n,"re_raise_with_location",[],function e(){var n=e.$$s==null?this:e.$$s;return n.sexp==null&&(n.sexp=t),n.$process(n.sexp).$flatten()},{$$s:n}),s(n.fragments.$last().$code()["$end_with?"](` +`))||n.fragments["$<<"](n.$fragment(` +`,t,n.$s("newline"))),n.result=i(n.fragments,"map",[],"code".$to_proc()).$join("")}),n(x,"$parse",function(){var a,c,n=this,r=t,d=t,h=t,m=t,u=t;return n.buffer=o(o(l,"Parser"),"SourceBuffer").$new(n.$file(),1),n.buffer["$source="](n.source),n.parser=o(C("Opal"),"Parser").$default_parser(),c=i(n,"re_raise_with_location",[],function e(){var n=e.$$s==null?this:e.$$s;return n.parser==null&&(n.parser=t),n.buffer==null&&(n.buffer=t),n.parser.$tokenize(n.buffer)},{$$s:n}),a=g(c),r=a[0]==null?t:a[0],d=a[1]==null?t:a[1],h=a[2]==null?t:a[2],c,m=s(n["$requirable?"]())?"require":s(n["$eval?"]())?"eval":"main",n.sexp=i(r,"tap",[],function(n){var s;return n==null&&(n=t),(s=["kind",m],i(n.$meta(),"[]=",s),s[s.length-1])}),s(r.$children().$first().$location())&&(u=r.$children().$first()),n.comments=o(o(o("Parser"),"Source"),"Comment").$associate_locations(u,d),n.magic_comments=C("MagicComments").$parse(u,d),n.eof_content=C("EofContent").$new(h,n.source).$eof()}),n(x,"$source_map",function(){var n=this,i=t;return s(i=n.source_map)?i:o(o(l,"SourceMap"),"File").$new(n.fragments,n.$file(),n.source,n.result)}),n(x,"$helpers",function(){var n=this,o=t;return n.helpers=s(o=n.helpers)?o:C("Set").$new(i(n.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],function(n){return n==null&&(n=t),n.$strip().$to_sym()}))}),n(x,"$record_method_call",function(t){var n=this;return n.method_calls["$<<"](t)}),O(x,"async_await_before_typecasting","async_await"),n(x,"$async_await",function(){var r,n=this,a=t,o=t;return s((r=n.async_await,r!=null&&r!==t?"instance-variable":t))?n.async_await:(a=n.$async_await_before_typecasting(),n.async_await=c(C("String"),o=a)?n.$async_await_set_to_regexp(i(a.$split(","),"map",[],function(n){return n==null&&(n=t),n.$strip().$to_sym()})):c(C("Array"),o)||c(C("Set"),o)?n.$async_await_set_to_regexp(i(a.$to_a(),"map",[],"to_sym".$to_proc())):c(C("Regexp"),o)||c(!0,o)||c(!1,o)?a:n.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),n(x,"$async_await_set_to_regexp",function(n){return n=i(n,"map",[],function(n){return n==null&&(n=t),C("Regexp").$escape(n.$to_s()).$gsub("\\*",".*?")}),n=n.$join("|"),b(["^(",n,")$"])}),n(x,"$error",function(n,s){var a=this,i=t;return s==null&&(s=t),i=o(l,"SyntaxError").$new(n),i["$location="](o(C("Opal"),"OpalBacktraceLocation").$new(a.$file(),s)),a.$raise(i)},-2),n(x,"$re_raise_with_location",function n(){var u=n.$$p||t,c=this,a=t,i=t,d=t,r=t;n.$$p=null;try{return e.yieldX(u,[])}catch(t){if(e.rescue(t,[C("StandardError"),o(l,"SyntaxError")])){a=t;try{return i=l.$opal_location_from_error(a),i["$path="](c.$file()),s(d=i.$label())?d:i["$label="](c.source.$lines()["$[]"](j(i.$line().$to_i(),1)).$strip()),r=o(l,"SyntaxError").$new(a.$message()),r.$set_backtrace(a.$backtrace()),l.$add_opal_location_to_error(i,r),c.$raise(r)}finally{e.pop_exception(t)}}else throw t}}),n(x,"$warning",function(n,s){var o=this;return s==null&&(s=t),o.$warn("warning: "+n+" -- "+o.$file()+":"+s)},-2),n(x,"$parser_indent",y("indent")),n(x,"$s",function(t){var s=d(arguments,1),i=s;return o(o(l,"AST"),"Node").$new(t,i)},-2),n(x,"$fragment",function(n,s,o){return o==null&&(o=t),C("Fragment").$new(n,s,o)},-3),n(x,"$unique_temp",function(n){var o=this,i=t;return n=n.$to_s(),s(n)&&f(n["$empty?"]())&&(n=n.$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$]/,"$")),i=o.unique=m(o.unique,1),""+(s(n["$start_with?"]("$"))?t:"$")+n+"$"+i}),n(x,"$helper",function(t){var n=this;return n.$helpers()["$<<"](t)}),n(x,"$indent",function n(){var a=n.$$p||t,s=this,o=t,i=t;return n.$$p=null,o=s.indent,s.indent=m(s.indent,C("INDENT")),s.space=` +`+s.indent,i=e.yieldX(a,[]),s.indent=o,s.space=` +`+s.indent,i}),n(x,"$with_temp",function n(){var a=n.$$p||t,o=this,s=t,i=t;return n.$$p=null,s=o.scope.$new_temp(),i=e.yield1(a,s),o.scope.$queue_temp(s),i}),n(x,"$in_while",function n(){var o=n.$$p||t,s=this,i=t;return n.$$p=null,o!==t?(s.while_loop=s.scope.$push_while(),i=e.yieldX(o,[]),s.scope.$pop_while(),i):t}),n(x,"$in_case",function n(){var o=n.$$p||t,s=this,i=t;return n.$$p=null,o!==t?(i=s.case_stmt,s.case_stmt=new Map,e.yieldX(o,[]),s.case_stmt=i):t}),n(x,"$in_while?",function(){var t=this;return t.scope["$in_while?"]()}),n(x,"$process",function(n,o){var i=this,a=t;return o==null&&(o="expr"),s(n["$nil?"]())?i.$fragment("",i.$scope()):s(a=i.$handlers()["$[]"](n.$type()))?a.$new(n,o,i).$compile_to_fragments():i.$error("Unsupported sexp: "+n.$type())},-2),n(x,"$handlers",function(){var n=this,i=t;return n.handlers=s(i=n.handlers)?i:o(o(C("Opal"),"Nodes"),"Base").$handlers()}),n(x,"$requires",function(){var n=this,o=t;return n.requires=s(o=n.requires)?o:[]}),n(x,"$required_trees",function(){var n=this,o=t;return n.required_trees=s(o=n.required_trees)?o:[]}),n(x,"$autoloads",function(){var n=this,o=t;return n.autoloads=s(o=n.autoloads)?o:[]}),n(x,"$returns",function(n){var o,a,c=this,g=t,f=t,m=t,u=t,l=t,h=t,v=t,b=t,j=t,y=t,_=t,w=t,O=t,x=t,C=t;if(!s(n))return c.$returns(c.$s("nil"));switch(n.$type().valueOf()){case"undef":return c.$returns(n.$updated("begin",[n,c.$s("nil")]));case"break":case"next":case"redo":case"retry":return n;case"yield":return n.$updated("returnable_yield",t);case"when":return o=[].concat(r(n)),a=o.length-1,a=a<0?0:a,g=d(o,0,a),f=o[a]==null?t:o[a],o,n.$updated(t,[].concat(r(g)).concat([c.$returns(f)]));case"rescue":return o=[].concat(r(n)),m=o[0]==null?t:o[0],a=o.length-1,a=a<1?1:a,u=d(o,1,a),l=o[a]==null?t:o[a],o,u=i(u,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$returns(n)},{$$s:c}),s(l)&&(l=c.$returns(l)),n.$updated(t,[c.$returns(m)].concat(r(u)).concat([l]));case"resbody":return o=[].concat(r(n)),h=o[0]==null?t:o[0],v=o[1]==null?t:o[1],b=o[2]==null?t:o[2],o,n.$updated(t,[h,v,c.$returns(b)]);case"ensure":return o=[].concat(r(n)),j=o[0]==null?t:o[0],y=o[1]==null?t:o[1],o,n=n.$updated(t,[c.$returns(j),y]),n.$updated("js_return",[n]);case"begin":case"kwbegin":return o=[].concat(r(n)),a=o.length-1,a=a<0?0:a,_=d(o,0,a),w=o[a]==null?t:o[a],o,n.$updated(t,[].concat(r(_)).concat([c.$returns(w)]));case"while":case"until":case"while_post":case"until_post":return n;case"return":case"js_return":case"returnable_yield":return n;case"xstr":return s(c["$backtick_javascript_or_warn?"]())?n.$updated(t,[i(c,"s",["js_return"].concat(r(n.$children())))]):n;break;case"if":return o=[].concat(r(n)),O=o[0]==null?t:o[0],x=o[1]==null?t:o[1],C=o[2]==null?t:o[2],o,i(n.$updated(t,[O,c.$returns(x),c.$returns(C)]),"tap",[],function(n){var s;return n==null&&(n=t),(s=["returning",!0],i(n.$meta(),"[]=",s),s[s.length-1])});default:return p(n.$type(),"send")&&p(n.$children()["$[]"](1),"debugger")?n.$updated("begin",[n,c.$s("js_return",c.$s("nil"))]):n.$updated("js_return",[n])}}),n(x,"$handle_block_given_call",function(n){var o=this,i=t;return o.scope["$uses_block!"](),s(o.scope.$block_name())?o.$fragment("("+o.scope.$block_name()+" !== nil)",o.$scope(),n):s(i=o.scope.$find_parent_def())&&s(i.$block_name())?o.$fragment("("+i.$block_name()+" !== nil)",i,n):o.$fragment("false",i,n)}),n(x,"$marshal_dump",function(){var n=this,o=t;return[n.options,n.option_values,n.source_map=s(o=n.source_map)?o:n.$source_map().$cache(),n.magic_comments,n.result,n.required_trees,n.requires,n.autoloads]}),n(x,"$marshal_load",function(n){var s,i,o=this;return i=n,s=g(i),o.options=s[0]==null?t:s[0],o.option_values=s[1]==null?t:s[1],o.source_map=s[2]==null?t:s[2],o.magic_comments=s[3]==null?t:s[3],o.result=s[4]==null?t:s[4],o.required_trees=s[5]==null?t:s[5],o.requires=s[6]==null?t:s[6],o.autoloads=s[7]==null?t:s[7],i})}(x[0],null,x)}(v[0],v)},Opal.modules["opal/erb"]=function(e){var s=e.module,r=e.defs,c=e.klass,l=e.const_set,t=e.def,o=e.truthy,d=e.rb_plus,i=e.send,u=e.regexp,h=e.top,a=[],n=e.nil;return e.add_stubs("require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub"),h.$require("opal/compiler"),function(a,h){var f=s(a,"Opal"),m=[f].concat(h);return function(a,h){var f=s(a,"ERB"),m=[f].concat(h),p=e.$r(m);return r(f,"$compile",function(t,n){return n==null&&(n="(erb)"),p("Compiler").$new(t,n).$compile()},-2),function(s,a,r){var h=c(s,a,"Compiler"),p=[h].concat(r),m=e.$r(p),f=h.$$prototype;return f.prepared_source=f.source=f.file_name=n,l(p[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*Z/.$freeze()),t(h,"$initialize",function(t,n){var s,o=this;return n==null&&(n="(erb)"),s=[t,n,t],o.source=s[0],o.file_name=s[1],o.result=s[2],s},-2),t(h,"$prepared_source",function(){var s=this,i=n,t=n;return s.prepared_source=o(i=s.prepared_source)?i:(t=s.source,t=s.$fix_quotes(t),t=s.$find_contents(t),t=s.$find_code(t),t=s.$wrap_compiled(t),t=s.$require_erb(t),t)}),t(h,"$compile",function(){var t=this;return m("Opal").$compile(t.$prepared_source())}),t(h,"$fix_quotes",function(t){return t.$gsub('"','\\"')}),t(h,"$require_erb",function(t){return d('require "erb";',t)}),t(h,"$find_contents",function(t){return i(t,"gsub",[/<%=([\s\S]+?)%>/],function(){var t=n,t=m("Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"');return o(t["$=~"](m("BLOCK_EXPR")))?`") +output_buffer.append= `+t+` +output_buffer.append("`:`") +output_buffer.append=(`+t+`) +output_buffer.append("`})}),t(h,"$find_code",function(t){return i(t,"gsub",[/<%([\s\S]+?)%>/],function(){var t=n,t=m("Regexp").$last_match(1).$gsub(/\\"/,'"');return`") +`+t+` +output_buffer.append("`})}),t(h,"$wrap_compiled",function(t){var o=this,s=n,s=o.file_name.$sub(u(["\\.opalerb",m("REGEXP_END")]),"");return"Template.new('"+s+`') do |output_buffer| +output_buffer.append("`+t+`") +output_buffer.join +end +`})}(m[0],null,m)}(m[0],m)}(a[0],a)},Opal.modules["opal-parser"]=function(e){var m,l=e.call,p=e.raise,d=e.module,i=e.Opal,s=e.truthy,c=e.rb_plus,a=e.def,f=e.thrower,n=e.top,o=[],u=e.$r(o),t=e.nil,h=e.$$$;e.add_stubs("require,coerce_to!,merge,new,compile,[],+,to_data_uri_comment,source_map,js_eval"),n.$require("corelib/string/unpack"),n.$require("opal/compiler"),n.$require("opal/erb"),n.$require("opal/version"),function(n,o){var r=d(n,"Kernel"),u=[r].concat(o),l=e.$r(u);return a(r,"$eval",function(n,o,a,r){var g=this,f=t,p=t,u=t,m=t,d=t;return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),n=i["$coerce_to!"](n,l("String"),"to_str"),f=new Map([["file",s(p=a)?p:"(eval)"],["eval",!0]]),u=new Map([["arity_check",!1]]).$merge(f),m=h(l("Opal"),"Compiler").$new(n,u),d=m.$compile(),s(u["$[]"]("no_source_map"))||(d=c(d,m.$source_map().$to_data_uri_comment())),s(o)?o.$js_eval(d):function(){return eval(d)}(g)},-2),a(r,"$require_remote",function(n){try{var o,i=this,s=new XMLHttpRequest;return s.open("GET",n,!1),s.send(""),(o=s.responseText,typeof e.compile=="function"?eval(e.compile(o,{scope_variables:["url"],arity_check:!1,file:"(eval)",eval:!0})):i.$eval(o))}catch(t){if(t===e.t_eval_return)return t.$v;throw t}})}(o[0],o),m=Object.hasOwn||l.bind(Object.prototype.hasOwnProperty),e.compile=function(t,n){try{return t=i["$coerce_to!"](t,u("String"),"to_str"),n&&(n=e.hash(n)),e.Opal.$compile(t,n)}catch(t){if(t.$$class===e.Opal.SyntaxError){var s=e.SyntaxError.$new(t.message);throw s.$set_backtrace(t.$backtrace()),s}throw t}},e.eval=function(t,n){return eval(e.compile(t,n))};function r(){for(var t,s=document.getElementsByTagName("script"),n=0,o=s.length;n=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell"),function(r,v,y){var _=h(r,v,"StringIO"),O=[_].concat(y),w=e.$r(O),x=_.$$prototype;return x.position=x.string=t,j(O[0],"VERSION","0"),b(_,"$open",function e(n,s){var a=e.$$p||t,r=this,o=t,i=t;return e.$$p=null,n==null&&(n=""),s==null&&(s=t),o=r.$new(n,s),i=a.$call(o),o.$close(),i},-1),_.$attr_accessor("string"),s(_,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,n==null&&(n=""),s==null&&(s="rw"),o.string=n,o.position=0,g(o,p(o,"initialize",e,!1,!0),"initialize",[t,s],null)},-1),s(_,"$eof?",function(){var t=this;return t.$check_readable(),t.position["$=="](t.string.$length())}),s(_,"$seek",function(s,a){var r=this,h=t;return a==null&&(a=i(w("IO"),"SEEK_SET")),r.read_buffer="",c(i(w("IO"),"SEEK_SET"),h=a)?(o(u(s,0))||r.$raise(i(w("Errno"),"EINVAL")),r.position=s):c(i(w("IO"),"SEEK_CUR"),h)?o(l(n(r.position,s),r.string.$length()))?r.position=r.string.$length():r.position=n(r.position,s):c(i(w("IO"),"SEEK_END"),h)?o(l(s,r.string.$length()))?r.position=0:r.position=d(r.position,s):t,0},-2),s(_,"$tell",m("position")),s(_,"$rewind",function(){var t=this;return t.$seek(0)}),s(_,"$write",function(o){var i=this,a=t,r=t;return i.$check_writable(),i.read_buffer="",o=i.$String(o),f(i.string.$length(),i.position)?(i.string=n(i.string,o),i.position=n(i.position,o.$length())):(a=i.string["$[]"](e.Range.$new(0,d(i.position,1),!1)),r=i.string["$[]"](e.Range.$new(n(i.position,o.$length()),-1,!1)),i.string=n(n(a,o),r),i.position=n(i.position,o.$length()))}),s(_,"$read",function(i,a){var r=this,d=t,c=t;return i==null&&(i=t),a==null&&(a=t),r.$check_readable(),o(r["$eof?"]())?t:(d=o(i)?(c=r.string["$[]"](r.position,i),r.position=n(r.position,i),o(l(r.position,r.string.$length()))?r.position=r.string.$length():t,c):(c=r.string["$[]"](e.Range.$new(r.position,-1,!1)),r.position=r.string.$length(),c),o(a)?a.$write(d):d)},-1),s(_,"$sysread",function(t){var n=this;return n.$check_readable(),n.$read(t)}),a(_,"eof","eof?"),a(_,"pos","tell"),a(_,"pos=","seek"),a(_,"readpartial","read")}(r[0],v("IO"),r)},Opal.modules.prettyprint=function(e){var a=e.klass,o=e.send,u=e.rb_times,l=e.defs,s=e.truthy,n=e.def,c=e.rb_lt,i=e.rb_plus,r=e.rb_minus,h=e.eqeqeq,m=e.assign_ivar_val,f=e.return_ivar,p=e.slice,g=e.thrower,v=e.return_val,d=[],t=e.nil;return e.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(d,b,j){var y=a(d,b,"PrettyPrint"),O=[y].concat(j),_=e.$r(O),w=y.$$prototype;return w.group_stack=w.maxwidth=w.output_width=w.buffer_width=w.group_queue=w.buffer=w.output=w.newline=w.genspace=w.indent=t,l(_("PrettyPrint"),"$format",function n(s,i,a,r){var l=n.$$p||t,d=this,c=t;return n.$$p=null,s==null&&(s="".$dup()),i==null&&(i=79),a==null&&(a=` +`),r==null&&(r=o(d,"lambda",[],function(n){return n==null&&(n=t),u(" ",n)})),c=o(_("PrettyPrint"),"new",[s,i,a],r.$to_proc()),e.yield1(l,c),c.$flush(),s},-1),l(_("PrettyPrint"),"$singleline_format",function n(s,o,i,a){var c=n.$$p||t,r=t;return n.$$p=null,s==null&&(s="".$dup()),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r=_("SingleLine").$new(s),e.yield1(c,r),s},-1),n(y,"$initialize",function e(n,i,a){var d=e.$$p||t,r=this,l=t,c=t;return e.$$p=null,n==null&&(n="".$dup()),i==null&&(i=79),a==null&&(a=` +`),r.output=n,r.maxwidth=i,r.newline=a,r.genspace=s(l=d)?l:o(r,"lambda",[],function(n){return n==null&&(n=t),u(" ",n)}),r.output_width=0,r.buffer_width=0,r.buffer=[],c=_("Group").$new(0),r.group_stack=[c],r.group_queue=_("GroupQueue").$new(c),r.indent=0},-1),y.$attr_reader("output"),y.$attr_reader("maxwidth"),y.$attr_reader("newline"),y.$attr_reader("genspace"),y.$attr_reader("indent"),y.$attr_reader("group_queue"),n(y,"$current_group",function(){var t=this;return t.group_stack.$last()}),n(y,"$break_outmost_groups",function(){for(var n=this,l=t,o=t,d=t,a=t;s(c(n.maxwidth,i(n.output_width,n.buffer_width)));){if(!s(l=n.group_queue.$deq()))return t;for(;!s(l.$breakables()["$empty?"]());)o=n.buffer.$shift(),n.output_width=o.$output(n.output,n.output_width),n.buffer_width=r(n.buffer_width,o.$width());for(;s(s(d=n.buffer["$empty?"]()["$!"]())?_("Text")["$==="](n.buffer.$first()):d);)a=n.buffer.$shift(),n.output_width=a.$output(n.output,n.output_width),n.buffer_width=r(n.buffer_width,a.$width())}}),n(y,"$text",function(n,o){var a=this,r=t;return o==null&&(o=n.$length()),s(a.buffer["$empty?"]())?(a.output["$<<"](n),a.output_width=i(a.output_width,o)):(r=a.buffer.$last(),h(_("Text"),r)||(r=_("Text").$new(),a.buffer["$<<"](r)),r.$add(n,o),a.buffer_width=i(a.buffer_width,o),a.$break_outmost_groups())},-2),n(y,"$fill_breakable",function(t,n){var s=this;return t==null&&(t=" "),n==null&&(n=t.$length()),o(s,"group",[],function e(){var s=e.$$s==null?this:e.$$s;return s.$breakable(t,n)},{$$s:s})},-1),n(y,"$breakable",function(n,o){var a=this,r=t;return n==null&&(n=" "),o==null&&(o=n.$length()),r=a.group_stack.$last(),s(r["$break?"]())?(a.$flush(),a.output["$<<"](a.newline),a.output["$<<"](a.genspace.$call(a.indent)),a.output_width=a.indent,a.buffer_width=0):(a.buffer["$<<"](_("Breakable").$new(n,o,a)),a.buffer_width=i(a.buffer_width,o),a.$break_outmost_groups())},-1),n(y,"$group",function n(s,i,a,r,c){var d=n.$$p||t,l=this;return n.$$p=null,s==null&&(s=0),i==null&&(i=""),a==null&&(a=""),r==null&&(r=i.$length()),c==null&&(c=a.$length()),l.$text(i,r),o(l,"group_sub",[],function t(){var n=t.$$s==null?this:t.$$s;return o(n,"nest",[s],function(){return e.yieldX(d,[])})},{$$s:l}),l.$text(a,c)},-1),n(y,"$group_sub",function n(){var r=n.$$p||t,o=this,a=t;return n.$$p=null,a=_("Group").$new(i(o.group_stack.$last().$depth(),1)),o.group_stack.$push(a),o.group_queue.$enq(a),function(){try{return e.yieldX(r,[])}finally{o.group_stack.$pop(),s(a.$breakables()["$empty?"]())?o.group_queue.$delete(a):t}}()}),n(y,"$nest",function n(s){var a=n.$$p||t,o=this;return n.$$p=null,o.indent=i(o.indent,s),function(){try{return e.yieldX(a,[])}finally{o.indent=r(o.indent,s)}}()}),n(y,"$flush",function(){var n=this;return o(n.buffer,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.output==null&&(s.output=t),s.output_width==null&&(s.output_width=t),n==null&&(n=t),s.output_width=n.$output(s.output,s.output_width)},{$$s:n}),n.buffer.$clear(),n.buffer_width=0}),function(e,s){var r=a(e,s,"Text"),c=r.$$prototype;return c.objs=c.width=t,n(r,"$initialize",function(){var t=this;return t.objs=[],t.width=0}),r.$attr_reader("width"),n(r,"$output",function(n,s){var a=this;return o(a.objs,"each",[],function(s){return s==null&&(s=t),n["$<<"](s)}),i(s,a.width)}),n(r,"$add",function(t,n){var s=this;return s.objs["$<<"](t),s.width=i(s.width,n)})}(O[0],null),function(e,o){var r=a(e,o,"Breakable"),c=r.$$prototype;return c.group=c.pp=c.indent=c.obj=c.width=t,n(r,"$initialize",function(t,n,s){var o=this;return o.obj=t,o.width=n,o.pp=s,o.indent=s.$indent(),o.group=s.$current_group(),o.group.$breakables().$push(o)}),r.$attr_reader("obj"),r.$attr_reader("width"),r.$attr_reader("indent"),n(r,"$output",function(t,n){var o=this;return o.group.$breakables().$shift(),s(o.group["$break?"]())?(t["$<<"](o.pp.$newline()),t["$<<"](o.pp.$genspace().$call(o.indent)),o.indent):(s(o.group.$breakables()["$empty?"]())&&o.pp.$group_queue().$delete(o.group),t["$<<"](o.obj),i(n,o.width))})}(O[0],null),function(e,o){var i=a(e,o,"Group");return n(i,"$initialize",function(t){var n=this;return n.depth=t,n.breakables=[],n.break=!1}),i.$attr_reader("depth"),i.$attr_reader("breakables"),n(i,"$break",m("break",!0)),n(i,"$break?",f("break")),n(i,"$first?",function(){var n,o=this;return!s((n=o.first,n!=null&&n!==t?"instance-variable":t))&&(o.first=!1,!0)})}(O[0],null),function(e,i){var l=a(e,i,"GroupQueue"),d=l.$$prototype;return d.queue=t,n(l,"$initialize",function(){var s=this,i=p(arguments),a=i;return s.queue=[],o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$enq(n)},{$$s:s})},-1),n(l,"$enq",function(n){for(var o=this,i=t,i=n.$depth();!s(c(i,o.queue.$length()));)o.queue["$<<"]([]);return o.queue["$[]"](i)["$<<"](n)}),n(l,"$deq",function(){try{var n=g("return"),i=this;return o(i.queue,"each",[],function(i){return i==null&&(i=t),o(r(i.$length(),1),"downto",[0],function e(o){var a=t;if(o==null&&(o=t),s(i["$[]"](o).$breakables()["$empty?"]()))return t;a=i["$slice!"](o,1).$first(),a.$break(),n.$throw(a,e.$$is_lambda)},{$$ret:n}),o(i,"each",[],function(n){return n==null&&(n=t),n.$break()}),i.$clear()}),t}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),n(l,"$delete",function(t){var n=this;return n.queue["$[]"](t.$depth()).$delete(t)})}(O[0],null),function(s,o){var i=a(s,o,"SingleLine"),r=i.$$prototype;return r.output=r.first=t,n(i,"$initialize",function(n,s,o){var i=this;return s==null&&(s=t),o==null&&(o=t),i.output=n,i.first=[!0]},-2),n(i,"$text",function(n,s){var o=this;return s==null&&(s=t),o.output["$<<"](n)},-2),n(i,"$breakable",function(n,s){var o=this;return n==null&&(n=" "),s==null&&(s=t),o.output["$<<"](n)},-1),n(i,"$nest",function n(){var o=n.$$p||t;return n.$$p=null,e.yieldX(o,[])}),n(i,"$group",function n(s,o,i,a,r){var l=n.$$p||t,c=this;return n.$$p=null,s==null&&(s=t),o==null&&(o=""),i==null&&(i=""),a==null&&(a=t),r==null&&(r=t),c.first.$push(!0),c.output["$<<"](o),e.yieldX(l,[]),c.output["$<<"](i),c.first.$pop()},-1),n(i,"$flush",v(t)),n(i,"$first?",function(){var n=this,s=t,s=n.first["$[]"](-1);return n.first["$[]="](-1,!1),s})}(O[0],null)}(d[0],null,d)},Opal.modules.pp=function(e){var r=e.klass,c=e.gvars,n=e.send,h=e.defs,f=e.slice,p=e.to_a,m=e.module,u=e.eqeq,s=e.def,o=e.truthy,g=e.rb_plus,_=e.eqeqeq,y=e.neqeq,j=e.not,b=e.rb_gt,v=e.rb_le,d=e.top,i=[],a=e.$r(i),t=e.nil,l=e.$$$;return e.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"),d.$require("thread"),d.$require("stringio"),d.$require("prettyprint"),function(i,a,d){var w=r(i,a,"PP"),v=[w].concat(d),b=e.$r(v);return h(b("PP"),"$pp",function(s,o,i){var a=t;return c.stdout==null&&(c.stdout=t),o==null&&(o=c.stdout),i==null&&(i=79),a=b("PP").$new(o,i),n(a,"guard_inspect_key",[],function(){return a.$pp(s)}),a.$flush(),o["$<<"](` +`)},-2),h(b("PP"),"$singleline_pp",function(s,o){var i=t;return c.stdout==null&&(c.stdout=t),o==null&&(o=c.stdout),i=b("SingleLine").$new(o),n(i,"guard_inspect_key",[],function(){return i.$pp(s)}),i.$flush(),o},-2),h(b("PP"),"$mcall",function e(s,o,i){var r,c,l=e.$$p||t;return e.$$p=null,r=f(arguments,3),c=r,n(o.$instance_method(i),"bind_call",[s].concat(p(c)),l.$to_proc())},-4),w.sharing_detection=!1,function(e){return e.$attr_accessor("sharing_detection")}(e.get_singleton_class(w),v),function(i,a){var c=m(i,"PPMethods"),d=[c].concat(a),r=e.$r(d);return s(c,"$guard_inspect_key",function s(){var o,a=s.$$p||t,i=t;return s.$$p=null,u(r("Thread").$current()["$[]"]("__recursive_key__"),t)&&r("Thread").$current()["$[]="]("__recursive_key__",(new Map).$compare_by_identity()),u(r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),t)&&r("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),i=r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return r("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),e.yieldX(a,[])}finally{o=["inspect",i],n(r("Thread").$current()["$[]"]("__recursive_key__"),"[]=",o),o[o.length-1]}}()}),s(c,"$check_inspect_key",function(n){var s=t,i=t;return o(s=o(i=r("Thread").$current()["$[]"]("__recursive_key__"))?r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):i)?r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](n):s}),s(c,"$push_inspect_key",function(t){var s;return s=[t,!0],n(r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",s),s[s.length-1]}),s(c,"$pop_inspect_key",function(t){return r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(t)}),s(c,"$pp",function(s){var a,i=this;return s===null?(i.$text("null"),t):s===void 0?(i.$text("undefined"),t):s.$$class===void 0?(i.$text(Object.prototype.toString.apply(s)),t):(o((a=l("::","Delegator","skip_raise"))?"constant":t)&&o(s["$is_a?"](l("Delegator")))&&(s=s.$__getobj__()),o(i.$check_inspect_key(s))?(n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return s.$pretty_print_cycle(t)},{$$s:i}),t):function(){try{return i.$push_inspect_key(s),n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return s.$pretty_print(t)},{$$s:i})}finally{o(r("PP").$sharing_detection())?t:i.$pop_inspect_key(s)}}())},-1),s(c,"$object_group",function e(s){var o=e.$$p||t,i=this;return e.$$p=null,n(i,"group",[1,g("#<",s.$class().$name()),">"],o.$to_proc())}),s(c,"$object_address_group",function e(s){var i=e.$$p||t,a=this,o=t;return e.$$p=null,o=r("Kernel").$instance_method("to_s").$bind_call(s),o=o.$chomp(">"),n(a,"group",[1,o,">"],i.$to_proc())}),s(c,"$comma_breakable",function(){var t=this;return t.$text(","),t.$breakable()}),s(c,"$seplist",function s(i,a,r){var u=s.$$p||t,l=this,d=t,c=t;return s.$$p=null,a==null&&(a=t),r==null&&(r="each"),a=o(d=a)?d:n(l,"lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$comma_breakable()},{$$s:l}),c=!0,n(i,"__send__",[r],function(){var s=f(arguments),i=s;return o(c)?c=!1:a.$call(),e.yieldX(u,p(i))},-1)},-2),s(c,"$pp_object",function(s){var o=this;return n(o,"object_address_group",[s],function e(){var o=e.$$s==null?this:e.$$s;return n(o,"seplist",[s.$pretty_print_instance_variables(),n(o,"lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$text(",")},{$$s:o})],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i.$breakable(),_(r("Symbol"),o)&&(o=o.$to_s()),i.$text(o),i.$text("="),n(i,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return t.$breakable(""),t.$pp(s.$instance_eval(o))},{$$s:i})},{$$s:o})},{$$s:o})}),s(c,"$pp_hash",function(s){var o=this;return n(o,"group",[1,"{","}"],function e(){var o=e.$$s==null?this:e.$$s;return n(o,"seplist",[s,t,"each_pair"],function e(s,o){var i=e.$$s==null?this:e.$$s;return s==null&&(s=t),o==null&&(o=t),n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$pp(s),t.$text("=>"),n(t,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return t.$breakable(""),t.$pp(o)},{$$s:t})},{$$s:i})},{$$s:o})},{$$s:o})})}(v[0],v),w.$include(b("PPMethods")),function(t,n,s){var o=r(t,n,"SingleLine"),i=[o].concat(s),a=e.$r(i);return o.$include(a("PPMethods"))}(v[0],l(b("PrettyPrint"),"SingleLine"),v),function(i,a){var c=m(i,"ObjectMixin"),d=[c].concat(a),r=e.$r(d);return s(c,"$pretty_print",function(s){var i=this,c=t,a=t,c=r("Object").$instance_method("method");try{a=c.$bind_call(i,"inspect")}catch(n){if(e.rescue(n,[r("NameError")]))try{t}finally{e.pop_exception(n)}else throw n}return o(a)&&y(a.$owner(),r("Kernel"))?s.$text(i.$inspect()):j(a)&&o(i["$respond_to?"]("inspect"))?s.$text(i.$inspect()):s.$pp_object(i)}),s(c,"$pretty_print_cycle",function(t){var s=this;return n(t,"object_address_group",[s],function(){return t.$breakable(),t.$text("...")})}),s(c,"$pretty_print_instance_variables",function(){var t=this;return t.$instance_variables().$sort()}),s(c,"$pretty_print_inspect",function(){var t=this;return u(r("Object").$instance_method("method").$bind_call(t,"pretty_print").$owner(),l(r("PP"),"ObjectMixin"))&&t.$raise("pretty_print is not overridden for "+t.$class()),r("PP").$singleline_pp(t,"".$dup())})}(v[0],v)}(i[0],a("PrettyPrint"),i),function(e,i){var a=r(e,i,"Array");return s(a,"$pretty_print",function(s){var o=this;return n(s,"group",[1,"[","]"],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[o],function(n){return n==null&&(n=t),s.$pp(n)})},{$$s:o})}),s(a,"$pretty_print_cycle",function(t){var n=this;return t.$text(o(n["$empty?"]())?"[]":"[...]")})}(i[0],null),function(e,t){var n=r(e,t,"Hash");return s(n,"$pretty_print",function(t){var n=this;return t.$pp_hash(n)}),s(n,"$pretty_print_cycle",function(t){var n=this;return t.$text(o(n["$empty?"]())?"{}":"{...}")})}(i[0],null),function(o,i){var r=[o].concat(i),a=e.$r(r);return s(o,"$pretty_print",function(s){var o=t,o=new Map;return n(a("ENV").$keys().$sort(),"each",[],function(s){var i;return s==null&&(s=t),(i=[s,a("ENV")["$[]"](s)],n(o,"[]=",i),i[i.length-1])}),s.$pp_hash(o)})}(e.get_singleton_class(a("ENV")),i),function(o,i,a){var l=r(o,i,"Struct"),d=[l].concat(a),c=e.$r(d);return s(l,"$pretty_print",function(s){var o=this;return n(s,"group",[1,o.$sprintf("#"],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[c("PP").$mcall(o,c("Struct"),"members"),n(o,"lambda",[],function(){return s.$text(",")})],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),s.$breakable(),s.$text(o.$to_s()),s.$text("="),n(s,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return s.$breakable(""),s.$pp(t["$[]"](o))},{$$s:i})},{$$s:o})},{$$s:o})}),s(l,"$pretty_print_cycle",function(t){var n=this;return t.$text(n.$sprintf("#",c("PP").$mcall(n,c("Kernel"),"class").$name()))})}(i[0],null,i),function(e,n){var i=r(e,n,"Range");return s(i,"$pretty_print",function(n){var s=this;return n.$pp(s.$begin()),n.$breakable(""),n.$text(o(s["$exclude_end?"]())?"...":".."),n.$breakable(""),o(s.$end())?n.$pp(s.$end()):t})}(i[0],null),function(e,i){var a=r(e,i,"String");return s(a,"$pretty_print",function(s){var i=this,a=t,a=i.$lines();return o(b(a.$size(),1))?n(s,"group",[0,"",""],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[a,n(o,"lambda",[],function(){return s.$text(" +"),s.$breakable()})],function(n){return n==null&&(n=t),s.$pp(n)})},{$$s:i}):s.$text(i.$inspect())})}(i[0],null),function(i,a){var c=r(i,a,"MatchData");return s(c,"$pretty_print",function(i){var r=this,a=t,a=[];return n(r.$regexp().$named_captures(),"each",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n(o,"each",[],function(o){var i;return o==null&&(o=t),(i=[o,s],n(a,"[]=",i),i[i.length-1])})}),n(i,"object_group",[r],function s(){var r=s.$$s==null?this:s.$$s;return i.$breakable(),n(i,"seplist",[e.Range.$new(0,r.$size(),!0),n(r,"lambda",[],function(){return i.$breakable()})],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),u(n,0)?i.$pp(s["$[]"](n)):(o(a["$[]"](n))?i.$text(a["$[]"](n)):i.$pp(n),i.$text(":"),i.$pp(s["$[]"](n)))},{$$s:r})},{$$s:r})})}(i[0],null),function(t,n,s){var o=r(t,n,"Object"),i=[o].concat(s),a=e.$r(i);return o.$include(l(a("PP"),"ObjectMixin"))}(i[0],a("BasicObject"),i),n([a("Numeric"),a("Symbol"),a("FalseClass"),a("TrueClass"),a("NilClass"),a("Module")],"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(o,"class_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"$pretty_print_cycle",function(t){var n=this;return t.$text(n.$inspect())})},{$$s:i})},{$$s:d}),n([a("Numeric"),a("FalseClass"),a("TrueClass"),a("Module")],"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(o,"class_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"$pretty_print",function(t){var n=this;return t.$text(n.$inspect())})},{$$s:i})},{$$s:d}),function(i,a){var r=m(i,"Kernel"),l=[r].concat(a),c=e.$r(l);return s(r,"$pretty_inspect",function(){var t=this;return c("PP").$pp(t,c("StringIO").$new()).$string()}),s(r,"$pp",function(){var a=f(arguments),i=a;return n(i,"each",[],function(n){return n==null&&(n=t),c("PP").$pp(n)}),o(v(i.$size(),1))?i.$first():i},-1),r.$module_function("pp")}(i[0],i)},Opal.modules.promise=function(e){var h=e.klass,c=e.defs,r=e.slice,n=e.def,a=e.eqeqeq,s=e.truthy,y=e.return_ivar,b=e.not,o=e.send,d=e.to_a,f=e.rb_plus,i=e.alias,m=e.send2,u=e.find_super,p=e.rb_le,g=e.rb_minus,v=e.const_set,l=[],j=e.$r(l),t=e.nil;return e.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,to_v2,fail!,then!,always!,itself,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find,collect,inject"),function(l,v,j){var _=h(l,v,"Promise"),x=[_].concat(j),w=e.$r(x),O=_.$$prototype;return O.value=O.action=O.realized=O.next=O.delayed=O.error=O.prev=t,c(_,"$value",function(t){var n=this;return n.$new().$resolve(t)}),c(_,"$error",function(t){var n=this;return n.$new().$reject(t)}),c(_,"$when",function(){var n=r(arguments),s=n;return w("When").$new(s)},-1),_.$attr_reader("error","prev","next"),n(_,"$initialize",function(n){var s=this;return n==null&&(n=new Map),s.action=n,s.realized=!1,s.exception=!1,s.value=t,s.error=t,s.delayed=!1,s.prev=t,s.next=[]},-1),n(_,"$value",function(){var t=this;return a(w("Promise"),t.value)?t.value.$value():t.value}),n(_,"$act?",function(){var n=this,o=t;return s(o=n.action["$key?"]("success"))?o:n.action["$key?"]("always")}),n(_,"$action",function(){var t=this;return t.action.$keys()}),n(_,"$exception?",y("exception")),n(_,"$realized?",function(){var t=this;return t.realized["$!="](!1)}),n(_,"$resolved?",function(){var t=this;return t.realized["$=="]("resolve")}),n(_,"$rejected?",function(){var t=this;return t.realized["$=="]("reject")}),n(_,"$^",function(t){var n=this;return t["$<<"](n),n["$>>"](t),t}),n(_,"$<<",function(t){var n=this;return n.prev=t,n}),n(_,"$>>",function(t){var n=this;return n.next["$<<"](t),s(n["$exception?"]())?t.$reject(n.delayed["$[]"](0)):s(n["$resolved?"]())?t.$resolve(s(n.delayed)?n.delayed["$[]"](0):n.$value()):s(n["$rejected?"]())&&(b(n.action["$key?"]("failure"))||a(w("Promise"),s(n.delayed)?n.delayed["$[]"](0):n.error)?t.$reject(s(n.delayed)?n.delayed["$[]"](0):n.$error()):s(t.$action()["$include?"]("always"))&&t.$reject(s(n.delayed)?n.delayed["$[]"](0):n.$error())),n}),n(_,"$resolve",function(o){var i=this,r=t,c=t,l=t;if(o==null&&(o=t),s(i["$realized?"]())&&i.$raise(w("ArgumentError"),"the promise has already been realized"),a(w("Promise"),o))return o["$<<"](i.prev)["$^"](i);try{r=s(c=i.action["$[]"]("success"))?c:i.action["$[]"]("always"),s(r)&&(o=r.$call(o)),i["$resolve!"](o)}catch(t){if(e.rescue(t,[w("Exception")])){l=t;try{i["$exception!"](l)}finally{e.pop_exception(t)}}else throw t}return i},-1),n(_,"$resolve!",function(n){var i=this;return i.realized="resolve",i.value=n,s(i.next["$any?"]())?o(i.next,"each",[],function(s){return s==null&&(s=t),s.$resolve(n)}):i.delayed=[n]}),n(_,"$reject",function(o){var i=this,r=t,c=t,l=t;if(o==null&&(o=t),s(i["$realized?"]())&&i.$raise(w("ArgumentError"),"the promise has already been realized"),a(w("Promise"),o))return o["$<<"](i.prev)["$^"](i);try{r=s(c=i.action["$[]"]("failure"))?c:i.action["$[]"]("always"),s(r)&&(o=r.$call(o)),s(i.action["$key?"]("always"))?i["$resolve!"](o):i["$reject!"](o)}catch(t){if(e.rescue(t,[w("Exception")])){l=t;try{i["$exception!"](l)}finally{e.pop_exception(t)}}else throw t}return i},-1),n(_,"$reject!",function(n){var i=this;return i.realized="reject",i.error=n,s(i.next["$any?"]())?o(i.next,"each",[],function(s){return s==null&&(s=t),s.$reject(n)}):i.delayed=[n]}),n(_,"$exception!",function(t){var n=this;return n.exception=!0,n["$reject!"](t)}),n(_,"$then",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["success",n]])))}),n(_,"$then!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"then",[],s.$to_proc())}),n(_,"$fail",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["failure",n]])))}),n(_,"$fail!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"fail",[],s.$to_proc())}),n(_,"$always",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["always",n]])))}),n(_,"$always!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"always",[],s.$to_proc())}),n(_,"$trace",function e(n){var s=e.$$p||t,o=this;return e.$$p=null,n==null&&(n=t),o["$^"](w("Trace").$new(n,s))},-1),n(_,"$trace!",function e(){var s,i,c=e.$$p||t,a=this;return e.$$p=null,s=r(arguments),i=s,a["$there_can_be_only_one!"](),o(a,"trace",d(i),c.$to_proc())},-1),n(_,"$there_can_be_only_one!",function(){var n=this;return s(n.next["$any?"]())?n.$raise(w("ArgumentError"),"a promise has already been chained"):t}),n(_,"$inspect",function(){var n=this,o=t,i=t,o="#<"+n.$class()+"("+n.$object_id()+")";return s(n.next["$any?"]())&&(o=f(o," >> "+n.next.$inspect())),o=f(o,s(n["$realized?"]())?": "+(s(i=n.value)?i:n.error).$inspect()+">":">"),o}),n(_,"$to_v2",function(){var s=this,n=t,n=w("PromiseV2").$new();return o(o(s,"then",[],function(s){return s==null&&(s=t),n.$resolve(s)}),"rescue",[],function(s){return s==null&&(s=t),n.$reject(s)}),n}),i(_,"await","to_v2"),i(_,"catch","fail"),i(_,"catch!","fail!"),i(_,"do","then"),i(_,"do!","then!"),i(_,"ensure","always"),i(_,"ensure!","always!"),i(_,"finally","always"),i(_,"finally!","always!"),i(_,"rescue","fail"),i(_,"rescue!","fail!"),i(_,"to_n","to_v2"),i(_,"to_v1","itself"),function(i,a,r){var l=h(i,a,"Trace"),f=[l].concat(r),v=e.$r(f);return c(l,"$it",function(n){var a=this,o=t,i=t,o=[];return(s(n["$act?"]())||s(n.$prev()["$nil?"]()))&&o.$push(n.$value()),i=n.$prev(),s(i)?o.$concat(a.$it(i)):o}),n(l,"$initialize",function e(n,i){var r=e.$$p||t,a=this;return e.$$p=null,a.depth=n,m(a,u(a,"initialize",e,!1,!0),"initialize",[new Map([["success",o(a,"proc",[],function e(){var r=e.$$s==null?this:e.$$s,a=t,a=v("Trace").$it(r).$reverse();return a.$pop(),s(n)&&s(p(n,a.$length()))&&a.$shift(g(a.$length(),n)),o(i,"call",d(a))},{$$s:a})]])],null)})}(x[0],_,x),function(c,l,f){var p=h(c,l,"When"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.wait=t,n(p,"$initialize",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=[]),m(s,u(s,"initialize",e,!1,!0),"initialize",[],null),s.wait=[],o(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$wait(n)},{$$s:s})},-1),n(p,"$each",function e(){var n=e.$$p||t,i=this;return e.$$p=null,s(n)||i.$raise(g("ArgumentError"),"no block given"),o(i,"then",[],function(s){return s==null&&(s=t),o(s,"each",[],n.$to_proc())})}),n(p,"$collect",function e(){var n=e.$$p||t,i=this;return e.$$p=null,s(n)||i.$raise(g("ArgumentError"),"no block given"),o(i,"then",[],function(s){return s==null&&(s=t),g("When").$new(o(s,"map",[],n.$to_proc()))})}),n(p,"$inject",function e(){var s,i,a=e.$$p||t,c=this;return e.$$p=null,s=r(arguments),i=s,o(c,"then",[],function(n){return n==null&&(n=t),o(n,"reduce",d(i),a.$to_proc())})},-1),n(p,"$wait",function(n){var i=this;return a(g("Promise"),n)||(n=g("Promise").$value(n)),s(n["$act?"]())&&(n=n.$then()),i.wait["$<<"](n),o(n,"always",[],function e(){var n=e.$$s==null?this:e.$$s;return n.next==null&&(n.next=t),s(n.next["$any?"]())?n.$try():t},{$$s:i}),i}),n(p,"$>>",function e(){var i,a,c=e.$$p||t,s=this;return e.$$p=null,i=r(arguments),a=i,o(m(s,u(s,">>",e,!1,!0),">>",d(a),c),"tap",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$try()},{$$s:s})},-1),n(p,"$try",function(){var n=this,i=t;return s(o(n.wait,"all?",[],"realized?".$to_proc()))?(i=o(n.wait,"find",[],"rejected?".$to_proc()),s(i)?n.$reject(i.$error()):n.$resolve(o(n.wait,"map",[],"value".$to_proc()))):t}),i(p,"map","collect"),i(p,"reduce","inject"),i(p,"and","wait")}(x[0],_,x)}(l[0],null,l),v(l[0],"PromiseV1",j("Promise"))},Opal.modules.securerandom=function(e){var o=e.module,n=e.defs,i=e.top,s=[],t=e.nil,a=e.$$$;return e.add_stubs("require,extend,warn,rand,gen_random,_verify_count,encode"),i.$require("corelib/random/formatter"),function(s,i){var c,d,r=o(s,"SecureRandom"),u=[r].concat(i),l=e.$r(u);return r.$extend(a(l("Random"),"Formatter")),e.global.crypto&&e.global.crypto.getRandomValues||e.global.msCrypto&&e.global.msCrypto.getRandomValues?(d=e.global.crypto||e.global.msCrypto,c=function(e){var t=new Uint8Array(e);return d.getRandomValues(t),t}):e.global.crypto&&e.global.crypto.randomBytes?c=function(t){return e.global.crypto.randomBytes(t)}:(r.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),c=function(e){for(var n=new Uint8Array(e),t=0;t>r.$rand(255)&255;return n}),n(r,"$bytes",function(n){var s=this;return n==null&&(n=t),s.$gen_random(n)},-1),n(r,"$gen_random",function(n){var s,i,o=t;n==null&&(n=t),n=l("Random").$_verify_count(n);for(o="",i=c(n),s=0;s=o.length?t:o[n]==null?t:o[n])}),n(m,"$check",function(n){var o,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?s.matched=t:s.matched=o[0]}),n(m,"$check_until",function(t){var n=this,s=n.prev_pos,o=n.pos,i=n.working,a=n.$scan_until(t);return n.prev_pos=s,n.pos=o,n.working=i,a}),n(m,"$peek",function(t){var n=this;return n.working.substring(0,t)}),n(m,"$eos?",function(){var t=this;return t.working.length===0}),n(m,"$exist?",function(n){var o=this,s=n.exec(o.working);return s==null?t:s.index==0?0:s.index+1}),n(m,"$skip",function(n){var o,i,a,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?(s.match=[],s.matched=t):(a=o[0],i=a.length,s.matched=a,s.match=o,s.prev_pos=s.pos,s.pos+=i,s.working=s.working.substring(i),i)}),n(m,"$skip_until",function(n){var o=this,s=o.$scan_until(n);return s===t?t:(o.matched=s.substr(-1),s.length)}),n(m,"$get_byte",function(){var n=this,s=t;return n.pos,last,-,==,+,new,parse,=~,message,raise,handle_rmn_sd_sy,handle_sm_sd_sy,<,handle_sm_sd,handle_year_and_month,empty?,time_with_rollover,day,get_anchor,hour,min,sec,>=,dealias_and_disambiguate_times,handle_r,respond_to?,offset,handle_srp,handle_s_r_p,times,next,end,handle_orr,*,now=,merge,get_repeaters,pop,first,shift,!=,debug,puts,class,find_within,reverse,sort,compact,map,leap?,cover?,each_with_index,untag,tag,<<,!,ambiguous?,include,attr_accessor,attr_reader,delete,tokenize,options,tokens_to_span,guess,downcase,to_s,gsub,numerize,width,/,[]=,Array,private,pre_normalize,split,each,scan,select,tagged?,definitions,match,invoke,reject,<=,is_a?,utc_offset,to_time,rjust,to_i,abs,%,each_index,chop,===,tags_match?,count,key?,to_sym,send,pattern,const_get,upcase,tags,kind_of?,include?,word,-@,delete_if,find,join,scan_for_all,scan_for,could_be_subsecond?,could_be_second?,could_be_minute?,could_be_hour?,could_be_day?,could_be_month?,could_be_year?,make_year,scan_for_commas,scan_for_dots,scan_for_colon,scan_for_space,scan_for_slash,scan_for_dash,scan_for_quote,scan_for_at,scan_for_in,scan_for_on,scan_for_and,scan_for_t,scan_for_w,scan_for_plus,scan_for_minus,dup,andition,to_f,scan_until,pos,matched_size,reset,find_next_season,scan_for_season_names,scan_for_month_names,scan_for_day_names,scan_for_day_portions,scan_for_times,scan_for_units,capitalize,<=>,construct,build_offset_time,month_days,find_current_season,from_time,find_next_season_span,num_seconds_til_start,num_seconds_til_end,construct_season,offset_by,is_between?,start,equals?,num_seconds_til,loop,is_weekday?,wday,symbol_to_number,is_weekend?,succ,construct_date_from_reference_and_offset,length,insert,nil?,**,gmt_offset,catch,time,throw,debug=,time_class=,name,normalize_offset"),F.$require("time"),F.$require("date"),function(a,r){var m=g(a,"Chronic"),c=[m].concat(r);return l(c[0],null,"Anchor"),function(a,r){var l=g(a,"Handlers"),m=[l].concat(r),c=e.$r(m);return l.$module_function(),s(l,"$handle_m_d",function(n,s,o,i){var a,l=this,r=t,d=t,u=t;return n["$start="](l.$now()),r=n.$this(i["$[]"]("context")),a=[r.$begin().$year(),r.$begin().$month()],d=a[0],n=a[1],a,u=c("Chronic").$time_class().$local(d,n,s),l.$day_or_time(u,o,i)}),s(l,"$handle_rmn_sd",function(s,i){var a=this,r=t,l=t,r=s["$[]"](0).$get_tag(c("RepeaterMonthName")),l=s["$[]"](1).$get_tag(c("ScalarDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_rmn_sd_on",function(n,s){var r=this,i=t,a=t,l=t;return o(v(n.$size(),3))?(i=n["$[]"](2).$get_tag(c("RepeaterMonthName")),a=n["$[]"](3).$get_tag(c("ScalarDay")).$type(),l=w(0,1,!1)):(i=n["$[]"](1).$get_tag(c("RepeaterMonthName")),a=n["$[]"](2).$get_tag(c("ScalarDay")).$type(),l=w(0,0,!1)),o(r["$month_overflow?"](r.$now().$year(),i.$index(),a))?t:r.$handle_m_d(i,a,n["$[]"](l),s)}),s(l,"$handle_rmn_od",function(s,i){var a=this,r=t,l=t,r=s["$[]"](0).$get_tag(c("RepeaterMonthName")),l=s["$[]"](1).$get_tag(c("OrdinalDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_od_rm",function(s,o){var r=this,i=t,a=t,i=s["$[]"](0).$get_tag(c("OrdinalDay")).$type(),a=s["$[]"](2).$get_tag(c("RepeaterMonth"));return r.$handle_m_d(a,i,s["$[]"](e.Range.$new(3,s.$size(),!1)),o)}),s(l,"$handle_od_rmn",function(s,i){var a=this,r=t,l=t,r=s["$[]"](1).$get_tag(c("RepeaterMonthName")),l=s["$[]"](0).$get_tag(c("OrdinalDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_sy_rmn_od",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("ScalarYear")).$type(),r=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),l=s["$[]"](2).$get_tag(c("OrdinalDay")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](a,r,l)))return t;try{return m=c("Chronic").$time_class().$local(a,r,l),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_rmn",function(s,i){var a=this,r=t,l=t,r=s["$[]"](1).$get_tag(c("RepeaterMonthName")),l=s["$[]"](0).$get_tag(c("ScalarDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_rmn_od_on",function(n,s){var r=this,i=t,a=t,l=t;return o(v(n.$size(),3))?(i=n["$[]"](2).$get_tag(c("RepeaterMonthName")),a=n["$[]"](3).$get_tag(c("OrdinalDay")).$type(),l=w(0,1,!1)):(i=n["$[]"](1).$get_tag(c("RepeaterMonthName")),a=n["$[]"](2).$get_tag(c("OrdinalDay")).$type(),l=w(0,0,!1)),o(r["$month_overflow?"](r.$now().$year(),i.$index(),a))?t:r.$handle_m_d(i,a,n["$[]"](l),s)}),s(l,"$handle_rmn_sy",function(o){var a=t,r=t,l=t,u=t,h=t,a=o["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=o["$[]"](1).$get_tag(c("ScalarYear")).$type();d(a,12)?(l=n(r,1),u=1):(l=r,u=n(a,1));try{return h=c("Chronic").$time_class().$local(l,u),c("Span").$new(c("Chronic").$time_class().$local(r,a),h)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_generic",function(i,a){var d=this,r=t,l=t;try{return r=c("Chronic").$time_class().$parse(a["$[]"]("text")),c("Span").$new(r,n(r,1))}catch(n){if(e.rescue(n,[c("ArgumentError")])){l=n;try{return o(l.$message()["$=~"](/out of range/))?t:d.$raise(l)}finally{e.pop_exception(n)}}else throw n}}),s(l,"$handle_rmn_sd_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=s["$[]"](1).$get_tag(c("ScalarDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rmn_od_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=s["$[]"](1).$get_tag(c("OrdinalDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_od_rmn_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("OrdinalDay")).$type(),r=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,r,a)))return t;try{return m=c("Chronic").$time_class().$local(l,r,a),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_rmn_sy",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0),s["$[]"](2)],a=s.$last(u(s.$size(),3));return r.$handle_rmn_sd_sy(n(i,a),o)}),s(l,"$handle_sm_sd_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("ScalarMonth")).$type(),r=s["$[]"](1).$get_tag(c("ScalarDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_sm_sy",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0),s["$[]"](2)],a=s.$last(u(s.$size(),3));return r.$handle_sm_sd_sy(n(i,a),o)}),s(l,"$handle_sy_sm_sd",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](2),s["$[]"](0)],a=s.$last(u(s.$size(),3));return r.$handle_sm_sd_sy(n(i,a),o)}),s(l,"$handle_sm_sd",function(i,a){var r=this,l=t,h=t,m=t,p=t,f=t,l=i["$[]"](0).$get_tag(c("ScalarMonth")).$type(),h=i["$[]"](1).$get_tag(c("ScalarDay")).$type(),m=r.$now().$year(),p=i.$last(u(i.$size(),2));if(o(r["$month_overflow?"](m,l,h)))return t;try{return f=c("Chronic").$time_class().$local(m,l,h),d(a["$[]"]("context"),"future")&&o(O(f,r.$now()))&&(f=c("Chronic").$time_class().$local(n(m,1),l,h)),r.$day_or_time(f,p,a)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_sm",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0)],a=s.$last(u(s.$size(),2));return r.$handle_sm_sd(n(i,a),o)}),s(l,"$handle_year_and_month",function(o,i){var a=t,r=t,l=t;d(i,12)?(a=n(o,1),r=1):(a=o,r=n(i,1));try{return l=c("Chronic").$time_class().$local(a,r),c("Span").$new(c("Chronic").$time_class().$local(o,i),l)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sm_sy",function(n){var a=this,o=t,i=t,o=n["$[]"](0).$get_tag(c("ScalarMonth")).$type(),i=n["$[]"](1).$get_tag(c("ScalarYear")).$type();return a.$handle_year_and_month(i,o)}),s(l,"$handle_sy_sm",function(n){var a=this,o=t,i=t,o=n["$[]"](0).$get_tag(c("ScalarYear")).$type(),i=n["$[]"](1).$get_tag(c("ScalarMonth")).$type();return a.$handle_year_and_month(o,i)}),s(l,"$handle_rdn_rmn_od",function(i,a){var h=this,r=t,l=t,m=t,d=t,f=t,p=t,g=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("OrdinalDay")).$type(),m=i.$last(u(i.$size(),3)),d=h.$now().$year();if(o(h["$month_overflow?"](d,r.$index(),l)))return t;try{return o(m["$empty?"]())?(f=c("Chronic").$time_class().$local(d,r.$index(),l),p=h.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(f,p)):(g=c("Chronic").$time_class().$local(d,r.$index(),l),h.$day_or_time(g,m,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_od_sy",function(i){var u=this,r=t,l=t,d=t,h=t,m=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("OrdinalDay")).$type(),d=i["$[]"](3).$get_tag(c("ScalarYear")).$type();if(o(u["$month_overflow?"](d,r.$index(),l)))return t;try{return h=c("Chronic").$time_class().$local(d,r.$index(),l),m=u.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(h,m)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_od",function(i,a){var l=this,h=t,f=t,m=t,r=t,p=t,g=t,b=t,h=i["$[]"](1).$get_tag(c("OrdinalDay")).$type(),f=i.$last(u(i.$size(),2)),m=l.$now().$year(),r=l.$now().$month();if(d(a["$[]"]("context"),"future")&&(o(v(l.$now().$day(),h))?r=n(r,1):r),o(l["$month_overflow?"](m,r,h)))return t;try{return o(f["$empty?"]())?(p=c("Chronic").$time_class().$local(m,r,h),g=l.$time_with_rollover(m,r,n(h,1)),c("Span").$new(p,g)):(b=c("Chronic").$time_class().$local(m,r,h),l.$day_or_time(b,f,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_sd",function(i,a){var h=this,r=t,l=t,m=t,d=t,f=t,p=t,g=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("ScalarDay")).$type(),m=i.$last(u(i.$size(),3)),d=h.$now().$year();if(o(h["$month_overflow?"](d,r.$index(),l)))return t;try{return o(m["$empty?"]())?(f=c("Chronic").$time_class().$local(d,r.$index(),l),p=h.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(f,p)):(g=c("Chronic").$time_class().$local(d,r.$index(),l),h.$day_or_time(g,m,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_sd_sy",function(i){var u=this,r=t,l=t,d=t,h=t,m=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("ScalarDay")).$type(),d=i["$[]"](3).$get_tag(c("ScalarYear")).$type();if(o(u["$month_overflow?"](d,r.$index(),l)))return t;try{return h=c("Chronic").$time_class().$local(d,r.$index(),l),m=u.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(h,m)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sm_rmn_sy",function(s,i){var l,g=this,a=t,d=t,u=t,r=t,h=t,m=t,f=t,p=t,a=s["$[]"](0).$get_tag(c("ScalarDay")).$type(),d=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),u=s["$[]"](2).$get_tag(c("ScalarYear")).$type();return o(v(s.$size(),3))?(r=g.$get_anchor([s.$last()],i).$begin(),l=[r.$hour(),r.$min(),r.$sec()],h=l[0],m=l[1],f=l[2],l,r=c("Chronic").$time_class().$local(u,d,a,h,m,f),p=c("Chronic").$time_class().$local(u,d,n(a,1),h,m,f)):(r=c("Chronic").$time_class().$local(u,d,a),o(j(a,31))||(a=n(a,1)),p=c("Chronic").$time_class().$local(u,d,a)),c("Span").$new(r,p)}),s(l,"$handle_r",function(n,s){var o=this,i=t,i=o.$dealias_and_disambiguate_times(n,s);return o.$get_anchor(i,s)}),s(l,"$handle_r_g_r",function(n,s){var i=this,o=t,o=[n["$[]"](1),n["$[]"](0),n["$[]"](2)];return i.$handle_r(o,s)}),s(l,"$handle_srp",function(n,s){var r=t,a=t,l=t,r=n["$[]"](0).$get_tag(c("Scalar")).$type(),a=n["$[]"](1).$get_tag(c("Repeater")),l=n["$[]"](2).$get_tag(c("Pointer")).$type();return o(a["$respond_to?"]("offset"))?a.$offset(s,r,l):t}),s(l,"$handle_s_r_p",function(s,o){var i=this,a=t,a=c("Span").$new(i.$now(),n(i.$now(),1));return i.$handle_srp(s,a,o)}),s(l,"$handle_p_s_r",function(n,s){var i=this,o=t,o=[n["$[]"](1),n["$[]"](2),n["$[]"](0)];return i.$handle_s_r_p(o,s)}),s(l,"$handle_s_r_p_a",function(s,o){var i=this,a=t,a=i.$get_anchor(s["$[]"](e.Range.$new(3,u(s.$size(),1),!1)),o);return i.$handle_srp(s,a,o)}),s(l,"$handle_s_r_a_s_r_p_a",function(o,i){var a=this,r=t,c=t,r=a.$get_anchor(o["$[]"](e.Range.$new(4,u(o.$size(),1),!1)),i),c=a.$handle_srp(n(o["$[]"](w(0,1,!1)),o["$[]"](w(4,6,!1))),r,i);return a.$handle_srp(n(o["$[]"](w(2,3,!1)),o["$[]"](w(4,6,!1))),c,i)}),s(l,"$handle_orr",function(n,s){var r=t,l=t,a=t,r=n["$[]"](1).$get_tag(c("Repeater"));return r["$start="](u(s.$begin(),1)),l=n["$[]"](0).$get_tag(c("Ordinal")).$type(),a=t,function(){try{var e=x("break");return h(l,"times",[],function n(){if(a=r.$next("future"),o(j(a.$begin(),s.$end())))a=t,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a}),s(l,"$handle_o_r_s_r",function(n,s){var o=this,i=t,i=o.$get_anchor([n["$[]"](3)],s);return o.$handle_orr(n["$[]"](w(0,1,!1)),i,s)}),s(l,"$handle_o_r_g_r",function(n,s){var o=this,i=t,i=o.$get_anchor(n["$[]"](w(2,3,!1)),s);return o.$handle_orr(n["$[]"](w(0,1,!1)),i,s)}),s(l,"$day_or_time",function(s,a,r){var l=this,d=t,d=c("Span").$new(s,n(s,i(i(24,60),60)));return o(a["$empty?"]())?d:(l["$now="](d.$begin()),l.$get_anchor(l.$dealias_and_disambiguate_times(a,r),r.$merge(new Map([["context","future"]]))))}),s(l,"$get_anchor",function(n,s){var a=this,d=t,u=t,l=t,i=t,r=t,d=c("Grabber").$new("this"),u="future",l=a.$get_repeaters(n);switch(h(l.$size(),"times",[],function(){return n.$pop()}),o(n.$first())&&o(n.$first().$get_tag(c("Grabber")))&&(d=n.$shift().$get_tag(c("Grabber"))),i=l.$shift(),i["$start="](a.$now()),d.$type().valueOf()){case"last":r=i.$next("past");break;case"this":A(s["$[]"]("context"),"past")&&o(v(l.$size(),0))?r=i.$this("none"):r=i.$this(s["$[]"]("context"));break;case"next":r=i.$next("future");break;default:a.$raise("Invalid grabber")}return o(c("Chronic").$debug())&&(a.$puts("Handler-class: "+i.$class()),a.$puts("--"+r)),a.$find_within(l,r,u)}),s(l,"$get_repeaters",function(n){return h(n,"map",[],function(n){return n==null&&(n=t),n.$get_tag(c("Repeater"))}).$compact().$sort().$reverse()}),s(l,"$month_overflow?",function(n,s,i){try{return o(p("Date")["$leap?"](n))?v(i,p(c("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"](u(s,1))):v(i,p(c("RepeaterMonth"),"MONTH_DAYS")["$[]"](u(s,1)))}catch(t){if(e.rescue(t,[c("ArgumentError")]))try{return!1}finally{e.pop_exception(t)}else throw t}}),s(l,"$find_within",function(n,s,i){var l=this,r=t,a=t;return o(c("Chronic").$debug())&&l.$puts("--"+s),o(n["$empty?"]())?s:(r=n.$shift(),r["$start="](d(i,"future")?s.$begin():s.$end()),a=r.$this("none"),o(s["$cover?"](a.$begin()))||o(s["$cover?"](a.$end()))?l.$find_within(n,a,i):t)}),s(l,"$time_with_rollover",function(s,i,a){var l=this,r=t,r=o(l["$month_overflow?"](s,i,a))?d(i,12)?[n(s,1),1,1]:[s,n(i,1),1]:[s,i,a];return h(c("Chronic").$time_class(),"local",N(r))}),s(l,"$dealias_and_disambiguate_times",function(s,i){var m=this,r=t,d=t,a=t,u=t,l=t,r=t;if(function(){try{var e=x("break");return h(s,"each_with_index",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),o(s.$get_tag(c("RepeaterDayPortion"))))r=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),d=t,function(){try{var e=x("break");return h(s,"each_with_index",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),o(s.$get_tag(c("RepeaterTime"))))d=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o(r)&&o(d))switch(a=s["$[]"](r),u=a.$get_tag(c("RepeaterDayPortion")),u.$type().valueOf()){case"morning":o(c("Chronic").$debug())&&m.$puts("--morning->am"),a.$untag(c("RepeaterDayPortion")),a.$tag(c("RepeaterDayPortion").$new("am"));break;case"afternoon":case"evening":case"night":o(c("Chronic").$debug())&&m.$puts("--"+u.$type()+"->pm"),a.$untag(c("RepeaterDayPortion")),a.$tag(c("RepeaterDayPortion").$new("pm"));break;default:t}return A(i["$[]"]("ambiguous_time_range"),"none")&&(l=[],h(s,"each_with_index",[],function(a,r){var d=t,u=t;return a==null&&(a=t),r==null&&(r=t),l["$<<"](a),d=s["$[]"](n(r,1)),o(a.$get_tag(c("RepeaterTime")))&&o(a.$get_tag(c("RepeaterTime")).$type()["$ambiguous?"]())&&(S(d)||S(d.$get_tag(c("RepeaterDayPortion"))))?(u=c("Token").$new("disambiguator"),u.$tag(c("RepeaterDayPortion").$new(i["$[]"]("ambiguous_time_range"))),l["$<<"](u)):t}),s=l),s})}(c[0],c)}(c[0],c),function(a,r){var u=g(a,"Chronic"),c=[u].concat(r);return function(a,r,c){var m=l(a,r,"Parser"),p=[m].concat(c),u=e.$r(p);return m.$include(u("Handlers")),f(p[0],"DEFAULT_OPTIONS",new Map([["context","future"],["now",t],["hours24",t],["guess",!0],["ambiguous_time_range",6],["endian_precedence",["middle","little"]],["ambiguous_year_future_bias",50]])),m.$attr_accessor("now"),m.$attr_reader("options"),s(m,"$initialize",function(n){var s=this,i=t;return n==null&&(n=new Map),s.options=u("DEFAULT_OPTIONS").$merge(n),s.now=o(i=n.$delete("now"))?i:u("Chronic").$time_class().$now()},-1),s(m,"$parse",function(n){var s=this,a=t,r=t,a=s.$tokenize(n,s.$options()),r=s.$tokens_to_span(a,s.$options().$merge(new Map([["text",n]])));return o(u("Chronic").$debug())&&s.$puts("+"+i("-",51)+` +| `+a+` ++`+i("-",51)),o(r)?s.$guess(r,s.$options()["$[]"]("guess")):t}),s(m,"$pre_normalize",function(s){return s=s.$to_s().$downcase(),s=s.$gsub(/\b(\d{2})\.(\d{2})\.(\d{4})\b/,"\\3 / \\2 / \\1"),s=s.$gsub(/\b([ap])\.m\.?/,"\\1m"),s=s.$gsub(/(\s+|:\d{2}|:\d{2}\.\d{3})-(\d{2}:?\d{2})\b/,"\\1tzminus\\2"),s=s.$gsub(/\./,":"),s=s.$gsub(/([ap]):m:?/,"\\1m"),s=s.$gsub(/['"]/,""),s=s.$gsub(/,/," "),s=s.$gsub(/^second /,"2nd "),s=s.$gsub(/\bsecond (of|day|month|hour|minute|second)\b/,"2nd \\1"),s=u("Numerizer").$numerize(s),s=h(s,"gsub",[/([/\-,@])/],function(){var s;return n(n(" ",(s=E["~"])===t?t:s["$[]"](1))," ")}),s=s.$gsub(/(?:^|\s)0(\d+:\d+\s*pm?\b)/," \\1"),s=s.$gsub(/\btoday\b/,"this day"),s=s.$gsub(/\btomm?orr?ow\b/,"next day"),s=s.$gsub(/\byesterday\b/,"last day"),s=s.$gsub(/\bnoon\b/,"12:00pm"),s=s.$gsub(/\bmidnight\b/,"24:00"),s=s.$gsub(/\bnow\b/,"this second"),s=s.$gsub("quarter","15"),s=s.$gsub("half","30"),s=s.$gsub(/(\d{1,2}) (to|till|prior to|before)\b/,"\\1 minutes past"),s=s.$gsub(/(\d{1,2}) (after|past)\b/,"\\1 minutes future"),s=s.$gsub(/\b(?:ago|before(?: now)?)\b/,"past"),s=s.$gsub(/\bthis (?:last|past)\b/,"last"),s=s.$gsub(/\b(?:in|during) the (morning)\b/,"\\1"),s=s.$gsub(/\b(?:in the|during the|at) (afternoon|evening|night)\b/,"\\1"),s=s.$gsub(/\btonight\b/,"this night"),s=s.$gsub(/\b\d+:?\d*[ap]\b/,"\\0m"),s=s.$gsub(/\b(\d{2})(\d{2})(am|pm)\b/,"\\1:\\2\\3"),s=s.$gsub(/(\d)([ap]m|oclock)\b/,"\\1 \\2"),s=s.$gsub(/\b(hence|after|from)\b/,"future"),s=s.$gsub(/^\s?an? /i,"1 "),s=s.$gsub(/\b(\d{4}):(\d{2}):(\d{2})\b/,"\\1 / \\2 / \\3"),s.$gsub(/\b0(\d+):(\d{2}):(\d{2}) ([ap]m)\b/,"\\1:\\2:\\3 \\4")}),s(m,"$guess",function(t,s){return s==null&&(s="middle"),S(s)?t:o(v(t.$width(),1))&&(d(s,!0)||d(s,"middle"))?n(t.$begin(),y(t.$width(),2)):d(s,"end")?t.$end():t.$begin()},-2),s(m,"$definitions",function(n){var a,r=this,s=t,i=t,c=t;switch(n==null&&(n=new Map),o(s=n["$[]"]("endian_precedence"))?s:n["$[]="]("endian_precedence",["middle","little"]),L(p[0],"@@definitions",o((a=p[0].$$cvars["@@definitions"],a!=null?"class variable":t))?o(s=T(p[0],"@@definitions",!1))?s:new Map([["time",[u("Handler").$new(["repeater_time","repeater_day_portion?"],t)]],["date",[u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),u("Handler").$new(["ordinal_day"],"handle_generic"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),u("Handler").$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),u("Handler").$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),u("Handler").$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),u("Handler").$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),u("Handler").$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),u("Handler").$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),u("Handler").$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),u("Handler").$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[u("Handler").$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[u("Handler").$new(["scalar","repeater","pointer"],"handle_s_r_p"),u("Handler").$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),u("Handler").$new(["pointer","scalar","repeater"],"handle_p_s_r"),u("Handler").$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[u("Handler").$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),u("Handler").$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]]):new Map([["time",[u("Handler").$new(["repeater_time","repeater_day_portion?"],t)]],["date",[u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),u("Handler").$new(["ordinal_day"],"handle_generic"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),u("Handler").$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),u("Handler").$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),u("Handler").$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),u("Handler").$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),u("Handler").$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),u("Handler").$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),u("Handler").$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),u("Handler").$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[u("Handler").$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[u("Handler").$new(["scalar","repeater","pointer"],"handle_s_r_p"),u("Handler").$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),u("Handler").$new(["pointer","scalar","repeater"],"handle_p_s_r"),u("Handler").$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[u("Handler").$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),u("Handler").$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]])),i=[u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sm_sd_sy"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sm_sd"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month","separator_at?","time?"],"handle_sd_sm"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sd_sm_sy")],(c=r.$Array(n["$[]"]("endian_precedence")).$first()).valueOf()){case"little":return T(p[0],"@@definitions",!1).$merge(new Map([["endian",i.$reverse()]]));case"middle":return T(p[0],"@@definitions",!1).$merge(new Map([["endian",i]]));default:return r.$raise(u("ArgumentError"),"Unknown endian option '"+c+"'")}},-1),m.$private(),s(m,"$tokenize",function(n,s){var i=this,o=t;return n=i.$pre_normalize(n),o=h(n.$split(" "),"map",[],function(n){return n==null&&(n=t),u("Token").$new(n)}),h([u("Repeater"),u("Grabber"),u("Pointer"),u("Scalar"),u("Ordinal"),u("Separator"),u("Sign"),u("TimeZone")],"each",[],function(n){return n==null&&(n=t),n.$scan(o,s)}),h(o,"select",[],function(n){return n==null&&(n=t),n["$tagged?"]()})}),s(m,"$tokens_to_span",function(s,i){try{var a=x("return"),c=this,r=t,r=c.$definitions(i);return h(n(r["$[]"]("endian"),r["$[]"]("date")),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"select",[],function(n){return n==null&&(n=t),n.$get_tag(u("Separator"))["$!"]()}),a.$throw(n.$invoke("date",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("anchor"),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"select",[],function(n){return n==null&&(n=t),n.$get_tag(u("Separator"))["$!"]()}),a.$throw(n.$invoke("anchor",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("arrow"),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"reject",[],function(n){var s=t,i=t,a=t,r=t;return n==null&&(n=t),o(s=o(i=o(a=o(r=n.$get_tag(u("SeparatorAt")))?r:n.$get_tag(u("SeparatorSlash")))?a:n.$get_tag(u("SeparatorDash")))?i:n.$get_tag(u("SeparatorComma")))?s:n.$get_tag(u("SeparatorAnd"))}),a.$throw(n.$invoke("arrow",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("narrow"),"each",[],function e(n){var c=e.$$s==null?this:e.$$s;if(n==null&&(n=t),o(n.$match(s,r)))a.$throw(n.$invoke("narrow",s,c,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),o(u("Chronic").$debug())&&c.$puts("-none"),t}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}})}(c[0],null,c)}(c[0],c),function(s,i){var r=g(s,"Chronic"),a=[r].concat(i);return function(s,i,a){var r=l(s,i,"Time"),c=[r].concat(a),d=e.$r(c);return f(c[0],"HOUR_SECONDS",3600),f(c[0],"MINUTE_SECONDS",60),f(c[0],"SECOND_SECONDS",1),f(c[0],"SUBSECOND_SECONDS",.001),m(r,"$could_be_hour?",function(n){var s=t;return o(s=j(n,0))?_(n,24):s}),m(r,"$could_be_minute?",function(n){var s=t;return o(s=j(n,0))?_(n,60):s}),m(r,"$could_be_second?",function(n){var s=t;return o(s=j(n,0))?_(n,60):s}),m(r,"$could_be_subsecond?",function(n){var s=t;return o(s=j(n,0))?_(n,999999):s}),m(r,"$normalize_offset",function(s){var i=t,a=t,r=t;return o(s["$is_a?"](d("String")))?s:(o(s)||(s=d("Chronic").$time_class().$now().$to_time().$utc_offset()),i="+",o(O(s,0))&&(i="-"),a=y(s.$abs(),3600).$to_i().$to_s().$rjust(2,"0"),r=s.$abs()["$%"](3600).$to_s().$rjust(2,"0"),n(n(i,a),r))})}(a[0],null,a)}(c[0],c),function(s,a){var c=g(s,"Chronic"),r=[c].concat(a);return function(s,a,r){var d=l(s,a,"Date"),c=[d].concat(r),h=e.$r(c);return f(c[0],"YEAR_MONTHS",12),f(c[0],"MONTH_DAYS",[t,31,28,31,30,31,30,31,31,30,31,30,31]),f(c[0],"MONTH_DAYS_LEAP",[t,31,29,31,30,31,30,31,31,30,31,30,31]),f(c[0],"YEAR_SECONDS",31536e3),f(c[0],"SEASON_SECONDS",7862400),f(c[0],"MONTH_SECONDS",2592e3),f(c[0],"FORTNIGHT_SECONDS",1209600),f(c[0],"WEEK_SECONDS",604800),f(c[0],"WEEKEND_SECONDS",172800),f(c[0],"DAY_SECONDS",86400),f(c[0],"MONTHS",new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),f(c[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),m(d,"$could_be_day?",function(n){var s=t;return o(s=j(n,1))?_(n,31):s}),m(d,"$could_be_month?",function(n){var s=t;return o(s=j(n,1))?_(n,12):s}),m(d,"$could_be_year?",function(n){var s=t;return o(s=j(n,1))?_(n,9999):s}),m(d,"$make_year",function(s,a){var c=t,l=t,r=t;return o(v(s.$to_s().$size(),2))?s:(c=u(h("Chronic").$time_class().$now().$year(),a),l=i(y(c,100),100),r=n(l,s),o(O(r,c))&&(r=n(r,100)),r)}),m(d,"$month_overflow?",function(t,n,s){return o(p("Date")["$leap?"](t))?v(s,p(h("Date"),"MONTH_DAYS_LEAP")["$[]"](n)):v(s,p(h("Date"),"MONTH_DAYS")["$[]"](n))})}(r[0],null,r)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a);return function(i,a,r){var c=l(i,a,"Handler"),f=[c].concat(r),u=e.$r(f),m=c.$$prototype;return m.pattern=m.handler_method=t,c.$attr_reader("pattern"),c.$attr_reader("handler_method"),s(c,"$initialize",function(t,n){var s=this;return s.pattern=t,s.handler_method=n}),s(c,"$match",function(i,a){try{var r=x("return"),l=this,c=t,c=0;return h(l.pattern,"each",[],function s(l){var f=s.$$s==null?this:s.$$s,m=t;return l==null&&(l=t),m=!1,o(l["$is_a?"](u("Array")))||(l=[l]),function(){try{var s=x("break");return h(l,"each_index",[],function f(p){var b=f.$$s==null?this:f.$$s,g=t,v=t,j=t,y=t;if(p==null&&(p=t),g=l["$[]"](p).$to_s(),v=g["$[]"](-1,1)["$=="]("?"),o(v)&&(g=g.$chop()),k(u("Symbol"),j=l["$[]"](p)))if(o(b["$tags_match?"](g,i,c)))c=n(c,1),s.$throw(t,f.$$is_lambda);else if(o(v))return m=!0,t;else if(o(O(n(p,1),l.$count())))return t;else if(o(m))return t;else r.$throw(!1,f.$$is_lambda);else return k(u("String"),j)?(o(v)&&d(c,i.$size())&&r.$throw(!0,f.$$is_lambda),o(a["$key?"](g.$to_sym()))?y=a["$[]"](g.$to_sym()):b.$raise("Invalid subset "+g+" specified"),h(y,"each",[],function n(s){if(s==null&&(s=t),o(s.$match(i["$[]"](e.Range.$new(c,i.$size(),!1)),a)))r.$throw(!0,n.$$is_lambda);else return t},{$$ret:r})):b.$raise("Invalid match type: "+l["$[]"](p).$class())},{$$s:f,$$ret:r})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}()},{$$s:l}),!A(c,i.$size())}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}),s(c,"$invoke",function(t,n,s,i){var a=this;return o(u("Chronic").$debug())&&(a.$puts("-"+t),a.$puts("Handler: "+a.handler_method)),s.$send(a.handler_method,n,i)}),s(c,"$==",function(t){var n=this;return n.pattern["$=="](t.$pattern())}),c.$private(),s(c,"$tags_match?",function(n,s,i){var a=t,a=u("Chronic").$const_get(h(n.$to_s(),"gsub",[/(?:^|_)(.)/],function(){var n;return((n=E["~"])===t?t:n["$[]"](1)).$upcase()}));return o(s["$[]"](i))?h(s["$[]"](i).$tags(),"select",[],function(n){return n==null&&(n=t),n["$kind_of?"](a)})["$empty?"]()["$!"]():t})}(r[0],null,r)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a);return function(i,a,r){var c=l(i,a,"MiniDate"),h=[c].concat(r),f=e.$r(h),u=c.$$prototype;return u.day=u.month=t,c.$attr_accessor("month","day"),m(c,"$from_time",function(t){var n=this;return n.$new(t.$month(),t.$day())}),s(c,"$initialize",function(t,n){var s=this;return o(w(1,12,!1)["$include?"](t))||s.$raise(f("ArgumentError"),"1..12 are valid months"),s.month=t,s.day=n}),s(c,"$is_between?",function(s,i){var a=this,r=t;if(d(a.month,s.$month())&&d(a.month,i.$month())&&(o(O(a.day,s.$day()))||o(v(a.day,i.$day()))))return!1;if(d(a.month,s.$month())&&o(j(a.day,s.$day()))||d(a.month,i.$month())&&o(_(a.day,i.$day())))return!0;for(r=n(s.$month()["$%"](12),1);!d(r,i.$month());){if(d(a.month,r))return!0;r=n(r["$%"](12),1)}return!1}),s(c,"$equals?",function(n){var s=this,i=t;return o(i=s.month["$=="](n.$month()))?s.day["$=="](n.$day()):i})}(r[0],null,r)}(c[0],c),function(n,i){var r=g(n,"Chronic"),a=[r].concat(i);return function(n,i,a){var r=l(n,i,"Tag"),c=[r].concat(a);return r.$attr_accessor("type"),s(r,"$initialize",function(t,n){var s=this;return n==null&&(n=new Map),s.type=t,s.options=n},-2),s(r,"$start=",R("now")),function(n,i){var r=[n].concat(i),a=e.$r(r);return n.$private(),s(n,"$scan_for",function(n,s,i,r){try{var c=x("return"),l=t;if(i==null&&(i=new Map),r==null&&(r=new Map),k(a("Regexp"),l=i)){if(o(i["$=~"](n.$word())))return s.$new(n.$word(),r)}else k(a("Hash"),l)?h(i,"each",[],function e(i,a){if(i==null&&(i=t),a==null&&(a=t),o(i["$=~"](n.$word())))c.$throw(s.$new(a,r),e.$$is_lambda);else return t},{$$ret:c}):t;return t}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-3)}(e.get_singleton_class(r),c)}(a[0],null,a)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(i,a,r){var c=l(i,a,"Span"),h=[c].concat(r),d=e.$r(h);return s(c,"$width",function(){var t=this;return u(t.$end(),t.$begin()).$to_i()}),s(c,"$+",function(t){var s=this;return d("Span").$new(n(s.$begin(),t),n(s.$end(),t))}),s(c,"$-",function(t){var s=this;return n(s,t["$-@"]())}),s(c,"$to_s",function(){var t=this;return n(n(n(n("(",t.$begin().$to_s()),".."),t.$end().$to_s()),")")}),o(d("RUBY_VERSION")["$=~"](/^1.8/))?z(c,"cover?","include?"):t}(r[0],d("Range"),r)}(c[0],c),function(e,o){var i=g(e,"Chronic"),a=[i].concat(o);return function(e,o){var i=l(e,o,"Token"),a=i.$$prototype;return a.tags=a.word=t,i.$attr_accessor("word"),i.$attr_accessor("tags"),s(i,"$initialize",function(t){var n=this;return n.word=t,n.tags=[]}),s(i,"$tag",function(t){var n=this;return n.tags["$<<"](t)}),s(i,"$untag",function(n){var s=this;return h(s.tags,"delete_if",[],function(s){return s==null&&(s=t),s["$kind_of?"](n)})}),s(i,"$tagged?",function(){var t=this;return v(t.tags.$size(),0)}),s(i,"$get_tag",function(n){var s=this;return h(s.tags,"find",[],function(s){return s==null&&(s=t),s["$kind_of?"](n)})}),s(i,"$to_s",function(){var t=this;return t.word=n(n(n(t.word,"("),t.tags.$join(", ")),") ")}),s(i,"$inspect",function(){var t=this;return t.$to_s()})}(a[0],null)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(e,i){var a=l(e,i,"Grabber"),r=a.$$prototype;return r.type=t,m(a,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?(n.$tag(s),t):t},{$$s:i})}),m(a,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/last/,"last"],[/this/,"this"],[/next/,"next"]])))}),s(a,"$to_s",function(){var t=this;return n("grabber-",t.type.$to_s())})}(r[0],d("Tag"))}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(e,i){var a=l(e,i,"Pointer"),r=a.$$prototype;return r.type=t,m(a,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?n.$tag(s):t},{$$s:i})}),m(a,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/\bpast\b/,"past"],[/\b(?:future|in)\b/,"future"]])))}),s(a,"$to_s",function(){var t=this;return n("pointer-",t.type.$to_s())})}(r[0],d("Tag"))}(c[0],c),function(i,c){var v=g(i,"Chronic"),d=[v].concat(c),u=e.$r(d);return function(i,a,r){var d=l(i,a,"Scalar"),u=[d].concat(r),c=e.$r(u);return f(u[0],"DAY_PORTIONS",["am","pm","morning","afternoon","evening","night"]),m(d,"$scan",function(s,i){return h(s,"each_index",[],function(a){var l=t,d=t,r=t,u=t;return a==null&&(a=t),l=s["$[]"](a),d=s["$[]"](n(a,1)),o(l.$word()["$=~"](/^\d+$/))?(r=l.$word().$to_i(),l.$tag(c("Scalar").$new(r)),o(p(c("Chronic"),"Time")["$could_be_subsecond?"](r))&&l.$tag(c("ScalarSubsecond").$new(r)),o(p(c("Chronic"),"Time")["$could_be_second?"](r))&&l.$tag(c("ScalarSecond").$new(r)),o(p(c("Chronic"),"Time")["$could_be_minute?"](r))&&l.$tag(c("ScalarMinute").$new(r)),o(p(c("Chronic"),"Time")["$could_be_hour?"](r))&&l.$tag(c("ScalarHour").$new(r)),o(d)&&o(c("DAY_PORTIONS")["$include?"](d.$word()))?t:(o(p(c("Chronic"),"Date")["$could_be_day?"](r))&&l.$tag(c("ScalarDay").$new(r)),o(p(c("Chronic"),"Date")["$could_be_month?"](r))&&l.$tag(c("ScalarMonth").$new(r)),o(p(c("Chronic"),"Date")["$could_be_year?"](r))?(u=p(c("Chronic"),"Date").$make_year(r,i["$[]"]("ambiguous_year_future_bias")),l.$tag(c("ScalarYear").$new(u.$to_i()))):t)):t})}),s(d,"$to_s",C("scalar"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"ScalarSubsecond"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-subsecond-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarSecond"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-second-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarMinute"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minute-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarHour"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-hour-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarDay"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarMonth"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarYear"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year-"),s.type.$to_s())})}(d[0],u("Scalar"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var c=l(n,i,"Ordinal"),d=[c].concat(a),r=e.$r(d);return m(c,"$scan",function(n,s){return h(n,"each_index",[],function(i){var c,a=t,l=t;return i==null&&(i=t),o(n["$[]"](i).$word()["$=~"](/^(\d+)(st|nd|rd|th|\.)$/))?(a=((c=E["~"])===t?t:c["$[]"](1)).$to_i(),n["$[]"](i).$tag(r("Ordinal").$new(a)),o(p(r("Chronic"),"Date")["$could_be_day?"](a))&&n["$[]"](i).$tag(r("OrdinalDay").$new(a)),o(p(r("Chronic"),"Date")["$could_be_month?"](a))&&n["$[]"](i).$tag(r("OrdinalMonth").$new(a)),o(p(r("Chronic"),"Date")["$could_be_year?"](a))?(l=p(r("Chronic"),"Date").$make_year(a,s["$[]"]("ambiguous_year_future_bias")),n["$[]"](i).$tag(r("OrdinalYear").$new(l.$to_i()))):t):t})}),s(c,"$to_s",C("ordinal"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"OrdinalDay"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day-"),s.type.$to_s())})}(d[0],u("Ordinal")),function(e,o){var i=l(e,o,"OrdinalMonth"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month-"),s.type.$to_s())})}(d[0],u("Ordinal")),function(e,o){var i=l(e,o,"OrdinalYear"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year-"),s.type.$to_s())})}(d[0],u("Ordinal"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var r=l(n,i,"Separator"),d=[r].concat(a),c=e.$r(d);return m(r,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_commas(n))?(n.$tag(s),t):o(s=i.$scan_for_dots(n))?(n.$tag(s),t):o(s=i.$scan_for_colon(n))?(n.$tag(s),t):o(s=i.$scan_for_space(n))?(n.$tag(s),t):o(s=i.$scan_for_slash(n))?(n.$tag(s),t):o(s=i.$scan_for_dash(n))?(n.$tag(s),t):o(s=i.$scan_for_quote(n))?(n.$tag(s),t):o(s=i.$scan_for_at(n))?(n.$tag(s),t):o(s=i.$scan_for_in(n))?(n.$tag(s),t):o(s=i.$scan_for_on(n))?(n.$tag(s),t):o(s=i.$scan_for_and(n))?(n.$tag(s),t):o(s=i.$scan_for_t(n))?(n.$tag(s),t):o(s=i.$scan_for_w(n))?(n.$tag(s),t):t},{$$s:i})}),m(r,"$scan_for_commas",function(t){var n=this;return n.$scan_for(t,c("SeparatorComma"),b(new Map([[/^,$/,"comma"]])))}),m(r,"$scan_for_dots",function(t){var n=this;return n.$scan_for(t,c("SeparatorDot"),b(new Map([[/^\.$/,"dot"]])))}),m(r,"$scan_for_colon",function(t){var n=this;return n.$scan_for(t,c("SeparatorColon"),b(new Map([[/^:$/,"colon"]])))}),m(r,"$scan_for_space",function(t){var n=this;return n.$scan_for(t,c("SeparatorSpace"),b(new Map([[/^ $/,"space"]])))}),m(r,"$scan_for_slash",function(t){var n=this;return n.$scan_for(t,c("SeparatorSlash"),b(new Map([[/^\/$/,"slash"]])))}),m(r,"$scan_for_dash",function(t){var n=this;return n.$scan_for(t,c("SeparatorDash"),b(new Map([[/^-$/,"dash"]])))}),m(r,"$scan_for_quote",function(t){var n=this;return n.$scan_for(t,c("SeparatorQuote"),b(new Map([[/^'$/,"single_quote"],[/^"$/,"double_quote"]])))}),m(r,"$scan_for_at",function(t){var n=this;return n.$scan_for(t,c("SeparatorAt"),b(new Map([[/^(at|@)$/,"at"]])))}),m(r,"$scan_for_in",function(t){var n=this;return n.$scan_for(t,c("SeparatorIn"),b(new Map([[/^in$/,"in"]])))}),m(r,"$scan_for_on",function(t){var n=this;return n.$scan_for(t,c("SeparatorOn"),b(new Map([[/^on$/,"on"]])))}),m(r,"$scan_for_and",function(t){var n=this;return n.$scan_for(t,c("SeparatorAnd"),b(new Map([[/^and$/,"and"]])))}),m(r,"$scan_for_t",function(t){var n=this;return n.$scan_for(t,c("SeparatorT"),b(new Map([[/^t$/,"T"]])))}),m(r,"$scan_for_w",function(t){var n=this;return n.$scan_for(t,c("SeparatorW"),b(new Map([[/^w$/,"W"]])))}),s(r,"$to_s",C("separator"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"SeparatorComma");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-comma")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorDot");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dot")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorColon");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-colon")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorSpace");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-space")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorSlash");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-slash")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorDash");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dash")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorQuote"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-quote-"),s.type.$to_s())})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorAt");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-at")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorIn");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-in")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorOn");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-on")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorAnd");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-and")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorT");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-T")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorW");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-W")})}(d[0],u("Separator"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var r=l(n,i,"Sign"),d=[r].concat(a),c=e.$r(d);return m(r,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_plus(n))?(n.$tag(s),t):o(s=i.$scan_for_minus(n))?(n.$tag(s),t):t},{$$s:i})}),m(r,"$scan_for_plus",function(t){var n=this;return n.$scan_for(t,c("SignPlus"),b(new Map([[/^\+$/,"plus"]])))}),m(r,"$scan_for_minus",function(t){var n=this;return n.$scan_for(t,c("SignMinus"),b(new Map([[/^-$/,"minus"]])))}),s(r,"$to_s",C("sign"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"SignPlus");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-plus")})}(d[0],u("Sign")),function(e,o){var i=l(e,o,"SignMinus");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minus")})}(d[0],u("Sign"))}(c[0],c),function(n,i){var r=g(n,"Chronic"),a=[r].concat(i),c=e.$r(a);return function(e,n){var i=l(e,n,"TimeZone");return m(i,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?(n.$tag(s),t):t},{$$s:i})}),m(i,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/[PMCE][DS]T|UTC/i,"tz"],[/(tzminus)?\d{2}:?\d{2}/,"tz"]])))}),s(i,"$to_s",C("timezone"))}(a[0],c("Tag"))}(c[0],c),F.$require("strscan"),function(a,r){var d=g(a,"Chronic"),c=[d].concat(r);return function(a,r,c){var g=l(a,r,"Numerizer"),d=[g].concat(c),p=e.$r(d);return f(d[0],"DIRECT_NUMS",[["eleven","11"],["twelve","12"],["thirteen","13"],["fourteen","14"],["fifteen","15"],["sixteen","16"],["seventeen","17"],["eighteen","18"],["nineteen","19"],["ninteen","19"],["zero","0"],["one","1"],["two","2"],["three","3"],["four(\\W|$)","4\\1"],["five","5"],["six(\\W|$)","6\\1"],["seven(\\W|$)","7\\1"],["eight(\\W|$)","8\\1"],["nine(\\W|$)","9\\1"],["ten","10"],["\\ba[\\b^$]","1"]]),f(d[0],"ORDINALS",[["first","1"],["third","3"],["fourth","4"],["fifth","5"],["sixth","6"],["seventh","7"],["eighth","8"],["ninth","9"],["tenth","10"],["twelfth","12"],["twentieth","20"],["thirtieth","30"],["fourtieth","40"],["fiftieth","50"],["sixtieth","60"],["seventieth","70"],["eightieth","80"],["ninetieth","90"]]),f(d[0],"TEN_PREFIXES",[["twenty",20],["thirty",30],["forty",40],["fourty",40],["fifty",50],["sixty",60],["seventy",70],["eighty",80],["ninety",90]]),f(d[0],"BIG_PREFIXES",[["hundred",100],["thousand",1e3],["million",1e6],["billion",1e9],["trillion",1e12]]),m(g,"$numerize",function(s){var a=this;return s=s.$dup(),s=s.$gsub(/ +|([^\d])-([^\d])/,"\\1 \\2"),s=s.$gsub(/a half/,"haAlf"),h(p("DIRECT_NUMS"),"each",[],function(o){return o==null&&(o=t),s=s.$gsub(M([o["$[]"](0)],"i"),n("",o["$[]"](1)))}),h(p("ORDINALS"),"each",[],function(o){return o==null&&(o=t),s=s.$gsub(M([o["$[]"](0)],"i"),n(n("",o["$[]"](1)),o["$[]"](0)["$[]"](-2,2)))}),h(p("TEN_PREFIXES"),"each",[],function(o){return o==null&&(o=t),s=h(s,"gsub",[M(["(?:",o["$[]"](0),") *(\\d(?=[^\\d]|$))*"],"i")],function(){var s;return n("",n(o["$[]"](1),((s=E["~"])===t?t:s["$[]"](1)).$to_i()).$to_s())})}),h(p("TEN_PREFIXES"),"each",[],function(o){return o==null&&(o=t),s=h(s,"gsub",[M([o["$[]"](0)],"i")],function(){return n("",o["$[]"](1).$to_s())})}),h(p("BIG_PREFIXES"),"each",[],function e(a){var r=e.$$s==null?this:e.$$s;return a==null&&(a=t),s=h(s,"gsub",[M(["(?:)?(\\d*) *",a["$[]"](0)],"i")],function(){var s;return o(((s=E["~"])===t?t:s["$[]"](1))["$empty?"]())?a["$[]"](1):n("",i(a["$[]"](1),((s=E["~"])===t?t:s["$[]"](1)).$to_i()).$to_s())}),r.$andition(s)},{$$s:a}),s=h(s,"gsub",[/(\d+)(?: | and |-)*haAlf/i],function(){var s;return n(((s=E["~"])===t?t:s["$[]"](1)).$to_f(),.5).$to_s()}),s.$gsub(//,"")}),function(i,a){var r=[i].concat(a),c=e.$r(r);return i.$private(),s(i,"$andition",function(i){for(var a=t,a=c("StringScanner").$new(i);o(a.$scan_until(/(\d+)( | and )(\d+)(?=[^\w]|$)/i));)(o(a["$[]"](2)["$=~"](/and/))||o(v(a["$[]"](1).$size(),a["$[]"](3).$size())))&&(i["$[]="](e.Range.$new(u(a.$pos(),a.$matched_size()),u(a.$pos(),1),!1),n("",n(a["$[]"](1).$to_i(),a["$[]"](3).$to_i()).$to_s())),a.$reset())})}(e.get_singleton_class(g),d)}(c[0],null,c)}(c[0],c),function(e,o){var a=g(e,"Chronic"),r=[a].concat(o);return function(e,o){var a=l(e,o,"Season");return a.$attr_reader("start"),a.$attr_reader("end"),s(a,"$initialize",function(t,n){var s=this;return s.start=t,s.end=n}),m(a,"$find_next_season",function(s,o){var a=t,r=t,a=["spring","summer","autumn","winter"],r=n(a.$index(s),i(1,o))["$%"](4);return a["$[]"](r)}),m(a,"$season_after",function(t){var n=this;return n.$find_next_season(t,1)}),m(a,"$season_before",function(t){var n=this;return n.$find_next_season(t,-1)})}(r[0],null)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(i,a,r){var c=l(i,a,"Repeater"),u=[c].concat(r),d=e.$r(u),f=c.$$prototype;return f.now=t,m(c,"$scan",function(n,s){var i=this;return h(n,"each",[],function e(n){var a=e.$$s==null?this:e.$$s,i=t;return n==null&&(n=t),o(i=a.$scan_for_season_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_month_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_day_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_day_portions(n,s))?(n.$tag(i),t):o(i=a.$scan_for_times(n,s))?(n.$tag(i),t):o(i=a.$scan_for_units(n,s))?(n.$tag(i),t):t},{$$s:i})}),m(c,"$scan_for_season_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterSeasonName"),b(new Map([[/^springs?$/,"spring"],[/^summers?$/,"summer"],[/^(autumn)|(fall)s?$/,"autumn"],[/^winters?$/,"winter"]])),n)},-2),m(c,"$scan_for_month_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterMonthName"),b(new Map([[/^jan[:.]?(uary)?$/,"january"],[/^feb[:.]?(ruary)?$/,"february"],[/^mar[:.]?(ch)?$/,"march"],[/^apr[:.]?(il)?$/,"april"],[/^may$/,"may"],[/^jun[:.]?e?$/,"june"],[/^jul[:.]?y?$/,"july"],[/^aug[:.]?(ust)?$/,"august"],[/^sep[:.]?(t[:.]?|tember)?$/,"september"],[/^oct[:.]?(ober)?$/,"october"],[/^nov[:.]?(ember)?$/,"november"],[/^dec[:.]?(ember)?$/,"december"]])),n)},-2),m(c,"$scan_for_day_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterDayName"),b(new Map([[/^m[ou]n(day)?$/,"monday"],[/^t(ue|eu|oo|u|)s?(day)?$/,"tuesday"],[/^we(d|dnes|nds|nns)(day)?$/,"wednesday"],[/^th(u|ur|urs|ers)(day)?$/,"thursday"],[/^fr[iy](day)?$/,"friday"],[/^sat(t?[ue]rday)?$/,"saturday"],[/^su[nm](day)?$/,"sunday"]])),n)},-2),m(c,"$scan_for_day_portions",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterDayPortion"),b(new Map([[/^ams?$/,"am"],[/^pms?$/,"pm"],[/^mornings?$/,"morning"],[/^afternoons?$/,"afternoon"],[/^evenings?$/,"evening"],[/^(night|nite)s?$/,"night"]])),n)},-2),m(c,"$scan_for_times",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterTime"),/^\d{1,2}(:?\d{1,2})?([.:]?\d{1,2}([.:]\d{1,6})?)?$/,n)},-2),m(c,"$scan_for_units",function(s,i){try{var a=x("return");return i==null&&(i=new Map),h(b(new Map([[/^years?$/,"year"],[/^seasons?$/,"season"],[/^months?$/,"month"],[/^fortnights?$/,"fortnight"],[/^weeks?$/,"week"],[/^weekends?$/,"weekend"],[/^(week|business)days?$/,"weekday"],[/^days?$/,"day"],[/^hrs?$/,"hour"],[/^hours?$/,"hour"],[/^mins?$/,"minute"],[/^minutes?$/,"minute"],[/^secs?$/,"second"],[/^seconds?$/,"second"]])),"each",[],function e(r,c){var l=t,u=t;if(r==null&&(r=t),c==null&&(c=t),o(r["$=~"](s.$word())))l=n("Repeater",c.$to_s().$capitalize()),u=d("Chronic").$const_get(l),a.$throw(u.$new(c,i),e.$$is_lambda);else return t},{$$ret:a}),t}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}},-2),s(c,"$<=>",function(t){var n=this;return n.$width()["$<=>"](t.$width())}),s(c,"$width",function(){var t=this;return t.$raise("Repeater#width must be overridden in subclasses")}),s(c,"$next",function(){var s=this;return o(s.now)?t:s.$raise("Start point must be set before calling #next")}),s(c,"$this",function(){var s=this;return o(s.now)?t:s.$raise("Start point must be set before calling #this")}),s(c,"$to_s",C("repeater"))}(r[0],d("Tag"),r)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterYear"),j=[b].concat(m),g=e.$r(j),y=b.$$prototype;return y.current_year_start=y.now=t,f(j[0],"YEAR_SECONDS",31536e3),s(b,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_year_start=t},-2),s(b,"$next",function e(s){var l=e.$$p||t,i=this,c=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],l),o(i.current_year_start))c=d(s,"future")?1:-1,i.current_year_start=g("Chronic").$construct(n(i.current_year_start.$year(),c));else switch(s.valueOf()){case"future":i.current_year_start=g("Chronic").$construct(n(i.now.$year(),1));break;case"past":i.current_year_start=g("Chronic").$construct(u(i.now.$year(),1));break;default:t}return g("Span").$new(i.current_year_start,g("Chronic").$construct(n(i.current_year_start.$year(),1)))}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=g("Chronic").$construct(o.now.$year(),o.now.$month(),n(o.now.$day(),1)),c=g("Chronic").$construct(n(o.now.$year(),1),1,1);break;case"past":i=g("Chronic").$construct(o.now.$year(),1,1),c=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day());break;case"none":i=g("Chronic").$construct(o.now.$year(),1,1),c=g("Chronic").$construct(n(o.now.$year(),1),1,1);break;default:t}return g("Span").$new(i,c)},-1),s(b,"$offset",function(n,s,o){var a=this,i=t,r=t,c=t,i=d(o,"future")?1:-1,r=a.$build_offset_time(n.$begin(),s,i),c=a.$build_offset_time(n.$end(),s,i);return g("Span").$new(r,c)}),s(b,"$width",function(){return g("YEAR_SECONDS")}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year")}),b.$private(),s(b,"$build_offset_time",function(s,a,r){var u=this,c=t,l=t,d=t,c=n(s.$year(),i(a,r)),l=u.$month_days(c,s.$month()),d=o(v(s.$day(),l))?l:s.$day();return g("Chronic").$construct(c,s.$month(),d,s.$hour(),s.$min(),s.$sec())}),s(b,"$month_days",function(t,n){return o(p("Date")["$leap?"](t))?p(g("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"](u(n,1)):p(g("RepeaterMonth"),"MONTH_DAYS")["$[]"](u(n,1))})}(m[0],j("Repeater"),m)}(c[0],c),function(c,u){var v=g(c,"Chronic"),m=[v].concat(u),b=e.$r(m);return function(c,u,m){var v=l(c,u,"RepeaterSeason"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.now=j.next_season_end=j.next_season_start=t,f(b[0],"SEASON_SECONDS",7862400),f(b[0],"SEASONS",new Map([["spring",g("Season").$new(g("MiniDate").$new(3,20),g("MiniDate").$new(6,20))],["summer",g("Season").$new(g("MiniDate").$new(6,21),g("MiniDate").$new(9,22))],["autumn",g("Season").$new(g("MiniDate").$new(9,23),g("MiniDate").$new(12,21))],["winter",g("Season").$new(g("MiniDate").$new(12,22),g("MiniDate").$new(3,19))]])),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.next_season_start=t,o.next_season_end=t},-2),s(v,"$next",function e(n){var c=e.$$p||t,s=this,o=t,i=t;return e.$$p=null,r(s,a(s,"next",e,!1,!0),"next",[n],c),o=d(n,"future")?1:-1,i=g("Season").$find_next_season(s.$find_current_season(g("MiniDate").$from_time(s.now)),o),s.$find_next_season_span(o,i)}),s(v,"$this",function e(s){var f=e.$$p||t,o=this,c=t,l=t,u=t,h=t,m=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],f),c=d(s,"future")?1:-1,l=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),u=o.$find_current_season(g("MiniDate").$from_time(o.now)),s.valueOf()){case"past":h=n(l,i(c,o.$num_seconds_til_start(u,c))),m=l;break;case"future":h=n(l,p(g("RepeaterDay"),"DAY_SECONDS")),m=n(l,i(c,o.$num_seconds_til_end(u,c)));break;case"none":h=n(l,i(c,o.$num_seconds_til_start(u,c))),m=n(l,i(c,o.$num_seconds_til_end(u,c)));break;default:t}return o.$construct_season(h,m)},-1),s(v,"$offset",function(t,n,s){var o=this;return g("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(v,"$offset_by",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(o,r),g("SEASON_SECONDS")))}),s(v,"$width",function(){return g("SEASON_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-season")}),v.$private(),s(v,"$find_next_season_span",function(t,s){var a=this;return o(a.next_season_start)||o(a.next_season_end)||(a.next_season_start=g("Chronic").$construct(a.now.$year(),a.now.$month(),a.now.$day()),a.next_season_end=g("Chronic").$construct(a.now.$year(),a.now.$month(),a.now.$day())),a.next_season_start=n(a.next_season_start,i(t,a.$num_seconds_til_start(s,t))),a.next_season_end=n(a.next_season_end,i(t,a.$num_seconds_til_end(s,t))),a.$construct_season(a.next_season_start,a.next_season_end)}),s(v,"$find_current_season",function(n){return h(["spring","summer","autumn","winter"],"find",[],function(s){return s==null&&(s=t),n["$is_between?"](g("SEASONS")["$[]"](s).$start(),g("SEASONS")["$[]"](s).$end())})}),s(v,"$num_seconds_til",function(s,a){for(var c=this,l=t,r=t,l=g("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day()),r=0;!o(g("MiniDate").$from_time(n(l,i(a,r)))["$equals?"](s));)r=n(r,p(g("RepeaterDay"),"DAY_SECONDS"));return r}),s(v,"$num_seconds_til_start",function(t,n){var s=this;return s.$num_seconds_til(g("SEASONS")["$[]"](t).$start(),n)}),s(v,"$num_seconds_til_end",function(t,n){var s=this;return s.$num_seconds_til(g("SEASONS")["$[]"](t).$end(),n)}),s(v,"$construct_season",function(t,n){return g("Span").$new(g("Chronic").$construct(t.$year(),t.$month(),t.$day()),g("Chronic").$construct(n.$year(),n.$month(),n.$day()))})}(m[0],b("Repeater"),m)}(c[0],c),function(o,a){var c=g(o,"Chronic"),r=[c].concat(a),u=e.$r(r);return function(o,a,r){var c=l(o,a,"RepeaterSeasonName"),h=[c].concat(r),u=e.$r(h),m=c.$$prototype;return m.type=m.now=t,f(h[0],"SEASON_SECONDS",7862400),f(h[0],"DAY_SECONDS",86400),s(c,"$next",function(n){var s=this,o=t,o=d(n,"future")?1:-1;return s.$find_next_season_span(o,s.type)}),s(c,"$this",function(s){var o=this,a=t,r=t,c=t,l=t,f=t,h=t,m=t;switch(s==null&&(s="future"),a=d(s,"future")?1:-1,r=u("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=n(r,i(a,o.$num_seconds_til_start(o.type,a))),l=n(r,i(a,o.$num_seconds_til_end(o.type,a))),f=o.$find_current_season(u("MiniDate").$from_time(o.now)),s.valueOf()){case"past":h=c,m=d(f,o.type)?r:l;break;case"future":h=d(f,o.type)?n(r,p(u("RepeaterDay"),"DAY_SECONDS")):c,m=l;break;case"none":h=c,m=l;break;default:t}return o.$construct_season(h,m)},-1),s(c,"$offset",function(t,n,s){var o=this;return u("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(c,"$offset_by",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(o,r),p(u("RepeaterYear"),"YEAR_SECONDS")))})}(r[0],u("RepeaterSeason"),r)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterMonth"),j=[b].concat(m),g=e.$r(j),_=b.$$prototype;return _.current_month_start=_.now=t,f(j[0],"MONTH_SECONDS",2592e3),f(j[0],"YEAR_MONTHS",12),f(j[0],"MONTH_DAYS",[31,28,31,30,31,30,31,31,30,31,30,31]),f(j[0],"MONTH_DAYS_LEAP",[31,29,31,30,31,30,31,31,30,31,30,31]),s(b,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_month_start=t},-2),s(b,"$next",function e(s){var c=e.$$p||t,i=this;return e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],c),o(i.current_month_start)?i.current_month_start=i.$offset_by(g("Chronic").$construct(i.current_month_start.$year(),i.current_month_start.$month()),1,s):i.current_month_start=i.$offset_by(g("Chronic").$construct(i.now.$year(),i.now.$month()),1,s),g("Span").$new(i.current_month_start,g("Chronic").$construct(i.current_month_start.$year(),n(i.current_month_start.$month(),1)))}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=g("Chronic").$construct(o.now.$year(),o.now.$month(),n(o.now.$day(),1)),c=o.$offset_by(g("Chronic").$construct(o.now.$year(),o.now.$month()),1,"future");break;case"past":i=g("Chronic").$construct(o.now.$year(),o.now.$month()),c=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day());break;case"none":i=g("Chronic").$construct(o.now.$year(),o.now.$month()),c=o.$offset_by(g("Chronic").$construct(o.now.$year(),o.now.$month()),1,"future");break;default:t}return g("Span").$new(i,c)},-1),s(b,"$offset",function(t,n,s){var o=this;return g("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(b,"$offset_by",function(s,a,r){var j=this,h=t,f=t,p=t,l=t,c=t,m=t,b=t,h=d(r,"future")?1:-1,f=y(i(h,a),g("YEAR_MONTHS")),p=i(h,a)["$%"](g("YEAR_MONTHS")),l=n(s.$year(),f),c=n(s.$month(),p);return o(v(c,g("YEAR_MONTHS")))&&(l=n(l,1),c=u(c,g("YEAR_MONTHS"))),m=j.$month_days(l,c),b=o(v(s.$day(),m))?m:s.$day(),g("Chronic").$construct(l,c,b,s.$hour(),s.$min(),s.$sec())}),s(b,"$width",function(){return g("MONTH_SECONDS")}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month")}),b.$private(),s(b,"$month_days",function(t,n){return o(p("Date")["$leap?"](t))?g("MONTH_DAYS_LEAP")["$[]"](u(n,1)):g("MONTH_DAYS")["$[]"](u(n,1))})}(m[0],j("Repeater"),m)}(c[0],c),function(i,c){var m=g(i,"Chronic"),h=[m].concat(c),p=e.$r(h);return function(i,c,h){var p=l(i,c,"RepeaterMonthName"),b=[p].concat(h),m=e.$r(b),g=p.$$prototype;return g.current_month_begin=g.now=g.index=g.type=t,f(b[0],"MONTH_SECONDS",2592e3),f(b[0],"MONTHS",new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_month_begin=t},-2),s(p,"$next",function e(s){var g=e.$$p||t,i=this,p=t,c=t,l=t,h=t,f=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],g),o(i.current_month_begin))switch(s.valueOf()){case"future":i.current_month_begin=m("Chronic").$construct(n(i.current_month_begin.$year(),1),i.current_month_begin.$month());break;case"past":i.current_month_begin=m("Chronic").$construct(u(i.current_month_begin.$year(),1),i.current_month_begin.$month());break;default:t}else{switch(s.valueOf()){case"future":o(O(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(v(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(n(i.now.$year(),1),i.$index()));break;case"none":o(_(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(v(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(n(i.now.$year(),1),i.$index()));break;case"past":o(j(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(O(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(u(i.now.$year(),1),i.$index()));break;default:t}o(p=i.current_month_begin)?p:i.$raise("Current month should be set by now")}return c=i.current_month_begin.$year(),l=i.current_month_begin.$month(),d(l,12)?(h=n(c,1),f=1):(h=c,f=n(l,1)),m("Span").$new(i.current_month_begin,m("Chronic").$construct(h,f))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;switch(e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),n.valueOf()){case"past":return s.$next(n);case"future":case"none":return s.$next("none");default:return t}},-1),s(p,"$width",function(){return m("MONTH_SECONDS")}),s(p,"$index",function(){var n=this,s=t;return n.index=o(s=n.index)?s:m("MONTHS")["$[]"](n.type)}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-monthname-"),s.type.$to_s())})}(h[0],p("Repeater"),h)}(c[0],c),function(c,u){var v=g(c,"Chronic"),m=[v].concat(u),b=e.$r(m);return function(c,u,m){var v=l(c,u,"RepeaterFortnight"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.current_fortnight_start=j.now=t,f(b[0],"FORTNIGHT_SECONDS",1209600),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_fortnight_start=t},-2),s(v,"$next",function e(s){var v=e.$$p||t,c=this,u=t,l=t,m=t,f=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],v),o(c.current_fortnight_start))u=d(s,"future")?1:-1,c.current_fortnight_start=n(c.current_fortnight_start,i(u,g("FORTNIGHT_SECONDS")));else switch(s.valueOf()){case"future":l=g("RepeaterDayName").$new("sunday"),l["$start="](c.now),m=l.$next("future"),c.current_fortnight_start=m.$begin();break;case"past":l=g("RepeaterDayName").$new("sunday"),l["$start="](n(c.now,p(g("RepeaterDay"),"DAY_SECONDS"))),h(2,"times",[],function(){return l.$next("past")}),f=l.$next("past"),c.current_fortnight_start=f.$begin();break;default:t}return g("Span").$new(c.current_fortnight_start,n(c.current_fortnight_start,g("FORTNIGHT_SECONDS")))}),s(v,"$this",function e(s){var m=e.$$p||t,o=this,c=t,i=t,u=t,l=t,h=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],m),d(s,"none")&&(s="future"),s.valueOf()){case"future":return c=n(g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),p(g("RepeaterHour"),"HOUR_SECONDS")),i=g("RepeaterDayName").$new("sunday"),i["$start="](o.now),i.$this("future"),u=i.$this("future"),l=u.$begin(),g("Span").$new(c,l);case"past":return l=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),i=g("RepeaterDayName").$new("sunday"),i["$start="](o.now),h=i.$next("past"),c=h.$begin(),g("Span").$new(c,l);default:return t}},-1),s(v,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),g("FORTNIGHT_SECONDS")))}),s(v,"$width",function(){return g("FORTNIGHT_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-fortnight")})}(m[0],b("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),v=e.$r(h);return function(c,u,h){var g=l(c,u,"RepeaterWeek"),v=[g].concat(h),m=e.$r(v),b=g.$$prototype;return b.current_week_start=b.now=t,f(v[0],"WEEK_SECONDS",604800),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_week_start=t},-2),s(g,"$next",function e(s){var g=e.$$p||t,c=this,u=t,l=t,h=t,f=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],g),o(c.current_week_start))u=d(s,"future")?1:-1,c.current_week_start=n(c.current_week_start,i(u,m("WEEK_SECONDS")));else switch(s.valueOf()){case"future":l=m("RepeaterDayName").$new("sunday"),l["$start="](c.now),h=l.$next("future"),c.current_week_start=h.$begin();break;case"past":l=m("RepeaterDayName").$new("sunday"),l["$start="](n(c.now,p(m("RepeaterDay"),"DAY_SECONDS"))),l.$next("past"),f=l.$next("past"),c.current_week_start=f.$begin();break;default:t}return m("Span").$new(c.current_week_start,n(c.current_week_start,m("WEEK_SECONDS")))}),s(g,"$this",function e(s){var h=e.$$p||t,o=this,c=t,i=t,u=t,l=t,d=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],h),s.valueOf()){case"future":return c=n(m("Chronic").$time_class().$local(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),p(m("RepeaterHour"),"HOUR_SECONDS")),i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),u=i.$this("future"),l=u.$begin(),m("Span").$new(c,l);case"past":return l=m("Chronic").$time_class().$local(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),d=i.$next("past"),c=d.$begin(),m("Span").$new(c,l);case"none":return i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),d=i.$next("past"),c=d.$begin(),m("Span").$new(c,n(c,m("WEEK_SECONDS")));default:return t}},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),m("WEEK_SECONDS")))}),s(g,"$width",function(){return m("WEEK_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-week")})}(h[0],v("Repeater"),h)}(c[0],c),function(c,h){var v=g(c,"Chronic"),m=[v].concat(h),b=e.$r(m);return function(c,h,m){var v=l(c,h,"RepeaterWeekend"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.current_week_start=j.now=t,f(b[0],"WEEKEND_SECONDS",172800),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_week_start=t},-2),s(v,"$next",function e(s){var f=e.$$p||t,c=this,u=t,l=t,h=t,m=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],f),o(c.current_week_start))u=d(s,"future")?1:-1,c.current_week_start=n(c.current_week_start,i(u,p(g("RepeaterWeek"),"WEEK_SECONDS")));else switch(s.valueOf()){case"future":l=g("RepeaterDayName").$new("saturday"),l["$start="](c.now),h=l.$next("future"),c.current_week_start=h.$begin();break;case"past":l=g("RepeaterDayName").$new("saturday"),l["$start="](n(c.now,p(g("RepeaterDay"),"DAY_SECONDS"))),m=l.$next("past"),c.current_week_start=m.$begin();break;default:t}return g("Span").$new(c.current_week_start,n(c.current_week_start,g("WEEKEND_SECONDS")))}),s(v,"$this",function e(s){var d=e.$$p||t,i=this,o=t,c=t,l=t;switch(e.$$p=null,s==null&&(s="future"),r(i,a(i,"this",e,!1,!0),"this",[s],d),s.valueOf()){case"future":case"none":return o=g("RepeaterDayName").$new("saturday"),o["$start="](i.now),c=o.$this("future"),g("Span").$new(c.$begin(),n(c.$begin(),g("WEEKEND_SECONDS")));case"past":return o=g("RepeaterDayName").$new("saturday"),o["$start="](i.now),l=o.$this("past"),g("Span").$new(l.$begin(),n(l.$begin(),g("WEEKEND_SECONDS")));default:return t}},-1),s(v,"$offset",function(s,o,a){var l=t,r=t,c=t,l=d(a,"future")?1:-1,r=g("RepeaterWeekend").$new("weekend");return r["$start="](s.$begin()),c=n(r.$next(a).$begin(),i(i(u(o,1),l),p(g("RepeaterWeek"),"WEEK_SECONDS"))),g("Span").$new(c,n(c,u(s.$end(),s.$begin())))}),s(v,"$width",function(){return g("WEEKEND_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-weekend")})}(m[0],b("Repeater"),m)}(c[0],c),function(c,u){var p=g(c,"Chronic"),m=[p].concat(u),v=e.$r(m);return function(c,u,m){var p=l(c,u,"RepeaterWeekday"),v=[p].concat(m),g=e.$r(v),b=p.$$prototype;return b.current_weekday_start=b.now=t,f(v[0],"DAY_SECONDS",86400),f(v[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_weekday_start=t},-2),s(p,"$next",function e(s){var u=e.$$p||t,c=this,l=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],u),l=d(s,"future")?1:-1,o(c.current_weekday_start))(function(){try{var e=x("break");return h(c,"loop",[],function s(){var a=s.$$s==null?this:s.$$s;if(a.current_weekday_start==null&&(a.current_weekday_start=t),a.current_weekday_start=n(a.current_weekday_start,i(l,g("DAY_SECONDS"))),o(a["$is_weekday?"](a.current_weekday_start.$wday())))e.$throw(t,s.$$is_lambda);else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}})();else for(c.current_weekday_start=g("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.current_weekday_start=n(c.current_weekday_start,i(l,g("DAY_SECONDS")));!o(c["$is_weekday?"](c.current_weekday_start.$wday()));)c.current_weekday_start=n(c.current_weekday_start,i(l,g("DAY_SECONDS")));return g("Span").$new(c.current_weekday_start,n(c.current_weekday_start,g("DAY_SECONDS")))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;switch(e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),n.valueOf()){case"past":return s.$next("past");case"future":case"none":return s.$next("future");default:return t}},-1),s(p,"$offset",function(s,a,r){for(var h=this,u=t,l=t,c=t,u=d(r,"future")?1:-1,l=0,c=0;!d(l,a);)c=n(c,i(u,g("DAY_SECONDS"))),o(h["$is_weekday?"](n(s.$begin(),c).$wday()))&&(l=n(l,1));return n(s,c)}),s(p,"$width",function(){return g("DAY_SECONDS")}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-weekday")}),p.$private(),s(p,"$is_weekend?",function(n){var s=this,i=t;return o(i=n["$=="](s.$symbol_to_number("saturday")))?i:n["$=="](s.$symbol_to_number("sunday"))}),s(p,"$is_weekday?",function(t){var n=this;return n["$is_weekend?"](t)["$!"]()}),s(p,"$symbol_to_number",function(n){var i=this,s=t;return o(s=g("DAYS")["$[]"](n))?s:i.$raise("Invalid symbol specified")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),p=e.$r(h);return function(c,u,h){var p=l(c,u,"RepeaterDay"),g=[p].concat(h),m=e.$r(g),v=p.$$prototype;return v.current_day_start=v.now=t,f(g[0],"DAY_SECONDS",86400),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_day_start=t},-2),s(p,"$next",function e(s){var u=e.$$p||t,c=this,l=t;return e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],u),o(c.current_day_start)||(c.current_day_start=m("Chronic").$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day())),l=d(s,"future")?1:-1,c.current_day_start=n(c.current_day_start,i(l,m("DAY_SECONDS"))),m("Span").$new(c.current_day_start,n(c.current_day_start,m("DAY_SECONDS")))}),s(p,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=n(m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),m("DAY_SECONDS"));break;case"past":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour());break;case"none":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=n(m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),m("DAY_SECONDS"));break;default:t}return m("Span").$new(i,c)},-1),s(p,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),m("DAY_SECONDS")))}),s(p,"$width",function(){return m("DAY_SECONDS")}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day")})}(h[0],p("Repeater"),h)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),v=e.$r(h);return function(c,u,h){var m=l(c,u,"RepeaterDayName"),b=[m].concat(h),g=e.$r(b),v=m.$$prototype;return v.current_date=v.now=v.type=t,f(b[0],"DAY_SECONDS",86400),s(m,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_date=t},-2),s(m,"$next",function e(s){var m=e.$$p||t,c=this,l=t,h=t,u=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],m),l=d(s,"future")?1:-1,o(c.current_date))c.current_date=n(c.current_date,i(l,7));else for(c.current_date=p("Date").$new(c.now.$year(),c.now.$month(),c.now.$day()),c.current_date=n(c.current_date,l),h=c.$symbol_to_number(c.type);A(c.current_date.$wday(),h);)c.current_date=n(c.current_date,l);return u=c.current_date.$succ(),g("Span").$new(g("Chronic").$construct(c.current_date.$year(),c.current_date.$month(),c.current_date.$day()),g("Chronic").$construct(u.$year(),u.$month(),u.$day()))}),s(m,"$this",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),d(n,"none")&&(n="future"),s.$next(n)},-1),s(m,"$width",function(){return g("DAY_SECONDS")}),s(m,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dayname-"),s.type.$to_s())}),m.$private(),s(m,"$symbol_to_number",function(n){var a=this,s=t,i=t,s=new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]]);return o(i=s["$[]"](n))?i:a.$raise("Invalid symbol specified")})}(h[0],v("Repeater"),h)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterDayPortion"),_=[b].concat(m),g=e.$r(_),j=b.$$prototype;return j.type=j.range=j.current_span=j.now=t,f(_[0],"PORTIONS",new Map([["am",e.Range.$new(0,u(i(i(12,60),60),1),!1)],["pm",e.Range.$new(i(i(12,60),60),u(i(i(24,60),60),1),!1)],["morning",e.Range.$new(i(i(6,60),60),i(i(12,60),60),!1)],["afternoon",e.Range.$new(i(i(13,60),60),i(i(17,60),60),!1)],["evening",e.Range.$new(i(i(17,60),60),i(i(20,60),60),!1)],["night",e.Range.$new(i(i(20,60),60),i(i(24,60),60),!1)]])),s(b,"$initialize",function s(c,l){var h=s.$$p||t,d=this,u=t;return s.$$p=null,l==null&&(l=new Map),r(d,a(d,"initialize",s,!1,!0),"initialize",[c,l],h),d.current_span=t,o(c["$kind_of?"](g("Integer")))?d.range=e.Range.$new(i(i(d.type,60),60),i(i(n(d.type,12),60),60),!1):(d.range=g("PORTIONS")["$[]"](c),o(u=d.range)?u:d.$raise("Invalid type '"+c+"' for RepeaterDayPortion")),o(u=d.range)?u:d.$raise("Range should have been set by now")},-2),s(b,"$next",function e(s){var j=e.$$p||t,i=this,l=t,h=t,m=t,f=t,d=t,c=t,p=t,b=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],j),o(i.current_span))return l=k("future",h=s)?1:k("past",h)?-1:t,m=g("Chronic").$construct(i.current_span.$begin().$year(),i.current_span.$begin().$month(),n(i.current_span.$begin().$day(),l),i.current_span.$begin().$hour(),i.current_span.$begin().$min(),i.current_span.$begin().$sec()),f=g("Chronic").$construct(i.current_span.$end().$year(),i.current_span.$end().$month(),n(i.current_span.$end().$day(),l),i.current_span.$end().$hour(),i.current_span.$end().$min(),i.current_span.$end().$sec()),i.current_span=g("Span").$new(m,f);if(d=u(i.now,g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day())),o(O(d,i.range.$begin())))switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day()),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),u(i.now.$day(),1)),i.range.$begin());break;default:t}else if(o(v(d,i.range.$end())))switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),n(i.now.$day(),1)),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day()),i.range.$begin());break;default:t}else switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),n(i.now.$day(),1)),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),u(i.now.$day(),1)),i.range.$begin());break;default:t}return p=u(i.range.$end(),i.range.$begin()),b=i.$construct_date_from_reference_and_offset(c,p),i.current_span=g("Span").$new(c,b)}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;return e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),i=n(g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),o.range.$begin()),c=o.$construct_date_from_reference_and_offset(i),o.current_span=g("Span").$new(i,c)},-1),s(b,"$offset",function(s,o,a){var r=this,c=t,l=t;return r.now=s.$begin(),c=r.$next(a),l=d(a,"future")?1:-1,n(c,i(i(l,u(o,1)),p(g("RepeaterDay"),"DAY_SECONDS")))}),s(b,"$width",function(){var n=this,s=t;return o(s=n.range)?s:n.$raise("Range has not been set"),o(n.current_span)?n.current_span.$width():o(n.type["$kind_of?"](g("Integer")))?i(i(12,60),60):u(n.range.$end(),n.range.$begin())}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dayportion-"),s.type.$to_s())}),b.$private(),s(b,"$construct_date_from_reference_and_offset",function(s,a){var d=this,r=t,h=t,c=t,l=t,m=t;return a==null&&(a=t),r=o(h=a)?h:u(d.range.$end(),d.range.$begin()),c=u(r,i(12,60))["$%"](60),l=y(u(r,c),60)["$%"](60),m=n(y(u(u(r,l),c),i(60,60)),s.$hour()["$%"](24)),g("Chronic").$construct(s.$year(),s.$month(),s.$day(),m,l,c)},-2)}(m[0],j("Repeater"),m)}(c[0],c),function(c,h){var p=g(c,"Chronic"),m=[p].concat(h),v=e.$r(m);return function(c,h,m){var g=l(c,h,"RepeaterHour"),v=[g].concat(m),p=e.$r(v),b=g.$$prototype;return b.current_hour_start=b.now=t,f(v[0],"HOUR_SECONDS",3600),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_hour_start=t},-2),s(g,"$next",function e(s){var h=e.$$p||t,c=this,l=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],h),o(c.current_hour_start))l=d(s,"future")?1:-1,c.current_hour_start=n(c.current_hour_start,i(l,p("HOUR_SECONDS")));else switch(s.valueOf()){case"future":c.current_hour_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),n(c.now.$hour(),1));break;case"past":c.current_hour_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),u(c.now.$hour(),1));break;default:t}return p("Span").$new(c.current_hour_start,n(c.current_hour_start,p("HOUR_SECONDS")))}),s(g,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),n(o.now.$min(),1)),c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),n(o.now.$hour(),1));break;case"past":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min());break;case"none":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=n(i,p("HOUR_SECONDS"));break;default:t}return p("Span").$new(i,c)},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("HOUR_SECONDS")))}),s(g,"$width",function(){return p("HOUR_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-hour")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,h){var p=g(c,"Chronic"),m=[p].concat(h),v=e.$r(m);return function(c,h,m){var g=l(c,h,"RepeaterMinute"),v=[g].concat(m),p=e.$r(v),b=g.$$prototype;return b.current_minute_start=b.now=t,f(v[0],"MINUTE_SECONDS",60),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_minute_start=t},-2),s(g,"$next",function e(s){var h=e.$$p||t,c=this,l=t;if(e.$$p=null,s==null&&(s="future"),r(c,a(c,"next",e,!1,!0),"next",[s],h),o(c.current_minute_start))l=d(s,"future")?1:-1,c.current_minute_start=n(c.current_minute_start,i(l,p("MINUTE_SECONDS")));else switch(s.valueOf()){case"future":c.current_minute_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),n(c.now.$min(),1));break;case"past":c.current_minute_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),u(c.now.$min(),1));break;default:t}return p("Span").$new(c.current_minute_start,n(c.current_minute_start,p("MINUTE_SECONDS")))},-1),s(g,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=o.now,c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min());break;case"past":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),c=o.now;break;case"none":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),c=n(p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),p("MINUTE_SECONDS"));break;default:t}return p("Span").$new(i,c)},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("MINUTE_SECONDS")))}),s(g,"$width",function(){return p("MINUTE_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minute")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),p=e.$r(h);return function(c,u,h){var m=l(c,u,"RepeaterSecond"),g=[m].concat(h),p=e.$r(g),v=m.$$prototype;return v.second_start=v.now=t,f(g[0],"SECOND_SECONDS",1),s(m,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.second_start=t},-2),s(m,"$next",function e(s){var u=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s="future"),r(c,a(c,"next",e,!1,!0),"next",[s],u),l=d(s,"future")?1:-1,o(c.second_start)?c.second_start=n(c.second_start,i(p("SECOND_SECONDS"),l)):c.second_start=n(c.now,i(l,p("SECOND_SECONDS"))),p("Span").$new(c.second_start,n(c.second_start,p("SECOND_SECONDS")))},-1),s(m,"$this",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],i),p("Span").$new(o.now,n(o.now,1))},-1),s(m,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("SECOND_SECONDS")))}),s(m,"$width",function(){return p("SECOND_SECONDS")}),s(m,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-second")})}(h[0],p("Repeater"),h)}(c[0],c),function(c,m){var p=g(c,"Chronic"),f=[p].concat(m),b=e.$r(f);return function(c,m,f){var p=l(c,m,"RepeaterTime"),w=[p].concat(f),g=e.$r(w),b=p.$$prototype;return b.options=b.current_time=b.now=b.type=t,function(a,r,c){var d=l(a,r,"Tick"),h=[d].concat(c),m=e.$r(h),u=d.$$prototype;return u.time=u.ambiguous=t,d.$attr_accessor("time"),s(d,"$initialize",function(t,n){var s=this;return n==null&&(n=!1),s.time=t,s.ambiguous=n},-2),s(d,"$ambiguous?",D("ambiguous")),s(d,"$*",function(t){var n=this;return m("Tick").$new(i(n.time,t),n.ambiguous)}),s(d,"$to_f",function(){var t=this;return t.time.$to_f()}),s(d,"$to_s",function(){var t=this;return n(t.time.$to_s(),o(t.ambiguous)?"?":"")})}(w[0],null,w),s(p,"$initialize",function(a,r){var h=this,c=t,f=t,p=t,m=t,l=t,b=t,w=t,O=t;return r==null&&(r=new Map),h.current_time=t,h.options=r,c=a.$split(":"),o(v(c.$count(),4))&&h.$raise(g("ArgumentError"),"Time cannot have more than 4 groups of ':'"),o(v(c.$first().$length(),2))&&d(c.$count(),1)&&(o(v(c.$first().$length(),4))&&(f=u(c.$first().$length(),2),c.$insert(1,c.$first()["$[]"](e.Range.$new(f,c.$first().$length(),!1))),c["$[]="](0,c.$first()["$[]"](e.Range.$new(0,u(f,1),!1)))),p=u(c.$first().$length(),2),c.$insert(1,c.$first()["$[]"](e.Range.$new(p,c.$first().$length(),!1))),c["$[]="](0,c.$first()["$[]"](e.Range.$new(0,u(p,1),!1)))),m=!1,l=c.$first().$to_i(),(o(h.options["$[]"]("hours24")["$nil?"]())||S(h.options["$[]"]("hours24")["$nil?"]())&&A(h.options["$[]"]("hours24"),!0))&&((d(c.$first().$length(),1)&&o(v(l,0))||o(j(l,10))&&o(_(l,12))||d(h.options["$[]"]("hours24"),!1)&&o(v(l,0)))&&(m=!0),d(l,12)&&o(m)&&(l=0)),l=i(l,i(60,60)),b=0,w=0,O=0,o(v(c.$count(),1))&&(b=i(c["$[]"](1).$to_i(),60)),o(v(c.$count(),2))&&(w=c["$[]"](2).$to_i()),o(v(c.$count(),3))&&(O=y(c["$[]"](3).$to_f(),10["$**"](c["$[]"](3).$length()))),h.type=g("Tick").$new(n(n(n(l,b),w),O),m)},-2),s(p,"$next",function e(s){var x=e.$$p||t,c=this,p=t,v=t,b=t,l=t,y=t,f=t,m=t,O=t,w=t;return e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],x),p=i(i(60,60),12),v=i(i(60,60),24),b=!1,o(c.current_time)||(b=!0,l=g("Chronic").$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day()),y=u(l,v),f=n(l,v),m=u(l.$gmt_offset(),f.$gmt_offset()),f=n(f,m),h(c,"catch",["done"],function e(){var i=e.$$s==null?this:e.$$s;return i.type==null&&(i.type=t),d(s,"future")?o(i.type["$ambiguous?"]())?h([n(n(l,i.type.$time()),m),n(n(n(l,p),i.type.$time()),m),n(f,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(j(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):h([n(n(l,i.type.$time()),m),n(f,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(j(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):o(i.type["$ambiguous?"]())?h([n(n(n(l,p),i.type.$time()),m),n(n(l,i.type.$time()),m),n(n(y,i.type.$time()),p)],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(_(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):h([n(n(l,i.type.$time()),m),n(y,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(_(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i})},{$$s:c}),o(O=c.current_time)?O:c.$raise("Current time cannot be nil at this point")),o(b)||(w=o(c.type["$ambiguous?"]())?p:v,c.current_time=n(c.current_time,d(s,"future")?w:w["$-@"]())),g("Span").$new(c.current_time,n(c.current_time,c.$width()))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),d(n,"none")&&(n="future"),s.$next(n)},-1),s(p,"$width",C(1)),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-time-"),s.type.$to_s())})}(f[0],b("Repeater"),f)}(c[0],c),function(s,i){var r=g(s,"Chronic"),c=[r].concat(i),a=e.$r(c);return f(c[0],"VERSION","0.10.2"),function(e){return e.$attr_accessor("debug"),e.$attr_accessor("time_class")}(e.get_singleton_class(r),c),r["$debug="](!1),r["$time_class="](p("Time")),m(r,"$parse",function(t,n){return n==null&&(n=new Map),a("Parser").$new(n).$parse(t)},-2),m(r,"$construct",function(s,i,r,c,l,h,m){var b=this,g=t,f=t;return i==null&&(i=1),r==null&&(r=1),c==null&&(c=0),l==null&&(l=0),h==null&&(h=0),m==null&&(m=t),o(j(h,60))&&(l=n(l,y(h,60)),h=h["$%"](60)),o(j(l,60))&&(c=n(c,y(l,60)),l=l["$%"](60)),o(j(c,24))&&(r=n(r,y(c,24)),c=c["$%"](24)),o(g=_(r,56))?g:b.$raise("day must be no more than 56 (makes month resolution easier)"),o(v(r,28))&&(f=o(p("Date")["$leap?"](s))?p(a("Date"),"MONTH_DAYS_LEAP")["$[]"](i):p(a("Date"),"MONTH_DAYS")["$[]"](i),o(v(r,f))&&(i=n(i,y(r,f)),r=r["$%"](f))),o(v(i,12))&&(d(i["$%"](12),0)?(s=n(s,y(u(i,12),12)),i=12):(s=n(s,y(i,12)),i=i["$%"](12))),d(a("Chronic").$time_class().$name(),"Date")?a("Chronic").$time_class().$new(s,i,r):S(a("Chronic").$time_class()["$respond_to?"]("new"))||o(O(a("RUBY_VERSION").$to_f(),1.9))&&d(a("Chronic").$time_class().$name(),"Time")?a("Chronic").$time_class().$local(s,i,r,c,l,h):(d(a("Chronic").$time_class().$name(),"DateTime")&&(m=a("Time").$normalize_offset(m)),a("Chronic").$time_class().$new(s,i,r,c,l,h,m))},-2)}(c[0],c)},Opal.modules["web/gxg"]=function(e){var v=e.module,f=e.const_set,o=e.gvars,O=e.klass,a=e.def,m=e.slice,s=e.truthy,i=e.send,g=e.alias,l=e.eqeq,p=e.thrower,r=e.defs,u=e.rb_gt,b=e.rb_divide,d=e.rb_minus,h=e.rb_plus,j=e.rb_le,y=e.neqeq,_=e.rb_ge,w=e.rb_lt,c=[],t=e.nil,n=e.$$$;return e.add_stubs("private,[],try_convert,to_sym,to_s,uuid_generate,create_channel,new,unknown,to_proc,log_unknown,fatal,error,warn,log_warn,info,debug,is_a?,post_event,log_error,now,add_timer,add_periodic_timer,cancel_timer,public,each,to_enum,flatten,==,class,fetch_channel,destroy_channel,uuid,>,/,to_f,-,to_i,+,passes_needed,times,<=,<<,is_any?,match,size,[]=,children_of,!=,delete,keys,record_by_uuid,values,object_id,sort,<=>,object_by_uuid,parent_of,find_index,>=,delete_at,<,unshift,insert,each_with_index"),function(e,n){var o=v(e,"GxG"),s=[o].concat(n);return f(s[0],"LOG",t),f(s[0],"DISPATCHER",t),f(s[0],"OBJECT_SPACE",new Map([["registry",new Map]]))}(c[0],c),o.object_space=new Map([["registry",new Map]]),function(o,r,c){var d=O(o,r,"Object"),h=[d].concat(c),u=e.$r(h),f=d.$$prototype;return f.uuid=t,d.$private(),a(d,"$logged_in?",function(){return n(u("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in")}),a(d,"$bytes",function(){var s=m(arguments),o=s;return n(u("GxG"),"ByteArray").$try_convert(o)},-1),a(d,"$new_message",function(){var o=this,a=m(arguments),i=a;return s(o.uuid)||(o.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(o.uuid,o)),n(n(n("GxG"),"Events"),"Message").$new(new Map([["sender",o.uuid],["subject",i["$[]"](1)],["body",i["$[]"](0)]]))},-1),a(d,"$log_unknown",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"unknown",[o,a,c],r.$to_proc()):t},-1),g(d,"log_trace","log_unknown"),a(d,"$log_fatal",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"fatal",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_error",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"error",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_warn",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"warn",[o,a,c],r.$to_proc()):t},-1),g(d,"log_warning","log_warn"),a(d,"$log_info",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"info",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_debug",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"debug",[o,a,c],r.$to_proc()):t},-1),a(d,"$post_event",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o="root"),a==null&&(a=t),r=!1,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"post_event",[o],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"post_event",[o],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$post_event_at",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o=u("Time").$now()),a==null&&(a=t),r=t,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"add_timer",[new Map([["when",o]])],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"add_timer",[new Map([["when",o]])],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$post_event_periodic",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o=.333),a==null&&(a=t),r=t,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"add_periodic_timer",[new Map([["interval",o]])],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",o]])],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$cancel_periodic",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=t),a=!1,s(o["$is_a?"](u("Hash")))&&(s(i["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?a=i.$cancel_timer(o):s(n(n("GxG"),"DISPATCHER"))?a=n(n("GxG"),"DISPATCHER").$cancel_timer(o):r.$log_error("No Event Dispatcher Defined")),a},-1),d.$public(),a(d,"$is_any?",function(){var c=this,o=t,a=m(arguments),r=a,o=!1;return function(){try{var e=p("break");return i(r.$flatten().$to_enum(),"each",[],function n(i){var a=n.$$s==null?this:n.$$s;if(i==null&&(i=t),l(i.$class(),u("Class")))if(s(a["$is_a?"](i)))o=!0,e.$throw(t,n.$$is_lambda);else return t;else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o},-1),a(d,"$defederate",function(){var o=this,i=t;return s(o.uuid)&&(i=n(n("GxG"),"CHANNELS").$fetch_channel(o.uuid),s(i)&&n(n("GxG"),"CHANNELS").$destroy_channel(o.uuid)),!0})}(c[0],null,c),function(a,c){var m=v(a,"GxG"),g=[m].concat(c),f=e.$r(g);return r(m,"$uuid_generate",function(){return f("SecureRandom").$uuid()}),r(m,"$passes_needed",function(n,o){var i=t,a=t;return n==null&&(n=0),o==null&&(o=0),s(u(n,0))&&s(u(o,0))?(i=b(n.$to_f(),o.$to_f()),a=d(i,i.$to_i().$to_f()),i=i.$to_i().$to_f(),s(u(a,0))&&(i=h(i,1)),i.$to_i()):0},-1),r(m,"$apportioned_ranges",function(a,r,c){var m=t,f=t,l=t;return a==null&&(a=0),r==null&&(r=0),c==null&&(c=0),m=[],f=n("GxG").$passes_needed(a,r),s(u(f,0))&&(l=c,i(f,"times",[],function(){var o=t;return s(j(h(l,d(r,1)),d(a,1)))?o=h(l,d(r,1)):o=d(a,1),m["$<<"](e.Range.$new(l,o,!1)),l=h(o,1)})),m},-1),r(m,"$valid_uuid?",function(o,i){var a=t;return o==null&&(o=t),i==null&&(i=!0),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(l(i,!0)?a=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[4][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/:a=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/,!!s(o.$to_s().$match(a))&&!!l(o.$to_s().$size(),36))},-1),r(m,"$replace_registry",function(n){return o.object_space==null&&(o.object_space=t),n==null&&(n=new Map),o.object_space["$[]="]("registry",n),!0},-1),r(m,"$register",function(n,i){var a=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),i==null&&(i=t),s(o.object_space["$[]"]("registry")["$[]"](n.$uuid().$to_s().$to_sym()))||(s(i)?a=f("GxG").$children_of(i).$size():a=0,o.object_space["$[]"]("registry")["$[]="](n.$uuid().$to_s().$to_sym(),new Map([["object",n],["parent",i],["ordinal",a]]))),!0},-1),r(m,"$unregister",function(i){return o.object_space==null&&(o.object_space=t),i==null&&(i=t),s(o.object_space["$[]"]("registry")["$[]"](i.$to_s().$to_sym()))&&y(n(f("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$uuid().$to_s().$to_sym(),i.$to_s().$to_sym())&&o.object_space["$[]"]("registry").$delete(i.$to_s().$to_sym()),!0},-1),r(m,"$register_uuid_list",function(){return o.object_space==null&&(o.object_space=t),o.object_space["$[]"]("registry").$keys()}),r(m,"$record_by_uuid",function(n){var i=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),i=t,s(o.object_space["$[]"]("registry")["$[]"](n.$to_s().$to_sym()))&&(i=o.object_space["$[]"]("registry")["$[]"](n.$to_s().$to_sym())),i},-1),r(m,"$object_by_uuid",function(n){var o=t;return n==null&&(n=t),(s(o=f("GxG").$record_by_uuid(n))?o:new Map)["$[]"]("object")},-1),r(m,"$children_of",function(n){var a=t,s=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),a=[],s=[],i(o.object_space["$[]"]("registry").$values(),"each",[],function(o){return o==null&&(o=t),l(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s=i(s,"sort",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$[]"]("ordinal")["$<=>"](s["$[]"]("ordinal"))}),i(s,"each",[],function(n){return n==null&&(n=t),a["$<<"](n["$[]"]("object"))}),a},-1),r(m,"$set_ordinal",function(n,o){var l=t,c=t,u=t,a=t,r=t;return n==null&&(n=t),o==null&&(o=0),l=!1,s(n["$is_any?"](f("String"),f("Symbol")))?c=f("GxG").$object_by_uuid(n.$to_sym()):c=n,u=f("GxG").$parent_of(c),s(u)&&(a=f("GxG").$children_of(u),r=a.$find_index(c),s(r)&&(s(_(o,d(a.$size(),1)))?a["$<<"](a.$delete_at(r)):s(w(o,0))?a=a.$unshift(a.$delete_at(r)):a=a.$insert(o,a.$delete_at(r)),i(a,"each_with_index",[],function(n,s){var o,a=t;return n==null&&(n=t),s==null&&(s=t),a=f("GxG").$record_by_uuid(n.$uuid().$to_sym()),(o=["ordinal",s],i(a,"[]=",o),o[o.length-1])}),l=!0)),l},-1),r(m,"$parent_of",function(n){var s=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),s=t,function(){try{var e=p("break");return i(o.object_space["$[]"]("registry").$values(),"each",[],function o(i){if(i==null&&(i=t),l(i["$[]"]("object").$object_id(),n.$object_id()))s=i["$[]"]("parent"),e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s},-1),r(m,"$lineage_of",function(n){var o=t,s=t;for(n==null&&(n=t),o=[],s=f("GxG").$parent_of(n);!l(s,t);)o.$unshift(s),s=f("GxG").$parent_of(s);return o},-1)}(c[0],c)},Opal.modules["web/gxg_augments"]=function(e){var l=e.klass,i=e.def,O=e.module,h=e.const_set,E=e.return_ivar,s=e.truthy,b=e.gvars,o=e.send,_=e.alias,A=e.slice,y=e.to_a,p=e.send2,g=e.find_super,u=e.defs,d=e.rb_plus,j=e.rb_lt,C=e.rb_times,a=e.eqeq,r=e.rb_gt,f=e.range,x=e.not,w=e.rb_minus,m=e.neqeq,v=e.thrower,c=[],k=e.$r(c),t=e.nil,n=e.$$$;return e.add_stubs("include?,respond_to?,call,puts,to_s,[],strftime,now,inspect,to_i,log_error,add,to_proc,warn,unknown,BigDecimal,%,to_f,parse,to_d,to_time,+,<,round,*,sec_fraction,**,private,iso8601_timediv,iso8601,public,clone,match,==,>,size,split,camel_case?,slice,json_1?,json_2?,json?,is_any?,process!,is_a?,valid_datetime_nolocale?,valid_datetime?,[]=,numeric_values,base64?,new,decode64,!,strict_decode64,strict_encode64,each_index,each,-,dup,raise,search,<<,shift,each_pair,each_with_index,object_id,!=,iterative,reverse,get_at_path,gsub,unshift,join,paths_to,to_sym,to_enum,=~,first,dirname,basename,delete,class,gxg_import,try_convert,process"),function(e,n,s){var o=l(e,n,"Buffer"),a=[o].concat(s);return function(e,n){var s=l(e,n,"Array"),o=s.$$prototype;return o.native=t,i(s,"$native_object",function(){var t=this;return t.native})}(a[0],null)}(c[0],null,c),function(e,n){var o=O(e,"GxG"),s=[o].concat(n);return function(e,n){var o=O(e,"Database"),s=[o].concat(n);return l(s[0],null,"Field"),l(s[0],null,"PersistedArray"),(l(s[0],null,"PersistedHash"),t)}(s[0],s)}(c[0],c),function(a,r,c){var d=l(a,r,"Logger"),m=[d].concat(c),u=e.$r(m);return h(m[0],"DEBUG",0),h(m[0],"INFO",1),h(m[0],"WARN",2),h(m[0],"ERROR",3),h(m[0],"FATAL",4),h(m[0],"UNKNOWN",5),h(m[0],"TRACE",5),i(d,"$initialize",function(t){var n=this;return t==null&&(t=3),n.level=t},-1),i(d,"$level",E("level")),i(d,"$level=",function(t){var n=this;return t==null&&(t=3),n.level=t},-1),i(d,"$add",function o(i,a,r,c){var l=o.$$p||t,d=this,h=t,m=t;b.$==null&&(b.$=t),o.$$p=null,i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),s([n(n("Logger"),"DEBUG"),n(n("Logger"),"INFO"),n(n("Logger"),"WARN"),n(n("Logger"),"ERROR"),n(n("Logger"),"FATAL"),n(n("Logger"),"UNKNOWN")]["$include?"](i))||(i=n(n("Logger"),"UNKNOWN")),s(r)&&(s(a)||(a=r,r=t));try{return s(a)||s(l["$respond_to?"]("call"))&&(a=l.$call()),h=["DEBUG","INFO","WARN","ERROR","FATAL","ANY"],d.$puts(""+h["$[]"](i).$to_s()+", ["+u("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z")+"#"+b.$.$inspect()+"] "+u("Time").$now().$to_i().$to_s()+" -- "+r.$inspect()+": "+a.$to_s()+` +`),!0}catch(t){if(e.rescue(t,[u("Exception")])){m=t;try{return d.$log_error(new Map([["error",m],["parameters",new Map([["severity",i],["message",a],["progname",r],["block",l]])]])),!1}finally{e.pop_exception(t)}}else throw t}},-1),i(d,"$debug",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("DEBUG"),t,n],s.$to_proc())},-1),i(d,"$info",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("INFO"),t,n],s.$to_proc())},-1),i(d,"$warn",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("WARN"),t,n],s.$to_proc())},-1),_(d,"warning","warn"),i(d,"$error",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("ERROR"),t,n],s.$to_proc())},-1),i(d,"$fatal",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("FATAL"),t,n],s.$to_proc())},-1),i(d,"$unknown",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("UNKNOWN"),t,n],s.$to_proc())},-1),_(d,"trace","unknown")}(c[0],null,c),function(e,t){var s=l(e,t,"Time");return i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t.$to_f()))})}(c[0],null),function(a,r,c){var h=l(a,r,"DateTime"),f=[h].concat(c),m=e.$r(f);return i(h,"$intialize",function e(){var s,a,r=e.$$p||t,i=this;return e.$$p=null,a=A(arguments),s=a,i.data=o(m("Time"),"parse",y(s)),p(i,g(i,"intialize",e,!1,!0),"intialize",y(s),null)},-1),i(h,"$to_time",function(){var t=this;return n("Time").$parse(t.$to_s())}),i(h,"$to_d",function(){var t=this;return t.$BigDecimal(t.$to_time().$to_d())}),u(h,"$now",function(){return m("DateTime").$parse(m("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z"))}),i(h,"$to_s",function(){var t=this;return t.$strftime("%Y-%m-%dT%H:%M:%S%z")}),i(h,"$to_json",function(){var t=this;return t.$strftime("%Y-%m-%dT%H:%M:%S%z")}),i(h,"$strftime",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="%FT%T%:z"),p(s,g(s,"strftime",e,!1,!0),"strftime",[n],null)},-1),u(h,"$_strptime",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s="%FT%T%z"),p(o,g(o,"_strptime",e,!1,!0),"_strptime",[n,s],null)},-2),i(h,"$iso8601_timediv",function(t){var n=this;return t=t.$to_i(),n.$strftime(d(d("T%T",s(j(t,1))?"":".%0*d"["$%"]([t,C(n.$sec_fraction(),10["$**"](t)).$round()])),"%:z"))}),h.$private("iso8601_timediv"),i(h,"$iso8601",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=0),d(p(s,g(s,"iso8601",e,!1,!0),"iso8601",[],null),s.$iso8601_timediv(n))},-1),i(h,"$rfc3339",function(t){var n=this;return t==null&&(t=0),n.$iso8601(t)},-1),i(h,"$xmlschema",function(t){var n=this;return t==null&&(t=0),n.$iso8601(t)},-1),i(h,"$jisx0301",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=0),d(p(s,g(s,"jisx0301",e,!1,!0),"jisx0301",[],null),s.$iso8601_timediv(n))},-1)}(c[0],k("Date"),c),function(e,t){var s=l(e,t,"Integer");return i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t.$to_f()))})}(c[0],null),function(e,t){var s=l(e,t,"Float");return s.$public(),i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t))})}(c[0],null),function(c,u,h){var m=l(c,u,"String"),g=[m].concat(h),p=e.$r(g);return i(m,"$cast_to_ascii",function(){var t=this;return new window.TextDecoder("ascii").decode((new window.TextEncoder).encode(t.$clone().toString())).$to_s()}),i(m,"$valid_date?",function(){var t=this;return!!s(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/.$match(t))}),i(m,"$valid_datetime?",function(){var t=this;return!!s(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9][+-][0-9][0-9]:[0-9][0-9]/.$match(t))}),i(m,"$valid_datetime_nolocale?",function(){var t=this;return!!s(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/.$match(t))}),i(m,"$valid_path?",function(){var t=this;return!!(s(/.*(?:\\|\/)(.+)$/.$match(t))||a(t.$split(" ").$size(),1)||s(r(t.$split("/").$size(),1))||a(t,"/"))}),i(m,"$valid_jid?",function(){var t=this;return!!s(/^(?:([^@]*)@)??([^@/]*)(?:\/(.*?))?$/.$match(t))}),i(m,"$camel_case?",function(){var t=this;return!!s(t.$match(/[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*/))}),i(m,"$split_camelcase",function(){var t=this;return s(t["$camel_case?"]())?t.$split(/(?=[A-Z])/):t}),i(m,"$json_1?",function(){var t=this;return t.$slice(0,1)["$=="]("{")}),i(m,"$json_2?",function(){var n=this,o=t,i=t;return s(o=n["$json_1?"]())?!!s(i=n.$match('"apiVersion"\\s?:\\s?"2.0"'))&&i:o}),i(m,"$json?",function(){var n=this,o=t;return s(o=n["$json_1?"]())?o:n["$json_2?"]()}),i(m,"$from_json",function(i){var r=this,c=t;return i==null&&(i=!0),s(r["$json?"]())?(c=n("JSON").$parse(r,new Map([["symbolize_names",i]])),s(c["$is_any?"](n("Hash"),n("Array")))?o(c,"process!",[],function(o,i,r){var c=t;return o==null&&(o=t),i==null&&(i=t),r==null&&(r=t),s(o["$is_a?"](n("String")))&&(s(o["$valid_datetime?"]())||s(o["$valid_datetime_nolocale?"]())?r["$[]="](i,n("DateTime").$parse(o)):(c=o.$numeric_values(),s(c["$is_a?"](n("Hash")))&&(s(c["$[]"]("integer"))?(c=c["$[]"]("integer"),r["$[]="](i,c)):s(c["$[]"]("float"))&&(c=c["$[]"]("float"),r["$[]="](i,c)))),a(o["$[]"](f(0,6,!1)),"binary:")&&s(o["$[]"](f(7,-1,!1))["$base64?"]())&&r["$[]="](i,n(p("GxG"),"ByteArray").$new(o["$[]"](f(7,-1,!1)).$decode64()))),t}):t):r},-1),i(m,"$base64?",function(){var o=this,i=t;try{if(x(["page","form","left"]["$include?"](o)))if(s(r(o.$size(),0)))try{return p("Base64").$strict_decode64(o),!0}catch(t){if(e.rescue(t,[p("Exception")])){i=t;try{return!1}finally{e.pop_exception(t)}}else throw t}else return!1;else return!1}catch(t){if(e.rescue(t,[p("Exception")])){i=t;try{return!1}finally{e.pop_exception(t)}}else throw t}}),i(m,"$encode64",function(){var t=this;return s(t["$base64?"]())?t:n("Base64").$strict_encode64(t)}),i(m,"$decode64",function(){var t=this;return s(t["$base64?"]())?n("Base64").$strict_decode64(t):t}),i(m,"$encrypt",function(i){var c=this,l=t,a=t,u=t;return i==null&&(i=""),s(r(i.$to_s().$size(),0))?(l=n(n("GxG"),"ByteArray").$new(i.$to_s()),a=n(n("GxG"),"ByteArray").$new(c.$to_s()),o(a,"each_index",[],function(n){var c,i=t;return n==null&&(n=t),i=a["$[]"](n),o(l,"each",[],function(n){return n==null&&(n=t),o([127,63,31,15,7,3,1,0],"each",[],function(o){return o==null&&(o=t),s(r(n,o))?(i=d(i,1),s(r(i,255))?i=0:t):(i=w(i,1),s(j(i,0))?i=255:t)})}),(c=[n,i],o(a,"[]=",c),c[c.length-1])}),u=a.$to_s(),u):c.$dup()},-1),i(m,"$decrypt",function(i){var c=this,l=t,a=t,u=t;return i==null&&(i=""),s(r(i.$to_s().$size(),0))?(l=n(n("GxG"),"ByteArray").$new(i.$to_s()),a=n(n("GxG"),"ByteArray").$new(c.$to_s()),o(a,"each_index",[],function(n){var c,i=t;return n==null&&(n=t),i=a["$[]"](n),o(l,"each",[],function(n){return n==null&&(n=t),o([127,63,31,15,7,3,1,0],"each",[],function(o){return o==null&&(o=t),s(r(n,o))?(i=w(i,1),s(j(i,0))?i=255:t):(i=d(i,1),s(r(i,255))?i=0:t)})}),(c=[n,i],o(a,"[]=",c),c[c.length-1])}),u=a.$to_s(),u):c.$dup()},-1),i(m,"$to_d",function(){var t=this;return t.$BigDecimal(t)})}(c[0],null,c),function(c,h,p){var b=l(c,h,"Hash"),j=[b].concat(p),g=e.$r(j);return u(b,"$process",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=new Map),a=new Map,s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"process!",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),a},-1),u(b,"$search",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=new Map),a=new Map,s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"search",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),a},-1),i(b,"$iterative",function i(){var v=i.$$p||t,l=this,u=t,b=t,h=t,f=t,d=t,c=t,p=t,j=t,y=t;i.$$p=null,u=[],b=o(g("Proc"),"new",[],function(i,a){var l=t,c=t;if(i==null&&(i=t),a==null&&(a=[]),l=[],s(i))for(l["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(l.$size(),0));)c=l.$shift(),s(c["$[]"]("object")["$is_any?"](n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash")))&&o(c["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",n],["object",s]]))}),s(c["$[]"]("object")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray")))&&o(c["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",s],["object",n]]))}),a["$<<"](c);return a},-1),h=o(g("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(f=b.$call(l,[]),d=h.$call(f,l),s(v["$respond_to?"]("call")))for(;s(r(d.$size(),0));)c=d.$shift(),a(c["$[]"]("object").$object_id(),l.$object_id())||(p=v.$call(c["$[]"]("object"),c["$[]"]("parent_selector"),c["$[]"]("parent")),s(p)&&u["$<<"](p)),m(c["$[]"]("object").$object_id(),t.$object_id())&&(j=h.$call(f,c["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),d["$<<"](n)}))}catch(t){if(e.rescue(t,[g("Exception")])){y=t;try{l.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return u}),i(b,"$process",function e(){var s=e.$$p||t,i=this,n=t;return e.$$p=null,n=i.$clone(),o(n,"iterative",[],s.$to_proc()),n}),i(b,"$process!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,o(n,"iterative",[],s.$to_proc()),n}),i(b,"$search",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=[],s(i["$respond_to?"]("call"))&&(n=o(a,"iterative",[],i.$to_proc())),n}),i(b,"$paths_to",function(i,c){var _=this,h=t,l=t,u=t,b=t,y=t,j=t,p=t;return i==null&&(i=t),c==null&&(c=""),h=[],a(c["$[]"](0),"/")||(c=d("/",c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](f(1,-1,!1)).$reverse():l=[],u=_.$get_at_path(c),b=[new Map([["selector",t],["container",u],["prefix","/"]])],y=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=v("break");return o(b,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),j=u,p=!1,s(u["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?o(u,"process!",[],function(o,r,c){var f=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),m(j.$object_id(),c.$object_id())&&(f=y.$call(c),s(f)&&(l=f["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),j=c),u=r.$to_s(),u=u.$gsub("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&h["$<<"](d("/",l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))&&b.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):h["$<<"](d("/",l.$join("/"))),h},-1),i(b,"$object_map",function(){var s=this,n=t,n=new Map;return o(s,"search",[],function e(s,i,a){var r=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),a==null&&(a=t),o(r.$paths_to(s),"each",[],function(i){var a;return i==null&&(i=t),(a=[i.$to_s().$to_sym(),s],o(n,"[]=",a),a[a.length-1])})},{$$s:s}),n}),i(b,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$to_s().$split("/"),function(){try{var e=v("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o,l=l.$gsub("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](g("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(b,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,m(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o.$to_s())),s(d)&&(l=n("File").$basename(o.$to_s()),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l,c=c.$gsub("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(b,"$symbolize_keys",function(){var i=this;return o(i,"process!",[],function(o,i,a){return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(a["$is_a?"](n("Hash")))&&(s(i["$is_a?"](n("Symbol")))||a["$[]="](i.$to_s().$to_sym(),a.$delete(i))),t}),i}),i(b,"$gxg_export",function(){var u=this,l=t,i=t,h=t,m=t,c=t,d=t,l=new Map([["type","Hash"],["content",new Map]]),i=[new Map([["parent",t],["parent_selector",t],["object",u],["record",l]])],h=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),m=o(g("Proc"),"new",[],function(n){return n==null&&(n=t),s(n["$is_any?"](g("Integer"),g("Float"),g("String")))?s(n["$is_a?"](g("Numeric")))?s(n.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",n]]):new Map([["type","Integer"],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n.$to_s()]])});for(o(u,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n("Hash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Hash"],["content",new Map]])]])):s(o["$is_a?"](n("Array")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Array"],["content",[]]])]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",m.$call(o)]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)d=c.$shift(),o(h.$call(d["$[]"]("object")),"each",[],function(n){return n==null&&(n=t),d["$[]"]("record")["$[]"]("content")["$[]="](n["$[]"]("parent_selector"),n["$[]"]("record")),s(n["$[]"]("object")["$is_any?"](g("Hash"),g("Array")))?c["$<<"](n):t});return l}),u(b,"$gxg_import",function(c){try{var m=this,u=t,h=t,d=t,l=t;if(c==null&&(c=t),u=t,s(c["$is_a?"](g("Hash"))))if(a(c["$[]"]("type"),"Array"))u=n("Array").$gxg_import(c);else if(h=o(g("Proc"),"new",[],function n(o,i){var r,c=n.$$s==null?this:n.$$s,a=t,l=t;if(o==null&&(o=t),i==null&&(i=t),s(i["$is_a?"](g("String"))))try{a=(r=o,typeof e.compile=="function"?eval(e.compile(r,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):c.$eval(r)),s(a["$respond_to?"]("parse"))?i=a.$parse(i):s(a["$respond_to?"]("new"))?i=a.$new(i):s(a["$respond_to?"]("try_convert"))&&(i=a.$try_convert(i))}catch(n){if(e.rescue(n,[g("Exception")])){l=n;try{t}finally{e.pop_exception(n)}}else throw n}return i},{$$s:m}),a(c["$[]"]("type"),"Hash"))for(u=new Map,d=[new Map([["parent",t],["parent_selector",t],["object",u],["record",c]])];s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Hash")))?o(l["$[]"]("record")["$[]"]("content"),"each_pair",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(s["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](n,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):a(s["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](n,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):(i=[n,h.$call(s["$[]"]("type"),s["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])}):s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Array")))&&o(l["$[]"]("record")["$[]"]("content"),"each_with_index",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(n["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](s,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):a(n["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](s,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):(i=[s,h.$call(n["$[]"]("type"),n["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])});else u=h.$call(c["$[]"]("type"),c["$[]"]("content"));return u}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1)}(c[0],null,c),function(c,h,p){var b=l(c,h,"Array"),j=[b].concat(p),g=e.$r(j);return u(b,"$process",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=[]),a=[],s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n(n("GxG"),"ByteArray"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"process",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),a},-1),u(b,"$search",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=[]),a=[],s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n(n("GxG"),"ByteArray"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"search",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),a},-1),i(b,"$iterative",function i(){var v=i.$$p||t,l=this,u=t,b=t,h=t,f=t,d=t,c=t,p=t,j=t,y=t;i.$$p=null,u=[],b=o(g("Proc"),"new",[],function(i,a){var l=t,c=t;if(i==null&&(i=t),a==null&&(a=[]),l=[],s(i))for(l["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(l.$size(),0));)c=l.$shift(),s(c["$[]"]("object")["$is_any?"](n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash")))&&o(c["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",n],["object",s]]))}),s(c["$[]"]("object")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray")))&&o(c["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",s],["object",n]]))}),a["$<<"](c);return a},-1),h=o(g("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(f=b.$call(l,[]),d=h.$call(f,l),s(v["$respond_to?"]("call")))for(;s(r(d.$size(),0));)c=d.$shift(),a(c["$[]"]("object").$object_id(),l.$object_id())||(p=v.$call(c["$[]"]("object"),c["$[]"]("parent_selector"),c["$[]"]("parent")),s(p)&&u["$<<"](p)),m(c["$[]"]("object").$object_id(),t.$object_id())&&(j=h.$call(f,c["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),d["$<<"](n)}))}catch(t){if(e.rescue(t,[g("Exception")])){y=t;try{l.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return u}),i(b,"$process",function e(){var s=e.$$p||t,i=this,n=t;return e.$$p=null,n=i.$clone(),o(n,"iterative",[],s.$to_proc()),n}),i(b,"$process!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,o(n,"iterative",[],s.$to_proc()),n}),i(b,"$search",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=[],s(i["$respond_to?"]("call"))&&(n=o(a,"iterative",[],i.$to_proc())),n}),i(b,"$paths_to",function(i,c){var _=this,h=t,l=t,u=t,b=t,y=t,j=t,p=t;return i==null&&(i=t),c==null&&(c=""),h=[],a(c["$[]"](0),"/")||(c=d("/",c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](f(1,-1,!1)).$reverse():l=[],u=_.$get_at_path(c),b=[new Map([["selector",t],["container",u]])],y=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=v("break");return o(b,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),j=u,p=!1,s(u["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?o(u,"process!",[],function(o,r,c){var f=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),m(j.$object_id(),c.$object_id())&&(f=y.$call(c),s(f)&&(l=f["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),j=c),u=r.$to_s(),u=u.$gsub("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&h["$<<"](d("/",l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))&&b.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):h["$<<"](d("/",l.$join("/"))),h},-1),i(b,"$object_map",function(){var s=this,n=t,n=new Map;return o(s,"search",[],function e(s,i,a){var r=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),a==null&&(a=t),o(r.$paths_to(s),"each",[],function(i){var a;return i==null&&(i=t),(a=[i.$to_s().$to_sym(),s],o(n,"[]=",a),a[a.length-1])})},{$$s:s}),n}),i(b,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$to_s().$split("/"),function(){try{var e=v("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o,l=l.$gsub("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](g("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(b,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,m(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o.$to_s())),s(d)&&(l=n("File").$basename(o.$to_s()),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l,c=c.$gsub("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(b,"$gxg_export",function(){var u=this,l=t,i=t,h=t,m=t,c=t,d=t,l=new Map([["type","Array"],["content",[]]]),i=[new Map([["parent",t],["parent_selector",t],["object",u],["record",l]])],h=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),m=o(g("Proc"),"new",[],function(n){return n==null&&(n=t),s(n["$is_any?"](g("Integer"),g("Float"),g("String")))?s(n["$is_a?"](g("Numeric")))?s(n.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",n]]):new Map([["type","Integer"],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n.$to_s()]])});for(o(u,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n("Hash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Hash"],["content",new Map]])]])):s(o["$is_a?"](n("Array")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Array"],["content",[]]])]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",m.$call(o)]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)d=c.$shift(),o(h.$call(d["$[]"]("object")),"each",[],function(n){return n==null&&(n=t),d["$[]"]("record")["$[]"]("content")["$[]="](n["$[]"]("parent_selector"),n["$[]"]("record")),s(n["$[]"]("object")["$is_any?"](g("Hash"),g("Array")))?c["$<<"](n):t});return l}),u(b,"$gxg_import",function(c){try{var m=this,u=t,h=t,d=t,l=t;if(c==null&&(c=t),u=t,s(c["$is_a?"](g("Hash"))))if(a(c["$[]"]("type"),"Hash"))u=n("Hash").$gxg_import(c);else if(h=o(g("Proc"),"new",[],function n(o,i){var r,c=n.$$s==null?this:n.$$s,a=t,l=t;if(o==null&&(o=t),i==null&&(i=t),s(i["$is_a?"](g("String"))))try{a=(r=o,typeof e.compile=="function"?eval(e.compile(r,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):c.$eval(r)),s(a["$respond_to?"]("parse"))?i=a.$parse(i):s(a["$respond_to?"]("new"))?i=a.$new(i):s(a["$respond_to?"]("try_convert"))&&(i=a.$try_convert(i))}catch(n){if(e.rescue(n,[g("Exception")])){l=n;try{t}finally{e.pop_exception(n)}}else throw n}return i},{$$s:m}),a(c["$[]"]("type"),"Array"))for(u=[],d=[new Map([["parent",t],["parent_selector",t],["object",u],["record",c]])];s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Hash")))?o(l["$[]"]("record")["$[]"]("content"),"each_pair",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(s["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](n,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):a(s["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](n,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):(i=[n,h.$call(s["$[]"]("type"),s["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])}):s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Array")))&&o(l["$[]"]("record")["$[]"]("content"),"each_with_index",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(n["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](s,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):a(n["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](s,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):(i=[s,h.$call(n["$[]"]("type"),n["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])});else u=h.$call(c["$[]"]("type"),c["$[]"]("content"));return u}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1)}(c[0],null,c)},Opal.modules["web/gxg_elements"]=function(e){var C=e.module,A=e.klass,n=e.truthy,s=e.def,i=e.send,r=e.rb_minus,c=e.slice,l=e.rb_plus,a=e.rb_gt,k=e.NilClass,p=e.range,h=e.to_a,m=e.rb_lt,f=e.rb_le,v=e.defs,E=e.return_ivar,O=e.send2,w=e.find_super,g=e.rb_ge,y=e.rb_times,b=e.neqeq,u=e.alias,d=e.eqeq,_=e.return_self,j=e.thrower,x=[],t=e.nil,o=e.$$$;return e.add_stubs("private,is_a?,to_a,to_s,new,each,-,[]=,+,bytesize,>,[],protected,inspect,is_any?,raise,array_to_ascii,string_to_array,to_i,include?,chr,array_to_string,data,to_enum,flatten,<<,filter_data,size,join_arrays,<,first,last,<=,public,respond_to?,process,to_proc,search,>=,maxsize=,padvalue=,outervalue=,call,*,times,clone,each_with_index,replace,index,pattern_range,!=,class,match,outervalue,padvalue,maxsize,dclone,frozen?,freeze,initialize_dup,slice,filter_parameters,count,==,try_convert,join,<=>,collect,delete,reject!,ord,with_index,hash,exception,gsub,message,upcase,split,force_encoding,pack,delete_at,reject,reverse,clear,%,~,rotate,sample,select,shuffle,sort,sort_by!,encode64,to_ascii,uniq,insert,rassoc,collect!,compact,values_at,find_index,select!,=~,unshift,basename"),function(x,S){var F=C(x,"GxG"),M=[F].concat(S);return function(x,C,S){var F=A(x,C,"ByteArray"),z=[F].concat(S),M=e.$r(z),T=F.$$prototype;return T.pad_value=T.data=T.max_size=T.outer=t,F.$private(),s(F,"$array_to_ascii",function(s){var i=t,a=t;return s==null&&(s=t),i="",n(s["$is_a?"](o(o("Buffer"),"Array")))&&(a=new Uint8Array(s.$to_a()),i=new window.TextDecoder("ascii").decode(a)),i},-1),s(F,"$array_to_string",function(s){var o=t;return s==null&&(s=t),o="",n(s)&&(o=(new window.TextDecoder).decode(new Uint8Array(s.$to_a())).$to_s()),o},-1),s(F,"$string_to_array",function(s){var o=t,a=t,c=t;return s==null&&(s=""),o=(new window.TextEncoder).encode(s.toString()),a=o.byteLength,c=M("Buffer").$new(a).$to_a(),i(e.Range.$new(0,r(a,1),!1),"each",[],function(n){var s;return n==null&&(n=t),(s=[n,o[n]],i(c,"[]=",s),s[s.length-1])}),c},-1),s(F,"$join_arrays",function(){var d=t,u=t,h=t,f=c(arguments),m=f,d=0,u=0;return i(m,"each",[],function(n){return n==null&&(n=t),d=l(d,n.$bytesize())}),h=M("Buffer").$new(d).$to_a(),i(m,"each",[],function(o){var c=t;return o==null&&(o=t),c=o.$bytesize(),n(a(c,0))?i(e.Range.$new(0,r(c,1),!1),"each",[],function(n){return n==null&&(n=t),h["$[]="](u,o["$[]"](n)),u=l(u,1)}):t}),h},-1),F.$protected(),s(F,"$filter_data",function(s){var r=this,l=t,c=t;return s==null&&(s=""),l="ByteArray.new expects a String, a Integer or Float between 0 and 255, a nil ( counted as padvalue() ), a ByteArray, or an Array of any of those; you provided "+s.$inspect(),n(s["$is_any?"](k,o("String"),o("Numeric"),o("Array"),o(o("GxG"),"ByteArray"),o(M("Buffer"),"Array")))||r.$raise(M("Exception").$new(l)),n(s["$is_a?"](o(M("Buffer"),"Array")))&&(s=r.$array_to_ascii(s)),n(s["$is_a?"](o("String")))&&(s=r.$string_to_array(s)),n(s["$is_a?"](o("Numeric")))&&(s=s.$to_i(),n(p(0,255,!1)["$include?"](s))?s=r.$string_to_array(s.$chr()):r.$raise(M("Exception").$new(l))),n(s["$is_a?"](o(o("GxG"),"ByteArray")))&&(s=r.$string_to_array(r.$array_to_string(s.$data()))),n(s["$is_a?"](o("Array")))&&(c=[],i(s.$flatten().$to_enum(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),c["$<<"](s.$filter_data(n))},{$$s:r}),n(a(c.$size(),0))?s=i(r,"join_arrays",h(c)):s=M("Buffer").$new(0).$to_a()),n(s)||(s=M("Buffer").$new(1).$to_a(),s["$[]="](0,r.pad_value.$to_i())),s},-1),s(F,"$filter_parameters",function(){var u=this,d=t,h=c(arguments),a=h,d=t;return n(a["$[]"](0)["$is_any?"](o("Numeric"),o("Integer"),o("Float"),o("BigDecimal")))?(a["$[]="](0,a["$[]"](0).$to_i()),n(m(a["$[]"](0),0))&&a["$[]="](0,l(u.data.$bytesize(),a["$[]"](0))),d=e.Range.$new(a["$[]"](0),a["$[]"](0),!1),n(a["$[]"](1)["$is_a?"](M("Numeric")))&&(a["$[]="](1,a["$[]"](1).$to_i()),n(m(a["$[]"](1),1))?u.$raise(M("ArgumentError").$new("Second parameter needs to be a Numeric greater than 0, you provided "+a["$[]"](1).$inspect())):d=e.Range.$new(a["$[]"](0),l(a["$[]"](0),r(a["$[]"](1),1)),!1))):n(a["$[]"](0)["$is_a?"](M("Range")))?(n(m(a["$[]"](0).$first(),0))?a["$[]="](1,l(u.data.$bytesize(),a["$[]"](0).$first())):a["$[]="](1,a["$[]"](0).$first()),n(m(a["$[]"](0).$last(),0))?a["$[]="](2,l(u.data.$bytesize(),a["$[]"](0).$last())):a["$[]="](2,a["$[]"](0).$last()),n(f(a["$[]"](1),a["$[]"](2)))?d=e.Range.$new(a["$[]"](1),a["$[]"](2),!1):d=e.Range.$new(a["$[]"](2),a["$[]"](1),!1)):n(d)||u.$raise(M("ArgumentError").$new("First parameter needs to be a Numeric or a Range, you provided "+a["$[]"](0).$inspect())),d},-1),F.$public(),v(F,"$try_convert",function(){var i=c(arguments),a=i;try{return o(M("GxG"),"ByteArray").$new(1,[a])}catch(n){if(e.rescue(n,[M("Exception")]))try{return t}finally{e.pop_exception(n)}else throw n}},-1),v(F,"$[]",function(){var n=c(arguments),s=n;return i(o(M("GxG"),"ByteArray"),"new",h(s))},-1),v(F,"$process",function e(s){var r=e.$$p||t,c=this,a=t;return e.$$p=null,s==null&&(s=o(M("GxG"),"ByteArray").$new()),a=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))&&(n(s["$is_any?"](o("Array"),o("Hash"),o(o("GxG"),"ByteArray"),o("Set"),o("Struct")))?a=i(s,"process",[],r.$to_proc()):c.$raise(M("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),a},-1),v(F,"$search",function e(s){var r=e.$$p||t,c=this,a=t;return e.$$p=null,s==null&&(s=o(M("GxG"),"ByteArray").$new()),a=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))&&(n(s["$is_any?"](o("Array"),o("Hash"),o(o("GxG"),"ByteArray"),o("Set"),o("Struct")))?a=i(s,"search",[],r.$to_proc()):c.$raise(M("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),a},-1),s(F,"$data",E("data")),s(F,"$initialize",function s(){var l,j,b=s.$$p||t,d=this,m=t,f=t,v=t,u=t;return s.$$p=null,j=c(arguments),l=j,d.data=M("Buffer").$new(0).$to_a(),m=new Map([["process",p(18446744073709551616,18446744073709551616,!1)]]),d.max_size=t,d.pad_value=0,d.outer=t,O(d,w(d,"initialize",s,!1,!0),"initialize",[],null),n(a(l.$size(),0))&&(n(b["$respond_to?"]("call"))?n(l["$[]"](0)["$is_a?"](M("Numeric")))&&(l["$[]="](0,l["$[]"](0).$to_i()),n(g(l["$[]"](0),0))&&(n(a(l["$[]"](0),m["$[]"]("process").$first()))&&l["$[]="](0,m["$[]"]("process").$first()),n(l["$[]"](1)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](1).$to_i()),n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](1).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](1).$to_i()),i(e.Range.$new(0,r(l["$[]"](0),1),!1).$to_enum(),"each",[],function e(s){var r=e.$$s==null?this:e.$$s,o=t;return s==null&&(s=t),o=[b.$call(s)].$flatten(),i(o.$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return o.data==null&&(o.data=t),s==null&&(s=t),s=n(i=o.$filter_data(s))?i:M("Buffer").$new(0).$to_a(),n(a(s.$bytesize(),0))?(n(a(y(l["$[]"](0),s.$bytesize()),m["$[]"]("process").$first()))&&o.$raise(M("NoMemoryError").$new("This operation will exceed available per-process memory limits")),o.data=o.$join_arrays(o.data,s)):t},{$$s:r})},{$$s:d}),n(d.max_size)&&n(a(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))):(n(l["$[]"](0)["$is_a?"](M("Numeric")))?(f=l["$[]"](0).$to_i(),n(l["$[]"](1))?v=[l["$[]"](1)].$flatten():v=[d.pad_value.$to_i().$chr()],n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](2).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](3).$to_i()),n(l["$[]"](4)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](4).$to_i())):(f=1,v=[l["$[]"](0)].$flatten(),n(l["$[]"](1)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](1).$to_i()),n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](2).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](3).$to_i())),u=[],i(v.$to_enum(),"each",[],function e(s){var i=e.$$s==null?this:e.$$s,o=t;return s==null&&(s=t),u["$<<"](n(o=i.$filter_data(s))?o:M("Buffer").$new(0).$to_a())},{$$s:d}),u=i(d,"join_arrays",h(u)),n(a(u.$bytesize(),0))&&(n(a(y(f,u.$bytesize()),m["$[]"]("process").$first()))&&d.$raise(M("NoMemoryError").$new("This operation will exceed available per-process memory limits")),i(f,"times",[],function e(){var n=e.$$s==null?this:e.$$s;return n.data==null&&(n.data=t),n.data=n.$join_arrays(n.data,u)},{$$s:d})),n(d.max_size)&&n(a(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))),d},-1),s(F,"$process",function e(){var o=e.$$p||t,a=this,s=t;return e.$$p=null,s=a.$clone(),n(o["$respond_to?"]("call"))&&i(s,"each_with_index",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$call(n,s,i)},{$$s:a}),s}),s(F,"$process!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))&&s.$replace(s.$array_to_ascii(i(s,"process",[],o.$to_proc()).$data())),s}),s(F,"$search",function e(){var o=e.$$p||t,a=this,s=t;return e.$$p=null,s=[],n(o["$respond_to?"]("call"))&&i(a,"each_with_index",[],function e(i,a){var c=e.$$s==null?this:e.$$s,r=t;return i==null&&(i=t),a==null&&(a=t),r=o.$call(i,a,c),n(r)?s["$<<"](r):t},{$$s:a}),s}),s(F,"$pattern_range",function(i,a){var d=this,u=t,c=t;return i==null&&(i=""),a==null&&(a=0),u=t,i=d.$array_to_ascii(o(M("GxG"),"ByteArray").$new(i).$data()),c=d.$array_to_ascii(d.$data()).$index(i,a),n(c)&&(u=e.Range.$new(c,l(c,r(i.$size(),1)),!1)),u},-1),s(F,"$pattern_ranges",function(s){var a=this,c=t,r=t,i=t;for(s==null&&(s=""),c=[],r=0,n(s["$is_a?"](o(M("GxG"),"ByteArray")))&&(s=a.$array_to_ascii(s.$data())),i=a.$pattern_range(s,r);b(i,t);){if(n(i["$is_a?"](o("Range"))))if(c["$<<"](i),n(f(l(i.$last(),1),a.data.$bytesize())))r=l(i.$last(),1);else break;i=a.$pattern_range(s,r)}return c},-1),s(F,"$padvalue",function(){var t=this;return t.pad_value.$clone()}),s(F,"$padvalue=",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))&&(n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](s["$[]"](0)))&&(o.pad_value=s["$[]"](0)):o.$raise(M("TypeError").$new("Value type: expected Float or Integer. You provided "+s["$[]"](0).$class()))),o.pad_value.$clone()},-1),s(F,"$match",function(t){var n=this;return n.$array_to_ascii(n.data).$match(t)}),s(F,"$maxsize",function(){var t=this;return t.max_size.$clone()}),s(F,"$maxsize=",function(){var l=this,d=c(arguments),i=d;return n(a(i.$size(),0))?n(i["$[]"](0))?(n(i["$[]"](0)["$is_a?"](M("Numeric")))&&i["$[]="](0,i["$[]"](0).$to_i()),n(i["$[]"](0)["$is_a?"](M("Integer")))?(n(a(i["$[]"](0),18446744073709551616))&&l.$raise(M("NoMemoryError").$new("Setting maxsize this high exceeds per-process memory limits")),n(a(i["$[]"](0),l.max_size.$to_i()))?l.max_size=i["$[]"](0):n(m(i["$[]"](0),l.max_size.$to_i()))&&(l.max_size=i["$[]"](0),n(a(l.data.$bytesize(),i["$[]"](0)))&&l.data.$replace(l.data["$[]"](e.Range.$new(0,r(i["$[]"](0),1),!1))))):l.$raise(M("ArgumentError").$new("Expected NilClass or Numeric class. You provided "+i["$[]"](0).$class()))):l.max_size=t:l.max_size=t,l.max_size.$clone()},-1),s(F,"$outervalue",function(){var t=this;return t.outer.$clone()}),s(F,"$outervalue=",function(){var i=this,r=c(arguments),o=r;return n(a(o.$size(),0))?n(o["$[]"](0))?(n(o["$[]"](0)["$is_a?"](M("Float")))&&o["$[]="](0,o["$[]"](0).$to_i()),n(o["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](o["$[]"](0)))&&(i.outer=o["$[]"](0)):i.$raise(M("TypeError").$new("Expected a NilClass, a Float, or a Integer. You provided "+o["$[]"](0).$class()))):i.outer=t:i.outer=t,i.$outervalue()},-1),s(F,"$dclone",function(){var n=this,s=t,s=o(M("GxG"),"ByteArray").$new(n.$array_to_ascii(n.data));return s["$padvalue="](n.$padvalue()),s["$maxsize="](n.$maxsize()),s["$outervalue="](n.$outervalue()),s}),s(F,"$initialize_clone",function(){var o=this,s=t,s=o.$dclone();return n(o["$frozen?"]())&&s.$freeze(),s}),s(F,"$initialize_dup",function(){var t=this;return t.$dclone()}),u(F,"dup","initialize_dup"),u(F,"initialize_copy","initialize_dup"),s(F,"$clone",function(){var t=this;return t.$initialize_dup()}),s(F,"$[]",function(n,s){var o=this;return n==null&&(n=0),s==null&&(s=t),o.$slice(n,s)},-1),s(F,"$[]=",function(c,u,h){var f=this,g=t,v=t,p=t,b=t;return c==null&&(c=0),u==null&&(u=t),h==null&&(h=t),n(u)&&(n(h)||(h=u,u=t)),h=f.$filter_data(h),g=t,v=t,n(h)&&(n(a(h.$bytesize(),0))&&(p=f.$filter_parameters(c,u),n(p)||(n(u)?g=M("ArgumentError").$new(""+c.$inspect()+","+u.$inspect()+" could not be fashioned into a valid Indexer"):g=M("ArgumentError").$new(""+c.$inspect()+" could not be fashioned into a valid Indexer")),n(g)&&f.$raise(g),n(f.max_size)&&((n(a(p.$count(),f.max_size))||n(a(p.$first(),r(f.max_size,1)))||n(a(p.$last(),r(f.max_size,1))))&&(g=M("IndexError").$new("Index exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(a(l(p.$first(),r(h.$bytesize(),1)),r(f.max_size,1)))&&(g=M("RangeError").$new("Data size at specified Index exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(c["$is_a?"](M("Integer")))?n(u)?n(a(l(p.$first(),r(p.$count(),1)),r(f.max_size,1)))?g=M("RangeError").$new("Range exceeds "+f.max_size+" limit. You might need to adjust maxsize."):n(m(p.$count(),h.$bytesize()))&&n(a(l(l(p.$first(),r(p.$count(),1)),r(r(h.$bytesize(),1),r(p.$count(),1))),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize.")):(n(a(l(r(f.data.$size(),1),h.$bytesize()),f.max_size))&&(g=M("RangeError").$new("Operation exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(a(l(p.$first(),r(h.$bytesize(),1)),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize."))):n(a(p.$count(),f.max_size))?g=M("RangeError").$new("Range exceeds "+f.max_size+" limit. You might need to adjust maxsize."):n(m(p.$count(),h.$bytesize()))&&n(a(l(l(p.$first(),r(p.$count(),1)),r(r(h.$bytesize(),1),r(p.$count(),1))),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(g)&&f.$raise(g)),n(a(p.$first(),r(f.data.$bytesize(),1)))&&i(r(p.$first(),r(f.data.$bytesize(),1)),"times",[],function e(){var n=e.$$s==null?this:e.$$s;return n.pad_value==null&&(n.pad_value=t),n["$<<"](n.pad_value.$chr())},{$$s:f}),n(u)?f.data["$[]="](p.$first(),p.$count(),h):n(c["$is_a?"](M("Numeric")))?d(h.$bytesize(),1)?f.data["$[]="](p.$first(),h["$[]"](0)):(b=p.$first(),i(e.Range.$new(0,r(h.$bytesize(),1),!1),"each",[],function e(s){var c,o=e.$$s==null?this:e.$$s;return o.data==null&&(o.data=t),s==null&&(s=t),n(a(s,r(o.data.$bytesize(),1)))?o["$<<"](h["$[]"](s)):(c=[l(b,s),h["$[]"](s)],i(o.data,"[]=",c),c[c.length-1])},{$$s:f})):f.data["$[]="](p,h)),v=o(M("GxG"),"ByteArray").$new(h)),v},-1),s(F,"$|",function(){var u=this,r=t,a=t,l=c(arguments),d=l,r=o(M("GxG"),"ByteArray").$try_convert(d),a=u.$clone();return n(r)&&i(r,"each",[],function(s){return s==null&&(s=t),n(a["$include?"](s))?t:a["$<<"](s)}),a},-1),s(F,"$&",function(){var h=this,r=t,l=t,u=c(arguments),d=u,r=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(d),n(l)&&i(h,"each",[],function(s){return s==null&&(s=t),n(l["$include?"](s))?r["$<<"](s):t})),r},-1),s(F,"$*",function(){var l=this,d=t,u=c(arguments),r=u,d=o(M("GxG"),"ByteArray").$new();return n(a(l.$size(),0))&&(n(a(r.$size(),0))?n(r["$[]"](0)["$is_a?"](o("String")))?d=l.$join(r["$[]"](0)):n(r["$[]"](0)["$is_a?"](M("Numeric")))?(r["$[]="](0,r["$[]"](0).$to_i()),n(f(y(r["$[]"](0),l.$size()),18446744073709551616))?i(r["$[]"](0),"times",[],function e(){var t=e.$$s==null?this:e.$$s;return d["$<<"](t.$clone())},{$$s:l}):l.$raise(M("NoMemoryError").$new("This operation will exceed per-process memory limits"))):l.$raise(M("ArgumentError").$new("a String or Numeric is required, you provied "+r["$[]"](0).$inspect())):l.$raise(M("TypeError").$new("Can't convert nil to ByteArray"))),d},-1),s(F,"$+",function(){var i=this,l=t,u=t,r=t,h=c(arguments),d=h,l=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))?(u=i.$clone(),r=o(M("GxG"),"ByteArray").$try_convert(d),n(r)&&n(a(r.$size(),0))&&(l=o(M("GxG"),"ByteArray").$new(1,[i.$array_to_ascii(u.$data()),i.$array_to_ascii(r.$data())]))):i.$raise(M("TypeError").$new("Can't convert nil to ByteArray")),l},-1),s(F,"$-",function(){var h=this,r=t,l=t,u=c(arguments),d=u,r=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(d),n(l)&&i(h,"each",[],function(s){return s==null&&(s=t),n(l["$include?"](s))?t:r["$<<"](s)})),r},-1),s(F,"$<<",function(){var i=this,r=t,u=c(arguments),d=u;return n(a(d.$size(),0))&&(r=o(M("GxG"),"ByteArray").$try_convert(d),n(r)&&(n(i.max_size)&&n(a(l(i.data.$bytesize(),r.$size()),i.max_size))&&i.$raise(M("RangeError").$new("Operation exceeds "+i.max_size+" limit. You might need to adjust maxsize.")),i.data=i.$join_arrays(i.data,r.$data()))),i},-1),s(F,"$<=>",function(){var d=this,r=t,l=t,u=c(arguments),i=u,r=1;return n(a(i.$size(),0))&&(n(i["$[]"](0)["$is_a?"](o(o("GxG"),"ByteArray")))?r=d.$data()["$<=>"](i["$[]"](0).$data()):(l=o(M("GxG"),"ByteArray").$try_convert(i),n(l)&&(r=d.$data()["$<=>"](l.$data())))),r},-1),s(F,"$==",function(){var d=this,r=t,l=c(arguments),i=l,r=!1;return n(a(i.$size(),0))&&n(i["$[]"](0)["$is_a?"](o(o("GxG"),"ByteArray")))&&(r=d.$data()["$=="](i["$[]"](0).$data())),r},-1),s(F,"$at",function(){var o=this,i=c(arguments),s=i;return n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?o["$[]"](s["$[]"](0)):o.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+s["$[]"](0).$class()))},-1),s(F,"$clear",function(){var t=this;return t.data=M("Buffer").$new(0).$to_a(),t}),s(F,"$collect",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))?i(a,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$<<"](o.$array_to_ascii(o.$filter_data(r.$call(n))))},{$$s:a}):s=a.$to_enum("collect"),s}),s(F,"$collect!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))?(s.data=i(s,"collect",[],o.$to_proc()).$data(),s):s.$to_enum("collect!")}),s(F,"$combination",function e(){var l,d,r=e.$$p||t,u=this,a=t;return e.$$p=null,l=c(arguments),d=l,a=i(u.$to_a(),"to_enum",["combination"].concat(h(d))),n(r["$respond_to?"]("call"))?(i(a,"each",[],function(n){return n==null&&(n=t),r.$call(o(M("GxG"),"ByteArray").$new(n))}),u):a},-1),s(F,"$repeated_combination",function e(){var l,d,r=e.$$p||t,u=this,a=t;return e.$$p=null,l=c(arguments),d=l,a=i(u.$to_a(),"to_enum",["repeated_combination"].concat(h(d))),n(r["$respond_to?"]("call"))?(i(a,"each",[],function(n){return n==null&&(n=t),r.$call(o(M("GxG"),"ByteArray").$new(n))}),u):a},-1),s(F,"$compact",_),s(F,"$concat",function(){var i=this,d=t,l=t,u=c(arguments),r=u,d=i;return n(a(r.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(r),n(l)?i.data=i.$join_arrays(i.data,l.$data()):i.$raise(M("Exception").$new("Could not convert "+r.$inspect()+" to ByteArray"))),d},-1),s(F,"$count",function e(s){var r=e.$$p||t,a=this,o=t;return e.$$p=null,s==null&&(s=t),o=0,n(s["$is_a?"](M("Numeric")))?i(a,"each",[],function(n){return n==null&&(n=t),d(n,s.$to_i())?o=l(o,1):t}):n(r["$respond_to?"]("call"))?i(a,"each",[],function(n){return n==null&&(n=t),d(r.$call(n),!0)?o=l(o,1):t}):o=a.data.$bytesize(),o},-1),s(F,"$cycle",function e(s){var r=e.$$p||t,o=this;if(e.$$p=null,s==null&&(s=t),n(a(o.data.$bytesize(),0))){if(n(m(s.$to_i(),0)))return t;if(n(r["$respond_to?"]("call"))){if(n(s))return i(s.$to_i(),"times",[],function e(){var n=e.$$s==null?this:e.$$s;return i(n,"each",[],function(n){return n==null&&(n=t),r.$call(n)})},{$$s:o}),t;for(;n(!0);)i(o,"each",[],function(n){return n==null&&(n=t),r.$call(n)})}else return o.$to_a().$to_enum("cycle",s)}else return t},-1),s(F,"$delete",function e(){var i,m,h=e.$$p||t,r=this,l=t,o=t,u=t;return e.$$p=null,m=c(arguments),i=m,l=t,n(i["$[]"](0)["$is_a?"](M("Numeric")))&&(o=r.$filter_data(i["$[]"](0).$to_i()),n(a(o.$bytesize(),1))&&(o=o["$[]"](0)),u=r.data.$delete(o),d(u,r.data)?n(h["$respond_to?"]("call"))&&(l=h.$call()):(r.data.$replace(u),l=i["$[]"](0))),l},-1),s(F,"$delete_at",function(){var h=this,j=t,f=t,p=t,g=t,y=t,v=t,_=c(arguments),b=_,j=t;return n(a(b.$size(),0))&&n(a(h.$size(),0))&&n(b["$[]"](0)["$is_a?"](o("Numeric")))&&(f=b["$[]"](0).$to_i(),n(m(f,h.$size()))&&(j=h.data["$[]"](f),d(f,0)?p=[e.Range.$new(1,r(h.data.$bytesize(),1),!1)]:(p=[e.Range.$new(0,r(f,1),!1)],d(f,r(h.data.$bytesize(),1))||p["$<<"](e.Range.$new(l(f,1),r(h.data.$bytesize(),1),!1))),g=0,i(p,"each",[],function(n){return n==null&&(n=t),g=l(g,n.$size())}),y=M("Buffer").$new(g).$to_a(),v=0,i(p,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),y["$[]="](v,s.data["$[]"](n)),v=l(v,1)},{$$s:s})},{$$s:h}),h.data=y)),j},-1),s(F,"$delete_if",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s,"reject!",[],n.$to_proc())}),s(F,"$drop",function(n){var s=this;return s.$slice(e.Range.$new(r(n.$to_i(),1),-1,!1))}),s(F,"$drop_while",function e(){var a=e.$$p||t,r=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),n(a["$respond_to?"]("call"))?(i(r,"each",[],function(o){var i=t;return o==null&&(o=t),i=a.$call(o),n(i)?t:s["$<<"](o)}),s):r.$to_a().$to_enum("drop_while")}),s(F,"$each",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))?(n(a(s.data.$bytesize(),0))&&i(s.data.$to_a(),"each",[],function(n){return n==null&&(n=t),o.$call(n.$ord())}),s):s.$to_enum("each")}),s(F,"$each_index",function s(){var c=s.$$p||t,o=this;return s.$$p=null,n(c["$respond_to?"]("call"))?(n(a(o.data.$bytesize(),0))&&i(e.Range.$new(0,r(o.data.$bytesize(),1),!1),"each",[],function(n){return n==null&&(n=t),c.$call(n)}),o):o.$to_enum("each_index")}),s(F,"$each_with_index",function e(s){var r=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=0),n(r["$respond_to?"]("call"))?(n(a(o.data.$bytesize(),0))&&i(o.data.$to_a().$with_index(s),"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),r.$call(n.$ord(),s)}),o):o.$to_enum("each_with_index",s)},-1),s(F,"$empty?",function(){var t=this;return t.data.$bytesize()["$=="](0)}),s(F,"$eql?",function(){var i=this,o=c(arguments),s=o;return!!n(a(s.$size(),0))&&i["$=="](s["$[]"](0))},-1),s(F,"$fetch",function e(){var o,l,r=e.$$p||t,i=this;return e.$$p=null,l=c(arguments),o=l,n(a(o.$size(),0))&&n(o["$[]"](0)["$is_a?"](M("Numeric")))?(o["$[]="](0,i.$filter_parameters(o["$[]"](0).$to_i()).$first()),n(g(o["$[]"](0),i.$size()))?n(o["$[]"](1))?n(r["$respond_to?"]("call"))?r.$call(o["$[]"](0)):o["$[]"](1):i.$raise(M("IndexError").$new("Index specified lies outside the ByteArray")):i["$[]"](o["$[]"](0))):t},-1),s(F,"$fill",function s(){var u,y,j=s.$$p||t,f=this,w=t,g=t,v=t,b=t,p=t,_=t;if(s.$$p=null,y=c(arguments),u=y,w=t,g=o(M("GxG"),"ByteArray").$new(),n(j["$respond_to?"]("call")))n(a(u.$size(),0))?(n(u["$[]"](0)["$is_a?"](M("Numeric")))&&(u["$[]="](0,u["$[]"](0).$to_i()),n(m(u["$[]"](0),0))&&(n(u["$[]"](1)["$is_a?"](M("Numeric")))?n(a(u["$[]"](1).$to_i(),0))?u=[e.Range.$new(l(f.data.$bytesize(),u["$[]"](0)),l(l(f.data.$bytesize(),u["$[]"](0)),r(u["$[]"](1).$to_i(),1)),!1)]:f.$raise(M("ArgumentError").$new("length specified should be a positive Integer for Float")):u=[e.Range.$new(l(f.data.$bytesize(),u["$[]"](0)),r(f.data.$bytesize(),1),!1)])),v=i(f,"filter_parameters",h(u))):v=e.Range.$new(0,r(n(b=f.max_size)?b:f.data.$bytesize(),1),!1),i(e.Range.$new(0,r(f.data.$bytesize(),1),!1),"each",[],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return o.pad_value==null&&(o.pad_value=t),o.data==null&&(o.data=t),s==null&&(s=t),n(v["$include?"](s))?(i=o.$filter_data(j.$call(s)),n(a(i.$size(),0))?g["$<<"](i["$[]"](0)):g["$<<"](o.pad_value)):g["$<<"](o.data["$[]"](s))},{$$s:f});else if(n(a(u.$size(),0))){switch(p=t,u.$size().valueOf()){case 1:v=e.Range.$new(0,r(n(_=f.max_size)?_:f.data.$bytesize(),1),!1),p=f.$filter_data(u["$[]"](0));break;case 2:v=f.$filter_parameters(u["$[]"](1)),p=f.$filter_data(u["$[]"](0));break;case 3:v=f.$filter_parameters(u["$[]"](1),u["$[]"](2)),p=f.$filter_data(u["$[]"](0));break;default:v=f.$filter_parameters(u["$[]"](1),u["$[]"](2)),p=f.$filter_data(u["$[]"](0))}p=n(b=p)?b:f.pad_value,n(p["$is_a?"](o("Array")))&&(p=n(b=p["$[]"](0))?b:f.pad_value),i(e.Range.$new(0,r(f.data.$bytesize(),1),!1).$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.data==null&&(o.data=t),s==null&&(s=t),n(v["$include?"](s))?g["$<<"](p):g["$<<"](o.data["$[]"](s))},{$$s:f})}else f.$raise(M("ArgumentError").$new("wrong number of arguments (0 for 1..3)"));return n(a(g.$size(),0))&&(f.data=g.$data()),f},-1),s(F,"$first",function(){var l=this,d=c(arguments),i=d;return n(a(i.$size(),0))?(n(i["$[]"](0)["$is_a?"](M("Float")))&&i["$[]="](0,i["$[]"](0).$to_i()),n(i["$[]"](0)["$is_a?"](M("Integer")))?n(a(i["$[]"](0),0))?(n(l.max_size)&&(n(f(i["$[]"](0),l.max_size))||l.$raise(M("RangeError").$new(""+i["$[]"](0)+" is out of range (1 - "+l.max_size+")."))),l["$[]"](e.Range.$new(0,r(i["$[]"](0),1),!1))):t:l.$raise(M("TypeError").$new("Expected Integer. You provided "+i["$[]"](0).$class()))):l["$[]"](0)},-1),s(F,"$flatten",function(){var t=this;return t.$dclone()}),s(F,"$flatten!",_),s(F,"$freeze",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.data.$freeze(),n.max_size.$freeze(),n.pad_value.$freeze(),n.outer.$freeze(),O(n,w(n,"freeze",e,!1,!0),"freeze",[],null)}),s(F,"$hash",function(){var t=this;return t.data.$hash()}),s(F,"$include?",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))?(n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](s["$[]"](0)))?o.data["$include?"](s["$[]"](0).$chr()):o.$raise(M("RangeError").$new("Value out of range: range is 0 to 255. You provided "+s["$[]"](0))):o.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+s["$[]"](0).$class()))):o.$raise(M("ArgumentError").$new("Wrong number of arguments ("+s.$size()+" for 1)."))},-1),s(F,"$find_index",function e(){var o,f,m=e.$$p||t,r=this,u=t,h=t;return e.$$p=null,f=c(arguments),o=f,u=t,n(m["$respond_to?"]("call"))?(h=0,function(){try{var e=j("break");return i(r,"each",[],function n(s){return s==null&&(s=t),d(m.$call(s),!0)&&(u=h,e.$throw(t,n.$$is_lambda)),h=l(h,1)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()):n(a(o.$size(),0))?(n(o["$[]"](0)["$is_a?"](M("Float")))&&o["$[]="](0,o["$[]"](0).$to_i()),n(o["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](o["$[]"](0)))&&(n(o["$[]"](1))?u=r.$array_to_ascii(r.data).$index(o["$[]"](0).$chr(),o["$[]"](1)):u=r.$array_to_ascii(r.data).$index(o["$[]"](0).$chr())):r.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+o["$[]"](0).$class()))):u=r.data.$to_enum("bytes"),u},-1),s(F,"$insert",function(){var u=this,j=t,b=t,p=t,y=t,_=t,w=c(arguments),v=w;if(n(a(v.$size(),1)))if(n(v["$[]"](0)["$is_a?"](M("Float")))&&v["$[]="](0,v["$[]"](0).$to_i()),n(v["$[]"](0)["$is_a?"](M("Integer")))){j=u.$filter_data(v["$[]"](e.Range.$new(1,r(v.$size(),1),!1))),n(u.max_size)&&(n(f(l(u.data.$bytesize(),j.$bytesize()),u.max_size))||u.$raise(M("RangeError").$new("Operation exceeds "+u.max_size+" limit. You need to adjust maxsize.")));try{b=v["$[]"](0),p=[],n(g(b,0))&&n(m(b,u.data.$bytesize()))&&(d(b,0)?(p["$<<"](j),p["$<<"](u.data)):d(b,r(u.data.$bytesize(),1))?(p["$<<"](u.$slice(e.Range.$new(0,r(b,1),!1)).$data()),p["$<<"](j),y=M("Buffer").$new(1).$to_a(),y["$[]="](0,u.data["$[]"](r(u.data.$bytesize(),1))),p["$<<"](y)):(p["$<<"](u.$slice(e.Range.$new(0,r(b,1),!1)).$data()),p["$<<"](j),p["$<<"](u.$slice(e.Range.$new(b,r(u.data.$bytesize(),1),!1)).$data()))),n(a(p.$size(),0))&&(u.data=i(u,"join_arrays",h(p)))}catch(t){if(e.rescue(t,[M("Exception")])){_=t;try{u.$raise(_.$exception(_.$message().$gsub("string",u.$class().$to_s())))}finally{e.pop_exception(t)}}else throw t}}else u.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+v["$[]"](0).$class()));else u.$raise(M("ArgumentError").$new("Wrong number of arguments ("+v.$size()+" for 2)."));return u},-1),s(F,"$inspect",function(){var c=this,o=t,o="[";return n(a(c.data.$bytesize(),0))&&i(e.Range.$new(0,r(c.data.$bytesize(),1),!1),"each",[],function e(s){var r=e.$$s==null?this:e.$$s,i=t;return r.data==null&&(r.data=t),s==null&&(s=t),n(a(o.$size(),1))&&(o=l(o,", ")),i=r.data["$[]"](s),n(a(i,15))?o=l(o,"0x"+i.$to_s(16).$upcase()):o=l(o,"0x0"+i.$to_s(16).$upcase())},{$$s:c}),l(o,"]")}),s(F,"$join",function(){var n=this,s=c(arguments),o=s;return i(n.$array_to_ascii(n.data).$split(),"join",h(o))},-1),s(F,"$last",function(){var i=this,d=t,u=c(arguments),l=u;return n(a(l.$size(),0))?(n(l["$[]"](0)["$is_a?"](M("Float")))&&l["$[]="](0,l["$[]"](0).$to_i()),n(l["$[]"](0)["$is_a?"](M("Integer")))?n(a(l["$[]"](0),0))?(d=e.Range.$new(r(r(i.data.$bytesize(),1),r(l["$[]"](0),1)),r(i.data.$bytesize(),1),!1),n(i.max_size)&&(n(f(l["$[]"](0),i.max_size))||i.$raise(M("RangeError").$new(""+l["$[]"](0)+" is out of range (1 - "+i.max_size+")."))),i["$[]"](d)):i.$raise(M("RangeError").$new(""+l["$[]"](0)+" is out of range (1 - "+i.max_size+").")):i.$raise(M("TypeError").$new("Expected Integer. You provided "+l["$[]"](0).$class()))):i["$[]"](r(i.data.$bytesize(),1))},-1),s(F,"$pack",function(){var a=this,i=t,r=t,l=c(arguments),o=l,i="";return n(g(o.$size(),1))?(o["$[]="](0,n(r=o["$[]"](0))?r:""),n(o["$[]"](0)["$is_a?"](M("String")))?(n(o["$[]"](1)["$is_a?"](M("Encoding")))&&i.$force_encoding(o["$[]"](1)),i["$<<"](a.$to_a().$pack(o["$[]"](0)))):a.$raise(M("TypeError").$new("Expected String. You provided "+o["$[]"](0).$class()))):a.$raise(M("ArgumentError").$new("Wrong number of arguments ("+o.$size()+" for 1+).")),i},-1),s(F,"$permutation",function e(){var d,u,l=e.$$p||t,a=this,r=t;return e.$$p=null,d=c(arguments),u=d,r=i(a.$array_to_ascii(a.data).$split(),"to_enum",["permutation"].concat(h(u))),n(l["$respond_to?"]("call"))?(i(r,"each",[],function(n){return n==null&&(n=t),l.$call(o(M("GxG"),"ByteArray").$new(n))}),a):r},-1),s(F,"$repeated_permutation",function e(){var d,u,l=e.$$p||t,a=this,r=t;return e.$$p=null,d=c(arguments),u=d,r=i(a.$array_to_ascii(a.data).$split(),"to_enum",["repeated_permutation"].concat(h(u))),n(l["$respond_to?"]("call"))?(i(r,"each",[],function(n){return n==null&&(n=t),l.$call(o(M("GxG"),"ByteArray").$new(n))}),a):r},-1),s(F,"$pop",function(s){var c=this,r=t;return s==null&&(s=t),r=t,n(s["$is_a?"](M("Numeric")))?(n(a(s.$to_i(),0))||c.$raise(M("ArgumentError").$new(""+s+" needs to be a positive Numeric")),r=o(o("GxG"),"ByteArray").$new(),i(s,"times",[],function e(){var t=e.$$s==null?this:e.$$s;return r["$<<"](t.$delete_at(-1))},{$$s:c})):r=c.$delete_at(-1),r},-1),s(F,"$product",function e(){var r,h,u=e.$$p||t,l=this,d=t;return e.$$p=null,h=c(arguments),r=h,n(a(l.data.$bytesize(),0))?(r=o(M("GxG"),"ByteArray").$new(r),n(u["$respond_to?"]("call"))?(i(l,"each",[],function(n){return n==null&&(n=t),i(r,"each",[],function(s){return s==null&&(s=t),u.$call(o(M("GxG"),"ByteArray").$new([n,s]))})}),l):(d=o(M("GxG"),"ByteArray").$new(),i(l,"each",[],function(n){return n==null&&(n=t),i(r,"each",[],function(s){return s==null&&(s=t),d["$<<"](n),d["$<<"](s)})}),d)):l},-1),s(F,"$push",function(){var i=this,n=c(arguments),s=n;return i["$<<"](o(M("GxG"),"ByteArray").$new(s))},-1),s(F,"$rassoc",function(n){return n==null&&(n=t),t},-1),s(F,"$reject",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=t,n(r["$respond_to?"]("call"))?(s=o(M("GxG"),"ByteArray").$new(),s["$padvalue="](a.pad_value),n(a.max_size)&&s["$maxsize="](a.max_size),i(a,"each_with_index",[],function(n,o){return n==null&&(n=t),o==null&&(o=t),d(r.$call(n),!0)?t:s["$<<"](n)})):s=a.$to_a().$to_enum("reject"),s}),s(F,"$reject!",function e(){var r=e.$$p||t,s=this,o=t,a=t;return e.$$p=null,o=t,n(r["$respond_to?"]("call"))?(a=i(s,"reject",[],r.$to_proc()),n(a)&&(s.data=a.$data()),o=s):o=s.$to_a().$to_enum("reject!"),o}),s(F,"$replace",function(){var l=this,d=t,h=c(arguments),u=h;return n(a(u.$size(),0))&&(d=o(M("GxG"),"ByteArray").$try_convert(u),n(d)?n(l.max_size)?n(f(d.$data().$bytesize(),l.max_size))?l.data=d.$data():l.data=d["$[]"](e.Range.$new(0,r(l.max_size,1),!1)).$data():l.data=d.$data():l.$raise(M("Exception").$new("Could not convert "+u["$[]"](0).$class()+" to ByteArray"))),l},-1),s(F,"$reverse",function(){var s=this,i=t,i=o(M("GxG"),"ByteArray").$new(s.$array_to_ascii(s.data).$reverse());return i["$padvalue="](s.pad_value.$clone()),n(s.max_size)&&i["$maxsize="](s.max_size.$clone()),i}),s(F,"$reverse!",function(){var t=this;return t.data=t.$reverse().$data(),t}),s(F,"$reverse_each",function e(){var a=e.$$p||t,o=this,s=t;return e.$$p=null,s=t,n(a["$respond_to?"]("call"))?(s=o.$clone(),s.$clear(),i(o.$reverse(),"each",[],function(n){return n==null&&(n=t),s["$<<"](a.$call(n))})):s=o.$reverse().$to_enum("each"),s}),s(F,"$rotate",function(i){var c=this,l=t,u=t,h=t;return i==null&&(i=1),n(i["$is_a?"](M("Numeric")))||c.$raise(M("ArgumentError").$new("Expected a Numeric, you provided "+i.$class())),n(m(i,0))?i=r(r(c.$size(),i["$~"]()["$%"](c.$size())),1).$to_i():i=i["$%"](c.$size()).$to_i(),l=[],d(i,0)||(u=c.$filter_parameters(e.Range.$new(i,-1,!1)),l["$<<"](c["$[]"](u)),n(a(u.$first(),0))&&l["$<<"](c["$[]"](e.Range.$new(0,r(u.$first(),1),!1)))),n(a(l.$size(),0))?h=o(M("GxG"),"ByteArray").$new(l):h=c.$clone(),h},-1),s(F,"$rotate!",function(t){var s=this;return t==null&&(t=1),n(t["$is_a?"](M("Numeric")))?b(t.$to_i(),0)&&(s.data=s.$rotate(t).$data()):s.$raise(M("ArgumentError").$new("Expected a Numeric, you provided "+t.$class())),s},-1),s(F,"$sample",function(){var a=this,n=c(arguments),s=n;return o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"sample",h(s)))},-1),s(F,"$select",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),s["$maxsize="](a.max_size),s["$padvalue="](a.pad_value),s["$outervalue="](a.outer),n(r["$respond_to?"]("call"))?i(a,"each",[],function(n){return n==null&&(n=t),d(r.$call(n),!1)?t:s["$<<"](n)}):s=a.$to_enum("select"),s}),s(F,"$select!",function e(){var o=e.$$p||t,s=this,a=t;return e.$$p=null,n(o["$respond_to?"]("call"))?(a=s.data.$hash(),s.data=i(s,"select",[],o.$to_proc()).$data(),d(a,s.data.$hash())?t:s):s.$to_enum("select!")}),s(F,"$shift",function(){var t=this;return t.$delete_at(0)}),s(F,"$shuffle",function(){var a=this,n=c(arguments),s=n;return o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"shuffle",h(s)))},-1),s(F,"$shuffle!",function(){var n=this,s=c(arguments),o=s;return n.$replace(i(n,"shuffle",h(o))),n},-1),s(F,"$size",function(){var t=this;return t.data.$bytesize()}),s(F,"$slice",function(s,c){var u=this,h=t,m=t,p=t,f=t;return s==null&&(s=0),c==null&&(c=t),h=u.$filter_parameters(s,c),n(h)||(n(c)?u.$raise(M("ArgumentError").$new(""+s.$inspect()+","+c.$inspect()+" could not be fashioned into a valid Indexer")):u.$raise(M("ArgumentError").$new(""+s.$inspect()+" could not be fashioned into a valid Indexer"))),n(u.max_size)&&(n(a(h.$count(),u.max_size))||n(a(h.$first(),r(u.max_size,1)))||n(a(h.$last(),r(u.max_size,1))))&&u.$raise(M("IndexError").$new("Index exceeds "+u.max_size+" limit. You need to adjust maxsize.")),m=t,n(h)&&(d(h.$first(),h.$last())?m=u.data["$[]"](h.$first()):(p=M("Buffer").$new(h.$size()).$to_a(),f=0,i(h,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),p["$[]="](f,s.data["$[]"](n)),f=l(f,1)},{$$s:u}),m=o(o("GxG"),"ByteArray").$new(u.$array_to_ascii(p)))),m},-1),s(F,"$slice!",function(s,o){var i=this,a=t;return s==null&&(s=0),o==null&&(o=t),a=i.$slice(s,o),n(a["$is_a?"](M("Numeric")))?i.$replace(a.$chr()):i.$replace(a),d(i.$size(),1)?i.$slice(0):i},-1),s(F,"$sort",function e(){var s=e.$$p||t,a=this;return e.$$p=null,n(s["$respond_to?"]("call"))?o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"sort",[],function(n,o){return n==null&&(n=t),o==null&&(o=t),s.$call(n,o)})):o(M("GxG"),"ByteArray").$new(a.$to_a().$sort())}),s(F,"$sort!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))&&s.$replace(i(s,"sort",[],o.$to_proc()).$data()),s}),s(F,"$sort_by!",function e(){var a=e.$$p||t,s=this;return e.$$p=null,n(a["$respond_to?"]("call"))?(s.$replace(o(M("GxG"),"ByteArray").$new(i(s.$to_a(),"sort_by!",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a.$call(n,s)})).$data()),s):s.$to_enum("sort_by!")}),s(F,"$take",function(n){var s=this;return s.$slice(e.Range.$new(0,r(n.$to_i(),1),!1))}),s(F,"$take_while",function e(){var a=e.$$p||t,r=this,s=t;return e.$$p=null,n(a["$respond_to?"]("call"))?(s=o(M("GxG"),"ByteArray").$new(),function(){try{var e=j("break");return i(r,"each",[],function o(i){var r=t;if(i==null&&(i=t),r=a.$call(i),n(r))return s["$<<"](i);e.$throw(t,o.$$is_lambda)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s):r.$to_enum("take_while")}),s(F,"$to_a",function(){var o=this,c=t,c=[];return n(a(o.data.$bytesize(),0))&&i(e.Range.$new(0,r(o.data.$bytesize(),1),!1),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),c["$<<"](s.data["$[]"](n))},{$$s:o}),c}),s(F,"$to_s",function(){var t=this;return t.$array_to_ascii(t.data)}),s(F,"$to_ascii",function(){var t=this;return t.$array_to_ascii(t.data)}),s(F,"$to_json",function(){var t=this;return l("binary:",t.$to_ascii().$encode64())}),s(F,"$transpose",function(){var t=this;return t.$clone()}),s(F,"$uniq",function e(){var s=e.$$p||t,a=this;return e.$$p=null,n(s["$respond_to?"]("call"))?o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"uniq",[],s.$to_proc())):a}),s(F,"$uniq!",function e(){var o=e.$$p||t,n=this,s=t;return e.$$p=null,s=i(n,"uniq",[],o.$to_proc()),d(s.$size(),n.$size())?t:(n.$replace(s),n)}),s(F,"$unshift",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))&&o.$insert(0,s),o},-1),s(F,"$values_at",function(){var u=this,r=t,d=c(arguments),l=d,r=o(M("GxG"),"ByteArray").$new();return n(a(l.$size(),0))&&i(l.$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(s["$is_a?"](M("Numeric")))||n(s["$is_a?"](M("Range")))?(n(s["$is_a?"](M("Range")))||(s=s.$to_i()),r["$<<"](o["$[]"](s))):o.$raise(M("TypeError").$new("Expected Integer, Float or Range. You provided "+s.$class()))},{$$s:u}),r},-1),s(F,"$zip",function e(){var r,h,u=e.$$p||t,d=this,l=t;return e.$$p=null,h=c(arguments),r=h,l=t,n(a(r.$size(),0))?(l=o(M("GxG"),"ByteArray").$new(),i(r.$to_enum("each_index"),"each",[],function(s){var a;return s==null&&(s=t),n(r["$[]"](s)["$is_a?"](o(M("GxG"),"ByteArray")))?t:(a=[s,o(M("GxG"),"ByteArray").$new(r["$[]"](s))],i(r,"[]=",a),a[a.length-1])}),i(d,"each_with_index",[],function e(s,a){var h=e.$$s==null?this:e.$$s,c=t,d=t;return s==null&&(s=t),a==null&&(a=t),c=o(M("GxG"),"ByteArray").$new(),c["$<<"](s),i(r.$to_enum("each_index"),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.pad_value==null&&(o.pad_value=t),s==null&&(s=t),n(g(a,r["$[]"](s).$size()))?c["$<<"](o.pad_value):c["$<<"](r["$[]"](s).$data()["$[]"](a))},{$$s:h}),n(u["$respond_to?"]("call"))&&(d=u.$call(c),n(d["$is_a?"](o("Array")))&&(d=o(M("GxG"),"ByteArray").$new(d)),n(d["$is_a?"](o(o("GxG"),"ByteArray")))&&(c=d)),l["$<<"](c)},{$$s:d})):l=d.$clone(),l},-1),u(F,"assoc","rassoc"),u(F,"map","collect"),u(F,"map!","collect!"),u(F,"compact!","compact"),u(F,"indices","values_at"),u(F,"indexes","values_at"),u(F,"rindex","find_index"),u(F,"index","find_index"),u(F,"length","size"),u(F,"nitems","size"),u(F,"to_ary","to_a"),u(F,"keep_if","select!"),s(F,"$paths_to",function(s,o){var r=this,a=t;return s==null&&(s=t),o==null&&(o=""),a=[],n(s["$is_a?"](M("Numeric")))&&i(r,"each_with_index",[],function(n,i){return n==null&&(n=t),i==null&&(i=t),d(n,s.$to_i())?a["$<<"](l(l(o,"/"),i.$to_s())):t}),a},-1),s(F,"$get_at_path",function(s){var c=this,o=t,r=t,l=t;return s==null&&(s="/"),o=t,d(s,"/")?o=c:(r=[c],l=s.$split("/"),function(){try{var e=j("break");return i(l.$to_enum(),"each",[],function s(i){var c=t;if(i==null&&(i=t),c=t,n(a(i.$size(),0))&&d(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(c=i.$to_i()),n(c))if(o=r.$first()["$[]"](c),n(o["$is_a?"](M("NilClass"))))e.$throw(t,s.$$is_lambda);else return r.$unshift(o);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),o},-1),s(F,"$set_at_path",function(s,i){var h=this,u=t,c=t,l=t,r=t;return s==null&&(s="/"),i==null&&(i=t),u=t,b(s,"/")&&(c=h,n(c)&&(l=o("File").$basename(s),r=t,n(a(l.$size(),0))&&d(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(r=l.$to_i()),n(r)&&(c["$[]="](r,i),d(c["$[]"](r),i)&&(u=!0)))),u},-1)}(M[0],null,M)}(x[0],x)},Opal.modules["web/gxg_events"]=function(e){var h=e.module,m=e.const_set,u=e.klass,s=e.def,l=e.return_ivar,i=e.send,o=e.truthy,f=e.rb_gt,C=e.return_self,d=e.return_val,w=e.defs,p=e.slice,v=e.to_a,c=e.eqeq,_=e.rb_ge,a=e.rb_plus,g=e.alias,O=e.send2,x=e.find_super,j=e.rb_times,b=e.rb_divide,y=e.thrower,r=[],t=e.nil,n=e.$$$;return e.add_stubs("size,unshift,<<,each,values,[],read,dispatch_message,>,is_a?,valud_uuid?,to_s,fetch_channel,to_sym,write,send,socket,encode64,to_json,encrypt,export,secret,connector,log_warn,[]=,new,times,outbox_size,delete,next_message,send_message,new_message,import,raise,merge,uuid_generate,inspect,respond_to?,call,include?,keys,process,to_proc,process!,search,paths_to,get_at_path,set_at_path,is_any?,class,parse,is,gxg_import,gxg_export,shift,==,to_enum,>=,level,add,backtrace,+,exception,join,sleep,unknown?,unknown,warn?,warn,to_i,*,to_f,method,cancel_all_timers,now,each_with_index,delete_at,/,merge!,puts,adjust_event_queue,create_event_queue,post_to_event_queue,each_index,const_defined?,remove_const,startup,add_periodic_timer,process_messages,shutdown,create_channel"),function(r,E){var A=h(r,"GxG"),k=[A].concat(E);return m(k[0],"GXG_FEDERATION",new Map([["title","Untitled"],["uuid",t],["access_url",t],["available",new Map],["connections",new Map]])),function(a,r){var d=h(a,"Messages"),c=[d].concat(r);return function(e,n){var o=u(e,n,"Channel"),i=o.$$prototype;return i.inbox=i.outbox=t,s(o,"$initialize",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=t),o.uuid=n,o.inbox=[],o.outbox=[],o.socket=t,o.remote=t,o.channel_secret=t,o.object=s,o},-1),s(o,"$uuid",l("uuid")),s(o,"$object",l("object")),s(o,"$socket",l("socket")),s(o,"$socket=",function(n){var s=this;return n==null&&(n=t),s.socket=n},-1),s(o,"$remote",l("remote")),s(o,"$remote=",function(n){var s=this;return n==null&&(n=t),s.remote=n},-1),s(o,"$secret",l("channel_secret")),s(o,"$secret=",function(n){var s=this;return n==null&&(n=t),s.channel_secret=n},-1),s(o,"$inbox_size",function(){var t=this;return t.inbox.$size()}),s(o,"$next_message",function(){var t=this;return t.inbox.$unshift()}),s(o,"$outbox_size",function(){var t=this;return t.outbox.$size()}),s(o,"$send_message",function(t){var n=this;return n.outbox["$<<"](t)}),s(o,"$read",function(){var t=this;return t.outbox.$unshift()}),s(o,"$write",function(t){var n=this;return n.inbox["$<<"](t)})}(c[0],null),function(a,r,c){var l=u(a,r,"ChannelManager"),h=[l].concat(c),d=e.$r(h);return s(l,"$update_channels",function(){var a=this,s=t,n=t,s=!1,n=[];return i(d("GXG_FEDERATION")["$[]"]("connections").$values(),"each",[],function(s){return s==null&&(s=t),n["$<<"](s)}),i(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;for(n==null&&(n=t),s=n.$read();o(s);)i.$dispatch_message(s),s=n.$read()},{$$s:a}),o(f(n.$size(),0))&&(s=!0),s}),s(l,"$dispatch_message",function(s){var a=this,i=t,r=t,c=t;return s==null&&(s=t),i=!1,o(s["$is_a?"](n(n(n("GxG"),"Events"),"Message")))&&(r=s["$[]"]("to"),o(n("GxG")["$valud_uuid?"](r.$to_s()))&&(c=a.$fetch_channel(r.$to_s().$to_sym()),o(c)?(c.$write(s),i=!0):o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?(a.$socket().$send(new Map([["payload",s.$export().$to_s().$encrypt(a.$connector().$secret()).$encode64()]]).$to_json().$encode64(),"text"),i=!0):(a.$log_warn("Message dropped --> login and resend"),i=!1))),i},-1),s(l,"$fetch_channel",function(t){return d("GXG_FEDERATION")["$[]"]("connections")["$[]"](t)}),s(l,"$create_channel",function(s,i){var a=this;return s==null&&(s=t),i==null&&(i=t),d("GXG_FEDERATION")["$[]"]("connections")["$[]="](s,n(n(n("GxG"),"Messages"),"Channel").$new(s,i)),o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?a.$socket().$send(new Map([["open_channel",s]]).$to_json().$encode64(),"text"):t},-1),s(l,"$destroy_channel",function(s){var r=this,a=t,a=r.$fetch_channel(s);return o(a)&&(i(a.$outbox_size(),"times",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),s=a.$read(),o(s)?i.$dispatch_message(s):t},{$$s:r}),o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))&&r.$socket().$send(new Map([["close_channel",s]]).$to_json().$encode64(),"text")),d("GXG_FEDERATION")["$[]"]("connections").$delete(s)}),s(l,"$next_message",function(n){var a=this,s=t,i=t,s=t,i=a.$fetch_channel(n);return o(i)&&(s=i.$next_message()),s}),s(l,"$send_message",function(n,s){var a=this,i=t,i=a.$fetch_channel(n);return o(i)?i.$send_message(s):t}),s(l,"$initialize",C)}(c[0],null,c)}(k[0],k),function(r,m){var E=h(r,"Events"),C=[E].concat(m);return function(a,r,c){var l=u(a,r,"Message"),m=[l].concat(c),h=e.$r(m),f=l.$$prototype;return f.data=t,w(l,"$import",function(n){var o=this,s=t;return n==null&&(n=t),s=i(o,"new_message",[],d(t)),s.$import(n),s},-1),s(l,"$initialize",function(){var i=this,r=p(arguments),a=r;return o(a["$[]"](0)["$is_a?"](n("Hash")))||i.$raise(h("ArgumentError"),"you must pass a Hash to create the message"),i.data=new Map([["sender",t],["id",h("GxG").$uuid_generate().$to_s().$to_sym()],["subject",a["$[]"](1).$to_s()],["body",t],["on_success",t],["on_fail",t]]).$merge(a["$[]"](0)),o(i.data["$[]"]("sender"))||i.$raise(h("ArgumentError"),"you must set the :sender key in the argument Hash"),i},-1),s(l,"$inspect",function(){var t=this;return t.data.$inspect()}),s(l,"$id",function(){var t=this;return t.data["$[]"]("id")}),s(l,"$sender",function(){var t=this;return t.data["$[]"]("sender")}),s(l,"$subject",function(){var t=this;return t.data["$[]"]("subject")}),s(l,"$body",function(){var t=this;return t.data["$[]"]("body")}),s(l,"$succeed",function(n){var s=this;return n==null&&(n=t),o(s.data["$[]"]("on_success")["$respond_to?"]("call"))?s.data["$[]"]("on_success").$call(n):t},-1),s(l,"$fail",function(n){var s=this;return n==null&&(n=t),o(s.data["$[]"]("on_fail")["$respond_to?"]("call"))?s.data["$[]"]("on_fail").$call(n):t},-1),s(l,"$on",function e(n){var s,r=e.$$p||t,a=this;if(e.$$p=null,n==null&&(n=t),o(["success","fail"]["$include?"](n)))if(o(r["$respond_to?"]("call")))switch(n.valueOf()){case"success":return s=["on_success",r],i(a.data,"[]=",s),s[s.length-1];case"fail":return s=["on_fail",r],i(a.data,"[]=",s),s[s.length-1];default:return t}else return a.$raise(h("ArgumentError"),"You MUST provide a callable block.");else return a.$raise(h("ArgumentError"),"Unknown event type: "+n)},-1),s(l,"$keys",function(){var t=this;return t.data.$keys()}),s(l,"$[]",function(t){var n=this;return n.data["$[]"](t)}),s(l,"$[]=",function(t,n){var s,o=this;return s=[t,n],i(o.data,"[]=",s),s[s.length-1]}),s(l,"$process",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"process",[],n.$to_proc())}),s(l,"$process!",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"process!",[],n.$to_proc())}),s(l,"$search",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"search",[],n.$to_proc())}),s(l,"$paths_to",function(){var o=this,n=p(arguments),s=n;return i(o.data,"paths_to",v(s))},-1),s(l,"$get_at_path",function(){var o=this,n=p(arguments),s=n;return i(o.data,"get_at_path",v(s))},-1),s(l,"$set_at_path",function(){var o=this,n=p(arguments),s=n;return i(o.data,"set_at_path",v(s))},-1),s(l,"$import",function(s){var a=this,i=t;return s==null&&(s=t),o(s["$is_any?"](n("String"),n("Hash")))||a.$raise(h("Exception").$new("You MUST supply a JSON string or a Hash, you supplied: "+s.$class().$inspect())),i=!1,o(s["$is_a?"](n("String")))&&(s=h("JSON").$parse(s,new Map([["symbolize_names",!0]]))),o(s.$is(n("Hash")))&&(a.data.$merge(n("Hash").$gxg_import(s)),i=!0),i},-1),s(l,"$export",function(){var t=this;return t.data.$gxg_export().$to_json().$to_s()}),s(l,"$to_s",function(){var t=this;return t.$export().$to_s()}),s(l,"$to_json",function(){var t=this;return t.$to_s()})}(C[0],null,C),u(C[0],null,"LoggerDB"),function(r,h,m){var f=u(r,h,"LogRing"),b=[f].concat(m),p=e.$r(b),v=f.$$prototype;return v.outlets=v.busy=v.messages=t,s(f,"$initialize",function(){var t=this;return t.uuid=n("GxG").$uuid_generate().$to_sym(),t.busy=!1,t.outlets=new Map,t.messages=[]}),s(f,"$uuid",l("uuid")),s(f,"$keys",function(){var t=this;return t.outlets.$keys()}),s(f,"$[]",function(t){var n=this;return n.outlets["$[]"](t)}),s(f,"$[]=",function(t,s){var i=this;return o(s["$is_any?"](n("Logger"),n(n(n("GxG"),"Events"),"LoggerDB")))?(i.outlets["$[]="](t,s),s):i.$raise(p("ArgumentError"),"You must supply a Logger or GxG::Events::LoggerDB instance, you provided a "+s.$class())}),s(f,"$process_messages",function(){var l=this,r=t,d=t,u=t;if(!o(l.busy)){if(l.busy=!0,r=l.messages.$shift(),o(r["$is_a?"](n(n(n("GxG"),"Events"),"Message"))))try{c(r["$[]"]("subject"),"notification")&&o(r["$[]"]("body")["$is_a?"](n("Hash")))&&(d=l.$keys(),i(d.$to_enum("each"),"each",[],function e(s){var l=e.$$s==null?this:e.$$s,i=t,c=t;return s==null&&(s=t),i=l["$[]"](s),o(_(o(c=r["$[]"]("body")["$[]"]("severity"))?c:n(n("Logger"),"UNKNOWN"),i.$level()))?o(i["$is_a?"](n(n(n("GxG"),"Events"),"LoggerDB")))?t:o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("String")))||o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("Exception")))?i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message"),r["$[]"]("body")["$[]"]("progname")):o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("Hash")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("error")["$is_a?"](n("Exception")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace()["$is_a?"](n("Array")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(a(a(` + `+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),` + Parameters: `),r["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),` + Trace: `),r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join(` +`)),` +`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(` + `+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),` + Trace: `),r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join(` +`)),` +`),r["$[]"]("body")["$[]"]("progname")):o(r["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(` + `+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),` + Parameters: `),r["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),` +`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(` + `+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),` +`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message").$inspect(),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message").$inspect(),r["$[]"]("body")["$[]"]("progname")):t},{$$s:l}))}catch(t){if(e.rescue(t,[p("Exception")])){u=t;try{l.busy=!1}finally{e.pop_exception(t)}}else throw t}l.busy=!1}return!0}),s(f,"$add",function s(i,a,r,l){var h=s.$$p||t,d=this,u=t,m=t;s.$$p=null,i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),l==null&&(l=t),o([n(n("Logger"),"DEBUG"),n(n("Logger"),"INFO"),n(n("Logger"),"WARN"),n(n("Logger"),"ERROR"),n(n("Logger"),"FATAL"),n(n("Logger"),"UNKNOWN")]["$include?"](i))||(i=n(n("Logger"),"UNKNOWN")),o(r)&&(o(a)||(a=r,r=t));try{for(o(a)||o(h["$respond_to?"]("call"))&&(a=h.$call()),u=d.$new_message(new Map([["severity",i],["message",a],["progname",r]]),"notification"),o(l)&&u["$[]="]("sender",l);c(d.busy,!0);)d.$sleep(.333);return d.busy=!0,d.messages["$<<"](u),d.busy=!1,!0}catch(t){if(e.rescue(t,[p("Exception")])){m=t;try{return d.busy=!1,!1}finally{e.pop_exception(t)}}else throw t}},-1),s(f,"$unknown?",d(!0)),g(f,"trace?","unknown?"),s(f,"$unknown",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"UNKNOWN"),s,a,o(l=r)?l:c],d.$to_proc())},-1),g(f,"trace","unknown"),s(f,"$fatal?",d(!0)),s(f,"$fatal",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"FATAL"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$error?",d(!0)),s(f,"$error",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"ERROR"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$warn?",d(!0)),g(f,"warning?","warn?"),s(f,"$warn",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"WARN"),s,a,o(l=r)?l:c],d.$to_proc())},-1),g(f,"warning","warn"),s(f,"$info?",d(!0)),s(f,"$info",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"INFO"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$debug?",d(!0)),s(f,"$debug",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"DEBUG"),s,a,o(l=r)?l:c],d.$to_proc())},-1)}(C[0],null,C),function(r,d,h){var m=u(r,d,"EventDispatcher"),v=[m].concat(h),p=e.$r(v),g=m.$$prototype;return g.host_timer=g.js_interval=g.running=g.ticking=g.timers=g.event_queues=t,s(m,"$initialize",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=.333),O(o,x(o,"initialize",e,!1,!0),"initialize",[],null),o.uuid=n("GxG").$uuid_generate().$to_sym(),o.event_queues=new Map([["root",new Map([["events",[]],["settings",new Map([["active",!0],["portion",100]])]])]]),o.running=!1,o.ticking=!1,o.timers=[],o.js_interval=j(s.$to_f(),1e3).$to_i(),o.host_timer=t,o},-1),s(m,"$startup",function(){var t=this;return t.running=!0,o(t.host_timer)||(t.host_timer=setInterval(t.$method("tick").$to_proc(),t.js_interval)),!!o(t.host_timer)}),s(m,"$shutdown",function(){var n=this;return n.running=!1,o(n.host_timer)&&clearInterval(o(n.host_timer["$is_a?"](p("Numeric")))?n.host_timer:n.host_timer._id),n.$cancel_all_timers(),n.host_timer=t,!0}),s(m,"$tick",function(){var r=this,d=t,u=t,h=t,g=t,m=t,l=t;return o(r.running)?o(r.ticking)?t:(r.ticking=!0,d=[],o(f(r.timers.$size(),0))&&(u=[],h=n("Time").$now().$to_f(),i(r.timers,"each_with_index",[],function e(n,s){var r,c=e.$$s==null?this:e.$$s;return c.timers==null&&(c.timers=t),n==null&&(n=t),s==null&&(s=t),o(_(h,n["$[]"]("when")))?(d["$<<"](n["$[]"]("what")),o(n["$[]"]("interval"))?(r=["when",a(h,n["$[]"]("interval").$to_f())],i(c.timers["$[]"](s),"[]=",r),r[r.length-1]):u.$unshift(s)):t},{$$s:r}),i(u,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.timers==null&&(s.timers=t),n==null&&(n=t),s.timers.$delete_at(n)},{$$s:r})),g=100,m=0,l=new Map,i(r.event_queues.$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.event_queues==null&&(s.event_queues=t),n==null&&(n=t),o(s.event_queues["$[]"](n)["$[]"]("settings")["$[]"]("active"))&&o(f(s.event_queues["$[]"](n)["$[]"]("events").$size(),0))?(l["$[]="](n,new Map([["portion",j(b(s.event_queues["$[]"](n)["$[]"]("settings")["$[]"]("portion").$to_f(),100),g.$to_f()).$to_i()]])),c(l["$[]"](n)["$[]"]("portion"),0)&&l["$[]"](n)["$[]="]("portion",1),l["$[]"](n)["$[]="]("size",s.event_queues["$[]"](n)["$[]"]("events").$size()),m=a(m,l["$[]"](n)["$[]"]("size"))):t},{$$s:r}),i(l.$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),function(){try{var e=y("break");return i(l["$[]"](n)["$[]"]("portion"),"times",[],function s(){var i=s.$$s==null?this:s.$$s,a=t;if(i.event_queues==null&&(i.event_queues=t),a=i.event_queues["$[]"](n)["$[]"]("events").$shift(),o(a["$respond_to?"]("call")))return d["$<<"](a);e.$throw(t,s.$$is_lambda)},{$$s:s})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:r}),i(d,"each",[],function(s){var i=t;if(s==null&&(s=t),o(s))try{return s.$call()}catch(n){if(e.rescue(n,[p("Exception")])){i=n;try{return t}finally{e.pop_exception(n)}}else throw n}else return t}),r.ticking=!1):t}),s(m,"$inspect_timers",l("timers")),s(m,"$inspect_queue",function(t){var n=this;return t==null&&(t="root"),n.event_queues["$[]"](t)},-1),s(m,"$adjust_event_queue",function(n,s){var a=this;return n==null&&(n="root"),s==null&&(s=new Map),c(n.$to_s().$to_sym(),"root")?t:o(a.event_queues["$[]"](n.$to_sym()))?i(["active"],"each",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.event_queues==null&&(a.event_queues=t),i==null&&(i=t),o(s["$[]"](i.$to_sym()))?(r=new Map,r["$[]="](i.$to_sym(),s["$[]"](i.$to_sym())),a.event_queues["$[]"](n.$to_sym())["$[]"]("settings")["$merge!"](r)):t},{$$s:a}):a.$puts("Warning: queue "+n.$inspect()+" does not exist")},-1),s(m,"$create_event_queue",function(n){var s=this,a=t,r=t;return n==null&&(n=new Map),o(n["$is_a?"](p("Hash")))||s.$raise(p("ArgumentError"),"you must provide a Hash as a parameter set"),a=n.$delete("name").$to_s().$to_sym(),o(f(a.$to_s().$size(),0))?o(s.event_queues["$[]"](a))?s.$raise(p("ArgumentError"),"Event Queue "+a.$inspect()+" already exists"):(s.event_queues["$[]="](a,new Map([["events",[]],["settings",new Map([["active",!1],["portion",0]])]])),r=b(100,s.event_queues.$keys().$size().$to_f()),i(s.event_queues.$keys(),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.event_queues==null&&(o.event_queues=t),n==null&&(n=t),(s=["portion",r],i(o.event_queues["$[]"](n)["$[]"]("settings"),"[]=",s),s[s.length-1])},{$$s:s}),s.$adjust_event_queue(a,n.$merge(new Map([["active",!0]]))),!0):s.$raise(p("ArgumentError"),":name must be provided for Event Queue")},-1),s(m,"$delete_event_queue",function(n){var s=this,o=t;return n==null&&(n=t),!c(n.$to_s().$to_sym(),"root")&&(s.event_queues.$delete(n),o=b(s.event_queues.$keys().$size().$to_f(),100),i(s.event_queues.$keys(),"each",[],function e(n){var s,a=e.$$s==null?this:e.$$s;return a.event_queues==null&&(a.event_queues=t),n==null&&(n=t),(s=["portion",o],i(a.event_queues["$[]"](n)["$[]"]("settings"),"[]=",s),s[s.length-1])},{$$s:s}),!0)},-1),s(m,"$pause_event_queue",function(n){var s=this;return n==null&&(n=t),c(n.$to_s().$to_sym(),"root")?t:s.$adjust_event_queue(n,new Map([["active",!0]]))},-1),s(m,"$unpause_event_queue",function(n){var s=this;return n==null&&(n=t),c(n.$to_s().$to_sym(),"root")?t:s.$adjust_event_queue(n,new Map([["active",!1]]))},-1),s(m,"$post_to_event_queue",function(n,s){var i=this;return n==null&&(n="root"),s==null&&(s=t),o(s["$respond_to?"]("call"))?o(i.event_queues["$[]"](n))?i.event_queues["$[]"](n)["$[]"]("events")["$<<"](s):i.event_queues["$[]"]("root")["$[]"]("events")["$<<"](s):t},-1),s(m,"$post_event",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="root"),o(s.event_queues["$[]"](n.$to_sym()))||s.$create_event_queue(new Map([["name",n.$to_sym()]])),s.$post_to_event_queue(n.$to_sym(),i),!0},-1),s(m,"$add_timer",function e(s){var u=e.$$p||t,r=this,i=t,c=t,d=t,l=t;return e.$$p=null,s==null&&(s=new Map),i=s["$[]"]("when"),c=o(d=s["$[]"]("do"))?d:u,o(i["$is_a?"](n("Numeric")))?i=a(n("Time").$now().$to_f(),i.$to_f()):o(i["$is_a?"](n("Time")))?i=i.$to_f():r.$raise(p("ArgumentError"),"you must specify a :when => millisecond (float) offset, or a Time for the timer"),o(c["$respond_to?"]("call"))||r.$raise(p("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),l=n("GxG").$uuid_generate().$to_sym(),r.timers["$<<"](new Map([["when",i],["what",c],["id",l]])),new Map([["timer",l]])},-1),s(m,"$add_periodic_timer",function e(s){var h=e.$$p||t,c=this,i=t,l=t,u=t,r=t,d=t;return e.$$p=null,s==null&&(s=new Map),i=s["$[]"]("interval"),l=o(u=s["$[]"]("do"))?u:h,r=n("Time").$now().$to_f(),o(i["$is_a?"](n("Numeric")))?r=a(r,i.$to_f()):c.$raise(p("ArgumentError"),"you must specify an :interval => Float (as you would with sleep) offset interval for the periodic timer"),o(l["$respond_to?"]("call"))||c.$raise(p("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),d=n("GxG").$uuid_generate().$to_sym(),c.timers["$<<"](new Map([["when",r],["what",l],["interval",i.$to_f()],["id",d]])),new Map([["timer",d]])},-1),s(m,"$cancel_timer",function(n){var r=this,s=t,a=t;return n==null&&(n=new Map),s=n["$[]"]("timer"),a=!1,o(s)&&function(){try{var e=y("break");return i(r.timers,"each_index",[],function n(o){var i=n.$$s==null?this:n.$$s;if(i.timers==null&&(i.timers=t),o==null&&(o=t),c(i.timers["$[]"](o)["$[]"]("id"),s))i.timers.$delete_at(o),a=!0,e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a},-1),s(m,"$cancel_all_timers",function(){for(var t=this;c(t.ticking,!0);)t.$sleep(.333);return t.timers=[],!0})}(C[0],null,C)}(k[0],k)}(r[0],r),function(e,t){var s=h(e,"GxG"),i=[s].concat(t);return o(s["$const_defined?"]("LOG"))&&s.$remove_const("LOG"),m(i[0],"LOG",n(n(n("GxG"),"Events"),"LogRing").$new())}(r[0],r),n(n("GxG"),"LOG")["$[]="]("default",n("Logger").$new(n(n("Logger"),"WARN"))),function(t,s){var a=h(t,"GxG"),r=[a].concat(s),c=e.$r(r);return o(a["$const_defined?"]("DISPATCHER"))&&a.$remove_const("DISPATCHER"),m(r[0],"DISPATCHER",n(n(n("GxG"),"Events"),"EventDispatcher").$new(.1)),c("DISPATCHER").$startup(),m(r[0],"LOG_TIMER",i(c("DISPATCHER"),"add_periodic_timer",[new Map([["interval",1]])],function(){return n(n("GxG"),"LOG").$process_messages()})),w(a,"$shutdown",function(){return c("DISPATCHER").$shutdown()})}(r[0],r),function(e,t){var s=h(e,"GxG"),o=[s].concat(t);return m(o[0],"CHANNELS",n(n(n("GxG"),"Messages"),"ChannelManager").$new())}(r[0],r),function(e,i){var a=u(e,i,"Object"),r=a.$$prototype;return r.uuid=t,s(a,"$send_message",function(t){var s=this;return o(s.uuid)||(s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(s.uuid,s)),n(n("GxG"),"CHANNELS").$send_message(s.uuid,t),!0}),s(a,"$next_message",function(){var t=this;return o(t.uuid)||(t.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(t.uuid,t)),n(n("GxG"),"CHANNELS").$next_message(t.uuid)}),s(a,"$post",function(s){var i=this,a=t;return o(i.uuid)||(i.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(i.uuid,i)),a=n(n("GxG"),"CHANNELS").$fetch_channel(i.uuid),o(a)&&a.$write(s),!0}),s(a,"$process_message",function(n,s){return n==null&&(n=t),s==null&&(s=new Map),t},-1)}(r[0],null)},Opal.modules["web/gxg_database"]=function(e){var O=e.module,j=e.NilClass,l=e.defs,s=e.truthy,o=e.send,a=e.eqeq,h=e.thrower,r=e.rb_gt,d=e.rb_plus,b=e.klass,i=e.def,u=e.range,g=e.rb_divide,p=e.rb_times,_=e.return_ivar,c=e.return_val,f=e.neqeq,w=e.alias,m=e.rb_minus,y=e.eqeqeq,x=e.slice,C=e.rb_lt,v=[],t=e.nil,n=e.$$$;return e.add_stubs("index,keys,element_tables,to_sym,[],each,==,is_any?,search,element_table_for_instance,raise,persistable?,is_a?,new,object_id,<<,>,size,shift,call,[]=,log_error,each_pair,+,detached_format_find,respond_to?,format_pull,BigDecimal,to_s,gxg_import,import,public,clone,valid_uuid?,increment_version,to_d,log_warn,inspect,/,to_f,to_i,*,log_warning,uuid=,title=,parent=,parse,decode64,version=,format=,each_index,constraint=,uuid_generate,last,alive?,write_reserved?,get_reservation,now,hash,version,iterative_detached_persist,class,include?,delete,uuid,title,format,constraint,iso8601,encode64,to_enum,each_with_index,!=,iterative,to_proc,reverse,split,get_at_path,process!,gsub!,unshift,join,=~,first,dirname,basename,set_property_version,property_version,unpersist,private,-,valid_field_classes,===,delete_at,save,key,<,refresh_ordinals,push,insert,load_element_links,with_index"),function(v,E){var A=O(v,"GxG"),k=[A].concat(E);return function(v,E){var A=O(v,"Database"),S=[A].concat(E),k=e.$r(S);return l(A,"$element_tables",function(){return new Map([["unspecified",t],["element_boolean",[n("TrueClass"),n("FalseClass"),j]],["element_integer",[n("Integer")]],["element_float",[n("Float")]],["element_bigdecimal",[n("BigDecimal")]],["element_datetime",[n("Time")]],["element_text",[n("String")]],["element_binary",[n(n("GxG"),"ByteArray")]],["element_array",[n("Array")]],["element_hash",[n("Hash")]]])}),l(A,"$valid_field_classes",function(){return[n("TrueClass"),n("FalseClass"),j,n("Integer"),n("Float"),n("BigDecimal"),n("Time"),n("String"),n(n("GxG"),"ByteArray")]}),l(A,"$element_table_index",function(o){var i=t;return o==null&&(o="unspecified"),s(i=n(n("GxG"),"Database").$element_tables().$keys().$index(o.$to_sym()))?i:0},-1),l(A,"$element_table_by_index",function(o){var i=t;return o==null&&(o=0),s(i=n(n("GxG"),"Database").$element_tables().$keys()["$[]"](o))?i:"unspecified"},-1),l(A,"$element_table_for_instance",function(i){var r=t,c=t;return i==null&&(i=t),r="unspecified",c=n(n("GxG"),"Database").$element_tables(),function(){try{var e=h("break");return o(c.$keys(),"each",[],function n(o){if(o==null&&(o=t),a(o,"unspecified"))return t;if(s(i["$is_any?"](c["$[]"](o))))r=o,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),l(A,"$persistable?",function(i){var r=t,r=!0;return s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))||(s(i["$is_any?"](n("Hash"),n("Array")))?function(){try{var e=h("break");return o(i,"search",[],function o(i,c,l){return i==null&&(i=t),c==null&&(c=t),l==null&&(l=t),s(r)&&a(n(n("GxG"),"Database").$element_table_for_instance(i),"unspecified")&&(r=!1,e.$throw(t,o.$$is_lambda)),t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}():a(n(n("GxG"),"Database").$element_table_for_instance(i),"unspecified")&&(r=!1)),r}),l(A,"$iterative_detached_persist",function(c){var f=this,p=t,u=t,l=t,g=t,j=t,y=t,_=t,m=t,d=t,v=t,b=t;c==null&&(c=t),p=t;try{for(s(c["$is_any?"](n("Array"),n("Hash")))||f.$raise(k("ArgumentError"),"You MUST provide either an Array or a Hash."),s(n(k("GxG"),"Database")["$persistable?"](c))||f.$raise(k("ArgumentError"),"The object you are attempting to persist contains a non-persistable item."),s(c["$is_a?"](n("Array")))&&(u=n(n(n("GxG"),"Database"),"DetachedArray").$new()),s(c["$is_a?"](n("Hash")))&&(u=n(n(n("GxG"),"Database"),"DetachedHash").$new()),l=[new Map([["parent",t],["parent_selector",t],["object",c],["partner",u]])],g=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),j=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("object").$object_id(),n.$object_id())?s=o:t}),s},-1),y=o(k("Proc"),"new",[],function(i){var r=t;return i==null&&(i=t),r=t,function(){try{var e=h("break");return o(l,"each",[],function o(c){if(c==null&&(c=t),s(c["$is_a?"](n("Hash"))))if(a(c["$[]"]("object").$object_id(),i.$object_id()))r=c["$[]"]("partner"),e.$throw(t,o.$$is_lambda);else return t;else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r}),_=t,o(c,"search",[],function(o,i,a){return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(o["$is_a?"](n("Array")))?l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",n(n(n("GxG"),"Database"),"DetachedArray").$new()]])):s(o["$is_a?"](n("Hash")))?l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",n(n(n("GxG"),"Database"),"DetachedHash").$new()]])):l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",o]]))}),m=[l["$[]"](0)];s(r(m.$size(),0));)d=m.$shift(),s(d["$is_a?"](n("Hash")))&&s(d["$[]"]("object")["$is_any?"](n("Array"),n("Hash")))&&(v=g.$call(d["$[]"]("object")),o(v,"each",[],function(o){return o==null&&(o=t),d["$[]"]("partner")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("partner")),s(o["$[]"]("partner")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"DetachedHash")))?m["$<<"](o):t}));p=u}catch(t){if(e.rescue(t,[k("Exception")])){b=t;try{f.$log_error(new Map([["error",b],["parameters",new Map([["object",c]])]]))}finally{e.pop_exception(t)}}else throw t}return p},-1),l(A,"$detached_format_find",function(i){var c=t,r=t;return i==null&&(i=new Map),c=t,r=new Map,o(["uuid","ufs","title","version"],"each",[],function(n){var a;return n==null&&(n=t),s(i["$[]"](n))?(a=[n,i["$[]"](n)],o(r,"[]=",a),a[a.length-1]):t}),function(){try{var e=h("break");return o(n(k("GxG"),"DB")["$[]"]("formats"),"each_pair",[],function n(s,i){var l=t;if(s==null&&(s=t),i==null&&(i=t),l=0,o(r.$keys(),"each",[],function(n){return n==null&&(n=t),a(i["$[]"](n),r["$[]"](n))?l=d(l,1):t}),a(r.$keys().$size(),l))c=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c},-1),l(A,"$detached_format_load",function e(i){var c=e.$$p||t,d=t,u=t,a=t,l=t;return e.$$p=null,i==null&&(i=new Map),d=!1,u=[],a=[],s(i["$is_a?"](n("Hash")))?(l=n(n("GxG"),"Database").$detached_format_find(i),s(l)?(a["$<<"](l),s(c["$respond_to?"]("call"))&&c.$call(a),d=!0):u["$<<"](i)):s(i["$is_a?"](n("Array")))&&o(i,"each",[],function(o){return o==null&&(o=t),l=n(n("GxG"),"Database").$detached_format_find(o),s(l)?a["$<<"](l):u["$<<"](o)}),s(r(u.$size(),0))?o(n(k("GxG"),"CONNECTION"),"format_pull",[u],function(i){return i==null&&(i=t),s(i["$is_a?"](n("Hash")))&&s(i["$[]"]("result")["$is_a?"](n("Array")))?(o(i["$[]"]("result"),"each",[],function(s){return s==null&&(s=t),n(k("GxG"),"DB")["$[]"]("formats")["$[]="](s["$[]"]("uuid").$to_sym(),s),a["$<<"](s)}),s(c["$respond_to?"]("call"))&&c.$call(a),d=!0):t}):s(r(a.$size(),0))&&(s(c["$respond_to?"]("call"))&&c.$call(a),d=!0),d},-1),l(A,"$process_detached_import",function(i){var c=this,a=t;return i==null&&(i=t),a=[],s(i["$is_a?"](n("Hash")))&&(s(r(i["$[]"]("formats").$size(),0))&&o(i["$[]"]("formats").$keys(),"each",[],function e(a){var c,l=e.$$s==null?this:e.$$s,r=t;return a==null&&(a=t),s(n(k("GxG"),"DB")["$[]"]("formats")["$[]"](a))?t:(r=i["$[]"]("formats")["$[]"](a),s(r["$[]"]("version")["$is_a?"](n("String")))&&r["$[]="]("version",l.$BigDecimal(r["$[]"]("version").$to_s())),r["$[]="]("content",n("Hash").$gxg_import(r["$[]"]("content"))),(c=[a,r],o(n(k("GxG"),"DB")["$[]"]("formats"),"[]=",c),c[c.length-1]))},{$$s:c}),s(r(i["$[]"]("records").$size(),1))?o(i["$[]"]("records"),"each",[],function(s){return s==null&&(s=t),a["$<<"](n(n(k("GxG"),"Database"),"DetachedHash").$import(s))}):a["$<<"](n(n(k("GxG"),"Database"),"DetachedHash").$import(i["$[]"]("records")["$[]"](0)))),a},-1),l(A,"$process_import",function(i){var c=this,a=t;return i==null&&(i=t),a=[],s(i["$is_a?"](n("Hash")))&&(s(r(i["$[]"]("formats").$size(),0))&&o(i["$[]"]("formats").$keys(),"each",[],function e(a){var c,l=e.$$s==null?this:e.$$s,r=t;return a==null&&(a=t),s(n(k("GxG"),"DB")["$[]"]("formats")["$[]"](a))?t:(r=i["$[]"]("formats")["$[]"](a),s(r["$[]"]("version")["$is_a?"](n("String")))&&r["$[]="]("version",l.$BigDecimal(r["$[]"]("version").$to_s())),r["$[]="]("content",n("Hash").$gxg_import(r["$[]"]("content"))),(c=[a,r],o(n(k("GxG"),"DB")["$[]"]("formats"),"[]=",c),c[c.length-1]))},{$$s:c}),s(r(i["$[]"]("records").$size(),1))?o(i["$[]"]("records"),"each",[],function(s){return s==null&&(s=t),a["$<<"](n(n(k("GxG"),"Database"),"PersistedHash").$import(s))}):a["$<<"](n(n(k("GxG"),"Database"),"PersistedHash").$import(i["$[]"]("records")["$[]"](0)))),a},-1),function(m,v,y){var O=b(m,v,"DetachedHash"),E=[O].concat(y),x=e.$r(E),C=O.$$prototype;return C.uuid=C.title=C.version=C.property_links=C.format=C.parent=t,O.$public(),i(O,"$uuid",function(){var t=this;return t.uuid.$clone()}),i(O,"$uuid=",function(n){var o=this;return n==null&&(n=t),s(x("GxG")["$valid_uuid?"](n))?o.uuid=n.$to_s().$to_sym():t},-1),i(O,"$title",function(){var t=this;return t.title.$clone()}),i(O,"$title=",function(n){var o=this;return n==null&&(n=t),s(n)?(o.title=n.$to_s()["$[]"](u(0,255,!1)),o.$increment_version()):t},-1),i(O,"$version",function(){var t=this;return t.version.$clone()}),i(O,"$version=",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n("Numeric")))?i.version=o.$to_s("F").$to_d():t},-1),i(O,"$element_version",function(o){var a=this,i=t;return o==null&&(o=t),i=0,s(o["$is_a?"](n("Symbol")))&&(s(r(o.$to_s().$size(),256))&&(a.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),s(a.property_links["$[]"](o.$to_s().$to_sym()))?i=a.property_links["$[]"](o.$to_s().$to_sym())["$[]"]("record")["$[]"]("version"):i=0),i},-1),i(O,"$set_element_version",function(o,i){var a=this,r=t;return i==null&&(i=t),r=!1,s(a.property_links["$[]"](o))?s(i["$is_a?"](n("Numeric")))?(a.property_links["$[]"](o)["$[]"]("record")["$[]="]("version",g(p(i.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):a.$log_warning("Attempted to set version to an invalid version value "+i.$inspect()+" for "+o.$inspect()+" on Object "+a.uuid.$inspect()):a.$log_warning("Attempted to set version with an invalid key "+o.$inspect()+" on Object "+a.uuid.$inspect()),r},-2),i(O,"$format",function(){var t=this;return t.format.$clone()}),i(O,"$format=",function(n){var o=this;return n==null&&(n=t),s(x("GxG")["$valid_uuid?"](n))?o.format=n.$to_s().$to_sym():t},-1),i(O,"$parent",_("parent")),i(O,"$parent=",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"]([n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")]))?s(i.parent)?t:i.parent=o:t},-1),i(O,"$write_reserved?",c(!0)),i(O,"$release_reservation",c(!0)),i(O,"$get_reservation",c(!0)),i(O,"$wait_for_reservation",function(n){return n==null&&(n=t),!0},-1),l(O,"$import",function(i){var l=this,d=t,c=t,a=t;for(i==null&&(i=t),d=t,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))||l.$raise(x("Exception"),"Malformed import record passed."),c=[new Map([["target",n(n(n("GxG"),"Database"),"DetachedHash").$new()],["record",i]])],d=c["$[]"](0)["$[]"]("target");s(r(c.$size(),0));)switch(a=c.$shift(),a["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content").$keys(),"each",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(x("GxG"),"Database"),"DetachedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(x("GxG"),"Database"),"DetachedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$format="](a["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content"),"each_index",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(x("GxG"),"Database"),"DetachedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(x("GxG"),"Database"),"DetachedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$constraint="](a["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym());break;default:t}return d},-1),l(O,"$create_from_format",function(n){return n==null&&(n=t),t},-1),i(O,"$ufs",function(){var i=this,o=t;return s(i.format)?(o=n(x("GxG"),"DB")["$[]"]("formats")["$[]"](i.format.$to_s().$to_sym()),s(o)?o["$[]"]("ufs").$to_s().$to_sym():""):""}),i(O,"$increment_version",function(){var t=this;return t.version=d(t.version,1e-4)}),i(O,"$initialize",function(){var s=this;return s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s.title="Untitled "+s.uuid.$to_s(),s.version=s.$BigDecimal("0.0"),s.format=t,s.parent=t,s.property_links=new Map,s}),i(O,"$inspect",function(){var s=this,i=t,n=t,i=s.property_links.$keys().$last(),n="{";return o(s.property_links.$keys(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.property_links==null&&(o.property_links=t),s==null&&(s=t),n=d(n,d(":"+s.$to_s()+" => ",o.property_links["$[]"](s)["$[]"]("content").$inspect())),a(i,s)?t:n=d(n,", ")},{$$s:s}),d(n,"}")}),i(O,"$alive?",c(!0)),i(O,"$save",function(){var i=this,o=t,a=t,o=!1;if(s(i["$alive?"]()))try{o=!0}catch(t){if(e.rescue(t,[x("Exception")])){a=t;try{i.$log_error(new Map([["error",a]]))}finally{e.pop_exception(t)}}else throw t}return o}),i(O,"$destroy",function(){var i=this,o=t,a=t,o=!1;if(s(i["$alive?"]()))try{o=!0}catch(t){if(e.rescue(t,[x("Exception")])){a=t;try{i.$log_error(new Map([["error",a]]))}finally{e.pop_exception(t)}}else throw t}return o}),i(O,"$size",function(){var t=this;return t.property_links.$size()}),i(O,"$keys",function(){var t=this;return t.property_links.$keys()}),i(O,"$[]=",function(o,i){var l=this,m=t,h=t,f=t,c=t;if(o==null&&(o=t),i==null&&(i=t),s(l["$alive?"]())||l.$raise(x("Exception"),"Attempted to alter a defunct structure"),m=t,s(o["$is_a?"](n("Symbol"))))if(s(r(o.$to_s().$size(),256))&&(l.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),h=o.$to_s().$to_sym(),s(i["$is_any?"](j,n("TrueClass"),n("FalseClass"),n("Integer"),n("Float"),n("BigDecimal"),n("String"),n("Time"),n(n("GxG"),"ByteArray"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array"))))if(s(l["$write_reserved?"]())||l.$get_reservation(),s(l["$write_reserved?"]())){if(s(l.property_links["$[]"](o.$to_s().$to_sym()))?f="set_value":s(l.format)?l.$raise(x("Exception"),"Formatted - the structure cannot be altered"):f="add_value",c=new Map([["linkid",t],["content",t],["loaded",!0],["state",0],["record",new Map([["parent_uuid",l.uuid.$to_s()],["property",o.$to_s()],["ordinal",0],["version",l.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",l.$BigDecimal("0.0")],["element_datetime",n("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",t],["element_array",t],["element_hash",t]])]]),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"))))c["$[]="]("content",i),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(i["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",i)):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",i));else if(s(i["$is_any?"](n("Hash"),n("Array"))))c["$[]="]("content",n(n("GxG"),"Database").$iterative_detached_persist(i)),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(i["$is_a?"](n("Hash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",c["$[]"]("content"))):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",c["$[]"]("content")));else switch(c["$[]"]("record")["$[]="]("element",n(n("GxG"),"Database").$element_table_for_instance(i).$to_s()),c["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":a(i.$class(),j)&&(c["$[]"]("record")["$[]="]("element_boolean",-1),c["$[]="]("content",t)),a(i.$class(),n("FalseClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",0),c["$[]="]("content",!1)),a(i.$class(),n("TrueClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",1),c["$[]="]("content",!0));break;case"element_integer":c["$[]"]("record")["$[]="]("element_integer",i),c["$[]="]("content",i);break;case"element_float":c["$[]"]("record")["$[]="]("element_float",i),c["$[]="]("content",i);break;case"element_bigdecimal":c["$[]"]("record")["$[]="]("element_bigdecimal",l.$BigDecimal(i.$to_s())),c["$[]="]("content",c["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":c["$[]"]("record")["$[]="]("element_datetime",i),c["$[]="]("content",i);break;case"element_text":c["$[]"]("record")["$[]="]("element_text",i),c["$[]"]("record")["$[]="]("length",i.$size()),c["$[]="]("content",i);break;case"element_binary":a(f,"set_value")&&(c["$[]"]("record")["$[]="]("version",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version")),c["$[]"]("record")["$[]="]("element_binary",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("element_binary"))),c["$[]"]("record")["$[]="]("length",i.$size()),c["$[]="]("content",i);break;default:l.$raise(x("Exception"),"Unable to map an element type for value: "+i.$inspect())}switch(f.valueOf()){case"set_value":s(c["$[]"]("content")["$is_a?"](l.property_links["$[]"](h)["$[]"]("content").$class()))||s([!0,!1,t]["$include?"](c["$[]"]("content")))&&s([!0,!1,t]["$include?"](l.property_links["$[]"](h)["$[]"]("content")))?(c["$[]="]("linkid",l.property_links["$[]"](h)["$[]"]("linkid")),s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",d(l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version"),1e-4)),c["$[]"]("record")["$[]="]("ordinal",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),c["$[]="]("state",l.property_links["$[]"](h)["$[]"]("state")),l.property_links["$[]="](h,c)):(s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),l.property_links["$[]="](h,c)),m=l.property_links["$[]"](h)["$[]"]("content");break;case"add_value":s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",l.$BigDecimal("0.0")),c["$[]"]("record")["$[]="]("ordinal",l.property_links.$keys().$size()),c["$[]="]("loaded",!0),l.property_links["$[]="](h,c);break;default:t}s(l.property_links["$[]"](h)["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&l.property_links["$[]"](h)["$[]"]("content")["$parent="](l),l.$increment_version(),m=l.property_links["$[]"](h)["$[]"]("content")}else l.$raise(x("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else l.$raise(x("Exception"),"The value is not persistable.");else l.$raise(x("Exception"),"You must provide a property key in the form of a Symbol.");return m},-1),i(O,"$[]",function(o){var i=this,a=t,c=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Symbol")))?(s(r(o.$to_s().$size(),256))&&(i.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),c=o.$to_s().$to_sym(),s(i.property_links["$[]"](c))&&(a=i.property_links["$[]"](c)["$[]"]("content"))):i.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+o.$class().$inspect()):i.$raise(x("Exception"),"Attempted to access a defunct structure"),a},-1),i(O,"$include?",function(t){var n=this;return n.property_links.$keys()["$include?"](t)}),i(O,"$delete",function(o){var i=this,a=t;return o==null&&(o=t),a=t,s(o["$is_a?"](n("Symbol")))?(s(r(o.$to_s().$size(),256))&&(i.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),s(i.format)?i.$raise(x("Exception"),"Formatted - the structure cannot be altered"):s(i.property_links["$[]"](o))&&(a=i.property_links["$[]"](o)["$[]"]("content"),i.property_links.$delete(o))):i.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+o.$class().$inspect()),a},-1),i(O,"$unpersist",function(){var l=this,d=t,i=t,h=t,c=t,u=t,d=new Map;if(s(l["$alive?"]()))for(i=[new Map([["parent",t],["parent_selector",t],["object",l],["record",d]])],h=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(l,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map]])):s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",[]]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",o]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)u=c.$shift(),o(h.$call(u["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),u["$[]"]("record")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$<<"](o):t});return d}),i(O,"$export",function(i){var c=this,m=t,d=t,u=t,l=t,p=t,h=t,f=t;for(i==null&&(i=new Map([["exclude_file_segments",!1]])),m=s(d=i["$[]"]("exclude_file_segments"))&&d,a(i["$[]"]("clone"),!0)?u=new Map([["type","element_hash"],["uuid",x("GxG").$uuid_generate().$to_s().$to_sym()],["title",c.title.$clone()],["version",c.version.$to_s("F")],["content",new Map]]):u=new Map([["type","element_hash"],["uuid",c.uuid.$clone()],["title",c.title.$clone()],["version",c.version.$to_s("F")],["format",c.format.$clone()],["content",new Map]]),l=[new Map([["parent",t],["parent_selector",t],["object",c],["record",u]])],p=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(c,"search",[],function e(o,r,c){var p=e.$$s==null?this:e.$$s,u=t,f=t,h=t;if(o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(a(i["$[]"]("clone"),!0)?u=x("GxG").$uuid_generate().$to_s().$to_sym():u=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["format",o.$format().$clone()],["content",new Map]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_hash"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["format",o.$format().$clone()],["content",new Map]])]]))),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(a(i["$[]"]("clone"),!0)?u=x("GxG").$uuid_generate().$to_s().$to_sym():u=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["constraint",o.$constraint().$clone()],["content",[]]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_array"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["constraint",o.$constraint().$clone()],["content",[]]])]]))),s(o["$is_any?"](j,n("TrueClass"),n("FalseClass"),n("Integer"),n("Float"),n("BigDecimal"),n("String"),n("Time"),n(n("GxG"),"ByteArray")))){switch(f=n(x("GxG"),"Database").$element_table_for_instance(o),f.valueOf()){case"element_bigdecimal":h=o.$to_s();break;case"element_datetime":h=o.$iso8601().$to_s();break;case"element_binary":h=o.$to_s().$encode64();break;case"element_text":h=o.$to_s();break;default:h=o}return l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type",f],["version",(s(d=c.$version(r))?d:p.$BigDecimal("0.0")).$to_s("F")],["content",h]])]]))}return t},{$$s:c}),h=[l["$[]"](0)];s(r(h.$size(),0));)f=h.$shift(),o(p.$call(f["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),f["$[]"]("record")["$[]"]("content")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?h["$<<"](o):t});return u},-1),i(O,"$each_pair",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=new Map,o(a.property_links.$keys(),"each",[],function e(s){var i,a=e.$$s==null?this:e.$$s;return s==null&&(s=t),(i=[s,a["$[]"](s)],o(n,"[]=",i),i[i.length-1])},{$$s:a}),s(i["$respond_to?"]("call"))?o(n.$to_enum("each_pair"),"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),i.$call(n,s)}):n.$to_enum("each_pair")}),i(O,"$iterative",function i(c){var v=i.$$p||t,d=this,h=t,b=t,m=t,p=t,u=t,l=t,g=t,j=t,y=t;i.$$p=null,c==null&&(c=new Map([["include_inactive",!0]])),h=[],b=o(x("Proc"),"new",[],function(i,a){var d=t,l=t;if(i==null&&(i=t),a==null&&(a=[]),d=[],s(i))for(d["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",s]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",n]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l));return a},-1),m=o(x("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(p=b.$call(d,[]),u=m.$call(p,d),s(v["$respond_to?"]("call")))for(;s(r(u.$size(),0));)l=u.$shift(),a(l["$[]"]("object").$object_id(),d.$object_id())||(g=v.$call(l["$[]"]("object"),l["$[]"]("parent_selector"),l["$[]"]("parent")),s(g)&&h["$<<"](g)),f(l["$[]"]("object").$object_id(),t.$object_id())&&(j=m.$call(p,l["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),u["$<<"](n)}))}catch(t){if(e.rescue(t,[x("Exception")])){y=t;try{d.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return h},-1),w(O,"process","iterative"),i(O,"$process!",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),o(s,"iterative",[n],i.$to_proc()),s},-1),i(O,"$search",function e(n){var a=e.$$p||t,r=this,i=t;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),i=[],s(a["$respond_to?"]("call"))&&(i=o(r,"iterative",[n],a.$to_proc())),i},-1),i(O,"$paths_to",function(i,c){var j=this,m=t,l=t,d=t,g=t,b=t,v=t,p=t;return i==null&&(i=t),c==null&&(c=""),m=[],a(c["$[]"](0),"/")||(c="/"["$<<"](c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](u(1,-1,!1)).$reverse():l=[],d=j.$get_at_path(c),g=[new Map([["selector",t],["container",d]])],b=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=h("break");return o(g,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),v=d,p=!1,s(d["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?o(d,"process!",[],function(o,r,c){var d=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),f(v.$object_id(),c.$object_id())&&(d=b.$call(c),s(d)&&(l=d["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),v=c),u=r.$to_s(),u["$gsub!"]("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&m["$<<"]("/"["$<<"](l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&g.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):m["$<<"]("/"["$<<"](l.$join("/"))),m},-1),i(O,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$split("/"),function(){try{var e=h("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o.$to_s(),l["$gsub!"]("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](x("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(O,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,f(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o)),s(d)&&(l=n("File").$basename(o),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l.$to_s(),c["$gsub!"]("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(O,"$merge!",function(i,a){var c=this,r=t;return i==null&&(i=t),a==null&&(a=new Map),r=c,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))&&(s(c.format)?o(i.$keys(),"each",[],function(o){return o==null&&(o=t),s(r.$keys()["$include?"](o))?(r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t):t}):o(i.$keys(),"each",[],function(o){return o==null&&(o=t),r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t})),r},-1),i(O,"$merge",function(i,a){var c=this,r=t;return i==null&&(i=t),a==null&&(a=new Map),r=c,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))&&(r=n(n(n("GxG"),"Database"),"DetachedHash").$iterative_detached_persist(c.$unpersist()),s(c.format)?(o(i.$keys(),"each",[],function(o){return o==null&&(o=t),s(r.$keys()["$include?"](o))?(r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t):t}),r["$format="](c.format)):o(i.$keys(),"each",[],function(o){return o==null&&(o=t),r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t})),r},-1)}(S[0],null,S),function(l,v,O){var E=b(l,v,"DetachedArray"),S=[E].concat(O),k=e.$r(S),A=E.$$prototype;return A.element_links=A.uuid=A.title=A.version=A.constraint=A.parent=A.format=t,E.$private(),i(E,"$element_destroy",function(n){return n==null&&(n=t),t},-1),i(E,"$element_write",function(n){return n==null&&(n=t),t},-1),i(E,"$load_element_links",c(t)),i(E,"$refresh_ordinals",function(){var n=this,s=t,s=[];return o(n.element_links,"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.element_links==null&&(i.element_links=t),n==null&&(n=t),o==null&&(o=t),i.element_links["$[]"](o)["$[]"]("record")["$[]="]("ordinal",o),s["$<<"](i.element_links["$[]"](o))},{$$s:n}),n.element_links=s}),E.$public(),i(E,"$uuid",function(){var t=this;return t.uuid.$clone()}),i(E,"$uuid=",function(n){var o=this;return n==null&&(n=t),s(k("GxG")["$valid_uuid?"](n))?o.uuid=n.$to_s().$to_sym():t},-1),i(E,"$title",function(){var t=this;return t.title.$clone()}),i(E,"$title=",function(n){var o=this;return n==null&&(n=t),s(n)?(o.title=n.$to_s()["$[]"](u(0,255,!1)),o.$increment_version()):t},-1),i(E,"$version",function(){var t=this;return t.version.$clone()}),i(E,"$version=",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n("Numeric")))?i.version=o.$to_s("F").$to_d():t},-1),i(E,"$element_version",function(o){var a=this,i=t;return o==null&&(o=t),i=0,s(o["$is_a?"](n("Numeric")))&&(s(a.element_links["$[]"](o))?i=a.element_links["$[]"](o)["$[]"]("record")["$[]"]("version"):i=0),i},-1),i(E,"$set_element_version",function(o,i){var a=this,r=t;return i==null&&(i=t),r=!1,s(a.element_links["$[]"](o))?s(i["$is_a?"](n("Numeric")))?(a.element_links["$[]"](o)["$[]"]("record")["$[]="]("version",g(p(i.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):a.$log_warning("Attempted to set version to an invalid version value "+i.$inspect()+" for index "+o.$inspect()+" on Object "+a.uuid.$inspect()):a.$log_warning("Attempted to set version with an invalid index "+o.$inspect()+" on Object "+a.uuid.$inspect()),r},-2),i(E,"$constraint",function(){var t=this;return t.constraint.$clone()}),i(E,"$constraint=",function(n){var o=this;return n==null&&(n=t),s(k("GxG")["$valid_uuid?"](n))?o.constraint=n.$to_s().$to_sym():t},-1),i(E,"$parent",_("parent")),i(E,"$parent=",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"]([n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")]))?s(i.parent)?t:i.parent=o:t},-1),i(E,"$get_permissions",c(t)),i(E,"$set_permissions",function(n,s){return n==null&&(n=t),s==null&&(s=t),t},-1),i(E,"$reservation",c(t)),i(E,"$write_permission?",c(!0)),i(E,"$write_reserved?",c(!0)),i(E,"$release_reservation",c(!0)),i(E,"$get_reservation",c(!0)),i(E,"$wait_for_reservation",function(n){return n==null&&(n=t),!0},-1),i(E,"$get_delegate",c(t)),i(E,"$set_delegate",function(n){return n==null&&(n=t),t},-1),i(E,"$increment_version",function(){var n=this;return s(n["$alive?"]())&&s(n["$write_reserved?"]())?n.version=g(p(d(n.version,1e-4),1e4).$to_i().$to_f(),1e4):t}),i(E,"$save_version",c(t)),i(E,"$clear_constraint",function(){var n=this;return s(n["$alive?"]())&&s(n.constraint)&&(n.constraint=t),!0}),i(E,"$constraint",function(){var t=this;return t.constraint.$clone()}),i(E,"$ufs",function(){var i=this,o=t;return s(i.format)?(o=n(k("GxG"),"DB")["$[]"]("formats")["$[]"](i.format.$to_s().$to_sym()),s(o)?o["$[]"]("ufs").$to_s().$to_sym():""):""}),i(E,"$refresh_links",c(t)),i(E,"$initialize",function(){var s=this;return s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s.title="Untitled "+s.uuid.$to_s(),s.version=0,s.constraint=t,s.parent=t,s.data=[],s.element_links=[],s}),i(E,"$inspect",function(){var s=this,n=t,n="[";return o(s.element_links,"each_index",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.element_links==null&&(o.element_links=t),s==null&&(s=t),n=d(n,o.element_links["$[]"](s)["$[]"]("content").$inspect()),a(s,m(o.element_links.$size(),1))?t:n=d(n,", ")},{$$s:s}),d(n,"]")}),i(E,"$alive?",c(!0)),i(E,"$db_address",c(t)),i(E,"$deactivate",c(t)),i(E,"$save",c(t)),i(E,"$destroy",c(t)),i(E,"$size",function(){var t=this;return t.element_links.$size()}),i(E,"$structure_attached?",c(!1)),i(E,"$structure_detach",c(!0)),i(E,"$[]=",function(i,r){var l=this,h=t,u=t,c=t,m=t;if(i==null&&(i=t),r==null&&(r=t),s(l["$alive?"]())||l.$raise(k("Exception"),"Attempted to alter a defunct structure"),h=t,s(i["$is_a?"](n("Integer"))))if(s(r["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))||s(r["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array"))))if(s(l["$write_reserved?"]())||l.$get_reservation(),s(l["$write_reserved?"]())){if(s(r["$is_any?"](n("Hash"),n("Array")))&&o(r,"search",[],function e(o,i,a){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(o["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))||s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array")))?t:r.$raise(k("Exception"),"The structure you are attaching has an unpersistable item within it (not supported).")},{$$s:l}),s(l.element_links["$[]"](i))?u="set_value":s(l.constraint)?l.$raise(k("Exception"),"Formatted - the structure cannot be altered"):u="add_value",c=new Map([["linkid",t],["content",t],["loaded",!1],["state",0],["record",new Map([["parent_uuid",l.uuid.$to_s()],["ordinal",0],["version",0],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",l.$BigDecimal("0.0")],["element_datetime",n("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",t],["element_array",t],["element_hash",t]])]]),s(r["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"))))c["$[]="]("content",r),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(r["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",r)):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",r));else if(s(r["$is_any?"](n("Hash"),n("Array"))))c["$[]="]("content",n(n("GxG"),"Database").$iterative_detached_persist(r)),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(r["$is_a?"](n("Hash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",c["$[]"]("content"))):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",c["$[]"]("content")));else switch(c["$[]"]("record")["$[]="]("element",n(n("GxG"),"Database").$element_table_for_instance(r).$to_s()),c["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":y(j,m=r.$class())?(c["$[]"]("record")["$[]="]("element_boolean",-1),c["$[]="]("content",t)):y(n("FalseClass"),m)?(c["$[]"]("record")["$[]="]("element_boolean",0),c["$[]="]("content",!1)):y(n("TrueClass"),m)?(c["$[]"]("record")["$[]="]("element_boolean",1),c["$[]="]("content",!0)):t;break;case"element_integer":c["$[]"]("record")["$[]="]("element_integer",r),c["$[]="]("content",r);break;case"element_float":c["$[]"]("record")["$[]="]("element_float",r),c["$[]="]("content",r);break;case"element_bigdecimal":c["$[]"]("record")["$[]="]("element_bigdecimal",l.$BigDecimal(r.$to_s())),c["$[]="]("content",c["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":c["$[]"]("record")["$[]="]("element_datetime",r),c["$[]="]("content",r);break;case"element_text":c["$[]"]("record")["$[]="]("element_text",r),c["$[]"]("record")["$[]="]("length",r.$size()),c["$[]="]("content",r);break;case"element_binary":a(u,"set_value")&&(c["$[]"]("record")["$[]="]("version",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version")),c["$[]"]("record")["$[]="]("element_binary_uuid",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("element_binary_uuid"))),c["$[]"]("record")["$[]="]("length",r.$size()),c["$[]="]("content",r);break;default:l.$raise(k("Exception"),"Unable to map an element type for value: "+r.$inspect())}switch(u.valueOf()){case"set_value":s(c["$[]"]("content")["$is_a?"](l.element_links["$[]"](i)["$[]"]("content").$class()))||s([!0,!1,t]["$include?"](c["$[]"]("content")))&&s([!0,!1,t]["$include?"](l.element_links["$[]"](i)["$[]"]("content")))?(c["$[]="]("linkid",l.element_links["$[]"](i)["$[]"]("linkid")),s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),c["$[]="]("state",l.element_links["$[]"](i)["$[]"]("state")),s(c["$[]"]("content")["$is_a?"](n("String")))&&l.element_links["$[]="](i,c)):(s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),l.element_links["$[]="](i,c));break;case"add_value":s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",0),c["$[]"]("record")["$[]="]("ordinal",l.element_links.$size()),c["$[]="]("loaded",!0),l.element_links["$[]="](i,c);break;default:t}s(l.element_links["$[]"](i)["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&l.element_links["$[]"](i)["$[]"]("content")["$parent="](l),l.$increment_version(),h=l.element_links["$[]"](i)["$[]"]("content")}else l.$raise(k("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else l.$raise(k("Exception"),"The value is not persistable.");else l.$raise(k("Exception"),"You must provide a index in the form of an Integer.");return h},-1),i(E,"$[]",function(o){var i=this,a=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Integer")))?s(i.element_links["$[]"](o))&&(a=i.element_links["$[]"](o)["$[]"]("content")):i.$raise(k("ArgumentError"),"You must specify with an Integer, not a "+o.$class().$inspect()):i.$raise(k("Exception"),"Attempted to access a defunct structure"),a},-1),i(E,"$delete_at",function(o){var i=this,a=t,r=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Integer")))?s(i["$write_reserved?"]())?s(i.element_links["$[]"](o))&&(a=i["$[]"](o),r=i.element_links.$delete_at(o),s(r["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&r["$[]"]("content").$save(),i.$increment_version()):i.$raise(k("Exception"),"You do not have sufficient privileges to make this change"):i.$raise(k("ArgumentError"),"You must specify with a Symbol, not a "+i.$key().$class().$inspect()):i.$raise(k("Exception"),"Attempted to access a defunct structure"),a},-1),i(E,"$<<",function(){var a=this,c=x(arguments),i=c;return s(r(i.$size(),0))&&o(i,"each",[],function e(n){var s,i=e.$$s==null?this:e.$$s;return i.element_links==null&&(i.element_links=t),n==null&&(n=t),(s=[i.element_links.$size(),n],o(i,"[]=",s),s[s.length-1])},{$$s:a}),a},-1),i(E,"$push",function(){var a=this,c=x(arguments),i=c;return s(r(i.$size(),0))&&o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$<<"](n)},{$$s:a}),a},-1),i(E,"$pop",function(){var t=this;return t.$delete_at(m(t.element_links.$size(),1))}),i(E,"$shift",function(){var t=this;return t.$delete_at(0)}),i(E,"$insert",function(o,i){var c=this,l=t;return o==null&&(o=t),i==null&&(i=t),s(n(n("GxG"),"Database")["$persistable?"](i))&&(l=new Map([["linkid",t],["content",t],["loaded",!1],["state",0],["record",new Map([["parent_uuid",c.uuid.$to_s()],["ordinal",0],["version",c.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",c.$BigDecimal("0.0")],["element_datetime",n("DateTime").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_text_uuid",""],["element_binary_uuid",""],["element_array_uuid",""],["element_hash_uuid",""]])]]),o=o.$to_i(),s(C(o,0))&&(o=m(c.$size(),o)),a(o,0)?(l["$[]"]("record")["$[]="]("ordinal",o),c.element_links.$unshift(l),c.$refresh_ordinals(),c["$[]="](0,i)):s(r(o,m(c.$size(),1)))?c.$push(i):(l["$[]"]("record")["$[]="]("ordinal",o),c.element_links.$insert(o,l),c.$refresh_ordinals(),c["$[]="](o,i))),c},-1),i(E,"$unshift",function(n){var s=this;return n==null&&(n=t),s.$insert(0,n)},-1),i(E,"$swap",function(o,i){var a=this,r=t,c=t;return o==null&&(o=t),i==null&&(i=t),r=!1,s(o)&&s(i)&&s(e.Range.$new(0,m(a.$size(),1),!1)["$include?"](o.$to_i()))&&s(e.Range.$new(0,m(a.$size(),1),!1)["$include?"](i.$to_i()))&&f(o.$to_i(),i.$to_i())&&(c=a.element_links["$[]"](o),a.element_links["$[]="](o,a.element_links["$[]"](i)),a.element_links["$[]="](i,c),r=!0),r},-1),i(E,"$include?",function(n){var i=this,s=t,s=!1;return function(){try{var e=h("break");return o(i.element_links,"each",[],function o(i){if(i==null&&(i=t),a(i["$[]"]("content"),n))s=!0,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),i(E,"$find_index",function(n){var i=this,s=t,s=t;return function(){try{var e=h("break");return o(i.element_links,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("content"),n))s=r,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),i(E,"$export",function(i){var c=this,m=t,u=t,d=t,l=t,p=t,h=t,f=t;if(i==null&&(i=new Map([["exclude_file_segments",!1]])),s(c["$alive?"]()))for(m=s(u=i["$[]"]("exclude_file_segments"))&&u,a(i["$[]"]("clone"),!0)?d=new Map([["type","element_array"],["uuid",k("GxG").$uuid_generate().$to_s().$to_sym()],["title",c.title.$clone()],["version",c.version.$clone()],["content",[]]]):d=new Map([["type","element_array"],["uuid",c.uuid.$clone()],["title",c.title.$clone()],["version",c.version.$clone()],["constraint",c.constraint.$clone()],["content",[]]]),l=[new Map([["parent",t],["parent_selector",t],["object",c],["record",d]])],p=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(c,"search",[],function(o,r,c){var d=t,f=t,h=t;if(o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(a(i["$[]"]("clone"),!0)?d=k("GxG").$uuid_generate().$to_s().$to_sym():d=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["format",o.$format().$clone()],["content",new Map]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_hash"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["format",o.$format().$clone()],["content",new Map]])]]))),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(a(i["$[]"]("clone"),!0)?d=k("GxG").$uuid_generate().$to_s().$to_sym():d=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["constraint",o.$constraint().$clone()],["content",[]]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_array"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["constraint",o.$constraint().$clone()],["content",[]]])]]))),s(o["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))){switch(f=n(k("GxG"),"Database").$element_table_for_instance(o),f.valueOf()){case"element_bigdecimal":h=o.$to_s();break;case"element_datetime":h=o.$iso8601().$to_s();break;case"element_binary":h=o.$to_s().$encode64();break;case"element_text":h=o.$to_s();break;default:h=o}return l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type",f],["version",s(u=c.$version(r))?u:0],["content",h]])]]))}return t}),h=[l["$[]"](0)];s(r(h.$size(),0));)f=h.$shift(),o(p.$call(f["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),f["$[]"]("record")["$[]"]("content")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?h["$<<"](o):t});else d=t;return d},-1),i(E,"$sync_export",function(t){var n=this;return t==null&&(t=new Map),n.$save()},-1),i(E,"$first",function(){var n=this;return s(r(n.element_links.$size(),0))?n["$[]"](0):t}),i(E,"$last",function(){var n=this;return s(r(n.element_links.$size(),0))?n["$[]"](m(n.element_links.$size(),1)):t}),i(E,"$each",function e(){var i=e.$$p||t,n=this;return e.$$p=null,s(i["$respond_to?"]("call"))?(n.$load_element_links(),s(r(n.element_links.$size(),0))&&o(n.element_links,"each_index",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),i.$call(s["$[]"](n))},{$$s:n}),n):n.$to_enum("each")}),i(E,"$each_index",function e(){var i=e.$$p||t,n=this;return e.$$p=null,s(i["$respond_to?"]("call"))?(n.$load_element_links(),s(r(n.element_links.$size(),0))&&o(n.element_links,"each_index",[],function(n){return n==null&&(n=t),i.$call(n)}),n):n.$to_enum("each_index")}),i(E,"$each_with_index",function e(n){var a=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=0),s(a["$respond_to?"]("call"))?(i.$load_element_links(),s(r(i.element_links.$size(),0))&&o(i.element_links.$to_enum("each").$with_index(n),"each",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),a.$call(o["$[]"](s),s)},{$$s:i}),i):i.$to_enum("each_with_index",n)},-1),i(E,"$iterative",function i(c){var v=i.$$p||t,d=this,h=t,b=t,m=t,p=t,u=t,l=t,g=t,j=t,y=t;i.$$p=null,c==null&&(c=new Map([["include_inactive",!0]])),h=[],b=o(k("Proc"),"new",[],function(i,a){var d=t,l=t;if(i==null&&(i=t),a==null&&(a=[]),d=[],s(i))for(d["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",s]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",n]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),(s(l["$alive?"]())||s(c["$[]"]("include_inactive")))&&a["$<<"](l);return a},-1),m=o(k("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(p=b.$call(d,[]),u=m.$call(p,d),s(v["$respond_to?"]("call")))for(;s(r(u.$size(),0));)l=u.$shift(),a(l["$[]"]("object").$object_id(),d.$object_id())||(g=v.$call(l["$[]"]("object"),l["$[]"]("parent_selector"),l["$[]"]("parent")),s(g)&&h["$<<"](g)),f(l["$[]"]("object").$object_id(),t.$object_id())&&(j=m.$call(p,l["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),u["$<<"](n)}))}catch(t){if(e.rescue(t,[k("Exception")])){y=t;try{d.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return h},-1),w(E,"process","iterative"),i(E,"$process!",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),o(s,"iterative",[n],i.$to_proc()),s},-1),i(E,"$search",function e(n){var a=e.$$p||t,r=this,i=t;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),i=[],s(a["$respond_to?"]("call"))&&(i=o(r,"iterative",[n],a.$to_proc())),i},-1),i(E,"$paths_to",function(i,c){var j=this,m=t,l=t,d=t,g=t,b=t,v=t,p=t;return i==null&&(i=t),c==null&&(c=""),m=[],a(c["$[]"](0),"/")||(c="/"["$<<"](c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](u(1,-1,!1)).$reverse():l=[],d=j.$get_at_path(c),g=[new Map([["selector",t],["container",d]])],b=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=h("break");return o(g,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),v=d,p=!1,s(d["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?o(d,"process!",[],function(o,r,c){var d=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),f(v.$object_id(),c.$object_id())&&(d=b.$call(c),s(d)&&(l=d["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),v=c),u=r.$to_s(),u["$gsub!"]("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&m["$<<"]("/"["$<<"](l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&g.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):m["$<<"]("/"["$<<"](l.$join("/"))),m},-1),i(E,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$split("/"),function(){try{var e=h("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o.$to_s(),l["$gsub!"]("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](k("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(E,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,f(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o)),s(d)&&(l=n("File").$basename(o),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l.$to_s(),c["$gsub!"]("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(E,"$unpersist",function(){var l=this,d=t,i=t,h=t,c=t,u=t,d=[];if(s(l["$alive?"]()))for(i=[new Map([["parent",t],["parent_selector",t],["object",l],["record",d]])],h=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(l,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map]])):s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",[]]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",o]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)u=c.$shift(),o(h.$call(u["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),u["$[]"]("record")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$<<"](o):t});return d})}(S[0],null,S),b(S[0],n(n(n("GxG"),"Database"),"DetachedArray"),"PeristedArray"),function(i,a,c){var u=b(i,a,"PeristedHash"),h=[u].concat(c),d=e.$r(h);return l(u,"$import",function(i){var l=this,u=t,c=t,a=t;for(i==null&&(i=t),u=t,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))||l.$raise(d("Exception"),"Malformed import record passed."),c=[new Map([["target",n(n(n("GxG"),"Database"),"PersistedHash").$new()],["record",i]])],u=c["$[]"](0)["$[]"]("target");s(r(c.$size(),0));)switch(a=c.$shift(),a["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content").$keys(),"each",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(d("GxG"),"Database"),"PersistedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(d("GxG"),"Database"),"PersistedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$format="](a["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content"),"each_index",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(d("GxG"),"Database"),"PersistedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(d("GxG"),"Database"),"PersistedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$constraint="](a["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym());break;default:t}return u},-1)}(S[0],n(n(n("GxG"),"Database"),"DetachedHash"),S)}(k[0],k)}(v[0],v),function(t,s,o){var a=b(t,s,"Array"),r=[a].concat(o),c=e.$r(r);return i(a,"$persist",function(){var t=this;return n(c("GxG"),"Database").$iterative_detached_persist(t)})}(v[0],null,v),function(t,s,o){var a=b(t,s,"Hash"),r=[a].concat(o),c=e.$r(r);return i(a,"$persist",function(){var t=this;return n(c("GxG"),"Database").$iterative_detached_persist(t)})}(v[0],null,v)},Opal.modules["web/gxg_libraries"]=function(e){var d=e.module,h=e.klass,n=e.truthy,c=e.send,s=e.eqeq,a=e.rb_gt,o=e.def,r=e.return_ivar,u=e.thrower,l=[],t=e.nil,i=e.$$$;return e.add_stubs("is_a?,raise,uuid,title,version,to_s,[],each,library_loaded?,<<,load_libraries,==,>,size,loaded?,base64?,decode64,set_script,instance_eval,log_error,to_sym,the_refrence"),d(l[0],"Libraries"),function(l,m){var p=d(l,"GxG"),f=[p].concat(m);return function(l,d,m){var f=h(l,d,"Library"),v=[f].concat(m),p=e.$r(v),g=f.$$prototype;return g.local=g.source=g.type=g.global=t,o(f,"$initialize",function(o){var r=this,l=t,d=t;return o==null&&(o=t),n(o["$is_a?"](i(i(p("GxG"),"Database"),"PersistedHash")))||r.$raise(p("ArgumentError"),"You MUST provide a persisted source object."),r.uuid=o.$uuid(),r.title=o.$title(),r.version=o.$version(),r.type=(n(l=o["$[]"]("type"))?l:"text/javascript").$to_s(),d=[],n(o["$[]"]("requirements")["$is_a?"](i(i(i("GxG"),"Database"),"PersistedArray")))&&c(o["$[]"]("requirements"),"each",[],function(s){return s==null&&(s=t),n(i(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](s))?t:d["$<<"](s)}),c(i(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[d],function e(r){var d,c=e.$$s==null?this:e.$$s,h=t,m=t,f=t,g=t,u=t;return c.src==null&&(c.src=t),c.local==null&&(c.local=t),c.global==null&&(c.global=t),c.uuid==null&&(c.uuid=t),c.type==null&&(c.type=t),c.charset==null&&(c.charset=t),c.source==null&&(c.source=t),c.title==null&&(c.title=t),r==null&&(r=t),s(r,!0)?(c.src=o["$[]"]("options")["$[]"]("src").$to_s(),n(a(c.src.$size(),0))||(c.src=t),c.charset=(n(l=o["$[]"]("options")["$[]"]("charset"))?l:"utf-8").$to_s(),c.local=o["$[]"]("options")["$[]"]("local"),n(c.local)||(c.local=!1),c.global=o["$[]"]("options")["$[]"]("global").$to_s(),n(a(c.global.$size(),0))||(c.global=t),n(c["$loaded?"]())||(n(a(c.global.$to_s().$size(),0))||(n(c.type="text/javascript")?c.global="Opal":c.global="GxG"),n(c.src["$is_a?"](i("String")))?(h=c.uuid,m=c.type,f=c.charset,g=c.src,d=document.createElement("script"),d.id=h,d.type=m,d.charset=f,d.src=g,document.body.appendChild(d)):(u=o["$[]"]("options")["$[]"]("native").$to_s(),n(u["$is_a?"](i("String")))&&n(a(u.$size(),0))&&(n(u["$base64?"]())&&(u=u.$to_s().$decode64()),h=c.uuid,m=c.type,f=c.charset,d=document.createElement("script"),d.id=h,d.type=m,d.charset=f,d.innerHTML=u,document.body.appendChild(d)))),c.source=o,c.$set_script(c.source["$[]"]("script").$to_s()),c.source=t):c.$raise(p("Exception"),"Library load error - skipping library intitialization: "+c.title)},{$$s:r}),r},-1),o(f,"$uuid",r("uuid")),o(f,"$title",r("title")),o(f,"$version",r("version")),o(f,"$type",r("type")),o(f,"$local",r("local")),o(f,"$global",r("global")),o(f,"$set_script",function(i){try{var c,r=this,l=t,d=t;if(i==null&&(i=""),l=!1,n(a(i.$size(),0)))try{n(i["$base64?"]())&&(i=i.$decode64()),s(r.local,!0)?r.$instance_eval(i):(c=i,typeof e.compile=="function"?eval(e.compile(c,{scope_variables:["result","the_script_body"],arity_check:!1,file:"(eval)",eval:!0})):r.$eval(c)),l=!0}catch(t){if(e.rescue(t,[p("Exception")])){d=t;try{r.$log_error(new Map([["error",d],["parameters",new Map([["script",i]])]]))}finally{e.pop_exception(t)}}else throw t}return l}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1),o(f,"$require_resource",function(o){var i=this,a=t;return o==null&&(o=t),a=!1,n(i.source)&&function(){try{var e=u("break");return c(i.source["$[]"]("content"),"each",[],function n(i){var r=n.$$s==null?this:n.$$s;if(i==null&&(i=t),(s(i.$title(),o)||s(i.$uuid(),r.$the_refrence().$to_s().$to_sym()))&&s(i["$[]"]("component").$to_s(),"script")&&s(i["$[]"]("type").$to_s(),"text/ruby"))r.$set_script(i["$[]"]("script").$to_s()),a=!0,e.$throw(t,n.$$is_lambda);else return t},{$$s:i})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a},-1),o(f,"$require_module_resource",function(i){try{var r=this,l=t;return i==null&&(i=t),l=!1,n(r.source)&&function(){try{var o=u("break");return c(r.source["$[]"]("content"),"each",[],function r(c){var d,u,h=r.$$s==null?this:r.$$s;if(c==null&&(c=t),(s(c.$title(),i)||s(c.$uuid(),h.$the_refrence().$to_s().$to_sym()))&&s(c["$[]"]("component").$to_s(),"script")&&s(c["$[]"]("type").$to_s(),"text/ruby"))if(n(a(c["$[]"]("script").$size(),0)))n(c["$[]"]("script")["$base64?"]())?(d=c["$[]"]("script").$to_s().$decode64(),typeof e.compile=="function"?eval(e.compile(d,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):h.$eval(d)):(u=c["$[]"]("script").$to_s(),typeof e.compile=="function"?eval(e.compile(u,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):h.$eval(u)),l=!0,o.$throw(t,r.$$is_lambda);else return t;else return t},{$$s:r})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}(),l}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1),o(f,"$loaded?",function(){try{var i,o=this;return s(o.type,"text/javascript")?!!n(window.hasOwnProperty(o.global.$to_s())):!!n(o.global)&&!!n((i="defined? "+o.global.$to_s(),typeof e.compile=="function"?eval(e.compile(i,{scope_variables:[],arity_check:!1,file:"(eval)",eval:!0})):o.$eval(i)))}catch(t){if(t===e.t_eval_return)return t.$v;throw t}})}(f[0],null,f)}(l[0],l)},Opal.modules["web/gxg_applications"]=function(e){var u=e.module,h=e.klass,s=e.truthy,i=e.send,a=e.eqeq,l=e.rb_gt,o=e.def,c=e.thrower,r=e.return_ivar,d=[],t=e.nil,n=e.$$$;return e.add_stubs("[],is_a?,[]=,to_sym,to_s,uuid,each,base64?,decode64,json?,parse,process_import,log_error,title,unpersist,==,is_any?,library_loaded?,<<,load_libraries,get_library,>,size,instance_eval,log_warn,the_refrence,get_resource,app_state_pull,app_state_push,values,delete,search,respond_to?,downcase,to_proc,method,element,call,state_pull,application_close,inspect,valid_uuid?,get_window,keys,find_child,set_application,unlink_viewport,unlink_window,window_close,exit,get_viewport,gxg_each_child,destroy"),function(d,m){var p=u(d,"GxG"),f=[p].concat(m);return function(d,u,m){var f=h(d,u,"Application"),v=[f].concat(m),p=e.$r(v),g=f.$$prototype;return g.viewports=g.windows=g.definition=g.process=g.state=g.libraries=g.event_handlers=g.event_listeners=t,o(f,"$initialize",function(r){var c=this,d=t,m=t,u=t,h=t;if(r==null&&(r=new Map),c.process=r["$[]"]("application"),c.definition=r["$[]"]("source"),c.title="Untitled",c.state=s(d=r["$[]"]("state"))?d:new Map,c.viewports=new Map,s(r["$[]"]("viewport")["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&c.viewports["$[]="](r["$[]"]("viewport").$uuid().$to_s().$to_sym(),r["$[]"]("viewport")),s(r["$[]"]("viewports")["$is_a?"](n("Array")))&&i(r["$[]"]("viewports"),"each",[],function e(o){var a,r=e.$$s==null?this:e.$$s;return r.viewports==null&&(r.viewports=t),o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))?(a=[o.$uuid().$to_s().$to_sym(),o],i(r.viewports,"[]=",a),a[a.length-1]):t},{$$s:c}),c.windows=new Map,s(r["$[]"]("window")["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&c.windows["$[]="](r["$[]"]("window").$uuid().$to_s().$to_sym(),r["$[]"]("window")),s(r["$[]"]("windows")["$is_a?"](n("Array")))&&i(r["$[]"]("windows"),"each",[],function e(o){var a,r=e.$$s==null?this:e.$$s;return r.windows==null&&(r.windows=t),o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))?(a=[o.$uuid().$to_s().$to_sym(),o],i(r.windows,"[]=",a),a[a.length-1]):t},{$$s:c}),c.libraries=new Map,c.event_handlers=new Map,c.event_listeners=new Map,c.credentialed=s(d=r["$[]"]("credentialed"))&&d,c.unique=!s(d=r["$[]"]("unique"))||d,c.location=r["$[]"]("location"),c.heap=new Map,s(c.definition["$is_a?"](n("String")))&&(s(c.definition["$base64?"]())&&(c.definition=c.definition.$decode64()),s(c.definition["$json?"]())))try{c.definition=n("JSON").$parse(c.definition,new Map([["symbolize_names",!0]])),c.definition=n(n("GxG"),"Database").$process_import(c.definition)}catch(t){if(e.rescue(t,[p("Exception")])){m=t;try{c.$log_error(new Map([["error",m],["parameters",new Map([["definition",c.definition]])]]))}finally{e.pop_exception(t)}}else throw t}return s(c.definition["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(c.title=c.definition.$title(),u=c.definition["$[]"]("options").$unpersist(),a(u["$[]"]("credentialed"),!0)?c.credentialed=!0:c.credentialed=!1,a(u["$[]"]("unique"),!0)?c.unique=!0:c.unique=!1),s(c.definition["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(h=[],s(c.definition["$[]"]("requirements")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&i(c.definition["$[]"]("requirements"),"each",[],function(o){return o==null&&(o=t),s(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](o))?t:h["$<<"](o)}),i(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[h],function e(o){var r=e.$$s==null?this:e.$$s;return r.definition==null&&(r.definition=t),o==null&&(o=t),a(o,!0)?(s(r.definition["$[]"]("requirements")["$is_a?"](n(n(n("GxG"),"Database"),"PersistedArray")))&&i(r.definition["$[]"]("requirements"),"each",[],function e(o){var a,c=e.$$s==null?this:e.$$s,r=t;return c.libraries==null&&(c.libraries=t),o==null&&(o=t),r=n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_library(o),s(r)?(a=[r.$uuid(),r],i(c.libraries,"[]=",a),a[a.length-1]):t},{$$s:r}),s(l(r.definition["$[]"]("script").$size(),0))?s(r.definition["$[]"]("script")["$base64?"]())?r.$instance_eval(r.definition["$[]"]("script").$to_s().$decode64()):r.$instance_eval(r.definition["$[]"]("script").$to_s()):t):r.$log_warn("Library load error - not processing main application script for "+r.definition.$title()+".")},{$$s:c})),c},-1),o(f,"$get_resource",function(n){var o=this,r=t;return n==null&&(n=t),r=t,s(o.definition)&&function(){try{var e=c("break");return i(o.definition["$[]"]("content"),"each",[],function s(o){var i=s.$$s==null?this:s.$$s;if(o==null&&(o=t),a(o.$title(),n)||a(o.$uuid(),i.$the_refrence().$to_s().$to_sym()))r=o,e.$throw(t,s.$$is_lambda);else return t},{$$s:o})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),o(f,"$require_resource",function(n){var i=this,r=t,o=t;return n==null&&(n=t),r=!1,s(i.definition)&&(o=i.$get_resource(n),s(o)&&a(o["$[]"]("component").$to_s(),"script")&&a(o["$[]"]("type").$to_s(),"text/ruby")&&s(l(o["$[]"]("script").$size(),0))&&(s(o["$[]"]("script")["$base64?"]())?i.$instance_eval(o["$[]"]("script").$to_s().$decode64()):i.$instance_eval(o["$[]"]("script").$to_s()),r=!0)),r},-1),o(f,"$title",r("title")),o(f,"$credentialed",r("credentialed")),o(f,"$unique",r("unique")),o(f,"$location",r("location")),o(f,"$libraries",r("libraries")),o(f,"$state_data",r("state")),o(f,"$state_pull",function(){var o=this;return i(n(p("GxG"),"CONNECTION"),"app_state_pull",[new Map([["application",o.process.$to_s()]])],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),!!s(o["$is_a?"](n("Hash")))&&!!s(o["$[]"]("result")["$is_a?"](n("Hash")))&&(i.state=o["$[]"]("result"),!0)},{$$s:o})}),o(f,"$state_push",function(){var o=this;return i(n(p("GxG"),"CONNECTION"),"app_state_push",[new Map([["application",o.process.$to_s()],["data",o.state]])],function(o){return o==null&&(o=t),!!s(o["$is_a?"](n("Hash")))&&!!a(o["$[]"]("result"),!0)})}),o(f,"$get_library",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.libraries["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.libraries.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$link_viewport",function(o){var i=this;return o==null&&(o=t),!!s(o["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&(i.viewports["$[]="](o.$uuid().$to_s().$to_sym(),o),!0)},-1),o(f,"$unlink_viewport",function(o){var r=this;return o==null&&(o=t),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(s(r.viewports["$[]"](o.$to_s().$to_sym()))?r.viewports.$delete(o.$to_s().$to_sym()):function(){try{var e=c("break");return i(r.viewports.$values(),"each",[],function n(s){var i=n.$$s==null?this:n.$$s;if(i.viewports==null&&(i.viewports=t),s==null&&(s=t),a(s.$title(),o))i.viewports.$delete(s.$uuid()),e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),!0)},-1),o(f,"$viewports",r("viewports")),o(f,"$get_viewport",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.viewports["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.viewports.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$link_window",function(o){var i=this;return o==null&&(o=t),!!s(o["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&(i.windows["$[]="](o.$uuid().$to_s().$to_sym(),o),!0)},-1),o(f,"$unlink_window",function(o){var r=this;return o==null&&(o=t),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(s(r.windows["$[]"](o.$to_s().$to_sym()))?r.windows.$delete(o.$to_s().$to_sym()):function(){try{var e=c("break");return i(r.windows.$values(),"each",[],function n(s){var i=n.$$s==null?this:n.$$s;if(i.windows==null&&(i.windows=t),s==null&&(s=t),a(s.$title(),o))i.windows.$delete(s.$uuid()),e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),!0)},-1),o(f,"$windows",r("windows")),o(f,"$get_window",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.windows["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.windows.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$process_uuid",r("process")),o(f,"$source_uuid",function(){var o=this;return s(o.definition["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?o.definition.$uuid():t}),o(f,"$search_resources",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&s(l.definition)&&function(){try{var e=c("break");return i(l.definition["$[]"]("content"),"search",[],function i(c,l,d){if(c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),s(c["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash"))))if(a(o.$to_s().$to_sym(),c.$uuid().$to_s().$to_sym())||a(o.$to_s(),c.$title().$to_s()))r=c,e.$throw(t,i.$$is_lambda);else return t;else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),o(f,"$on",function e(o,i){var r=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),i==null&&(i=!1),s(o["$is_any?"](n("String"),n("Symbol")))&&s(r["$respond_to?"]("call"))?(a.event_handlers["$[]="](o.$to_s().$downcase().$to_sym(),r),a.event_listeners["$[]="](o.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(o.$to_s().$downcase(),a.event_listeners["$[]"](o.$to_s().$downcase().$to_sym()),i)):t},-1),o(f,"$remove_listener",function(n){var o=this;return n==null&&(n=t),s(o.event_handlers["$[]"](n.$to_s().$downcase().$to_sym()))&&s(o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym()))&&(o.$element().removeEventListener(n.$to_s().$downcase(),o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym())),o.event_handlers.$delete(n.$to_s().$downcase().$to_sym()),o.event_listeners.$delete(n.$to_s().$downcase().$to_sym())),!0},-1),o(f,"$event_handler",function(o){var c=this,a=t,i=t,r=t,l=t,d=t,a=o.type.$to_s().$downcase().$to_sym(),i=new Map;return s(c.event_handlers["$[]"](a))?(r=s(l=n(n(n(p("GxG"),"Gui"),"EventHandlers"),"EVENT_GENRES")["$[]"](a))?l:"event",s(r)&&(d=n(n(n(p("GxG"),"Gui"),"EventHandlers"),"EVENT_FIELDS")["$[]"](r),s(d)&&(serializer=function(t){if(t){var n={eventName:t.toString(),altKey:t.altKey,bubbles:t.bubbles,button:t.button,buttons:t.buttons,cancelBubble:t.cancelBubble,cancelable:t.cancelable,clientX:t.clientX,clientY:t.clientY,composed:t.composed,ctrlKey:t.ctrlKey,currentTarget:t.currentTarget?t.currentTarget.outerHTML:null,defaultPrevented:t.defaultPrevented,detail:t.detail,eventPhase:t.eventPhase,fromElement:t.fromElement?t.fromElement.outerHTML:null,isTrusted:t.isTrusted,layerX:t.layerX,layerY:t.layerY,metaKey:t.metaKey,movementX:t.movementX,movementY:t.movementY,offsetX:t.offsetX,offsetY:t.offsetY,pageX:t.pageX,pageY:t.pageY,relatedTarget:t.relatedTarget?t.relatedTarget.outerHTML:null,returnValue:t.returnValue,screenX:t.screenX,screenY:t.screenY,shiftKey:t.shiftKey,sourceCapabilities:t.sourceCapabilities?t.sourceCapabilities.toString():null,target:t.target?t.target.outerHTML:null,timeStamp:t.timeStamp,toElement:t.toElement?t.toElement.outerHTML:null,type:t.type,view:t.view?t.view.toString():null,which:t.which,x:t.x,y:t.y};return n}},i=JSON.stringify(serializer(o)),i=n("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])))),c.event_handlers["$[]"](a).$call(i)):t}),o(f,"$menu_item_select",function(n){return n==null&&(n=t),t},-1),o(f,"$run",function(o){var i=this;return o==null&&(o=new Map),s(o["$is_a?"](n("Hash")))&&a(o["$[]"]("restore"),!0)?i.$state_pull():t},-1),o(f,"$exitready?",function(t){return t==null&&(t=new Map),"ready"},-1),o(f,"$before_exit",function(t){return t==null&&(t=new Map),!0},-1),o(f,"$exit",function(o){var r=this;return o==null&&(o=new Map),i(n(p("GxG"),"CONNECTION"),"application_close",[new Map([["application",r.process]])],function e(o){var i=e.$$s==null?this:e.$$s;return i.process==null&&(i.process=t),o==null&&(o=t),s(o["$is_a?"](n("Hash")))?a(o["$[]"]("result"),!0)?n(p("GxG"),"APPLICATIONS")["$[]"]("processes").$delete(i.process):i.$log_warn("Could not close application "+i.process.$inspect()+" : "+o.$inspect()):i.$log_warn("Malformed response: "+o.$inspect())},{$$s:r}),!0},-1),o(f,"$window_close",function(o){var a=this,r=t;return o==null&&(o=new Map),s(o["$is_a?"](n("Hash")))?s(p("GxG")["$valid_uuid?"](o["$[]"]("window")))?(r=n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_window(o["$[]"]("window")),s(r)?(i(a.viewports.$keys(),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t;return n==null&&(n=t),o=r.$find_child(n),s(o)?(o.$set_application(t),i.$unlink_viewport(n)):t},{$$s:a}),a.$unlink_window(r.$uuid()),n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$window_close(r.$uuid()),s(l(a.windows.$size(),0))?t:a.$exit()):t):a.$log_warn("Invalid Argument passed: "+o.$inspect()):t},-1),o(f,"$viewport_clear",function(n){var r=this,o=t;return n==null&&(n=t),o=r.$get_viewport(n),!!s(o)&&(i(o,"gxg_each_child",[],function(n){return n==null&&(n=t),a(n,o)?t:n.$destroy()}),!0)},-1)}(f[0],null,f)}(d[0],d)},Opal.modules["web/gxg_vdom"]=function(e){var h=e.module,_=e.class_variable_set,s=e.truthy,a=e.eqeq,g=e.range,c=e.rb_plus,l=e.defs,f=e.klass,o=e.def,p=e.return_ivar,i=e.send,m=e.rb_minus,d=e.thrower,r=e.rb_gt,u=e.class_variable_get,v=e.return_val,b=e.Class,F=e.slice,j=e.send2,y=e.find_super,M=e.to_a,w=e.const_set,A=e.not,x=e.gvars,C=e.alias,E=e.rb_ge,S=e.neqeq,O=e.return_self,k=[],t=e.nil,n=e.$$$;return e.add_stubs("is_any?,unpersist,==,[],to_s,downcase,extname,include?,+,relative_url,log_warn,inspect,to_sym,valid_properties,each,keys,[]=,to_i,-,style_sheet,>,<<,new,is_a?,name,rule_names,remove_rule,find_rule,size,index,gsub,expand_path,each_with_index,reverse,delete_at,native_object,to_a,create_element,factory,update_classes,_stylize,style,class,set_attribute,join,map,_before_create,before_create,create,_after_create,after_create,cascade,raise,component_class,title,settings,register_object,values,call,clone,shift,children,each_child,clearning_queue,unregister_object,page,delete,every_child,remove_listeners,forget_child,parent,element,unshift,vdom_path,split,each_pair,last,has_key?,uuid,set_state,!,get_state,add_state,merge_style,respond_to?,domtype,component,to_proc,method,remove_listener,parse,base64?,decode64,instance_eval,log_error,include,uuid_generate,find_object,puts,to_n,compile,find_child,included,each_included,send,start,animate,layout_refresh,find_parent_type,valid_uuid?,theme_icon,theme_background,theme_widget,theme_font,site_asset,attr_reader,dasherize,!~,strip,capitalize,set_settings,creation,set_text,root,build_components,disable,clear_attribute,type,to_f,version,>=,loaded?,library_pull,json?,process_import,load_library,set_busy,application_open,pull_object,merge,run,!=,add_child,set_application,get_viewport,link_viewport,link_window,track_deltas,set_script,on,close,build_page,find_object_by,detach,body,all_descendants,destroy,clear,clear_rules,refresh_css_cache,load_font,set_rule,load_libraries,load_page"),function(k,T){var D=h(k,"GxG"),z=[D].concat(T);return function(k,T){var D=h(k,"Gui"),z=[D].concat(T);return function(k,T){var N=h(k,"Vdom"),z=[N].concat(T),D=e.$r(z);return _(z[0],"@@CssCache",[]),_(z[0],"@@CssRuleProperties",new Map),l(N,"$load_font",function(o){var u,m,v,b,j,f=this,p=t,r=t,l=t,d=t,i=t,h=t;if(o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))){if(s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),a(o["$[]"]("resource_type"),"font-face")){if(p=(s(r=o["$[]"]("font_family"))?r:"Unknown").$to_s(),l=(s(r=o["$[]"]("font_style"))?r:"normal").$to_s(),d=(s(r=o["$[]"]("font_weight"))?r:400).$to_s(),s(o["$[]"]("format")))i=o["$[]"]("format").$to_s().$downcase();else switch(D("File").$extname(o["$[]"]("source")).$downcase().valueOf()){case".ttf":case".otf":i="truetype";break;case".eot":i="embedded-opentype";break;case".svg":i="svg";break;case".woff":i="woff";break;case".woff2":i="woff2";break;default:i="unknown"}return s(["sftp:","ftp:/","http:","https"]["$include?"](o["$[]"]("source")["$[]"](g(0,4,!1)).$downcase()))?h=o["$[]"]("source"):h=c(n(n("GxG"),"CONNECTION").$relative_url().$to_s(),o["$[]"]("source")),v=p.$to_s(),u="url('"+h+"')",m="format('"+i+"')",m=="format('unknown')"?(b=u):(b=u+" "+m),d=d,l=l,j=new FontFace(v,u,{weight:d,style:l}),j.load().then(function(e){document.fonts.add(e)}).catch(function(e){alert(e)}),!0}return f.$log_warn("You attempted to load a non-font resource as a font: "+o.$inspect()),!1}else return f.$log_warn("You attempted to load a font with the wrong value: "+o.$inspect()),!1},-1),function(a,r,c){var l=f(a,r,"CSSRule"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.native_rule=d.name=t,o(l,"$initialize",function(n){var o=this,i=t;return o.native_rule=n,o.name=(s(i=o.native_rule.selectorText)?i:"").$to_s().$to_sym()}),o(l,"$native_object",p("native_rule")),o(l,"$inspect",function(){var t=this;return""}),o(l,"$name",p("name")),o(l,"$keys",function(){return n(n(h("GxG"),"Gui"),"Vdom").$valid_properties()}),o(l,"$[]",function(t){var n=this;return n.native_rule.style[t]}),o(l,"$[]=",function(n,o){var a=this,i=t;return a.native_rule.style[n]=s(i=o)?i:"",o}),o(l,"$merge",function(n){var s=this;return n==null&&(n=new Map),i(n.$keys(),"each",[],function e(s){var o,a=e.$$s==null?this:e.$$s;return s==null&&(s=t),(o=[s,n["$[]"](s)],i(a,"[]=",o),o[o.length-1])},{$$s:s}),s},-1)}(z[0],null,z),l(N,"$style_sheet",function(){var o=t,a=t,o=t,a=document.styleSheets.length.$to_i();return function(){try{var n=d("break");return i(e.Range.$new(0,m(a,1),!1),"each",[],function e(i){var a=t;if(i==null&&(i=t),a=document.styleSheets[i],s(a))if(s(a.href.$to_s()["$include?"]("/themes/page.css")))o=a,n.$throw(t,e.$$is_lambda);else return t;else return t})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),o}),l(N,"$refresh_css_cache",function(){var a=t,l=t,c=t,u=t,h=t,d=t,a=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet();if(s(a)){l=[];try{c=a.cssRules}catch(t){if(e.rescue(t,[D("Exception")])){u=t;try{c=a.rules}finally{e.pop_exception(t)}}else throw t}s(c)&&(h=c.length.$to_i(),s(r(h,0))?d=m(c.length.$to_i(),1):d=0,i(e.Range.$new(0,d,!1),"each",[],function(i){var r=t;i==null&&(i=t);try{r=a.cssRules[i]}catch(t){if(e.rescue(t,[D("Exception")])){u=t;try{r=a.rules[i]}finally{e.pop_exception(t)}}else throw t}return s(r)?l["$<<"](n(n(n(D("GxG"),"Gui"),"Vdom"),"CSSRule").$new(r)):t})),_(z[0],"@@CssCache",l)}return!0}),l(N,"$valid_properties",function(){return u(z[0],"@@CssRuleProperties",!1).$keys()}),l(N,"$get_property_name",function(o){var i=t;return o==null&&(o=t),i=t,s(o["$is_a?"](n("Symbol")))&&(i=u(z[0],"@@CssRuleProperties",!1)["$[]"](o)),i},-1),l(N,"$rules",function(){var n=t,n=[];return i(u(z[0],"@@CssCache",!1),"each",[],function(s){return s==null&&(s=t),n["$<<"](s.$name())}),n}),l(N,"$rule_names",function(){var n=t,n=[];return i(u(z[0],"@@CssCache",!1),"each",[],function(s){return s==null&&(s=t),n["$<<"](s.$name())}),n}),l(N,"$find_rule",function(n){var s=t;return n==null&&(n=t),s=[],i(u(z[0],"@@CssCache",!1),"each",[],function(o){return o==null&&(o=t),a(o.$name(),n.$to_s().$to_sym())?s["$<<"](o):t}),s},-1),l(N,"$clear_rules",function(){var s=t,s=n(n(n("GxG"),"Gui"),"Vdom").$rule_names();return i(s,"each",[],function(s){return s==null&&(s=t),a(s,".hidden")?t:n(n(n("GxG"),"Gui"),"Vdom").$remove_rule(s)}),!0}),l(N,"$set_rule",function(l,d,h){var j=this,f=t,y=t,v=t,p=t,b=t,_=t;if(l==null&&(l=t),d==null&&(d=new Map),h==null&&(h=new Map([["merge",!0]])),f=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet(),s(f)){if(y=n(n(D("GxG"),"Gui"),"Vdom").$find_rule(l),s(r(y.$size(),0))&&n(n(D("GxG"),"Gui"),"Vdom").$remove_rule(l),v=n(n("GxG"),"CONNECTION").$relative_url(),p="{ ",i(d.$keys(),"each",[],function(o){var r=t,l=t,i=t;return o==null&&(o=t),r=d["$[]"](o).$to_s(),s(r["$include?"]("url("))&&(l=r.$index(")"),i=r["$[]"](e.Range.$new(4,m(l,1),!1)),(a(i["$[]"](0),"'")||a(i["$[]"](0),'"'))&&(i=i["$[]"](g(1,-1,!1))),(a(i["$[]"](-1),"'")||a(i["$[]"](-1),'"'))&&(i=i["$[]"](g(0,-2,!1))),s(i["$include?"]("data:"))||s(i["$include?"]("http:"))||s(i["$include?"]("https:"))||a(i["$[]"](e.Range.$new(0,m(v.$size(),1),!1)),v)||(r=c(c("url('",D("File").$expand_path(c(c(v,"/"),i))),"')").$gsub("//","/"))),p=c(p,""+o.$to_s()+": "+r.$to_s()+"; ")}),p=c(p," }"),a(f.insertRule(c(l.$to_s(),p.$to_s()),f.cssRules.length).$to_i(),(f.cssRules.length-1).$to_i())){try{b=f.cssRules[f.cssRules.length-1]}catch(t){if(e.rescue(t,[D("Exception")])){_=t;try{b=f.rules[f.cssRules.length-1]}finally{e.pop_exception(t)}}else throw t}return u(z[0],"@@CssCache",!1)["$<<"](n(n(n(D("GxG"),"Gui"),"Vdom"),"CSSRule").$new(b)),!0}return j.$log_warn("GxG Style Sheet Rule creation failed.."),!1}else return j.$log_warn("GxG Style Sheet not found."),!1},-1),l(N,"$remove_rule",function(c){var d=t,l=t;return c==null&&(c=t),d=[],i(u(z[0],"@@CssCache",!1),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a(n.$name(),c.$to_s().$to_sym())||a(n.$name(),c.$to_s())?d["$<<"](s):t}),l=[],i(d.$reverse(),"each",[],function(n){return n==null&&(n=t),l["$<<"](u(z[0],"@@CssCache",!1).$delete_at(n))}),!!s(r(l.$size(),0))&&(i(l,"each",[],function(a){var d=t,c=t,l=t;return a==null&&(a=t),d=a.$native_object(),c=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet(),s(c)?(l=c.cssRules.length.$to_i(),s(r(l,0))?i(e.Range.$new(0,m(l,1),!1).$to_a().$reverse(),"each",[],function(n){var o=t;return n==null&&(n=t),o=c.cssRules[n],s(o)&&s(d.selectorText==o.selectorText)?c.deleteRule(n):t}):t):t}),!0)},-1),function(l,u){var f=h(l,"ElementMethods"),w=[f].concat(u),_=e.$r(w);return o(f,"$_before_create",v(t)),o(f,"$before_create",v(t)),o(f,"$create",function(){var n=this;return n.domtype==null&&(n.domtype=t),n.parent==null&&(n.parent=t),n.options==null&&(n.options=t),s(n.domtype)?n.element=n.$factory().$create_element(n,n.domtype,n.parent,n.options):t}),o(f,"$_after_create",function(){var t=this;return t.$update_classes(),t.$_stylize()}),o(f,"$after_create",v(t)),o(f,"$style",function(){var n=this,o=t;return n.style==null&&(n.style=t),n.style=s(o=n.style)?o:new Map}),o(f,"$_stylize",function(){var s=this,n=t,n=s.$style();return a(n.$class(),_("Hash"))?s.$set_attribute("style",i(n,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+":"+s+";"}).$join()):t}),o(f,"$cascade",v(t)),o(f,"$creation",function(){var t=this;return t.$_before_create(),t.$before_create(),t.$create(),t.$_after_create(),t.$after_create(),t.$_stylize(),t.$cascade()}),o(f,"$add_child",function(o,i){var c=this,r=t,l=t;return c.children==null&&(c.children=t),o==null&&(o=new Map),i==null&&(i=new Map),r=t,a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"unknown")?c.$raise("Unknown Component Type"):(l=n(_("GxG"),"Gui").$component_class(o["$[]"]("component").$to_s().$downcase().$to_sym()),s(l["$is_a?"](b))?(r=l.$new(c,o,i),c.children["$[]="](r.$title().$to_s().$to_sym(),r),s(i["$[]"]("template_uuid"))&&r.$settings()["$[]="]("template_uuid",i["$[]"]("template_uuid")),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$register_object(r.$title(),r)):c.$raise("Unknown Component Type")),r},-1),o(f,"$each_child",function e(){var s=e.$$p||t,n=this;return n.children==null&&(n.children=t),e.$$p=null,i(n.children.$values(),"each",[],function(n){return n==null&&(n=t),s.$call(n)})}),o(f,"$all_descendants",function e(){var a=e.$$p||t,n=this,o=t;for(n.children==null&&(n.children=t),n.process_queue==null&&(n.process_queue=t),e.$$p=null,n.process_queue=n.children.$values().$clone();s(r(n.process_queue.$size(),0));)o=n.process_queue.$shift(),s(o)&&(a.$call(o),s(r(o.$children().$values().$size(),0))&&i(o,"each_child",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.process_queue==null&&(s.process_queue=t),n==null&&(n=t),s.process_queue["$<<"](n)},{$$s:n}))}),o(f,"$forget_children",function(){var n=this,a=t,o=t;for(n.children==null&&(n.children=t),a=n.children.$values();s(r(n.$clearning_queue().$size(),0));)o=a.$shift(),s(o)&&(i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),a["$<<"](n)}),n.$page().$unregister_object(o.$title().$to_s()));return n.children=new Map}),o(f,"$forget_child",function(n){var s=this;return s.children==null&&(s.children=t),s.$page().$unregister_object(n),s.children.$delete(n.$to_s().$to_sym())}),o(f,"$entity_content",function(){var n=this;return n.children==null&&(n.children=t),n.children.$values()}),o(f,"$destroy",function(){var n=this;return n.title==null&&(n.title=t),i(n,"every_child",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),n.$remove_listeners(),s.$page().$unregister_object(n.$title().$to_s())},{$$s:n}),n.$remove_listeners(),n.$parent().$forget_child(n.title.$to_s()),n.$parent().$element().removeChild(n.$element()),!0}),o(f,"$vdom_path",function(){var o=this,d=t,i=t,l=t,n=t;if(o.parent==null&&(o.parent=t),d="/",s(o.parent)){for(i=[],l=[o];s(r(l.$size(),0));)n=l.$unshift(),s(n)&&(a(o.$page(),n)||i["$<<"](n.$title().$to_s()),s(n.$parent())&&l["$<<"](n.$parent()));s(r(i.$size(),0))&&(d=c("/",i.$reverse().$join("/")))}return d}),o(f,"$vdom_object",function(n){var u=this,c=t,l=t,o=t;return n==null&&(n=t),c=t,s(n)&&(n=n.$to_s(),(a(n["$[]"](g(0,1,!1)),"./")||a(n["$[]"](g(0,1,!1)),".."))&&(n=_("File").$expand_path(n,u.$vdom_path())),l=n.$split("/"),o=[],function(){try{var e=d("break");return i(l,"each_with_index",[],function n(c,u){var h,f=n.$$s==null?this:n.$$s;if(c==null&&(c=t),u==null&&(u=t),a(c,"")){if(a(u,0))return h=[u,f.$page()],i(o,"[]=",h),h[h.length-1];e.$throw(t,n.$$is_lambda)}else return s(r(u,0))&&s(o["$[]"](m(u,1)))?function(){try{var e=d("break");return i(o["$[]"](m(u,1)).$children(),"each_pair",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),a(s,l["$[]"](u)))o["$[]="](u,i),e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}():t},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s(o.$last())&&(c=o.$last())),c},-1),o(f,"$method_missing",function e(n){var a,r,c=e.$$p||t,i=this;return i.children==null&&(i.children=t),e.$$p=null,a=F(arguments,1),r=a,s(i.children["$has_key?"](n))?i.children["$[]"](n):j(i,y(i,"method_missing",e,!1,!0),"method_missing",[n].concat(M(r)),c)},-2),o(f,"$dom_id",function(){var t=this;return t.$uuid().$to_s()}),o(f,"$title",p("title")),o(f,"$update_classes",function(){var o=this,n=t,l=t;return o.element==null&&(o.element=t),o.states==null&&(o.states=t),n="",l=o.element.className.$split(" "),i(l,"each_with_index",[],function e(o,i){var r=e.$$s==null?this:e.$$s;return r.states==null&&(r.states=t),o==null&&(o=t),i==null&&(i=t),s(r.states.$keys()["$include?"](o.$to_s().$to_sym()))?t:(n=c(n,o),a(o,l.$last())?t:n=c(n," "))},{$$s:o}),s(r(o.states.$keys().$size(),0))&&(n=c(n," ")),i(o.states,"each_pair",[],function e(s,o){var i=e.$$s==null?this:e.$$s;return i.states==null&&(i.states=t),s==null&&(s=t),o==null&&(o=t),a(o,!0)?(n=c(n,s.$to_s()),a(i.states.$keys().$last(),s)?t:n=c(n," ")):t},{$$s:o}),o.element.className=n.$to_s(),!0}),o(f,"$option_replace",function(n,o){var i=this,a=t,r=t;return i.options==null&&(i.options=t),o==null&&(o=t),a=s(r=i.options["$[]"](n))?r:o,s(i.options["$has_key?"](n))&&i.options.$delete(n),a},-2),o(f,"$set_state",function(n,s){var o=this;return o.states==null&&(o.states=t),s==null&&(s=!1),a(s,!0)?o.states["$[]="](n.$to_s().$to_sym(),!0):o.states["$[]="](n.$to_s().$to_sym(),!1),o.$update_classes()},-2),o(f,"$set_states",function(n){var s=this;return n==null&&(n=new Map),i(n,"each_pair",[],function e(n,s){var o,r=e.$$s==null?this:e.$$s;return r.states==null&&(r.states=t),n==null&&(n=t),s==null&&(s=t),a(s,!0)?(o=[n.$to_s().$to_sym(),!0],i(r.states,"[]=",o),o[o.length-1]):(o=[n.$to_s().$to_sym(),!1],i(r.states,"[]=",o),o[o.length-1])},{$$s:s}),s.$update_classes()},-1),o(f,"$get_state",function(n){var o=this,i=t;return o.states==null&&(o.states=t),!!s(i=o.states["$[]"](n.$to_s().$to_sym()))&&i}),o(f,"$get_states",p("states")),o(f,"$toggle_state",function(t){var n=this;return n.$set_state(t,n.$get_state(t)["$!"]())}),o(f,"$set_application",function(n){var s=this;return n==null&&(n=t),s.application=n},-1),o(f,"$application",p("application")),o(f,"$state_active?",function(n){var s=this;return s.states==null&&(s.states=t),s.states.$keys()["$include?"](n.$to_s().$to_sym())}),o(f,"$add_states",function(n){var s=this;return i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$add_state(n)},{$$s:s})}),o(f,"$add_state",function(t,n){var s=this;return n==null&&(n=!1),s.$set_state(t,n)},-2),o(f,"$value",function(){var n=this;return n.element==null&&(n.element=t),n.element.innerHTML}),o(f,"$get_text",function(){var n=this;return n.element==null&&(n.element=t),n.element.textContent}),o(f,"$value=",function(n){var s=this;return s.element==null&&(s.element=t),s.element.value=n}),o(f,"$set_text",function(n){var s=this;return s.element==null&&(s.element=t),s.element.textContent=n}),o(f,"$html",function(n){var s=this;return s.element==null&&(s.element=t),s.element.innerHTML=n}),o(f,"$set_style",function(o){var r=this,a=t;return r.element==null&&(r.element=t),o==null&&(o=new Map),a="",!!s(o["$is_a?"](n("Hash")))&&(i(o,"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a=c(c(a,""+n.$to_s()+": "),""+s.$to_s()+";")}),r.element.setAttribute("style",a),!0)},-1),o(f,"$merge_style",function(o){var a=this;return o==null&&(o=new Map),!!s(o["$is_a?"](n("Hash")))&&(i(o,"each_pair",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$element().style[n]=s.$to_s()},{$$s:a}),!0)},-1),o(f,"$set_bg_color",function(t){var n=this;return t==null&&(t=0),n.$merge_style(new Map([["background-color","#"+t.$to_s()]]))},-1),o(f,"$get_attribute",function(n){var r=this,a=t,o=t,i=t;return n==null&&(n=t),a="",s(n)&&(o=r.$element(),i=t,o.getAttributeNames().includes(n)&&(o.getAttribute(n)!=null?i=o.getAttribute(n):i=!0),a=i.$to_s()),a},-1),o(f,"$set_attribute",function(n,o){var a=this,i=t;return n==null&&(n=t),o==null&&(o=t),i=!1,s(n)&&(s(o)?i=a.$element().setAttribute(n,o):i=a.$element().setAttribute(n,null)),i},-1),o(f,"$clear_attribute",function(n){var i=this,o=t;return n==null&&(n=t),o=!1,s(n)&&(i.$element().removeAttribute(n),o=!0),o},-1),o(f,"$each_child",function e(){var o=e.$$p||t,n=this;return n.children==null&&(n.children=t),e.$$p=null,s(o["$respond_to?"]("call"))?i(n.children.$values(),"each",[],function(n){return n==null&&(n=t),o.$call(n)}):n.children.$values().$each()}),o(f,"$every_child",function e(){var c=e.$$p||t,l=this,n=t,o=t,a=t;for(e.$$p=null,n=[],o=[l];s(r(o.$size(),0));)a=o.$shift(),s(a)&&s(r(a.$children().$keys().$size(),0))&&i(a.$children().$values(),"each",[],function(i){return i==null&&(i=t),n["$<<"](i),s(r(i.$children().$keys().$size(),0))?o["$<<"](i):t});return s(c["$respond_to?"]("call"))?i(n,"each",[],function(n){return n==null&&(n=t),c.$call(n)}):n.$values().$each()}),o(f,"$find_child",function(n){var l=this,i=t,c=t,o=t;for(n==null&&(n=t),i=t,c=l.$children().$values();s(r(c.$size(),0));)if(o=c.$shift(),s(o)&&(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))){i=o;break}return i},-1),o(f,"$find_descendant",function(n){var d=this,c=t,l=t,o=t;for(n==null&&(n=t),c=t,l=d.$children().$values();s(r(l.$size(),0));)if(o=l.$shift(),s(o)){if(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n)){c=o;break}s(c)||i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return c},-1),o(f,"$find_descendants",function(n){var d=this,l=t,c=t,o=t;for(n==null&&(n=t),l=[],c=d.$children().$values();s(r(c.$size(),0));)o=c.$shift(),s(o)&&((a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))&&l["$<<"](o),i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)}));return l},-1),o(f,"$find_ancestor",function(n){var l=this,c=t,i=t,o=t;for(n==null&&(n=t),c=t,i=[l.$parent()];s(r(i.$size(),0));)if(o=i.$shift(),s(o)){if(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n)){c=o;break}a(o.$component(),"page")||i["$<<"](o.$parent())}return c},-1),o(f,"$find_ancestors",function(n){var l=this,c=t,i=t,o=t;for(n==null&&(n=t),c=[],i=[l.$parent()];s(r(i.$size(),0));)o=i.$shift(),s(o)&&((a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))&&c["$<<"](o),a(o.$component(),"page")||i["$<<"](o.$parent()));return c},-1)}(z[0],z),function(a,c){var l=h(a,"EventHandlers"),d=[l].concat(c),u=e.$r(d);return w(d[0],"EVENT_TYPES",e.large_array_unpack("abort,afterprint,animatedend,animationiteration,animationstart,beforeprint,beforeunload,blur,canplay,canplaythrough,change,click,contextmenu,copy,cut,dblclick,drag,dragend,dragcenter,dragleave,dragover,dragstart,drop,durationchange,ended,error,focus,focusin,focusout,fullscreenchange,fullscreenerror,hashchange,input,invalid,keydown,keypress,keyup,load,loadeddata,loadedmetadata,loadstart,message,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,offline,online,open,pagehide,pageshow,paste,play,playing,popstate,progress,ratechange,resize,reset,scroll,search,seeked,select,show,stalled,storage,submit,suspend,timeupdate,toggle,touchcancel,touchend,touchmove,touchstart,transitionend,unload,volumechange,waiting,wheel")),w(d[0],"EVENT_GENRES",new Map([["click","mouse"],["contextmenu","mouse"],["dblclick","mouse"],["mouseenter","mouse"],["mouseleave","mouse"],["mouseover","mouse"],["mouseup","mouse"],["mousedown","mouse"],["mousemove","mouse"],["mouseout","mouse"],["keydown","keyboard"],["keypress","keyboard"],["keyup","keyboard"],["touchcancel","touch"],["touchmove","touch"],["touchstart","touch"],["touchend","touch"],["animationstart","animation"],["animationend","animation"],["animationiteration","animation"],["animationpause","animation"],["animationresume","animation"],["animationstop","animation"],["input","input"],["drag","drag"],["dragend","drag"],["dragenter","drag"],["dragleave","drag"],["dragover","drag"],["dragstart","drag"],["drop","drag"],["wheel","wheel"],["abort","ui"],["beforeunload","ui"],["error","ui"],["load","ui"],["resize","ui"],["scroll","ui"],["select","ui"],["unload","ui"],["blur","focus"],["focus","focus"],["focusin","focus"],["focusout","focus"],["afterprint","event"],["beforeprint","event"],["canplay","event"],["canplaythrough","event"],["change","event"],["fullscreenchange","event"],["fullscreenerror","event"],["invalid","event"],["loadeddata","event"],["loadedmetadata","event"],["message","event"],["offline","event"],["online","event"],["open","event"],["close","event"],["pause","event"],["play","event"],["playing","event"],["progress","event"],["changerate","event"],["reset","event"],["search","event"],["seek","event"],["seeking","event"],["show","event"],["hide","event"],["stalled","event"],["submit","event"],["suspend","event"],["timeupdate","event"],["toggle","event"],["waiting","event"],["copy","clipboard"],["cut","clipboard"],["paste","clipboard"],["pagehide","transition"],["pageshow","transition"],["popstate","history"],["loadstart","progress"],["storage","storage"],["credentialchanged","ui"]])),w(d[0],"EVENT_FIELDS",new Map([["mouse",["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["keyboard",["altKey","charCode","code","ctrlKey","metaKey","isComposing","key","keyCode","location","shift","repeat","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["touch",["altKey","ctrlKey","metaKey","shiftKey","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["animation",["animationName","elapsedTime","pseudoElement","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["input",["data","inputType","isComposing","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["drag",["dataTranser","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["wheel",["deltaX","deltaY","deltaZ","deltaMode","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["ui",["detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["focus",["relatedTarget","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["event",["bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["transition",["persisted","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["history",["state","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["progress",["lengthComputable","loaded","total","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["storage",["key","newValue","oldValue","storageArea","url","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["clipboard",["clipboardData","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]]])),o(l,"$on",function e(o,i){var c=e.$$p||t,a=this,r=t;return a.event_handlers==null&&(a.event_handlers=t),a.event_listeners==null&&(a.event_listeners=t),e.$$p=null,o==null&&(o=t),i==null&&(i=!1),r=!1,s(a.event_handlers["$is_a?"](n("Hash")))||(a.event_handlers=new Map,a.event_listeners=new Map),s(o["$is_any?"](n("String"),n("Symbol")))&&s(c["$respond_to?"]("call"))&&(a.event_handlers["$[]="](o.$to_s().$downcase().$to_sym(),c),a.event_listeners["$[]="](o.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(o.$to_s().$downcase(),a.event_listeners["$[]"](o.$to_s().$downcase().$to_sym()),i),r=!0),r},-1),o(l,"$remove_listener",function(n){var o=this;return o.event_listeners==null&&(o.event_listeners=t),o.event_handlers==null&&(o.event_handlers=t),n==null&&(n=t),s(o.event_handlers["$[]"](n.$to_s().$downcase().$to_sym()))&&s(o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym()))&&(o.$element().removeEventListener(n.$to_s().$downcase(),o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym())),o.event_handlers.$delete(n.$to_s().$downcase().$to_sym()),o.event_listeners.$delete(n.$to_s().$downcase().$to_sym())),!0},-1),o(l,"$remove_listeners",function(){var n=this;return n.event_handlers==null&&(n.event_handlers=t),i(n.event_handlers.$keys().$clone(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$remove_listener(n)},{$$s:n}),!0}),o(l,"$event_handler",function(o){var a=this,r=t,i=t,c=t,l=t,d=t;return a.event_handlers==null&&(a.event_handlers=t),r=o.type.$to_s().$downcase().$to_sym(),i=new Map,s(a.event_handlers["$[]"](r))?(c=s(l=n(n(n(n(u("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_GENRES")["$[]"](r))?l:"event",s(c)&&(d=n(n(n(n(u("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_FIELDS")["$[]"](c),s(d)&&(serializer=function(t){if(t){var n={eventName:t.toString(),altKey:t.altKey,bubbles:t.bubbles,button:t.button,buttons:t.buttons,cancelBubble:t.cancelBubble,cancelable:t.cancelable,clientX:t.clientX,clientY:t.clientY,composed:t.composed,ctrlKey:t.ctrlKey,currentTarget:t.currentTarget?t.currentTarget.outerHTML:null,defaultPrevented:t.defaultPrevented,detail:t.detail,eventPhase:t.eventPhase,fromElement:t.fromElement?t.fromElement.outerHTML:null,isTrusted:t.isTrusted,layerX:t.layerX,layerY:t.layerY,metaKey:t.metaKey,movementX:t.movementX,movementY:t.movementY,offsetX:t.offsetX,offsetY:t.offsetY,pageX:t.pageX,pageY:t.pageY,relatedTarget:t.relatedTarget?t.relatedTarget.outerHTML:null,returnValue:t.returnValue,screenX:t.screenX,screenY:t.screenY,shiftKey:t.shiftKey,sourceCapabilities:t.sourceCapabilities?t.sourceCapabilities.toString():null,target:t.target?t.target.outerHTML:null,timeStamp:t.timeStamp,toElement:t.toElement?t.toElement.outerHTML:null,type:t.type,view:t.view?t.view.toString():null,which:t.which,x:t.x,y:t.y};return n}},i=JSON.stringify(serializer(o)),i=n("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])))),a.event_handlers["$[]"](r).$call(i)):t}),o(l,"$set_script",function(o,i){var a=this,c=t,l=t;if(o==null&&(o=""),i==null&&(i=t),c=!1,s(r(o.$size(),0)))try{s(o["$base64?"]())&&(o=o.$decode64()),s(i)?(i.$remove_listeners(),i.$instance_eval(o)):(a.$remove_listeners(),a.$instance_eval(o)),c=!0}catch(t){if(e.rescue(t,[u("Exception")])){l=t;try{a.$log_error(new Map([["error",l],["parameters",new Map([["script",o]])]]))}finally{e.pop_exception(t)}}else throw t}return c},-1)}(z[0],z),function(c,l,d){var u=f(c,l,"Animation"),v=[u].concat(d),h=e.$r(v),g=u.$$prototype;return g.target_list=g.targets=g.origin=g.destination=g.options=g.tweens=t,u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"EventHandlers")),o(u,"$initialize",function(o,a){var r=this,c=t,l=t,d=t;return o==null&&(o=new Map),a==null&&(a=t),r.event_handlers=new Map,r.event_listeners=new Map,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$[]"]("origin"))?s(o["$[]"]("origin")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.origin=o["$[]"]("origin").$unpersist():r.origin=o["$[]"]("origin"):r.origin=t,s(o["$[]"]("destination"))||r.$raise(h("ArgumentError"),"You MUST provide a :destination state for the object."),s(o["$[]"]("destination")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.destination=o["$[]"]("destination").$unpersist():r.destination=o["$[]"]("destination"),s(o["$[]"]("options"))?(r.options=new Map,s(o["$[]"]("options")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?c=o["$[]"]("options").$unpersist():c=o["$[]"]("options"),l=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(c,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.event_handlers==null&&(r.event_handlers=t),r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(l.$keys()["$include?"](n))?s(o["$respond_to?"]("call"))?(r.event_handlers["$[]="](n,o),(a=[n,o],i(r.options,"[]=",a),a[a.length-1])):r.$log_warn("Attempted to pass an invalid object as an event handler. "+n.$inspect()+" --> "+o.$inspect()):(a=[n,o],i(r.options,"[]=",a),a[a.length-1])},{$$s:r})):r.options=t,s(o["$[]"]("targets"))||r.$raise(h("ArgumentError"),"You MUST provide a one or more :targets."),s(o["$[]"]("targets")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.target_list=o["$[]"]("targets").$unpersist():r.target_list=o["$[]"]("targets")),r.uuid=(s(d=a)?d:n("GxG").$uuid_generate()).$to_s().$to_sym(),r.targets=t,r.tweens=[],r},-1),o(u,"$update_targets",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.target_list=o.$unpersist():a.target_list=o,i=!0),i},-1),o(u,"$update_origin",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.origin=o.$unpersist():a.origin=o,i=!0),i},-1),o(u,"$update_destination",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.destination=o.$unpersist():a.destination=o,i=!0),i},-1),o(u,"$update_options",function(o){var c=this,a=t,r=t,l=t;return o==null&&(o=t),a=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r=o.$unpersist():r=o,c.options=new Map,l=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(r,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.event_handlers==null&&(r.event_handlers=t),r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(l.$keys()["$include?"](n))?s(o["$respond_to?"]("call"))?(r.event_handlers["$[]="](n,o),(a=[n,o],i(r.options,"[]=",a),a[a.length-1])):r.$log_warn("Attempted to pass an invalid object as an event handler. "+n.$inspect()+" --> "+o.$inspect()):(a=[n,o],i(r.options,"[]=",a),a[a.length-1])},{$$s:c}),a=!0),a},-1),o(u,"$uuid",p("uuid")),o(u,"$compile",function(){var c=this,f=t,g=t,d=t,u=t,l=t,p=t,v=t,f=!1;try{c.targets=[],g=[],i(c.target_list.$keys(),"each",[],function o(c){var l=o.$$s==null?this:o.$$s;return l.target_list==null&&(l.target_list=t),c==null&&(c=t),a(c,"class")&&(s(l.target_list["$[]"]("class")["$is_a?"](n("String")))||l.$raise(h("Exception"),"You MUST provide :class target as a String, not: "+l.target_list["$[]"]("class").$class().$inspect()),i(l.target_list["$[]"]("class").$split(" "),"each",[],function n(o){var l=n.$$s==null?this:n.$$s,a=t,c=t;return o==null&&(o=t),s(r(o.$size(),0))?(a=document.getElementsByClassName(o),c=a.length.$to_i(),s(r(c,0))?i(e.Range.$new(0,m(c,1),!1),"each",[],function e(n){var o=e.$$s==null?this:e.$$s,i=t;return o.targets==null&&(o.targets=t),n==null&&(n=t),i=a.item(n),s(o.targets["$include?"](i))?t:o.targets["$<<"](i)},{$$s:l}):t):t},{$$s:l})),a(c,"objects")&&(s(l.target_list["$[]"]("objects")["$is_a?"](n("Array")))||l.$raise(h("Exception"),"You MUST provide :object target list as an Array, not: "+l.target_list["$[]"]("objects").$class().$inspect()),i(l.target_list["$[]"]("objects"),"each",[],function e(o){var i=e.$$s==null?this:e.$$s,r=t,c=t,a=t;return i.targets==null&&(i.targets=t),o==null&&(o=t),r=n(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_object(o.$to_s().$to_sym()),s(r)?(c=r.$element().attributes.getNamedItem("id")||0,s(c==0)?t:(a=document.getElementById(c),s(a)?s(i.targets["$include?"](a))?t:i.targets["$<<"](a):t)):t},{$$s:l})),a(c,"elements")&&(s(l.target_list["$[]"]("elements")["$is_a?"](n("Array")))||l.$raise(h("Exception"),"You MUST provide :elements target list as an Array, not: "+l.target_list["$[]"]("elements").$class().$inspect()),i(l.target_list["$[]"]("elements"),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t,a=t;return i.targets==null&&(i.targets=t),n==null&&(n=t),o=n.attributes.getNamedItem("id")||0,s(o==0)?t:(o=o.value,a=document.getElementById(o),s(a)?s(i.targets["$include?"](a))?t:i.targets["$<<"](a):t)},{$$s:l})),(a(c,"assets"),t)},{$$s:c}),s(r(c.targets.$size(),0))||c.$puts("No valid targets resulted."),i(c.targets,"each",[],function(n){return n==null&&(n=t),g.push(n)}),s(c.origin["$is_a?"](n("Hash")))?s(r(c.origin.$size(),0))?(d=new Map,i(c.origin,"each_pair",[],function(n,s){var o,r=t;return n==null&&(n=t),s==null&&(s=t),a(n,"attribue")||a(n,"attribute")?r="attr":r=n,(o=[r,s],i(d,"[]=",o),o[o.length-1])})):d=t:d=t,s(r(c.destination.$size(),0))?(u=new Map,i(c.destination,"each_pair",[],function(n,s){var o,r=t;return n==null&&(n=t),s==null&&(s=t),a(n,"attribue")||a(n,"attribute")?r="attr":r=n,(o=[r,s],i(u,"[]=",o),o[o.length-1])})):c.$raise(h("Exception"),"You MUST define a valid :destination state. not: "+c.destination.$inspect()),s(c.options["$is_a?"](n("Hash")))?s(r(c.options.$size(),0))?(l=new Map,p=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(c.options,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s,c=t;return r.event_handlers==null&&(r.event_handlers=t),n==null&&(n=t),o==null&&(o=t),s(p.$keys()["$include?"](n))?(c=p["$[]"](n),s(r.event_handlers["$[]"](n)["$respond_to?"]("call"))?(a=[c,r.event_handlers["$[]"](n)],i(l,"[]=",a),a[a.length-1]):t):s(["start_time"]["$include?"](n))?t:(a=[n,o],i(l,"[]=",a),a[a.length-1])},{$$s:c})):l=t:l=t,c.tweens=[],i(c.targets,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return o.tweens==null&&(o.tweens=t),n==null&&(n=t),s(d)?s(l)?o.tweens["$<<"](KUTE.fromTo(n,d.$to_n(),u.$to_n(),l.$to_n())):o.tweens["$<<"](KUTE.fromTo(n,d.$to_n(),u.$to_n())):s(l)?o.tweens["$<<"](KUTE.to(n,u.$to_n(),l.$to_n())):o.tweens["$<<"](KUTE.to(n,u.$to_n()))},{$$s:c}),f=!0}catch(n){if(e.rescue(n,[h("Exception")])){v=n;try{c.$log_error(new Map([["error",v]])),c.targets=t,c.tweens=[]}finally{e.pop_exception(n)}}else throw n}return f}),o(u,"$start",function(o){var a=this;return o==null&&(o=t),s(r(a.tweens.$size(),0))||a.$compile(),s(o["$is_a?"](n("Numeric")))||(o=window.performance.now()),s(r(a.tweens.$size(),0))?i(a.tweens,"each",[],function(n){return n==null&&(n=t),n.start(o)}):t},-1),o(u,"$stop",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.stop()}):t}),o(u,"$pause",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.pause()}):t}),o(u,"$resume",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.resume()}):t}),o(u,"$included",function(){var a=this,o=t,o=[];return s(a.targets)&&i(a.targets,"each",[],function(i){var a=t,r=t;return i==null&&(i=t),a=i.attributes.getNamedItem("id")||0,s(a==0)?t:(a=a.value,r=n(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_child(a.$to_s()),s(r)?o["$<<"](r):t)}),o}),o(u,"$each_included",function e(){var n=e.$$p||t,o=this;return e.$$p=null,s(n["$respond_to?"]("call"))?i(o.$included(),"each",[],function(s){return s==null&&(s=t),n.$call(s)}):o.$included().$each()}),o(u,"$broadcast",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=t),i(o,"each_included",[],function(o){return o==null&&(o=t),o.$send(n,s)})},-1)}(z[0],null,z),function(a,r){var l=h(a,"AnimationSupport"),d=[l].concat(r),c=e.$r(d);return o(l,"$animate",function(o){var r=this,i=t,a=t;return o==null&&(o=t),s(o["$[]"]("destination")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(i=n(n(n(n("GxG"),"Gui"),"Vdom"),"Animation").$new(new Map([["targets",new Map([["elements",[r.$element()]]])],["origin",o["$[]"]("origin")],["destination",o["$[]"]("destination")],["options",o["$[]"]("options")]])),a=window.performance.now(),s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a=o["$[]"]("options")["$[]"]("start_time")),i.$compile(),i.$start(a),!0):(r.$log_warn("Ignoring invalid animation: NO valid :destination state specified (required). not: "+o["$[]"]("destination").$inspect()),!1)},-1),o(l,"$show",function e(o){var r=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),s(o["$[]"]("destination")["$is_a?"](n("Hash")))&&s(o["$[]"]("destination")["$[]"]("opacity")["$is_a?"](n("Numeric")))&&(s(o["$[]"]("origin")["$is_a?"](n("Hash")))?s(o["$[]"]("origin")["$[]"]("opacity")["$is_a?"](n("Numeric")))?a.$merge_style(new Map([["opacity",o["$[]"]("origin")["$[]"]("opacity")]])):a.$merge_style(new Map([["opacity",0]])):a.$merge_style(new Map([["opacity",0]]))),a.$set_state("hidden",!1),s(r["$respond_to?"]("call"))&&(s(o["$[]"]("options"))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",i(c("Proc"),"new",[],function(){return r.$call()}))),a.$animate(o)):(a.$set_state("hidden",!1),s(r["$respond_to?"]("call"))&&r.$call()),n(n("GxG"),"Gui").$layout_refresh(),!0},-1),o(l,"$hide",function e(o){var l=e.$$p||t,a=this,r=t,d=t;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),s(l["$respond_to?"]("call"))?(s(o["$[]"]("options"))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0),l.$call()},{$$s:a}))):(r=t,s(o["$[]"]("options"))?s(o["$[]"]("options")["$[]"]("animationend")["$respond_to?"]("call"))?(d=o["$[]"]("options")["$[]"]("animationend"),r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return d.$call(),t.$set_state("hidden",!0)},{$$s:a})):r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0)},{$$s:a}):(o["$[]="]("options",new Map),r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0)},{$$s:a})),s(r)&&(s(o["$[]"]("options")["$is_a?"](n("Hash")))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",r))),a.$animate(o)):(a.$set_state("hidden",!0),s(l["$respond_to?"]("call"))&&l.$call()),n(n("GxG"),"Gui").$layout_refresh(),!0},-1)}(z[0],z),function(c,l){var d=h(c,"ApplicationSupport"),m=[d].concat(l),u=e.$r(m);return o(d,"$find_parent_type",function(o){var l=this,c=t,a=t,i=t;if(o==null&&(o=t),c=t,s(o["$is_any?"](b,n("String"),n("Symbol")))&&(s(o["$is_any?"](n("String"),n("Symbol")))&&(o=n(u("GxG"),"Gui").$component_class(o.$to_s().$to_sym())),s(o["$is_a?"](b))))for(a=[l];s(r(a.$size(),0));)if(i=a.$shift(),s(i)){if(s(i["$is_a?"](o))){c=i;break}a["$<<"](i.$parent())}return c},-1),o(d,"$viewport",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"ApplicationViewport"))}),o(d,"$tree_node",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"TreeNode"))}),o(d,"$tree",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Tree"))}),o(d,"$window",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Window"))}),o(d,"$find_parent",function(n){var d=this,i=t,l=t,c=t,o=t;for(n==null&&(n=t),i=t,s(u("GxG")["$valid_uuid?"](n))?l=!0:l=!1,c=[d.$parent()];s(r(c.$size(),0));)if(o=c.$shift(),s(o)){if(s(l)){if(a(o.$uuid(),n)){i=o;break}}else if(a(o.$title(),n)){i=o;break}s(i)||c["$<<"](o.$parent())}return i},-1),o(d,"$find_child_type",function(o){var l=this,a=t,c=t,i=t;if(o==null&&(o=t),a=t,s(o["$is_any?"](b,n("String"),n("Symbol")))&&(s(o["$is_any?"](n("String"),n("Symbol")))&&(o=n(u("GxG"),"Gui").$component_class(o.$to_s().$to_sym())),s(o["$is_a?"](b))))for(c=l.$children().$values();s(r(c.$size(),0));)if(i=c.$shift(),s(i)&&s(i["$is_a?"](o))){a=i;break}return a},-1),o(d,"$find_child",function(n){var h=this,c=t,d=t,l=t,o=t;for(n==null&&(n=t),c=t,s(u("GxG")["$valid_uuid?"](n))?d=!0:d=!1,l=h.$children().$values();s(r(l.$size(),0));)if(o=l.$shift(),s(o)){if(s(d)){if(a(o.$uuid(),n)){c=o;break}}else if(a(o.$title(),n)){c=o;break}s(c)||i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return c},-1),o(d,"$find_peer",function(n){var s=this;return n==null&&(n=t),s.$parent().$find_child(n)},-1)}(z[0],z),function(s,i){var a=h(s,"ThemeSupport"),c=[a].concat(i),r=e.$r(c);return o(a,"$theme_icon",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_icon(s)},-1),o(a,"$theme_background",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_background(s)},-1),o(a,"$theme_widget",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_widget(s)},-1),o(a,"$theme_font",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_font(s)},-1),o(a,"$site_asset",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$site_asset(s)},-1)}(z[0],z),function(e,n){var r=f(e,n,"Factory");return r.$attr_reader("body"),o(r,"$initialize",function(){var n=this;for(n.body=document.body;document.body.firstChild;)document.body.removeChild(document.body.firstChild)}),o(r,"$create_element",function(n,s,o,r){var l=this,c=t;return r==null&&(r=new Map),a(s,"body")?c=document.body:c=document.createElement(s),a(s,"body")||(a(r["$[]"]("prepend"),!0)?o.$element().insertBefore(c,r["$[]"]("prepend").$element()):o.$element().appendChild(c)),c.classList.add(l.$dasherize(n.$class().$name())),A(r["$has_key?"]("id"))&&(c.id=n.$uuid().$to_s()),i(r,"each",[],function(n,s){switch(n==null&&(n=t),s==null&&(s=t),n.valueOf()){case"prepend":return t;case"content":return c.appendChild(document.createTextNode(s));break;default:return c.setAttribute(n,s)}}),c},-4),o(r,"$dasherize",function(n){var s=t,s=n.$gsub("::","-").$downcase().$gsub("_","-");return a(s["$[]"](0),"-")&&(s=s["$[]"](g(1,-1,!1))),s}),o(r,"$camelize",function(n){return s(n["$!~"](/-/))?n:i(n,"gsub",[/(?:-|(\/))([a-z\d]*)/],function(){var n;return""+((n=x["~"])===t?t:n["$[]"](1))+((n=x["~"])===t?t:n["$[]"](2)).$capitalize()}).$strip()})}(z[0],null),function(c,l,d){var u=f(c,l,"BaseElement"),g=[u].concat(d),h=e.$r(g),m=u.$$prototype;return m.uuid=m.states=m.component=m.parent=t,u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ElementMethods")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"EventHandlers")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"AnimationSupport")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ThemeSupport")),u.$attr_reader("uuid","title","component","parent","children","element","domtype","settings"),o(u,"$set_settings",function(n){var s=this;return n==null&&(n=t),s.settings=n},-1),C(u,"settings=","set_settings"),o(u,"$initialize",function(o,a,c){var l=this,d=t;return a==null&&(a=new Map),c==null&&(c=new Map),s(a["$is_a?"](n(n(h("GxG"),"Database"),"DetachedHash")))?(l.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s(r(a["$[]"]("title").$to_s().$size(),0))?s(a["$[]"]("title").$to_s().$include("Untitled "))?l.title="Untitled Component "+l.uuid.$to_s():l.title=a["$[]"]("title").$to_s():l.title=a.$title().$to_s()):(l.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),l.title=(s(d=a["$[]"]("title"))?d:"Untitled Component "+l.uuid.$to_s()).$to_s()),l.component=(s(d=a["$[]"]("component"))?d:"unknown").$to_s().$downcase().$to_sym(),l.parent=o,s(a["$[]"]("settings")["$is_a?"](n(n(h("GxG"),"Database"),"DetachedHash"),n(n(h("GxG"),"Database"),"PersistedHash")))?l.settings=a["$[]"]("settings").$unpersist():s(a["$[]"]("settings")["$is_a?"](n("Hash")))?l.settings=a["$[]"]("settings"):l.settings=new Map,s(c["$[]"]("application"))?l.application=c["$[]"]("application"):l.application=t,l.children=new Map,l.element=t,l.domtype="div",l.states=new Map,l.states["$[]="](l.component.$to_s().$gsub(".","-").$to_sym(),!0),s(a["$[]"]("options")["$is_any?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("options")["$[]"]("states")["$is_any?"](n("Array"),n(n(h("GxG"),"Database"),"DetachedArray")))&&i(a["$[]"]("options")["$[]"]("states"),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.states==null&&(o.states=t),n==null&&(n=t),(s=[n.$to_s().$to_sym(),!0],i(o.states,"[]=",s),s[s.length-1])},{$$s:l}),l.style=new Map,s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("options")["$[]"]("style")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&(l.style=a["$[]"]("options")["$[]"]("style")),l.options=new Map,s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&i(a["$[]"]("options"),"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(["background-color","icon","label","data","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]["$include?"](n.$to_s().$to_sym()))?t:(a=[n.$to_s().$to_sym(),o.$to_s()],i(r.options,"[]=",a),a[a.length-1])},{$$s:l}),l.event_handlers=new Map,l.event_listeners=new Map,l.$creation(),s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("content")["$is_a?"](n("String")))&&l.$set_text(a["$[]"]("content")),l},-2),o(u,"$parent",p("parent")),o(u,"$root",function(){for(var c=this,i=t,o=t,n=t,i=t,o=[c.parent];s(r(o.$size(),0));)if(n=o.$shift(),s(n)){if(a(n.$component(),"page")){i=n;break}o["$<<"](n.$parent())}return i}),o(u,"$factory",function(){var t=this;return t.$root().$factory()}),o(u,"$build",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=new Map),o.$page().$build_components(o,n,s)},-1)}(z[0],null,z),function(e,n){var i=f(e,n,"BaseInputElement"),a=i.$$prototype;return a.options=a.element=a.disabled=t,o(i,"$_before_create",function e(){var i=e.$$p||t,n=this,o=t;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="input",s(o=n.options["$[]"]("type"))?o:n.options["$[]="]("type","text"),s(n.options["$[]"]("content"))&&n.options["$[]="]("value",n.options.$delete("content")),n.disabled=s(o=n.options["$[]"]("disabled"))&&o}),o(i,"$value",function(){var t=this;return t.element.value}),o(i,"$value=",function(t){var n=this;return n.element.value=t}),o(i,"$_after_create",function e(){var o=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_after_create",e,!1,!0),"_after_create",[],null),s(n.disabled)?n.$disable():t}),o(i,"$disable",function(){var t=this;return t.$set_attribute("disabled","disabled")}),o(i,"$enable",function(){var t=this;return t.$clear_attribute("disabled")})}(z[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,n){var s=f(e,n,"BaseClickableElement");return o(s,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null)})}(z[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(l,u,h){var m=f(l,u,"Page"),b=[m].concat(h),p=e.$r(b),g=m.$$prototype;return g.theme_prefix=g.settings=g.element=g.uuid=g.title=g.title_registry=g.factory=t,m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ElementMethods")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"EventHandlers")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"AnimationSupport")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ThemeSupport")),m.$attr_reader("uuid","title","component","parent","children","domtype","settings"),o(m,"$set_settings",function(n){var s=this;return n==null&&(n=t),s.settings=n},-1),C(m,"settings=","set_settings"),o(m,"$get_library",function(r){var c=t;return r==null&&(r=t),c=t,s(r["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?function(){try{var o=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(i){var l=t;if(i==null&&(i=t),a(i.$title(),r["$[]"]("library").$to_s())&&a(i.$type(),s(l=r["$[]"]("type"))?l:i.$type()))if(s(r["$[]"]("maximum")))if(s(e.Range.$new(r["$[]"]("minimum").$to_f(),r["$[]"]("maximum").$to_f(),!1)["$include?"](i.$version())))c=i,o.$throw(t,n.$$is_lambda);else return t;else if(s(E(i.$version(),r["$[]"]("minimum").$to_f())))c=i,o.$throw(t,n.$$is_lambda);else return t;else return t})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}():s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()))?c=n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()):function(){try{var e=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),r))c=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c},-1),o(m,"$library_loaded?",function(r){var c=t;return r==null&&(r=t),s(r["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(c=!1,function(){try{var o=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(i){var l=t;if(i==null&&(i=t),a(i.$title(),r["$[]"]("library").$to_s())&&a(i.$type(),(s(l=r["$[]"]("type"))?l:i.$type()).$to_s()))if(s(r["$[]"]("maximum")))if(s(e.Range.$new(r["$[]"]("minimum").$to_f(),r["$[]"]("maximum").$to_f(),!1)["$include?"](i.$version())))c=i["$loaded?"](),o.$throw(t,n.$$is_lambda);else return t;else if(s(E(i.$version(),r["$[]"]("minimum").$to_f())))c=i["$loaded?"](),o.$throw(t,n.$$is_lambda);else return t;else return t})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}(),c):!!s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()))||(c=!1,function(){try{var e=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),r))c=s["$loaded?"](),e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c)},-1),o(m,"$load_library",function e(o){var c=e.$$p||t,r=t,a=t;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$[]"]("maximum"))?r=o["$[]"]("maximum").$to_f():r=t,i(n(p("GxG"),"CONNECTION"),"library_pull",[new Map([["library",o["$[]"]("library").$to_s()],["type",(s(a=o["$[]"]("type"))?a:"text/ruby").$to_s()],["minimum",(s(a=o["$[]"]("minimum"))?a:0).$to_f()],["maximum",r],["dependencies",!0],["loaded",n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()]])],function(o){return o==null&&(o=t),s(o["$is_a?"](n("Hash")))&&s(o["$[]"]("result")["$is_a?"](n("Array")))?i(o["$[]"]("result"),"each",[],function(o){var i=t;return o==null&&(o=t),s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()["$include?"](o["$[]"]("uuid").$to_s().$to_sym()))?t:(i=o["$[]"]("data"),s(i["$is_a?"](n("String")))?(s(i["$base64?"]())&&(i=i.$decode64()),s(i["$json?"]())&&(i=n("JSON").$parse(i,new Map([["symbolize_names",!0]]))),s(i["$is_a?"](n("Hash")))&&(i=n(n("GxG"),"Database").$process_import(i)),s(i["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]="](o["$[]"]("uuid").$to_s().$to_sym(),n(n("GxG"),"Library").$new(i)),s(c["$respond_to?"]("call"))?c.$call(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](o["$[]"]("uuid").$to_s().$to_sym())):t):t):t)}):t})):t},-1),o(m,"$load_libraries",function e(o){var r=e.$$p||t,c=this,a=t;return e.$$p=null,o==null&&(o=[]),a=!0,s(o["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray")))&&i(o,"each",[],function e(o){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),function(){try{var e=d("break");return i(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_library",[o],function n(o){var i=n.$$s==null?this:n.$$s;if(o==null&&(o=t),s(o["$loaded?"]()))return t;i.$log_warn("Unable to load library: "+o.$title()),a=!1,e.$throw(t,n.$$is_lambda)},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:c}),s(r["$respond_to?"]("call"))&&r.$call(a),a},-1),o(m,"$application_open",function(o,a){var r=this,l=t,d=t;return o==null&&(o=new Map),a==null&&(a=new Map),l=!1,s(o["$is_a?"](n("Hash")))?(d=i(p("Proc"),"new",[],v(t)),r.$set_busy(!0),i(n(p("GxG"),"CONNECTION"),"application_open",[o,d],function e(o){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),s(o["$is_a?"](n("Hash")))?s(o["$[]"]("result")["$is_a?"](n("Hash")))?i(n(p("GxG"),"CONNECTION"),"pull_object",[o["$[]"]("result")["$[]"]("location")],function e(s){var i=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(p("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]="](o["$[]"]("result")["$[]"]("application").$to_s().$to_sym(),n(p("GxG"),"Application").$new(o["$[]"]("result").$merge(new Map([["source",s]])))),l=n(p("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]"](o["$[]"]("result")["$[]"]("application").$to_s().$to_sym()).$run(a),i.$set_busy(!1)},{$$s:r}):r.$log_warn(c("Error opening Application: ",o.$inspect())):r.$log_warn("Malformed response: "+o.$inspect())},{$$s:r})):r.$log_warn("Invalid Argument: "+o.$inspect()),l},-1),o(m,"$site_asset",function(o){var i=t;return o==null&&(o=t),s(window.location.href["$include?"]("https://"))?i=c("https://",window.location.host):i=c("http://",window.location.host),S(n(n("GxG"),"CONNECTION").$relative_url().$to_s()["$[]"](0),"/")&&(i=c(i,"/")),s(o)?c(i,p("File").$expand_path(c(c(n(n("GxG"),"CONNECTION").$relative_url().$to_s(),"/"),o.$to_s()))):""},-1),o(m,"$theme_icon",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/icons/"),n.$to_s()):""},-1),o(m,"$theme_background",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/backgrounds/"),n.$to_s()):""},-1),o(m,"$theme_widget",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/widgets/"),n.$to_s()):""},-1),o(m,"$theme_font",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/fonts/"),n.$to_s()):""},-1),o(m,"$theme_window_title_layout",function(){return new Map([["left",["close","minimize","maximize"]],["center",["title"]],["right",[]]])}),o(m,"$build_components",function(o,c,l){var h=t,u=t,d=t;if(o==null&&(o=t),c==null&&(c=t),l==null&&(l=new Map),h=!1,s(o)||(o=n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")),s(o)&&s(c["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray")))){for(u=[new Map([["parent",o],["content",c]])];s(r(u.$size(),0));)d=u.$shift(),s(d)&&i(d["$[]"]("content"),"each",[],function(o){var i=t;return o==null&&(o=t),s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?i=d["$[]"]("parent").$add_child(o,l.$merge(new Map([["template_uuid",o.$uuid()]]))):i=d["$[]"]("parent").$add_child(o,l),s(r(o["$[]"]("content").$size(),0))&&u["$<<"](new Map([["parent",i],["content",o["$[]"]("content")]])),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.application.viewport")&&s(l["$[]"]("application"))&&(i.$set_application(l["$[]"]("application")),s(l["$[]"]("application").$get_viewport(i.$uuid()))||l["$[]"]("application").$link_viewport(i)),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window")&&s(l["$[]"]("application"))&&(l["$[]"]("application").$link_window(i),i.$set_application(l["$[]"]("application"))),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window.dialog")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu.bar")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),s(d["$[]"]("parent")["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&s(o["$[]"]("options")["$[]"]("track"))?d["$[]"]("parent").$track_deltas(i.$uuid(),i,o["$[]"]("options")["$[]"]("track")):t});h=!0}return h},-1),o(m,"$build",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=new Map),o.$build_components(o,n,s)},-1),o(m,"$build_page",function(o){var a=this,l=t;return o==null&&(o=t),s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(a.element=document.body,a.settings=o["$[]"]("settings"),a.theme_prefix=c(n(n("GxG"),"CONNECTION").$relative_url(),"/themes/"+(s(l=a.settings["$[]"]("theme"))?l:"default")),a.uuid=o.$uuid().$to_s().$to_sym(),a.element.id=a.uuid.$to_s(),a.title=a.settings["$[]"]("page_title").$to_s(),document.title=a.title.$to_s(),a.component="org.gxg.gui.page",a.parent=a,a.children=new Map,a.domtype="body",a.states=new Map([["org-gxg-gui-page",!0]]),s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&s(o["$[]"]("options")["$[]"]("states")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray"),n(n(n("GxG"),"Database"),"DetachedArray")))&&i(o["$[]"]("options")["$[]"]("states"),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.states==null&&(o.states=t),n==null&&(n=t),(s=[n.$to_s().$to_sym(),!0],i(o.states,"[]=",s),s[s.length-1])},{$$s:a}),a.style=new Map,s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&s(o["$[]"]("options")["$[]"]("style")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a.style=o["$[]"]("options")["$[]"]("style")),a.options=new Map,s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&i(o["$[]"]("options"),"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(["background-color","data","icon","label","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]["$include?"](n.$to_s().$to_sym()))?t:(a=[n.$to_s().$to_sym(),o.$to_s()],i(r.options,"[]=",a),a[a.length-1])},{$$s:a}),a.event_handlers=new Map,a.event_listeners=new Map,a.$creation(),s(o["$[]"]("script")["$is_a?"](n("String")))&&s(r(o["$[]"]("script").$size(),0))&&a.$set_script(o["$[]"]("script")),a.$build_components(a,o["$[]"]("content"))):t},-1),o(m,"$initialize",function(s){var o=this;return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("object",o),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onbeforeunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["beforeunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),o.theme_prefix=c(n(n("GxG"),"CONNECTION").$relative_url(),"/themes/"+n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("theme")),o.settings=t,o.busy=!1,o.window_switcher=t,o.window_registry=new Map,o.dialog=t,o.dialog_queue=[],o.title_registry=new Map,o.$build_page(s),o},-1),o(m,"$find_object_by_dom_id",function(o){var m=this,u=t,h=t,l=t,a=t;for(o==null&&(o=t),u=t,s(o["$is_a?"](n("Numeric")))?o=c("_",o.$to_i().$to_s()):o=o.$to_s(),h=[m];s(r(h.$size(),0));){if(l=h.$shift(),a=l.$element().attributes.getNamedItem("id")||0,!s(a==0)&&(a=a.value,s(a.$to_s()==o.$to_s()))){u=l;break}s(l["$respond_to?"]("children"))&&function(){try{var e=d("break");return i(l.$children().$keys(),"each",[],function n(i){if(i==null&&(i=t),a=l.$children()["$[]"](i).$element().attributes.getNamedItem("id")||0,s(a==0))return t;if(a=a.value,s(a.$to_s()==o.$to_s()))u=l.$children()["$[]"](i),e.$throw(t,n.$$is_lambda);else return h["$<<"](l.$children()["$[]"](i))})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}return u},-1),o(m,"$find_object",function(n){var l=this,c=t,a=t,o=t;for(n==null&&(n=t),c=t,a=[l];s(r(a.$size(),0));)if(o=a.$shift(),s(o["$respond_to?"]("children"))){if(s(o.$children()["$[]"](n))){c=o.$children()["$[]"](n);break}i(o.$children().$keys(),"each",[],function(n){return n==null&&(n=t),a["$<<"](o.$children()["$[]"](n))})}return c},-1),o(m,"$find_object_by",function(n){var c=this,o=t,r=t;return n==null&&(n=t),o=t,s(p("GxG")["$valid_uuid?"](n))?r=!0:r=!1,function(){try{var e=d("break");return i(c.title_registry.$keys(),"each",[],function i(c){var l=i.$$s==null?this:i.$$s;if(l.title_registry==null&&(l.title_registry=t),c==null&&(c=t),a(r,!0))if(s(l.title_registry["$[]"](c).$to_s()["$include?"](n.$to_s())))o=l.$find_object(c),e.$throw(t,i.$$is_lambda);else return t;else if(a(n,l.title_registry["$[]"](c)))o=l.$find_object(c),e.$throw(t,i.$$is_lambda);else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o},-1),o(m,"$register_object",function(n,o){var i=this;return n==null&&(n=t),o==null&&(o=t),!!(s(n)&&s(o))&&(i.title_registry["$[]="](o.$uuid(),n.$to_s()),!0)},-1),o(m,"$unregister_object",function(o){var a=this,i=t;return o==null&&(o=t),!!s(o)&&(i=a.$find_object_by(o),s(i)&&(s(i["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&i.$detach(),a.title_registry.$delete(i.$uuid())),!0)},-1),o(m,"$factory",function(){var o=this,i=t;return o.factory=s(i=o.factory)?i:n(n(n(p("GxG"),"Gui"),"Vdom"),"Factory").$new(o)}),o(m,"$element",function(){var t=this;return t.$factory().$body()}),o(m,"$parent",O),o(m,"$root",O),o(m,"$domclear",function(){for(;document.body.firstChild;)document.body.removeChild(document.body.firstChild);return!0}),o(m,"$clear",function(){var n=this,s=t;return i(n,"all_descendants",[],function(n){return n==null&&(n=t),n.$remove_listeners()}),n.$remove_listeners(),i(n,"each_child",[],function(n){return n==null&&(n=t),n.$destroy()}),s=document.body.getAttributeNames(),i(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$clear_attribute(n)},{$$s:n}),!0})}(z[0],null,z),l(N,"$load_page",function(o){var c=this,l=t,d=t;return o==null&&(o=t),s(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Gui"),"Page"),n(n(n(n("GxG"),"Gui"),"Vdom"),"Page")))&&(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$clear(),n(n(n("GxG"),"Gui"),"Vdom").$clear_rules(),n(n(n("GxG"),"Gui"),"Vdom").$refresh_css_cache()),l=s(d=o["$[]"]("settings")["$[]"]("theme"))?d:"default",i(n(n("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/themes/"+l],function e(r){var c=e.$$s==null?this:e.$$s;return r==null&&(r=t),s(r["$is_a?"](n("Array")))?(i(r["$[]"](0)["$[]"]("resources"),"each",[],function(s){return s==null&&(s=t),a(s["$[]"]("resource_type"),"font-face")?n(n(n("GxG"),"Gui"),"Vdom").$load_font(s):t}),i(r["$[]"](0)["$[]"]("rules"),"each_pair",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n(n(n("GxG"),"Gui"),"Vdom").$set_rule(s,o)}),s(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Gui"),"Page"),n(n(n(n("GxG"),"Gui"),"Vdom"),"Page")))?n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$build_page(o):n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("object",n(n(n("GxG"),"Gui"),"Page").$new(o)),n(n("GxG"),"Gui").$layout_refresh()):c.$log_error(new Map([["error",D("Exception").$new("Invalid theme object as response.")]]))},{$$s:c}),s(o["$[]"]("requirements")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&s(r(o["$[]"]("requirements").$size(),0))&&c.$load_libraries(o["$[]"]("requirements")),s(o["$[]"]("auto_start")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&s(r(o["$[]"]("auto_start").$size(),0))&&i(o["$[]"]("auto_start"),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$application_open(new Map([["name",n["$[]"]("name")],["restore",!0]]))},{$$s:c}),!0},-1),l(N,"$navigate_to",function(l){var u=this,d=t,h=t;return l==null&&(l=""),s(r(n(n("GxG"),"CONNECTION").$relative_url().$to_s().$size(),0))?d=l["$[]"](e.Range.$new(n(n("GxG"),"CONNECTION").$relative_url().$size(),-1,!1)):d=l,(a(d,"/")||a(d,""))&&(d="/index"),a(d["$[]"](0),"/")||(d=c("/",d)),n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("host_path",d),s(n(D("GxG"),"PAGES")["$[]"](d))?n(n(D("GxG"),"Gui"),"Vdom").$load_page(n(D("GxG"),"PAGES")["$[]"](d)):(h=i(D("Proc"),"new",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$log_error(n.$inspect())},{$$s:u}),i(n(n("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/pages"+d,h],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i.$puts("Response (Page Load): "+o.$inspect()),s(o["$is_any?"](n("Array")))?(n(D("GxG"),"PAGES")["$[]="](d,o["$[]"](0)),n(n(D("GxG"),"Gui"),"Vdom").$load_page(n(D("GxG"),"PAGES")["$[]"](d))):i.$log_error(new Map([["error",D("Exception").$new("Invalid page object as response.")]])),n(n("GxG"),"Gui").$layout_refresh()},{$$s:u}))},-1)}(z[0],z)}(z[0],z)}(k[0],k)},Opal.modules["web/gxg_foundation"]=function(e){var m=e.module,a=e.klass,o=e.send2,i=e.find_super,r=e.send,s=e.def,c=e.truthy,b=e.rb_gt,l=e.eqeq,p=e.const_set,h=e.defs,g=e.Class,v=e.neqeq,f=e.return_ivar,d=e.rb_plus,u=[],n=e.nil,t=e.$$$;return e.add_stubs("[]=,to_s,clone,values,children,>,size,shift,==,domtype,to_sym,title,value,each,<<,delete,[],on,index,keys,component_class,is_a?,is_any?,component_registered?,!=,log_warn,inspect,register_component_class,include?,new_component,title=,build_components,page,find_object_by,set_text,state_active?,set_state,application,menu_item_select,new,add_child,+,set_attribute,uuid,set_script,find_descendant,raise,downcase,value=,private,log_error"),function(d,u){var j=m(d,"GxG"),f=[j].concat(u);return function(d,u){var y=m(d,"Gui"),f=[y].concat(u),j=e.$r(f);return a(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"Page"),"Page"),function(e,t){var c=a(e,t,"Abbreviation"),l=c.$$prototype;return l.title=l.options=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="abbr",(s=["title",t.title.$clone().$to_s()],r(t.options,"[]=",s),s[s.length-1])})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Address");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="address"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Area");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="area"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bold");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="b"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bdi");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdi"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bdo");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdo"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"BlockQuote");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="blockquote"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Break");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="br"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Caption");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="caption"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Cite");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="cite"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Code");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="code"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Column");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="col"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ColumnGroup");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="colgroup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Data");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="data"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DataList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="datalist"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Description");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dd"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Deleted");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="del"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Details");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="details"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Dfn");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dfn"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Dialog");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dialog"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Division");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DescriptionList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dl"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DescriptionTerm");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dt"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Emphasis");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="em"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Figure");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figure"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"FigureCaption");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figcaption"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ThemeDivider");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="hr"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Italic");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="i"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"InlineFrame");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="iframe"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Insertion");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ins"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"KeyboardKey");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="kbd"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Map");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="map"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Mark");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="mark"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Meter");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="meter"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"NoScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="noscript"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Object");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="object"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"OptionGroup");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="optgroup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Parameter");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="param"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Picture");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="picture"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Preformatted");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="pre"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Progress");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="progress"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Quotation");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="q"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"StrikeThrough");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="s"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Sample");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="samp"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Source");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="source"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Strong");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="strong"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Small");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="small"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Style");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="style"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"SubScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sub"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Summary");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="summary"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"SuperScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Svg");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="svg"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Template");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="template"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Time");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="time"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Track");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="track"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Misspelled");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="u"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Variable");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="var"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"WordBreak");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="wbr"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="header"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Navigation");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="nav"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Main");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="main"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Section");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="section"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Article");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="article"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Aside");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="aside"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Footer");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="footer"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var d=a(e,t,"Form");return s(d,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"}),s(d,"$form_data",function(){for(var i=this,o=n,s=n,t=n,o=new Map,s=i.$children().$values();c(b(s.$size(),0));)t=s.$shift(),c(t)&&(l(t.$domtype(),"input")?o["$[]="](t.$title().$to_s().$to_sym(),t.$value()):r(t.$children().$values(),"each",[],function(t){return t==null&&(t=n),s["$<<"](t)}));return o})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"ButtonInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","button"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var c=a(e,t,"SubmitButton"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","submit"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var r=a(e,t,"Block"),c=r.$$prototype;return c.options=n,s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",t.options.$delete("type"),!0})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var c=a(e,t,"CheckBox"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","checkbox"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var l=a(e,t,"Image"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,l=e.$$p||n,t=this,a=n;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="image",c(t.options["$[]"]("source"))&&t.options["$[]="]("src",t.options.$delete("source")),c(a=t.options["$[]"]("alt"))?a:(s=["alt",t.options["$[]"]("src")],r(t.options,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Video"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="video",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Audio"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="audio",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Canvas"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="canvas",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"HiddenInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","hidden"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"FileInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","file"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"TextInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","text"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"PasswordInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","password"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"ResetInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","reset"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"RadioButton"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","radio"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"ColorPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","color"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"DatePicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","date"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"DateTimeLocal"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","datetime-local"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"EmailInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","email"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"MonthPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","month"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"NumberInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","number"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"RangeInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","range"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"SearchInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","search"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"PhoneInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","tel"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"TimePicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","time"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"UrlInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","url"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"WeekPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","week"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var r=a(e,t,"Label");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="label"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TextArea");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="textarea"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Output");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="output"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Paragraph");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="p"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header1");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h1"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header2");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h2"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header3");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h3"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header4");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h4"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header5");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h5"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header6");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h6"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"List");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"OrderedList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ol"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ListItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Anchor");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="a"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ExternalLink"),l=r.$$prototype;return l.options=n,s(r,"$_before_create",function e(){var a=e.$$p||n,t=this,s=n;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),c(s=t.options["$[]"]("target"))?s:t.options["$[]="]("target","_blank"),t.domtype="a"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"Button"),d=c.$$prototype;return d.options=d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.options["$[]"]("type"),"button")||t.options["$[]="]("type","button"),l(t.states["$[]"]("button"),!0)?n:(s=["button",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),r(t,"on",["click"],function(t){return t==null&&(t=n),document.activeElement.blur()})})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Table");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="table"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableHeader");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="th"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableRow");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="tr"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableCell");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="td"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTable"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("table"),!0)?n:(s=["table",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableHeader"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("th"),!0)?n:(s=["th",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableRow"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("tr"),!0)?n:(s=["tr",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableCell"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("td"),!0)?n:(s=["td",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Span");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Select");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="select"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Option");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="option"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"FieldSet"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="fieldset",l(t.states["$[]"]("fieldset"),!0)?n:(s=["fieldset",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Legend");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="legend"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),p(f[0],"COMPONENT_CLASSES",new Map([["org.gxg.gui.page",t(t(t("GxG"),"Gui"),"Page")],["org.gxg.gui.abbreviation",t(t(t("GxG"),"Gui"),"Abbreviation")],["org.gxg.gui.address",t(t(t("GxG"),"Gui"),"Address")],["org.gxg.gui.area",t(t(t("GxG"),"Gui"),"Area")],["org.gxg.gui.bold",t(t(t("GxG"),"Gui"),"Bold")],["org.gxg.gui.bdi",t(t(t("GxG"),"Gui"),"Bdi")],["org.gxg.gui.bdo",t(t(t("GxG"),"Gui"),"Bdo")],["org.gxg.gui.blockquote",t(t(t("GxG"),"Gui"),"BlockQuote")],["org.gxg.gui.break",t(t(t("GxG"),"Gui"),"Break")],["org.gxg.gui.caption",t(t(t("GxG"),"Gui"),"Caption")],["org.gxg.gui.cite",t(t(t("GxG"),"Gui"),"Cite")],["org.gxg.gui.code",t(t(t("GxG"),"Gui"),"Code")],["org.gxg.gui.column",t(t(t("GxG"),"Gui"),"Column")],["org.gxg.gui.column.group",t(t(t("GxG"),"Gui"),"ColumnGroup")],["org.gxg.gui.data",t(t(t("GxG"),"Gui"),"Data")],["org.gxg.gui.data.list",t(t(t("GxG"),"Gui"),"DataList")],["org.gxg.gui.description",t(t(t("GxG"),"Gui"),"Description")],["org.gxg.gui.deleted",t(t(t("GxG"),"Gui"),"Deleted")],["org.gxg.gui.details",t(t(t("GxG"),"Gui"),"Details")],["org.gxg.gui.dfn",t(t(t("GxG"),"Gui"),"Dfn")],["org.gxg.gui.dialog",t(t(t("GxG"),"Gui"),"Dialog")],["org.gxg.gui.division",t(t(t("GxG"),"Gui"),"Division")],["org.gxg.gui.description.list",t(t(t("GxG"),"Gui"),"DescriptionList")],["org.gxg.gui.description.item",t(t(t("GxG"),"Gui"),"DescriptionTerm")],["org.gxg.gui.emphasis",t(t(t("GxG"),"Gui"),"Emphasis")],["org.gxg.gui.figure",t(t(t("GxG"),"Gui"),"Figure")],["org.gxg.gui.figure.caption",t(t(t("GxG"),"Gui"),"FigureCaption")],["org.gxg.gui.theme.divider",t(t(t("GxG"),"Gui"),"ThemeDivider")],["org.gxg.gui.italic",t(t(t("GxG"),"Gui"),"Italic")],["org.gxg.gui.frame.inline",t(t(t("GxG"),"Gui"),"InlineFrame")],["org.gxg.gui.insertion",t(t(t("GxG"),"Gui"),"Insertion")],["org.gxg.gui.keyboard.key",t(t(t("GxG"),"Gui"),"KeyboardKey")],["org.gxg.gui.map",t(t(t("GxG"),"Gui"),"Map")],["org.gxg.gui.mark",t(t(t("GxG"),"Gui"),"Mark")],["org.gxg.gui.meter",t(t(t("GxG"),"Gui"),"Meter")],["org.gxg.gui.noscript",t(t(t("GxG"),"Gui"),"NoScript")],["org.gxg.gui.object",t(t(t("GxG"),"Gui"),"Object")],["org.gxg.gui.option.group",t(t(t("GxG"),"Gui"),"OptionGroup")],["org.gxg.gui.parameter",t(t(t("GxG"),"Gui"),"Parameter")],["org.gxg.gui.picture",t(t(t("GxG"),"Gui"),"Picture")],["org.gxg.gui.preformatted",t(t(t("GxG"),"Gui"),"Preformatted")],["org.gxg.gui.progress",t(t(t("GxG"),"Gui"),"Progress")],["org.gxg.gui.quotation",t(t(t("GxG"),"Gui"),"Quotation")],["org.gxg.gui.strike.through",t(t(t("GxG"),"Gui"),"StrikeThrough")],["org.gxg.gui.sample",t(t(t("GxG"),"Gui"),"Sample")],["org.gxg.gui.section",t(t(t("GxG"),"Gui"),"Section")],["org.gxg.gui.small",t(t(t("GxG"),"Gui"),"Small")],["org.gxg.gui.source",t(t(t("GxG"),"Gui"),"Source")],["org.gxg.gui.strong",t(t(t("GxG"),"Gui"),"Strong")],["org.gxg.gui.style",t(t(t("GxG"),"Gui"),"Style")],["org.gxg.gui.sub.script",t(t(t("GxG"),"Gui"),"SubScript")],["org.gxg.gui.summary",t(t(t("GxG"),"Gui"),"Summary")],["org.gxg.gui.super.script",t(t(t("GxG"),"Gui"),"SuperScript")],["org.gxg.gui.svg",t(t(t("GxG"),"Gui"),"Svg")],["org.gxg.gui.template",t(t(t("GxG"),"Gui"),"Template")],["org.gxg.gui.text.area",t(t(t("GxG"),"Gui"),"TextArea")],["org.gxg.gui.time",t(t(t("GxG"),"Gui"),"Time")],["org.gxg.gui.track",t(t(t("GxG"),"Gui"),"Track")],["org.gxg.gui.misspelled",t(t(t("GxG"),"Gui"),"Misspelled")],["org.gxg.gui.variable",t(t(t("GxG"),"Gui"),"Variable")],["org.gxg.gui.word.break",t(t(t("GxG"),"Gui"),"WordBreak")],["org.gxg.gui.header",t(t(t("GxG"),"Gui"),"Header")],["org.gxg.gui.navigator",t(t(t("GxG"),"Gui"),"Navigation")],["org.gxg.gui.main",t(t(t("GxG"),"Gui"),"Main")],["org.gxg.gui.article",t(t(t("GxG"),"Gui"),"Article")],["org.gxg.gui.aside",t(t(t("GxG"),"Gui"),"Aside")],["org.gxg.gui.footer",t(t(t("GxG"),"Gui"),"Footer")],["org.gxg.gui.form",t(t(t("GxG"),"Gui"),"Form")],["org.gxg.gui.input.button",t(t(t("GxG"),"Gui"),"ButtonInput")],["org.gxg.gui.input.button.submit",t(t(t("GxG"),"Gui"),"SubmitButton")],["org.gxg.gui.block",t(t(t("GxG"),"Gui"),"Block")],["org.gxg.gui.button.checkbox",t(t(t("GxG"),"Gui"),"CheckBox")],["org.gxg.gui.image",t(t(t("GxG"),"Gui"),"Image")],["org.gxg.gui.video",t(t(t("GxG"),"Gui"),"Video")],["org.gxg.gui.audio",t(t(t("GxG"),"Gui"),"Audio")],["org.gxg.gui.canvas",t(t(t("GxG"),"Gui"),"Canvas")],["org.gxg.gui.input.hidden",t(t(t("GxG"),"Gui"),"HiddenInput")],["org.gxg.gui.input.file",t(t(t("GxG"),"Gui"),"FileInput")],["org.gxg.gui.input.text",t(t(t("GxG"),"Gui"),"TextInput")],["org.gxg.gui.input.password",t(t(t("GxG"),"Gui"),"PasswordInput")],["org.gxg.gui.input.reset",t(t(t("GxG"),"Gui"),"ResetInput")],["org.gxg.gui.button.radio",t(t(t("GxG"),"Gui"),"RadioButton")],["org.gxg.gui.picker.color",t(t(t("GxG"),"Gui"),"ColorPicker")],["org.gxg.gui.picker.date",t(t(t("GxG"),"Gui"),"DatePicker")],["org.gxg.gui.input.datetime.local",t(t(t("GxG"),"Gui"),"DateTimeLocal")],["org.gxg.gui.input.email",t(t(t("GxG"),"Gui"),"EmailInput")],["org.gxg.gui.picker.month",t(t(t("GxG"),"Gui"),"MonthPicker")],["org.gxg.gui.picker.number",t(t(t("GxG"),"Gui"),"NumberInput")],["org.gxg.gui.input.range",t(t(t("GxG"),"Gui"),"RangeInput")],["org.gxg.gui.input.search",t(t(t("GxG"),"Gui"),"SearchInput")],["org.gxg.gui.input.phone",t(t(t("GxG"),"Gui"),"PhoneInput")],["org.gxg.gui.picker.time",t(t(t("GxG"),"Gui"),"TimePicker")],["org.gxg.gui.input.url",t(t(t("GxG"),"Gui"),"UrlInput")],["org.gxg.gui.picker.week",t(t(t("GxG"),"Gui"),"WeekPicker")],["org.gxg.gui.label",t(t(t("GxG"),"Gui"),"Label")],["org.gxg.gui.output",t(t(t("GxG"),"Gui"),"Output")],["org.gxg.gui.paragraph",t(t(t("GxG"),"Gui"),"Paragraph")],["org.gxg.gui.header.one",t(t(t("GxG"),"Gui"),"Header1")],["org.gxg.gui.header.two",t(t(t("GxG"),"Gui"),"Header2")],["org.gxg.gui.header.three",t(t(t("GxG"),"Gui"),"Header3")],["org.gxg.gui.header.four",t(t(t("GxG"),"Gui"),"Header4")],["org.gxg.gui.header.five",t(t(t("GxG"),"Gui"),"Header5")],["org.gxg.gui.header.six",t(t(t("GxG"),"Gui"),"Header6")],["org.gxg.gui.list",t(t(t("GxG"),"Gui"),"List")],["org.gxg.gui.list.ordered",t(t(t("GxG"),"Gui"),"OrderedList")],["org.gxg.gui.list.item",t(t(t("GxG"),"Gui"),"ListItem")],["org.gxg.gui.link.anchor",t(t(t("GxG"),"Gui"),"Anchor")],["org.gxg.gui.link.external",t(t(t("GxG"),"Gui"),"ExternalLink")],["org.gxg.gui.button",t(t(t("GxG"),"Gui"),"Button")],["org.gxg.gui.table",t(t(t("GxG"),"Gui"),"Table")],["org.gxg.gui.table.header",t(t(t("GxG"),"Gui"),"TableHeader")],["org.gxg.gui.table.row",t(t(t("GxG"),"Gui"),"TableRow")],["org.gxg.gui.table.cell",t(t(t("GxG"),"Gui"),"TableCell")],["org.gxg.gui.block.table",t(t(t("GxG"),"Gui"),"BlockTable")],["org.gxg.gui.block.table.header",t(t(t("GxG"),"Gui"),"BlockTableHeader")],["org.gxg.gui.block.table.row",t(t(t("GxG"),"Gui"),"BlockTableRow")],["org.gxg.gui.block.table.cell",t(t(t("GxG"),"Gui"),"BlockTableCell")],["org.gxg.gui.span",t(t(t("GxG"),"Gui"),"Span")],["org.gxg.gui.select",t(t(t("GxG"),"Gui"),"Select")],["org.gxg.gui.option",t(t(t("GxG"),"Gui"),"Option")],["org.gxg.gui.field.set",t(t(t("GxG"),"Gui"),"FieldSet")],["org.gxg.gui.legend",t(t(t("GxG"),"Gui"),"Legend")]])),h(y,"$component_class",function(s){var o=n;return s==null&&(s=n),o=n,c(s)&&(o=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]"](s.$to_s().$to_sym())),o},-1),h(y,"$class_component",function(s){var o=n,i=n;return s==null&&(s=n),o=n,c(s)&&(i=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES").$values().$index(s),c(i)&&(o=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES").$keys()["$[]"](i))),o},-1),h(y,"$component_registered?",function(s){return s==null&&(s=n),!!c(t(j("GxG"),"Gui").$component_class(s))},-1),h(y,"$register_component_class",function(s,o){var i=this;return s==null&&(s=n),o==null&&(o=n),!!(c(s["$is_any?"](t("String"),t("Symbol")))&&c(o["$is_a?"](g)))&&(c(t(j("GxG"),"Gui")["$component_registered?"](s.$to_s().$to_sym()))?v(t(j("GxG"),"Gui").$component_class(s.$to_s().$to_sym()),o)?(t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](s.$to_s().$to_sym(),o),!0):(i.$log_warn("Component Class "+s.$to_s().$to_sym().$inspect()+" => "+o.$inspect()+" already defined."),!1):(t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](s.$to_s().$to_sym(),o),!0))},-1)}(f[0],f)}(u[0],u),function(e,u){var p=m(e,"GxG"),h=[p].concat(u);return function(e,u){var p=m(e,"Gui"),h=[p].concat(u);return function(e,t){var c=a(e,t,"GridContainer"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-container"),!0)?n:(s=["grid-container",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.container",t(t(t("GxG"),"Gui"),"GridContainer")),function(e,t){var c=a(e,t,"GridX"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-x"),!0)?n:(s=["grid-x",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.x",t(t(t("GxG"),"Gui"),"GridX")),function(e,t){var c=a(e,t,"GridY"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-y"),!0)?n:(s=["grid-y",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.y",t(t(t("GxG"),"Gui"),"GridY")),function(e,t){var d=a(e,t,"Accordion"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("accordion"),!0)||t.states["$[]="]("accordion",!0),c(t.options.$keys()["$include?"]("data-accordion"))?n:(s=["data-accordion",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion",t(t(t("GxG"),"Gui"),"Accordion")),function(e,t){var d=a(e,t,"AccordionItem"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li",l(t.states["$[]"]("accordion-item"),!0)||t.states["$[]="]("accordion-item",!0),c(t.options.$keys()["$include?"]("data-accordion-item"))?n:(s=["data-accordion-item",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.item",t(t(t("GxG"),"Gui"),"AccordionItem")),function(e,t){var d=a(e,t,"AccordionMenu"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-accordion-menu"))?n:(s=["data-accordion-menu",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu",t(t(t("GxG"),"Gui"),"AccordionMenu")),function(e,t){var c=a(e,t,"AccordionSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),l(t.states["$[]"]("nested"),!0)?n:(s=["nested",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.submenu",t(t(t("GxG"),"Gui"),"AccordionSubMenu")),function(e,t){var r=a(e,t,"AccordionMenuItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu.item",t(t(t("GxG"),"Gui"),"AccordionMenuItem")),function(e,t){var c=a(e,t,"AnchorButton"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="a",l(t.states["$[]"]("button"),!0)?n:(s=["button",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.anchor.button",t(t(t("GxG"),"Gui"),"AnchorButton")),function(e,t){var c=a(e,t,"Badge"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span",l(t.states["$[]"]("badge"),!0)?n:(s=["badge",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.badge",t(t(t("GxG"),"Gui"),"Badge")),function(e,t){var c=a(e,t,"Breadcrumb"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("breadcrumb"),!0)?n:(s=["breadcrumb",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb",t(t(t("GxG"),"Gui"),"Breadcrumb")),function(e,t){var r=a(e,t,"BreadcrumbItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(r,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb.item",t(t(t("GxG"),"Gui"),"BreadcrumbItem")),function(e,t){var c=a(e,t,"ButtonGroup"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("button-group"),!0)?n:(s=["button-group",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.button.group",t(t(t("GxG"),"Gui"),"ButtonGroup")),function(e,t){var c=a(e,t,"Callout"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("callout"),!0)?n:(s=["callout",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.callout",t(t(t("GxG"),"Gui"),"Callout")),function(e,t){var c=a(e,t,"ColoredLabel"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span",l(t.states["$[]"]("label"),!0)?n:(s=["label",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.label.colored",t(t(t("GxG"),"Gui"),"ColoredLabel")),function(e,t){var d=a(e,t,"DrilldownMenu"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-drilldown"))?n:(s=["data-drilldown",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu",t(t(t("GxG"),"Gui"),"DrilldownMenu")),function(e,t){var c=a(e,t,"DrilldownSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.submenu",t(t(t("GxG"),"Gui"),"DrilldownSubMenu")),function(e,t){var r=a(e,t,"DrilldownMenuItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu.item",t(t(t("GxG"),"Gui"),"DrilldownMenuItem")),function(e,t){var c=a(e,t,"DropdownSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.submenu",t(t(t("GxG"),"Gui"),"DropdownSubMenu")),function(e,t){var l=a(e,t,"DropdownMenuItem"),d=l.$$prototype;return d.uuid=d.settings=d.application=d.label=d.parent=n,s(l,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(l,"$initialize",function e(t,s,a){var c=e.$$p||n,r=this;return e.$$p=null,a==null&&(a=new Map),r.label=n,o(r,i(r,"initialize",e,!1,!0),"initialize",[t,s,a],null),r},-3),s(l,"$cascade",function(){var t=this,s=n,i=n,o=n,s=t.$new_component("org.gxg.gui.link.anchor");return s["$title="]("label "+t.uuid.$to_s()),s["$[]="]("options",new Map([["content",(c(i=t.settings["$[]"]("label"))?i:"Untitled").$to_s()]])),s["$[]="]("script",` + on(:mouseup) do |event| + if @parent.enabled? + @parent.selecct() + end + end + `),t.$page().$build_components(t,[s],new Map([["application",t.application]])),o=t.$page().$find_object_by("label "+t.uuid.$to_s()),c(o)?t.label=o:n}),s(l,"$label",f("label")),s(l,"$set_label_text",function(t){var s,o=this;return t==null&&(t=n),c(o.label)?(o.label.$set_text(t.$to_s()),(s=["label",t.$to_s()],r(o.settings,"[]=",s),s[s.length-1])):n},-1),s(l,"$enabled?",function(){var t=this;return!!c(t.label)&&!c(t.label["$state_active?"]("menu-item-disabled"))}),s(l,"$enable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!1):n}),s(l,"$disable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!0):n}),s(l,"$set_data",function(t){var s,o=this;return t==null&&(t=n),(s=["data",t],r(o.settings,"[]=",s),s[s.length-1])},-1),s(l,"$select",function(t){var o=this,s=n;return t==null&&(t=n),s=o.parent.$application(),c(s)?s.$menu_item_select(o.settings):n},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu.item",t(t(t("GxG"),"Gui"),"DropdownMenuItem")),function(e,t){var d=a(e,t,"Equalizer"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-x"),!0)||t.states["$[]="]("grid-x",!0),l(t.states["$[]"]("grid-margin-x"),!0)||t.states["$[]="]("grid-margin-x",!0),c(t.options.$keys()["$include?"]("data-equalizer"))||t.options["$[]="]("data-equalizer",n),c(t.options.$keys()["$include?"]("data-equalize-on"))?n:(s=["data-equalize-on","medium"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.equalizer",t(t(t("GxG"),"Gui"),"Equalizer")),function(e,t){var c=a(e,t,"FlexGridRow"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("row"),!0)?n:(s=["row",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.row",t(t(t("GxG"),"Gui"),"FlexGridRow")),function(e,t){var c=a(e,t,"FlexGridColumn"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("columns"),!0)?n:(s=["columns",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.column",t(t(t("GxG"),"Gui"),"FlexGridColumn")),function(e,t){var c=a(e,t,"Embed"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("responsive-embed"),!0)?n:(s=["responsive-embed",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.embed",t(t(t("GxG"),"Gui"),"Embed")),function(e,t){var c=a(e,t,"MediaObject"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("media-object"),!0)?n:(s=["media-object",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object",t(t(t("GxG"),"Gui"),"MediaObject")),function(e,t){var c=a(e,t,"MediaObjectSection"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("media-object-section"),!0)?n:(s=["media-object-section",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object.section",t(t(t("GxG"),"Gui"),"MediaObjectSection")),function(e,d){var u=a(e,d,"DropdownMenu"),h=u.$$prototype;return h.states=h.options=h.application=n,s(u,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("dropdown"),!0)||t.states["$[]="]("dropdown",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-dropdown-menu"))?n:(s=["data-dropdown-menu",n],r(t.options,"[]=",s),s[s.length-1])}),s(u,"$add_menu_item",function(s,o){var a=this,i=n;return s==null&&(s=n),o==null&&(o=n),i=t(t(t("GxG"),"Database"),"DetachedHash").$new(),i["$[]="]("component","org.gxg.gui.dropdown.menu.item"),i["$[]="]("settings",new Map([["label",s],["data",o]])),i["$[]="]("options",new Map),i["$[]="]("script",""),i["$[]="]("content",[]),a.$page().$build_components(a,[i],new Map([["application",a.application]])),!0},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu",t(t(t("GxG"),"Gui"),"DropdownMenu")),a(h[0],t(t(t("GxG"),"Gui"),"DropdownMenu"),"MenuBar"),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.bar",t(t(t("GxG"),"Gui"),"MenuBar")),function(e,t){var c=a(e,t,"Menu"),d=c.$$prototype;return d.states=d.application=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$add_menu_item",function(t,s){var o=this,i=n;return t==null&&(t=n),s==null&&(s=n),i=o.$new_component("org.gxg.gui.menu.item"),i["$[]="]("settings",new Map([["label",t],["data",s]])),o.$page().$build_components(o,[i],new Map([["application",o.application]])),!0},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu",t(t(t("GxG"),"Gui"),"Menu")),function(e,t){var l=a(e,t,"MenuItem"),d=l.$$prototype;return d.uuid=d.settings=d.application=d.label=d.parent=n,s(l,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(l,"$initialize",function e(t,s,a){var c=e.$$p||n,r=this;return e.$$p=null,a==null&&(a=new Map),r.label=n,o(r,i(r,"initialize",e,!1,!0),"initialize",[t,s,a],null),r},-3),s(l,"$cascade",function(){var t=this,s=n,i=n,o=n,s=t.$new_component("org.gxg.gui.link.anchor");return s["$title="]("label "+t.uuid.$to_s()),s["$[]="]("options",new Map([["content",(c(i=t.settings["$[]"]("label"))?i:"Untitled").$to_s()]])),s["$[]="]("script",` + on(:mouseup) do |event| + if @parent.enabled? + @parent.selecct() + end + end + `),t.$page().$build_components(t,[s],new Map([["application",t.application]])),o=t.$page().$find_object_by("label "+t.uuid.$to_s()),c(o)?t.label=o:n}),s(l,"$label",f("label")),s(l,"$set_label_text",function(t){var s,o=this;return t==null&&(t=n),c(o.label)?(o.label.$set_text(t.$to_s()),(s=["label",t.$to_s()],r(o.settings,"[]=",s),s[s.length-1])):n},-1),s(l,"$enabled?",function(){var t=this;return!!c(t.label)&&!c(t.label["$state_active?"]("menu-item-disabled"))}),s(l,"$enable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!1):n}),s(l,"$disable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!0):n}),s(l,"$set_data",function(t){var s,o=this;return t==null&&(t=n),(s=["data",t],r(o.settings,"[]=",s),s[s.length-1])},-1),s(l,"$select",function(t){var o=this,s=n;return t==null&&(t=n),s=o.parent.$application(),c(s)?s.$menu_item_select(o.settings):n},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.item",t(t(t("GxG"),"Gui"),"MenuItem")),function(e,t){var c=a(e,t,"OffCanvasWrapper"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-wrapper"),!0)?n:(s=["off-canvas-wrapper",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper",t(t(t("GxG"),"Gui"),"OffCanvasWrapper")),function(e,t){var d=a(e,t,"OffCanvasWrapperInner"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-wrapper-inner"),!0)||t.states["$[]="]("off-canvas-wrapper-inner",!0),c(t.options.$keys()["$include?"]("data-off-canvas-wrapper"))?n:(s=["data-off-canvas-wrapper",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper.inner",t(t(t("GxG"),"Gui"),"OffCanvasWrapperInner")),function(e,t){var d=a(e,t,"OffCanvasLeft"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas"),!0)||t.states["$[]="]("off-canvas",!0),l(t.states["$[]"]("position-left"),!0)||t.states["$[]="]("position-left",!0),c(t.options.$keys()["$include?"]("data-off-canvas"))?n:(s=["data-off-canvas",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.left",t(t(t("GxG"),"Gui"),"OffCanvasLeft")),function(e,t){var d=a(e,t,"OffCanvasRight"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas"),!0)||t.states["$[]="]("off-canvas",!0),l(t.states["$[]"]("position-right"),!0)||t.states["$[]="]("position-right",!0),c(t.options.$keys()["$include?"]("data-off-canvas"))||t.options["$[]="]("data-off-canvas",n),c(t.options.$keys()["$include?"]("data-position"))?n:(s=["data-position","right"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.right",t(t(t("GxG"),"Gui"),"OffCanvasRight")),function(e,t){var d=a(e,t,"OffCanvasContent"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-content"),!0)||t.states["$[]="]("off-canvas-content",!0),c(t.options.$keys()["$include?"]("data-off-canvas-content"))?n:(s=["data-off-canvas-content",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.content",t(t(t("GxG"),"Gui"),"OffCanvasContent")),function(e,t){var d=a(e,t,"Orbit"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("orbit"),!0)||t.states["$[]="]("orbit",!0),c(t.options.$keys()["$include?"]("role"))||t.options["$[]="]("role","region"),c(t.options.$keys()["$include?"]("data-orbit"))?n:(s=["data-orbit",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit",t(t(t("GxG"),"Gui"),"Orbit")),function(e,t){var c=a(e,t,"OrbitContainer"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("orbit-container"),!0)?n:(s=["orbit-container",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.container",t(t(t("GxG"),"Gui"),"OrbitContainer")),function(e,t){var c=a(e,t,"OrbitPrevious"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.states["$[]"]("orbit-previous"),!0)?n:(s=["orbit-previous",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.previous",t(t(t("GxG"),"Gui"),"OrbitPrevious")),function(e,t){var c=a(e,t,"OrbitNext"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.states["$[]"]("orbit-next"),!0)?n:(s=["orbit-next",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.next",t(t(t("GxG"),"Gui"),"OrbitNext")),function(e,t){var c=a(e,t,"OrbitSlide"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li",l(t.states["$[]"]("orbit-slide"),!0)?n:(s=["orbit-slide",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.slide",t(t(t("GxG"),"Gui"),"OrbitSlide")),function(e,t){var c=a(e,t,"OrbitNavigator"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="nav",l(t.states["$[]"]("orbit-bullets"),!0)?n:(s=["orbit-bullets",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.navigator",t(t(t("GxG"),"Gui"),"OrbitNavigator")),function(e,t){var l=a(e,t,"OrbitBullet"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",c(t.options.$keys()["$include?"]("data-slide"))?n:(s=["data-slide","0"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.bullet",t(t(t("GxG"),"Gui"),"OrbitBullet")),function(e,t){var l=a(e,t,"Pagination"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",c(t.options.$keys()["$include?"]("role"))?n:(s=["role","navigation"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination",t(t(t("GxG"),"Gui"),"Pagination")),function(e,t){var r=a(e,t,"PaginationItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination.item",t(t(t("GxG"),"Gui"),"PaginationItem")),function(e,t){var d=a(e,t,"ProgressBar"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("progress"),!0)||t.states["$[]="]("progress",!0),c(t.options.$keys()["$include?"]("role"))?n:(s=["role","progressbar"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.bar",t(t(t("GxG"),"Gui"),"ProgressBar")),function(e,t){var c=a(e,t,"ProgressMeter"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("progress-meter"),!0)?n:(s=["progress-meter",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.meter",t(t(t("GxG"),"Gui"),"ProgressMeter")),function(e,t){var u=a(e,t,"HorizontalSlider"),r=u.$$prototype;return r.states=r.options=r.data_second=r.data_start=r.data_end=r.uuid=n,s(u,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),c(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",c(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=n,c(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"}),s(u,"$_after_create",function e(){var p=e.$$p||n,t=this,a=n,s=n,r=n,h=n,l=n,u=n,m=n,f=n;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),c(t.data_second)?(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),h=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),m=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),f=m.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s()),h.$set_attribute("aria-controls",f.$uuid().$to_s())):(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s())),$(document).foundation()}),s(u,"$set_script",function e(t,s){var d=e.$$p||n,a=this,r=n,l=n;return e.$$p=null,t==null&&(t=""),s==null&&(s=n),c(s)?s.$set_script(t):c(a.data_second)?(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null),l=a.$find_descendant("slider_handle_two"),c(l)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,l],null)):(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null))},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.horizontal",t(t(t("GxG"),"Gui"),"HorizontalSlider")),function(e,t){var u=a(e,t,"VerticalSlider"),r=u.$$prototype;return r.states=r.options=r.data_second=r.data_start=r.data_end=r.uuid=n,s(u,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),c(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",c(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=n,c(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"}),s(u,"$_after_create",function e(){var p=e.$$p||n,t=this,a=n,s=n,r=n,h=n,l=n,u=n,m=n,f=n;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),c(t.data_second)?(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),h=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),m=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),f=m.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s()),h.$set_attribute("aria-controls",f.$uuid().$to_s())):(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s())),$(document).foundation()}),s(u,"$set_script",function e(t,s){var d=e.$$p||n,a=this,r=n,l=n;return e.$$p=null,t==null&&(t=""),s==null&&(s=n),c(s)?s.$set_script(t):c(a.data_second)?(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null),l=a.$find_descendant("slider_handle_two"),c(l)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,l],null)):(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null))},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.vertical",t(t(t("GxG"),"Gui"),"VerticalSlider")),function(e,t){var l=a(e,t,"StickyContainer"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",c(t.options.$keys()["$include?"]("data-sticky-container"))?n:(s=["data-sticky-container",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky.container",t(t(t("GxG"),"Gui"),"StickyContainer")),function(e,t){var d=a(e,t,"Sticky"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("sticky"),!0)||t.states["$[]="]("sticky",!0),c(t.options.$keys()["$include?"]("data-sticky"))?n:(s=["data-sticky",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky",t(t(t("GxG"),"Gui"),"Sticky")),function(e,t){var c=a(e,t,"Switch"),u=c.$$prototype;return u.states=u.uuid=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("switch"),!0)?n:(s=["switch",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function(){var t=this,s=n,o=n,i=n,s=t.$add_child(new Map([["component","org.gxg.gui.button.checkbox"],["title",d("switch_input",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["switch-input"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.label"],["title",d("switch_paddle",t.uuid.$to_s())],["settings",new Map],["options",new Map([["for",s.$uuid().$to_s()],["states",["switch-paddle"]]])],["script",""],["content",[]]])),i=o.$add_child(new Map([["component","org.gxg.gui.span"],["title",d("switch_span",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["show-for-sr"]]])],["script",""],["content",[]]]));return $(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.switch",t(t(t("GxG"),"Gui"),"Switch")),function(e,t){var c=a(e,t,"TabContent"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("tabs-panel"),!0)?n:(s=["tabs-panel",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.content",t(t(t("GxG"),"Gui"),"TabContent")),function(e,t){var r=a(e,t,"TabSet"),c=r.$$prototype;return c.uuid=c.tabs=c.tab_content=n,s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"}),s(r,"$_after_create",function(){var t=this;return t.tabs=t.$add_child(new Map([["component","org.gxg.gui.list"],["title",d("tabs",t.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs",n],["states",["tabs"]]])],["script",""],["content",[]]])),t.tab_content=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("tab_content",t.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs-content",t.tabs.$uuid().$to_s()],["states",["tabs-content"]]])],["script",""],["content",[]]])),$(document).foundation()}),s(r,"$add_child",function(t,s){var i=this,o=n,a=n,r=n;return t==null&&(t=new Map),s==null&&(s=new Map),o=n,l(t["$[]"]("component").$to_s().$downcase().$to_sym(),"tab_content")?(o=i.tab_content.$add_child(t),a=i.tabs.$add_child(new Map([["component","org.gxg.gui.list.item"],["title",d("tab",o.$uuid().$to_s())],["settings",new Map],["options",new Map([["states",["tabs-title"]]])],["script",""],["content",[]]])),r=a.$add_child(new Map([["component","org.gxg.gui.link.anchor"],["title",d("link",o.$uuid().$to_s())],["settings",new Map],["options",new Map([["href",d("#",o.$uuid().$to_s())],["states",[]]])],["script",""],["content",[]]])),r["$value="](o.$title().$to_s())):i.$raise("Unacceptable Component Type"),o},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.set",t(t(t("GxG"),"Gui"),"TabSet")),function(e,t){var c=a(e,t,"Thumbnail"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="img",l(t.states["$[]"]("thumbnail"),!0)?n:(s=["thumbnail",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.thumbnail",t(t(t("GxG"),"Gui"),"Thumbnail")),function(e,t){var c=a(e,t,"Titlebar"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar"),!0)?n:(s=["title-bar",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar",t(t(t("GxG"),"Gui"),"Titlebar")),function(e,t){var c=a(e,t,"TitlebarLeft"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar-left"),!0)?n:(s=["title-bar-left",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.left",t(t(t("GxG"),"Gui"),"TitlebarLeft")),function(e,t){var c=a(e,t,"TitlebarRight"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar-right"),!0)?n:(s=["title-bar-right",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.right",t(t(t("GxG"),"Gui"),"TitlebarRight")),function(e,t){var c=a(e,t,"Topbar"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar"),!0)?n:(s=["top-bar",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar",t(t(t("GxG"),"Gui"),"Topbar")),function(e,t){var c=a(e,t,"TopbarLeft"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar-left"),!0)?n:(s=["top-bar-left",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.left",t(t(t("GxG"),"Gui"),"TopbarLeft")),function(e,t){var c=a(e,t,"TopbarRight"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar-right"),!0)?n:(s=["top-bar-right",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.right",t(t(t("GxG"),"Gui"),"TopbarRight"))}(h[0],h)}(u[0],u),function(e,o){var i=a(e,o,"Object");return i.$private(),s(i,"$new_component",function(s){var i=this,o=n;return s==null&&(s=n),o=n,c(s)?c(t(t("GxG"),"Gui")["$component_registered?"](s.$to_s().$to_sym()))?(o=t(t(t("GxG"),"Database"),"DetachedHash").$new(),o["$[]="]("component",s.$to_s()),o["$[]="]("settings",new Map),o["$[]="]("options",new Map),o["$[]="]("script",""),o["$[]="]("content",[])):i.$log_error("Component "+s.$inspect()+" not registered."):i.$log_error("You MUST specify a registered component moniker."),o},-1)}(u[0],null)},Opal.modules["web/gxg_layout"]=function(e){var u=e.module,i=e.send,s=e.truthy,c=e.rb_divide,a=e.rb_gt,r=e.rb_lt,o=e.rb_times,l=e.defs,h=e.thrower,m=e.def,d=[],n=e.nil,t=e.$$$;return e.add_stubs("to_i,max,each,each_pair,[],find_object,[]=,element,/,to_f,to_sym,to_s,values,>,<,*,include?,layout_refresh,delete"),function(e,d){var f=u(e,"GxG"),p=[f].concat(d);return function(e){var d=u(e,"Gui");return l(d,"$layout_refresh",function(){var b=this,m=n,g=n,p=n,v=n,f=n,l=n,d=n,u=n,h=n,m=window.innerWidth.$to_i(),g=document.body,p=document.documentElement,v=0,v=Math.max(g.scrollHeight,g.offsetHeight,p.clientHeight,p.scrollHeight,p.offsetHeight),f=[window.innerHeight.$to_i(),v.$to_i()].$max(),l=0,d=0,u=1,h=1;return i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function e(o){var a=e.$$s==null?this:e.$$s;return o==null&&(o=n),i(t(t("GxG"),"LAYOUT")["$[]"](o),"each_pair",[],function e(a,r){var h,p=e.$$s==null?this:e.$$s,d=n,l=n,u=n;return a==null&&(a=n),r==null&&(r=n),d=p.$find_object(a),s(d)?(l=new Map([["top",0],["left",0],["right",0],["bottom",0]]),l["$[]="]("top",d.$element().getBoundingClientRect().top.$to_i()),l["$[]="]("left",d.$element().getBoundingClientRect().left.$to_i()),l["$[]="]("right",d.$element().getBoundingClientRect().right.$to_i()),l["$[]="]("bottom",d.$element().getBoundingClientRect().bottom.$to_i()),u=new Map([["top",0],["left",0],["right",0],["bottom",0]]),u["$[]="]("top",c(l["$[]"]("top").$to_f(),f.$to_f())),u["$[]="]("left",c(l["$[]"]("left").$to_f(),m.$to_f())),u["$[]="]("right",c(l["$[]"]("right").$to_f(),m.$to_f())),u["$[]="]("bottom",c(l["$[]"]("bottom").$to_f(),f.$to_f())),(h=[a.$to_s().$to_sym(),u],i(t(t("GxG"),"LAYOUT")["$[]"](o.$to_s().$to_sym()),"[]=",h),h[h.length-1])):n},{$$s:a})},{$$s:b}),i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function(o){return o==null&&(o=n),i(t(t("GxG"),"LAYOUT")["$[]"](o).$values(),"each",[],function(t){switch(t==null&&(t=n),o.valueOf()){case"top":return s(a(t["$[]"]("bottom"),l))?l=t["$[]"]("bottom"):n;break;case"left":return s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;case"right":return s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom":return s(r(t["$[]"]("top"),h))?h=t["$[]"]("top"):n;break;case"top-left":return s(a(t["$[]"]("bottom"),l))&&(l=t["$[]"]("bottom")),s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;case"top-right":return s(a(t["$[]"]("bottom"),l))&&(l=t["$[]"]("bottom")),s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom-right":return s(r(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom-left":return s(r(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;default:return n}})}),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("page_width",m.$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("page_height",f.$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("top",o(l,f.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("top_percent",o(l,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("left",o(d,m.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("left_percent",o(d,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("right",o(u,m.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("right_percent",o(u,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom",o(h,f.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom_percent",o(h,100)),!0}),l(d,"$layout_add_item",function(o,i,a){return o==null&&(o=n),i==null&&(i=n),a==null&&(a=!0),!!s(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]["$include?"](i.$to_s().$to_sym()))&&(t(t("GxG"),"LAYOUT")["$[]"](i.$to_s().$to_sym())["$[]="](o.$to_s().$to_sym(),new Map([["top",0],["left",0],["right",0],["bottom",0]])),s(a)&&t(t("GxG"),"Gui").$layout_refresh(),!0)},-1),l(d,"$layout_remove_item",function(o){return o==null&&(o=n),function(){try{var e=h("break");return i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function i(a){if(a==null&&(a=n),s(t(t("GxG"),"LAYOUT")["$[]"](a.$to_s().$to_sym())["$[]"](o.$to_s().$to_sym())))t(t("GxG"),"LAYOUT")["$[]"](a.$to_s().$to_sym()).$delete(o.$to_s().$to_sym()),e.$throw(n,i.$$is_lambda);else return n})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t(t("GxG"),"Gui").$layout_refresh(),!0},-1),m(d,"$layout_content_area",function(){return t(t("GxG"),"LAYOUT_LIMITS")})}(p[0])}(d[0],d)},Opal.modules["web/gxg_windows"]=function(e){var b=e.module,g=e.klass,o=e.def,h=e.alias,n=e.truthy,O=e.assign_ivar,u=e.return_ivar,l=e.rb_times,a=e.rb_divide,i=e.rb_minus,c=e.rb_plus,r=e.send,m=e.rb_ge,p=e.rb_le,v=e.rb_lt,f=e.rb_gt,d=e.eqeq,j=e.send2,y=e.find_super,_=e.thrower,w=[],t=e.nil,s=e.$$$;return e.add_stubs("set_application,respond_to?,unlink_viewport,register_component_class,layout_content_area,[],*,/,to_f,height,width,[]=,gxg_merge_style,parent,-,size,+,each_pair,to_sym,to_s,include?,to_i,gsub,update_appearance,is_any?,delete,element,is_a?,>=,fit_within_boundaries,commit_settings,set_top,set_left,<=,set_right,set_bottom,set_width,set_height,<,>,set_text,set_window_title,set_frame,layout_refresh,==,add_child,original_add_child,children,valid_uuid?,values,original_children,shift,uuid,title,each,<<,new,title=,theme_widget,build_components,page,find_object_by,post_event,set_data,set_responder,dialog_close,call,set_attribute,merge_style,set_script,menu_reference,search_content,set_menu,log_warn,inspect,window_register,before_open,open,show,after_open,get_window_registration,before_close,close,hide,after_close,application,unlink_window,window_unregister,destroy,set_title,get_window,link_window,every_child,dialog_open,to_proc,min,collect,max,window_is_in_back?,window_back_layer,window_top_layer,window_next_layer,step,get_window_switcher,next_minimize_slot,window_send_to_back,animate,top,left,right,bottom,find_child,unminimize_effect,clear_special_state,unmaximize_effect,rolldown_effect,window_restoreable?,window_restore,set_special_state,minimize_effect,maximize_effect,window_bring_to_front,rollup_effect,keys,to_h,sort_by,each_with_index,window_repack_layers"),function(w,x){var E=b(w,"GxG"),C=[E].concat(x);return function(w,x){var E=b(w,"Gui"),C=[E].concat(x);return function(e,s){var i=g(e,s,"ApplicationViewport"),a=i.$$prototype;return a.application=a.uuid=t,o(i,"$set_application",function(n){var s=this;return n==null&&(n=t),s.application=n},-1),h(i,"application=","set_application"),o(i,"$detach",function(){var s=this;return n(s.application)&&n(s.application["$respond_to?"]("unlink_viewport"))?(s.application.$unlink_viewport(s.uuid),s.application=t):t})}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement")),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",s(s(s("GxG"),"Gui"),"ApplicationViewport")),function(b,_,w){var x=g(b,_,"Window"),k=[x].concat(w),E=e.$r(k),C=x.$$prototype;return C.top=C.left=C.title_object=C.window_title=C.content=C.title_margin=C.menu_margin=C.resize_margin=C.tracking=C.menu_bar=C.menu_area=C.bottom=C.right=C.modal=C.menu_reference=C.uuid=C.closebox=C.minimizebox=C.maximizebox=C.scrolling=C.resize=C.application=t,o(x,"$before_close",function(n){return n==null&&(n=t),t},-1),o(x,"$close",function(n){return n==null&&(n=t),t},-1),o(x,"$after_close",function(n){return n==null&&(n=t),t},-1),o(x,"$before_open",function(n){return n==null&&(n=t),t},-1),o(x,"$open",function(n){return n==null&&(n=t),t},-1),o(x,"$after_open",function(n){return n==null&&(n=t),t},-1),o(x,"$set_application",O("application")),h(x,"application=","set_application"),o(x,"$application",u("application")),o(x,"$commit_settings",function(){var o=this,u=t,h=t,m=t,f=t,p=t,d=t,u=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),h=l(a(o.top.$to_f(),u["$[]"]("page_height").$to_f()),100),m=l(a(o.left.$to_f(),u["$[]"]("page_width").$to_f()),100),f=l(a(o.$height().$to_f(),u["$[]"]("page_height").$to_f()),100),p=l(a(o.$width().$to_f(),u["$[]"]("page_width").$to_f()),100),d=new Map;return d["$[]="]("position","absolute"),d["$[]="]("display","block"),d["$[]="]("tabindex",-1),d["$[]="]("top",""+h+"%"),d["$[]="]("left",""+m+"%"),d["$[]="]("height",""+f+"%"),d["$[]="]("width",""+p+"%"),o.$gxg_merge_style(d),n(o.title_object)&&o.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+i(i(a(o.$width(),2),l(a(o.window_title.$size(),2),8)),60)+"px"]])),n(o.content)&&(o.content.$gxg_merge_style(new Map([["height",""+i(o.$height(),c(c(o.title_margin,o.menu_margin),o.resize_margin))+"px"],["width",""+i(o.$width(),l(o.resize_margin,2))+"px"]])),r(o.tracking,"each_pair",[],function e(s,o){var u=e.$$s==null?this:e.$$s,d=t;return s==null&&(s=t),o==null&&(o=t),d=new Map,r(o["$[]"]("details"),"each_pair",[],function e(s,o){var u,h=e.$$s==null?this:e.$$s;switch(h.resize_margin==null&&(h.resize_margin=t),h.title_margin==null&&(h.title_margin=t),h.menu_margin==null&&(h.menu_margin=t),s==null&&(s=t),o==null&&(o=t),s.$to_s().$to_sym().valueOf()){case"width":return n(o.$to_s()["$include?"]("%"))?(u=["width",c(l(a(o.$to_s().$gsub("%","").$to_f(),100),i(h.$width(),l(h.resize_margin,2)).$to_f()).$to_i().$to_s(),"px")],r(d,"[]=",u),u[u.length-1]):(u=["width",""+o.$to_s()+"px"],r(d,"[]=",u),u[u.length-1]);break;case"height":return n(o.$to_s()["$include?"]("%"))?(u=["height",c(l(a(o.$to_s().$gsub("%","").$to_f(),100),i(h.$height(),c(c(h.title_margin,h.menu_margin),h.resize_margin)).$to_f()).$to_i().$to_s(),"px")],r(d,"[]=",u),u[u.length-1]):(u=["height",""+o.$to_s()+"px"],r(d,"[]=",u),u[u.length-1]);break;default:return t}},{$$s:u}),o["$[]"]("object").$gxg_merge_style(d)},{$$s:o})),n(o.menu_bar)?(o.menu_area.$gxg_merge_style(new Map([["width",""+i(o.$width(),l(o.resize_margin,2))+"px"]])),n(o.menu_bar["$respond_to?"]("update_appearance"))?o.menu_bar.$update_appearance():t):t}),o(x,"$track_deltas",function(o,i,a){var r=this;return o==null&&(o=t),i==null&&(i=t),a==null&&(a=new Map),!!(n(o)&&n(i)&&n(a["$is_any?"](s("Hash"),s(s(s("GxG"),"Database"),"DetachedHash"))))&&(r.tracking["$[]="](o,new Map([["object",i],["details",a]])),!0)},-1),o(x,"$untrack_deltas",function(s){var o=this;return s==null&&(s=t),!!n(s)&&(o.tracking.$delete(s),!0)},-1),o(x,"$content",u("content")),o(x,"$content_width",function(){var t=this;return n(t.content)?(t.content.$element().getBoundingClientRect().right-t.content.$element().getBoundingClientRect().left).$to_i():0}),o(x,"$content_height",function(){var t=this;return n(t.content)?(t.content.$element().getBoundingClientRect().bottom-t.content.$element().getBoundingClientRect().top).$to_i():0}),o(x,"$set_top",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(a.bottom,o),100))?n(m(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("top")))?(a.top=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"top=","set_top"),o(x,"$top",u("top")),o(x,"$set_left",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(a.right,o),200))?n(m(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("left")))?(a.left=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"left=","set_left"),o(x,"$left",u("left")),o(x,"$set_right",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(o,a.left),200))?n(p(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(a.right=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"right=","set_right"),o(x,"$right",u("right")),o(x,"$set_bottom",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(o,a.top),100))?n(p(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(a.bottom=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"bottom=","set_bottom"),o(x,"$bottom",u("bottom")),o(x,"$set_width",function(o){var i=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(o,200))?n(p(c(i.left,o),s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(i.right=c(i.left,o),i.$fit_within_boundaries(),i.$commit_settings()):t:t},-1),h(x,"width=","set_width"),o(x,"$width",function(){var t=this;return i(t.right,t.left)}),o(x,"$set_height",function(o){var i=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(o,100))?n(p(c(i.top,o),s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(i.bottom=c(i.top,o),i.$fit_within_boundaries(),i.$commit_settings()):t:t},-1),h(x,"height=","set_height"),o(x,"$height",function(){var t=this;return i(t.bottom,t.top)}),o(x,"$set_position",function(i,a){var r=this,d=t,u=t,l=t;return i==null&&(i=t),a==null&&(a=t),d=r.$width(),u=r.$height(),l=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),n(e.Range.$new(l["$[]"]("top"),l["$[]"]("bottom"),!1)["$include?"](a.$to_i()))&&n(e.Range.$new(l["$[]"]("top"),l["$[]"]("bottom"),!1)["$include?"](c(a.$to_i(),u)))&&(r.top=a.$to_i()),n(e.Range.$new(l["$[]"]("left"),l["$[]"]("right"),!1)["$include?"](i.$to_i()))&&n(e.Range.$new(l["$[]"]("left"),l["$[]"]("right"),!1)["$include?"](c(i.$to_i(),d)))&&(r.left=i.$to_i()),r.bottom=c(r.top,u),r.right=c(r.left,d),r.$fit_within_boundaries(),r.$commit_settings()},-1),o(x,"$set_frame",function(o){var i=this,a=t;return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?(i.top=n(a=o["$[]"]("top"))?a:i.top,i.left=n(a=o["$[]"]("left"))?a:i.left,i.right=n(a=o["$[]"]("right"))?a:i.right,i.bottom=n(a=o["$[]"]("bottom"))?a:i.bottom,i.$fit_within_boundaries(),i.$commit_settings()):t},-1),o(x,"$position",function(){var t=this;return new Map([["x",t.left],["y",t.top]])}),o(x,"$fit_within_boundaries",function(){var o=this,a=t,r=t,i=t,a=o.$width(),r=o.$height(),i=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area();return n(v(o.top,i["$[]"]("top")))&&(o.top=i["$[]"]("top")),n(v(o.left,i["$[]"]("left")))&&(o.left=i["$[]"]("left")),o.right=c(o.left,a),o.bottom=c(o.top,r),n(f(o.bottom,i["$[]"]("bottom")))&&(o.bottom=i["$[]"]("bottom")),n(f(o.right,i["$[]"]("right")))?o.right=i["$[]"]("right"):t}),o(x,"$set_window_title",function(o){var r=this;return o==null&&(o=t),n(r.title_object)&&n(o["$is_a?"](s("String")))?(r.window_title=o,r.title_object.$set_text(r.window_title),r.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+i(i(a(r.$width(),2),l(a(r.window_title.$size(),2),8)),60)+"px"]]))):t},-1),h(x,"window_title=","set_window_title"),o(x,"$window_title",function(){var s=this;return n(s.title_object)?s.window_title:t}),o(x,"$special_state",u("special_state")),o(x,"$set_special_state",function(o){var i=this,a=t;return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?(i.special_state=o,i.top=n(a=o["$[]"]("top"))?a:i.top,i.left=n(a=o["$[]"]("left"))?a:i.left,i.right=n(a=o["$[]"]("right"))?a:i.right,i.bottom=n(a=o["$[]"]("bottom"))?a:i.bottom,i.$fit_within_boundaries(),i.$commit_settings()):t},-1),o(x,"$clear_special_state",function(o){var i=this;return o==null&&(o=t),i.special_state=t,n(o["$is_a?"](s("Hash")))?i.$set_frame(o):t},-1),o(x,"$initialize",function e(o,r,u){var p=e.$$p||t,h=this,f=t,m=t;return e.$$p=null,u==null&&(u=new Map),s(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_refresh(),f=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),h.special_state=t,h.content=t,n(r["$[]"]("top")["$is_a?"](s("String")))||n(r["$[]"]("top").$to_s()["$include?"]("."))?n(r["$[]"]("top")["$is_a?"](s("String")))?h.top=l(f["$[]"]("page_height"),a(r["$[]"]("top").$gsub("%","").$to_f(),100)):h.top=l(f["$[]"]("page_height"),a(r["$[]"]("top"),100)):h.top=n(m=r["$[]"]("top"))?m:i(a(window.innerHeight.$to_i(),2),50),n(r["$[]"]("left")["$is_a?"](s("String")))||n(r["$[]"]("left").$to_s()["$include?"]("."))?n(r["$[]"]("left")["$is_a?"](s("String")))?h.left=l(f["$[]"]("page_width"),a(r["$[]"]("left").$gsub("%","").$to_f(),100)):h.left=l(f["$[]"]("page_width"),a(r["$[]"]("left"),100)):h.left=n(m=r["$[]"]("left"))?m:i(a(window.innerWidth.$to_i(),2),100),n(r["$[]"]("right")["$is_a?"](s("String")))||n(r["$[]"]("right").$to_s()["$include?"]("."))?n(r["$[]"]("right")["$is_a?"](s("String")))?h.right=l(f["$[]"]("page_width"),a(r["$[]"]("right").$gsub("%","").$to_f(),100)):h.right=l(f["$[]"]("page_width"),a(r["$[]"]("right"),100)):h.right=n(m=r["$[]"]("right"))?m:c(a(window.innerWidth.$to_i(),2),100),n(r["$[]"]("bottom")["$is_a?"](s("String")))||n(r["$[]"]("bottom").$to_s()["$include?"]("."))?n(r["$[]"]("bottom")["$is_a?"](s("String")))?h.bottom=l(f["$[]"]("page_height"),a(r["$[]"]("bottom").$gsub("%","").$to_f(),100)):h.bottom=l(f["$[]"]("page_height"),a(r["$[]"]("bottom"),100)):h.bottom=n(m=r["$[]"]("bottom"))?m:c(a(window.innerHeight.$to_i(),2),50),h.window_title=n(m=r["$[]"]("window_title"))?m:"Untitled",h.title_object=t,n(r["$[]"]("width")["$is_a?"](s("String")))||n(r["$[]"]("width").$to_s()["$include?"]("."))?n(r["$[]"]("width")["$is_a?"](s("String")))?h.right=c(h.left,l(i(f["$[]"]("right"),f["$[]"]("left")),a(r["$[]"]("width").$gsub("%","").$to_f(),100))):h.right=c(h.left,l(i(f["$[]"]("right"),f["$[]"]("left")),a(r["$[]"]("width"),100))):n(r["$[]"]("width")["$is_a?"](s("Numeric")))&&(h.right=c(h.left,r.$delete("width"))),n(r["$[]"]("height")["$is_a?"](s("String")))||n(r["$[]"]("height").$to_s()["$include?"]("."))?n(r["$[]"]("height")["$is_a?"](s("String")))?h.bottom=c(h.top,l(i(f["$[]"]("bottom"),f["$[]"]("top")),a(r["$[]"]("height").$gsub("%","").$to_f(),100))):h.bottom=c(h.top,l(i(f["$[]"]("bottom"),f["$[]"]("top")),a(r["$[]"]("height"),100))):n(r["$[]"]("height")["$is_a?"](s("Numeric")))&&(h.bottom=c(h.top,r["$[]"]("height"))),h.$fit_within_boundaries(),h.modal=n(m=r["$[]"]("modal"))&&m,h.scrolling=r["$[]"]("scroll"),h.title_margin=24,d(h.modal,!0)?(h.resize=!1,h.resize_margin=0):(h.resize=!n(m=r["$[]"]("resize"))||m,h.resize_margin=2,h.title_margin=26),d(h.modal,!0)?(h.closebox=!1,h.minimizebox=!1,h.maximizebox=!1):(d(r["$[]"]("close"),!1)?h.closebox=!1:h.closebox=(n(m=r["$[]"]("close"))?m:"enabled").$to_s().$to_sym(),d(r["$[]"]("minimize"),!1)?h.minimizebox=!1:h.minimizebox=(n(m=r["$[]"]("minimize"))?m:"enabled").$to_s().$to_sym(),d(r["$[]"]("maximize"),!1)?h.maximizebox=!1:h.maximizebox=(n(m=r["$[]"]("maximize"))?m:"enabled").$to_s().$to_sym()),h.tracking=new Map,h.menu_reference=r["$[]"]("menu"),h.menu_area=t,h.menu_bar=t,n(h.menu_reference)?h.menu_margin=16:h.menu_margin=0,j(h,y(h,"initialize",e,!1,!0),"initialize",[o,r,u],null),h},-3),o(x,"$menu_reference",u("menu_reference")),o(x,"$menubar",u("menu_area")),h(x,"original_add_child","add_child"),o(x,"$add_child",function(s){var o=this;return s==null&&(s=t),n(o.content)?o.content.$add_child(s):o.$original_add_child(s)},-1),h(x,"original_children","children"),o(x,"$children",function(){var t=this;return n(t.content)?t.content.$children():new Map}),o(x,"$find_child",function(s,o){var u=this,a=t,l=t,c=t,i=t;for(s==null&&(s=t),o==null&&(o=!1),a=t,n(E("GxG")["$valid_uuid?"](s))?l=!0:l=!1,d(o,!0)?c=u.$original_children().$values():c=u.$children().$values();n(f(c.$size(),0));)if(i=c.$shift(),n(i)){if(n(l)){if(d(i.$uuid(),s)){a=i;break}}else if(d(i.$title(),s)){a=i;break}n(a)||r(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)})}return a},-1),o(x,"$cascade",function(){var o=this,L=t,C=t,w=t,b=t,y=t,x=t,v=t,p=t,j=t,N=t,h=t,R=t,D=t,z=t,T=t,F=t,S=t,A=t,M=t,k=t,O=t,g=t,u=t,_=t,f=t,m=t;return o.$commit_settings(),L=[],C=s(s(s("GxG"),"Database"),"DetachedHash").$new(),C["$title="]("title_object "+o.uuid.$to_s()),C["$[]="]("component","org.gxg.gui.label"),C["$[]="]("settings",new Map),C["$[]="]("options",new Map([["content",o.window_title],["style",new Map([["width","100%"],["font-size","16px"],["text-align","center"]])]])),C["$[]="]("script",""),C["$[]="]("content",[]),w=s(s(s("GxG"),"Database"),"DetachedHash").$new(),w["$[]="]("component","org.gxg.gui.image"),w["$[]="]("settings",new Map),w["$[]="]("options",new Map([["src",o.$theme_widget("close.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),w["$[]="]("script",` + on(:mouseup) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('close.png')) + the_window = self.window + if the_window + if the_window.application + the_window.application.window_close({:window => the_window.uuid}) + else + GxG::DISPLAY_DETAILS[:object].window_close(the_window.uuid) + end + else + log_warn('Window Not Found') + end + end + end + on(:mousedown) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('close_mousedown.png')) + end + end + on(:mouseenter) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('close_mouseenter.png')) + end + end + on(:mouseleave) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('close.png')) + end + end + `),w["$[]="]("content",[]),b=s(s(s("GxG"),"Database"),"DetachedHash").$new(),b["$[]="]("component","org.gxg.gui.image"),b["$[]="]("settings",new Map),b["$[]="]("options",new Map([["src",o.$theme_widget("minimize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),b["$[]="]("script",` + on(:mouseup) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('minimize.png')) + the_window = self.window + if the_window + special = the_window.special_state() + if special.is_a?(::Hash) + if special[:action] == :minimize + GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid) + else + GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + else + GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + end + end + end + on(:mousedown) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('minimize_mousedown.png')) + end + end + on(:mouseenter) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('minimize_mouseenter.png')) + end + end + on(:mouseleave) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('minimize.png')) + end + end + `),b["$[]="]("content",[]),y=s(s(s("GxG"),"Database"),"DetachedHash").$new(),y["$[]="]("component","org.gxg.gui.image"),y["$[]="]("settings",new Map),y["$[]="]("options",new Map([["src",o.$theme_widget("maximize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),y["$[]="]("script",` + on(:mouseup) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('maximize.png')) + the_window = self.window + if the_window + special = the_window.special_state() + if special.is_a?(::Hash) + if special[:action] == :maximize + GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid) + else + GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + else + GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + end + end + end + on(:mousedown) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('maximize_mousedown.png')) + end + end + on(:mouseenter) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('maximize_mouseenter.png')) + end + end + on(:mouseleave) do |event| + unless self.gxg_get_state(:disabled) == true + self.gxg_set_attribute(:src,theme_widget('maximize.png')) + end + end + `),y["$[]="]("content",[]),x=s(s(s("GxG"),"Database"),"DetachedHash").$new(),x["$[]="]("component","org.gxg.gui.block.table"),x["$[]="]("settings",new Map),x["$[]="]("options",new Map([["style",new Map([["clear","both"],["height","24px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 0px 0px"],["border-bottom","1px solid #c2c2c2"]])],["states",new Map([["default-background-color",!0]])]])),x["$[]="]("script",""),x["$[]="]("content",[]),v=s(s(s("GxG"),"Database"),"DetachedHash").$new(),v["$[]="]("component","org.gxg.gui.block.table.row"),v["$[]="]("settings",new Map),v["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),v["$[]="]("script",""),v["$[]="]("content",[]),p=s(s(s("GxG"),"Database"),"DetachedHash").$new(),p["$[]="]("component","org.gxg.gui.block.table.cell"),p["$[]="]("settings",new Map),p["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),p["$[]="]("script",""),p["$[]="]("content",[]),j=s(s(s("GxG"),"Database"),"DetachedHash").$new(),j["$[]="]("component","org.gxg.gui.block.table.cell"),j["$[]="]("settings",new Map),j["$[]="]("options",new Map([["style",new Map([["width","100%"],["padding","0px 0px 0px "+i(i(a(o.$width(),2),l(a(o.window_title.$size(),2),8)),60)+"px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),j["$[]="]("script",""),j["$[]="]("content",[]),N=s(s(s("GxG"),"Database"),"DetachedHash").$new(),N["$[]="]("component","org.gxg.gui.block.table.cell"),N["$[]="]("settings",new Map),N["$[]="]("options",new Map([["style",new Map([["float","right"],["padding","0px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),N["$[]="]("script",""),N["$[]="]("content",[]),n(o.closebox)&&(d(o.closebox,"disabled")&&(w["$[]"]("options")["$[]="]("src",o.$theme_widget("close_disable.png")),w["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](w)),n(o.minimizebox)&&(d(o.minimizebox,"disabled")&&(b["$[]"]("options")["$[]="]("src",o.$theme_widget("minimize_disable.png")),b["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](b)),n(o.maximizebox)&&(d(o.maximizebox,"disabled")&&(y["$[]"]("options")["$[]="]("src",o.$theme_widget("maximize_disable.png")),y["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](y)),j["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + # + if @window_handle + unless @last_mouse_x + @last_mouse_x = event[:pageX] + end + unless @last_mouse_y + @last_mouse_y = event[:pageY] + end + offset_x = (event[:pageX] - @window_handle.left) + if event[:pageY] < @window_handle.top + offset_y = (@window_handle.top - event[:pageY]) + else + offset_y = (event[:pageY] - @window_handle.top) + end + new_x = ((event[:pageX] - offset_x) + (event[:pageX] - @last_mouse_x)) + new_y = ((event[:pageY] - offset_y) + (event[:pageY] - @last_mouse_y)) + @window_handle.set_position(new_x,new_y) + @last_mouse_x = event[:pageX] + @last_mouse_y = event[:pageY] + end + end + end + on(:dblclick) do |event| + the_window = self.window + if the_window + special = the_window.special_state() + if special.is_a?(::Hash) + if special[:action] == :rollup + GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid) + else + GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + else + GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom}) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousemove) do |event| + @window_handle = self.window + if ((event[:buttons] & 1) == 1) + @mode = :drag +`+` do_drag(event) +`+` else +`+` @mode = :hover +`+` end +`+` end +`+` on(:mouseover) do |event| +`+` if @mode == :drag +`+` do_drag(event) +`+` end +`+` end +`+` on(:mouseleave) do |event| +`+` if @mode == :drag +`+` do_drag(event) +`+` end +`+` end +`+` on(:mouseenter) do |event| +`+` if @mode == :drag +`+` do_drag(event) +`+` end +`+` end +`+" "),j["$[]"]("content")["$<<"](C),v["$[]"]("content")["$<<"](p),v["$[]"]("content")["$<<"](j),v["$[]"]("content")["$<<"](N),x["$[]"]("content")["$<<"](v),L["$<<"](x),h=s(s(s("GxG"),"Database"),"DetachedHash").$new(),h["$title="]("content "+o.uuid.$to_s()),h["$[]="]("component","org.gxg.gui.block"),h["$[]="]("settings",new Map),h["$[]="]("options",new Map([["style",new Map([["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+i(o.$width(),l(o.resize_margin,2))+"px"],["height",""+i(o.$height(),c(c(o.title_margin,o.menu_margin),o.resize_margin))+"px"]])],["states",new Map([["default-background-color",!0]])]])),h["$[]="]("script",""),h["$[]="]("content",[]),R=h.$uuid(),n(o.scrolling)?d(o.scrolling,!0)?h["$[]"]("options")["$[]"]("style")["$[]="]("overflow","scroll"):(d(o.scrolling,"vertical")&&h["$[]"]("options")["$[]"]("style")["$[]="]("overflow-y","scroll"),d(o.scrolling,"horizontal")&&h["$[]"]("options")["$[]"]("style")["$[]="]("overflow-x","scroll")):h["$[]"]("options")["$[]"]("style")["$[]="]("overflow","hidden"),D=s(s(s("GxG"),"Database"),"DetachedHash").$new(),D["$[]="]("component","org.gxg.gui.block.table.cell"),D["$[]="]("settings",new Map),D["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),D["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_left(event[:pageX]) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),D["$[]="]("content",[]),z=s(s(s("GxG"),"Database"),"DetachedHash").$new(),z["$[]="]("component","org.gxg.gui.block.table.cell"),z["$[]="]("settings",new Map),z["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),z["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_right(event[:pageX] + 1) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),z["$[]="]("content",[]),T=s(s(s("GxG"),"Database"),"DetachedHash").$new(),T["$[]="]("component","org.gxg.gui.block.table.cell"),T["$[]="]("settings",new Map),T["$[]="]("options",new Map([["style",new Map([["height","2px"],["cursor","s-resize"]])]])),T["$[]="]("script",` + def do_drag(event) + window_handle = self.window + if window_handle + if ((event[:buttons] & 1) == 1) + window_handle.set_bottom(event[:pageY] + 4) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),T["$[]="]("content",[]),F=s(s(s("GxG"),"Database"),"DetachedHash").$new(),F["$[]="]("component","org.gxg.gui.block.table.cell"),F["$[]="]("settings",new Map),F["$[]="]("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","sw-resize"]])]])),F["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_left(event[:pageX] - 2) + window_handle.set_bottom(event[:pageY] + 4) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),F["$[]="]("content",[]),S=s(s(s("GxG"),"Database"),"DetachedHash").$new(),S["$[]="]("component","org.gxg.gui.block.table.cell"),S["$[]="]("settings",new Map),S["$[]="]("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","se-resize"]])]])),S["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_right(event[:pageX] + 2) + window_handle.set_bottom(event[:pageY] + 4) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),S["$[]="]("content",[]),A=s(s(s("GxG"),"Database"),"DetachedHash").$new(),A["$[]="]("component","org.gxg.gui.block.table.cell"),A["$[]="]("settings",new Map),A["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),A["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_left(event[:pageX]) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),A["$[]="]("content",[]),M=s(s(s("GxG"),"Database"),"DetachedHash").$new(),M["$[]="]("component","org.gxg.gui.block.table.cell"),M["$[]="]("settings",new Map),M["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),M["$[]="]("script",` + def do_drag(event) + if ((event[:buttons] & 1) == 1) + window_handle = self.window + if window_handle + window_handle.set_right(event[:pageX] + 1) + end + end + end + on(:mouseup) do |event| + @mode = :hover + the_window = self.window + if the_window + GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid) + end + end + on(:mousedown) do |event| + @mode = :drag + do_drag(event) + end + on(:mouseover) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseleave) do |event| + if @mode == :drag + do_drag(event) + end + end + on(:mouseenter) do |event| + if @mode == :drag + do_drag(event) + end + end + `),M["$[]="]("content",[]),k=s(s(s("GxG"),"Database"),"DetachedHash").$new(),k["$title="]("menu_area "+o.uuid.$to_s()),k["$[]="]("component","org.gxg.gui.block.table.cell"),k["$[]="]("settings",new Map),k["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["height","16px"],["padding","0px"],["margin","0px"]])]])),k["$[]="]("script",""),k["$[]="]("content",[]),O=s(s(s("GxG"),"Database"),"DetachedHash").$new(),O["$title="]("menu_area_row "+o.uuid.$to_s()),O["$[]="]("component","org.gxg.gui.block.table.row"),O["$[]="]("settings",new Map),O["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["clear","both"],["padding","0px"],["width","100%"],["height","16px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"],["border-bottom","1px solid #c2c2c2"]])]])),O["$[]="]("script",""),O["$[]="]("content",[A,k,M]),g=s(s(s("GxG"),"Database"),"DetachedHash").$new(),g["$title="]("content_area "+o.uuid.$to_s()),g["$[]="]("component","org.gxg.gui.block.table.cell"),g["$[]="]("settings",new Map),g["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["border","0px"]])]])),g["$[]="]("script",""),g["$[]="]("content",[h]),u=s(s(s("GxG"),"Database"),"DetachedHash").$new(),u["$[]="]("component","org.gxg.gui.block.table.row"),u["$[]="]("settings",new Map),u["$[]="]("options",new Map),u["$[]="]("script",""),u["$[]="]("content",[]),_=s(s(s("GxG"),"Database"),"DetachedHash").$new(),_["$[]="]("component","org.gxg.gui.block.table.row"),_["$[]="]("settings",new Map),_["$[]="]("options",new Map),_["$[]="]("script",""),_["$[]="]("content",[]),f=s(s(s("GxG"),"Database"),"DetachedHash").$new(),f["$title="]("window_body "+o.uuid.$to_s()),f["$[]="]("component","org.gxg.gui.block.table"),f["$[]="]("settings",new Map),f["$[]="]("options",new Map([["style",new Map([["width","100%"]])],["states",new Map([["default-background-color",!0]])]])),f["$[]="]("script",""),f["$[]="]("content",[]),n(o.resize)?(u["$[]="]("content",[D,g,z]),_["$[]="]("content",[F,T,S]),n(o.menu_reference)?f["$[]="]("content",[O,u,_]):f["$[]="]("content",[u,_])):n(o.menu_reference)?(u["$[]="]("content",[g]),f["$[]="]("content",[O,u])):(u["$[]="]("content",[g]),f["$[]="]("content",[u])),L["$<<"](f),o.content=t,o.$page().$build_components(o,L,new Map([["application",o.application]])),m=o.$page().$find_object_by(R),n(m)&&(o.content=m),m=o.$page().$find_object_by("window_body "+o.uuid.$to_s()),n(m)&&(o.window_body=m),m=o.$page().$find_object_by("title_object "+o.uuid.$to_s()),n(m)&&(o.title_object=m),m=o.$page().$find_object_by("menu_area "+o.uuid.$to_s()),n(m)&&(o.menu_area=m,o.menu_margin=(o.menu_area.$element().getBoundingClientRect().bottom-o.menu_area.$element().getBoundingClientRect().top).$to_i(),n(o.menu_area)&&o.menu_area.$parent().$parent().$gxg_merge_style(new Map([["border-collapse","collapse"]]))),r(s(E("GxG"),"DISPATCHER"),"post_event",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$commit_settings()},{$$s:o}),o})}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement"),C),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.window",s(s(s("GxG"),"Gui"),"Window")),function(m,p,v){var b=g(m,p,"DialogBox"),w=[b].concat(v),x=e.$r(w),_=b.$$prototype;return _.title_object=_.window_title=_.responder=_.right=_.left=_.bottom=_.top=_.opacity=_.content=_.background_color=_.layer=_.uuid=t,o(b,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null)}),o(b,"$uuid",u("uuid")),o(b,"$before_close",function(n){return n==null&&(n=t),t},-1),o(b,"$after_close",function(n){return n==null&&(n=t),t},-1),o(b,"$before_open",function(n){return n==null&&(n=t),t},-1),o(b,"$after_open",function(n){return n==null&&(n=t),t},-1),o(b,"$set_application",O("application")),h(b,"application=","set_application"),o(b,"$application",u("application")),o(b,"$set_window_title",function(o){var i=this;return o==null&&(o=t),n(i.title_object)&&n(o["$is_a?"](s("String")))?(i.window_title=o,i.title_object.$set_text(i.window_title)):t},-1),h(b,"window_title=","set_window_title"),o(b,"$window_title",function(){var s=this;return n(s.title_object)?s.window_title:t}),o(b,"$set_data",function(t){var n=this;return t==null&&(t=new Map),n.data=t},-1),h(b,"data=","set_data"),o(b,"$data",u("data")),o(b,"$set_responder",function(s){var o=this;return s==null&&(s=t),n(s["$respond_to?"]("call"))?o.responder=s:t},-1),h(b,"responder=","set_responder"),o(b,"$respond",function(s){var o=this;return s==null&&(s=t),o.$page().$dialog_close(),n(o.responder["$respond_to?"]("call"))?o.responder.$call(s):t},-1),o(b,"$top",u("top")),o(b,"$left",u("left")),o(b,"$right",u("right")),o(b,"$bottom",u("bottom")),o(b,"$width",function(){var t=this;return i(t.right,t.left)}),o(b,"$height",function(){var t=this;return i(t.bottom,t.top)}),o(b,"$position",function(){var t=this;return new Map([["x",t.left],["y",t.top]])}),o(b,"$layer",u("layer")),o(b,"$initialize",function e(o,r,d){var p=e.$$p||t,u=this,m=t,f=t,h=t;return e.$$p=null,d==null&&(d=new Map),u.special_state=t,u.content=t,m=t,n(r["$[]"]("width")["$is_a?"](s("String")))||n(r["$[]"]("width").$to_s()["$include?"]("."))?n(r["$[]"]("width")["$is_a?"](s("String")))?m=l(window.innerWidth.$to_f(),a(r["$[]"]("width").$gsub("%","").$to_f(),100)):m=l(window.innerWidth.$to_f(),a(r["$[]"]("width"),100)):n(r["$[]"]("width")["$is_a?"](s("Numeric")))&&(m=r["$[]"]("width").$to_f()),n(m)&&(u.left=i(a(window.innerWidth.$to_f(),2),a(m,2)),u.right=c(a(window.innerWidth.$to_f(),2),a(m,2))),f=t,n(r["$[]"]("height")["$is_a?"](s("String")))||n(r["$[]"]("height").$to_s()["$include?"]("."))?n(r["$[]"]("height")["$is_a?"](s("String")))?f=l(window.innerHeight.$to_f(),a(r["$[]"]("height").$gsub("%","").$to_f(),100)):f=l(window.innerHeight.$to_f(),a(r["$[]"]("height"),100)):n(r["$[]"]("height")["$is_a?"](s("Numeric")))&&(f=r["$[]"]("height").$to_f()),n(f)&&(u.top=i(a(window.innerHeight.$to_f(),2),a(f,2)),u.bottom=c(a(window.innerHeight.$to_f(),2),a(f,2))),n(r["$[]"]("top")["$is_a?"](s("String")))||n(r["$[]"]("top").$to_s()["$include?"]("."))?n(r["$[]"]("top")["$is_a?"](s("String")))?u.top=l(window.innerHeight.$to_f(),a(r["$[]"]("top").$gsub("%","").$to_f(),100)):u.top=l(window.innerHeight.$to_f(),a(r["$[]"]("top"),100)):n(f)||(u.top=n(h=r["$[]"]("top"))?h:i(a(window.innerHeight.$to_i(),2),150)),n(r["$[]"]("left")["$is_a?"](s("String")))||n(r["$[]"]("left").$to_s()["$include?"]("."))?n(r["$[]"]("left")["$is_a?"](s("String")))?u.left=l(window.innerWidth.$to_f(),a(r["$[]"]("left").$gsub("%","").$to_f(),100)):u.left=l(window.innerWidth.$to_f(),a(r["$[]"]("left"),100)):n(m)||(u.left=n(h=r["$[]"]("left"))?h:i(a(window.innerWidth.$to_i(),2),300)),n(r["$[]"]("right")["$is_a?"](s("String")))||n(r["$[]"]("right").$to_s()["$include?"]("."))?n(r["$[]"]("right")["$is_a?"](s("String")))?u.right=l(window.innerWidth.$to_f(),a(r["$[]"]("right").$gsub("%","").$to_f(),100)):u.right=l(window.innerWidth.$to_f(),a(r["$[]"]("right"),100)):n(m)||(u.right=n(h=r["$[]"]("right"))?h:c(a(window.innerWidth.$to_i(),2),300)),n(r["$[]"]("bottom")["$is_a?"](s("String")))||n(r["$[]"]("bottom").$to_s()["$include?"]("."))?n(r["$[]"]("bottom")["$is_a?"](s("String")))?u.bottom=l(window.innerHeight.$to_f(),a(r["$[]"]("bottom").$gsub("%","").$to_f(),100)):u.bottom=l(window.innerHeight.$to_f(),a(r["$[]"]("bottom"),100)):n(f)||(u.bottom=n(h=r["$[]"]("bottom"))?h:c(a(window.innerHeight.$to_i(),2),150)),u.window_title=n(h=r["$[]"]("window_title"))?h:"Untitled",u.title_object=t,u.opacity=n(h=r["$[]"]("opacity"))?h:.8,u.background_color=n(h=r["$[]"]("background-color"))?h:"rgba(0,0,0,"+u.opacity.$to_s()+")",u.layer=2e3,u.tracking=new Map,u.responder=t,u.data=new Map,j(u,y(u,"initialize",e,!1,!0),"initialize",[o,r,d],null),u.$set_attribute("draggable",!1),u},-3),h(b,"original_add_child","add_child"),o(b,"$add_child",function(t){var s=this;return n(s.content)?s.content.$add_child(t):s.$original_add_child(t)}),h(b,"original_children","children"),o(b,"$children",function(){var t=this;return n(t.content)?t.content.$children():new Map}),o(b,"$find_child",function(s,o){var u=this,a=t,l=t,c=t,i=t;for(s==null&&(s=t),o==null&&(o=!1),a=t,n(x("GxG")["$valid_uuid?"](s))?l=!0:l=!1,d(o,!0)?c=u.$original_children().$values():c=u.$children().$values();n(f(c.$size(),0));)if(i=c.$shift(),n(i)){if(n(l)){if(d(i.$uuid(),s)){a=i;break}}else if(d(i.$title(),s)){a=i;break}n(a)||r(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)})}return a},-1),o(b,"$cascade",function(){var o=this,v=t,g=t,r=t,d=t,h=t,m=t,u=t,f=t,p=t;return o.$merge_style(new Map([["position","absolute"],["top","0px"],["left","0px"],["width","100%"],["height","100%"],["background-color",o.background_color],["z-index",o.layer]])),v=` + on(:mouseup,true) do |event| + end + on(:mousedown,true) do |event| + end + on(:mousemove,true) do |event| + end + on(:mouseenter,true) do |event| + end + on(:mouseleave,true) do |event| + end + `,o.$set_script(v),g=[],r=s(s(s("GxG"),"Database"),"DetachedHash").$new(),r["$title="]("modal_frame "+o.uuid.$to_s()),r["$[]="]("component","org.gxg.gui.block.table"),r["$[]="]("settings",new Map),r["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["overflow","hidden"],["position","absolute"],["top",""+o.top+"px"],["left",""+o.left+"px"],["width",""+o.$width()+"px"],["height",""+o.$height()+"px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 5px 5px"],["z-index",c(o.layer,100)]])],["states",new Map([["default-background-color",!0]])]])),r["$[]="]("script",""),r["$[]="]("content",[]),d=s(s(s("GxG"),"Database"),"DetachedHash").$new(),d["$title="]("title "+o.uuid.$to_s()),d["$[]="]("component","org.gxg.gui.label"),d["$[]="]("settings",new Map),d["$[]="]("options",new Map([["content",o.window_title],["style",new Map([["opacity",1],["width","100%"],["font-size","16px"],["text-align","center"]])]])),d["$[]="]("script",""),d["$[]="]("content",[]),h=s(s(s("GxG"),"Database"),"DetachedHash").$new(),h["$[]="]("component","org.gxg.gui.block.table.cell"),h["$[]="]("settings",new Map),h["$[]="]("options",new Map([["style",new Map([["opacity",1],["width","100%"],["padding","0px 0px 0px "+i(a(o.$width(),2),l(a(o.window_title.$size(),2),8))+"px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),h["$[]="]("script",""),h["$[]="]("content",[d]),m=s(s(s("GxG"),"Database"),"DetachedHash").$new(),m["$[]="]("component","org.gxg.gui.block.table.row"),m["$[]="]("settings",new Map),m["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["width","100%"],["height","24px"],["margin","0px"],["vertical-align","middle"],["background-color","#ffffff"],["border-bottom","1px solid #c2c2c2"]])]])),m["$[]="]("script",""),m["$[]="]("content",[h]),u=s(s(s("GxG"),"Database"),"DetachedHash").$new(),u["$title="]("content "+o.uuid.$to_s()),u["$[]="]("component","org.gxg.gui.block.table.cell"),u["$[]="]("settings",new Map),u["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+o.$width()+"px"],["height",""+o.$height()+"px"]])],["states",new Map([["default-background-color",!0]])]])),u["$[]="]("script",""),u["$[]="]("content",[]),f=s(s(s("GxG"),"Database"),"DetachedHash").$new(),f["$[]="]("component","org.gxg.gui.block.table.row"),f["$[]="]("settings",new Map),f["$[]="]("options",new Map([["style",new Map([["opacity",1],["width",""+o.$width()+"px"],["height",""+i(o.$height(),24)+"px"],["padding","0px"],["margin","0px"],["border","0px"]])]])),f["$[]="]("script",""),f["$[]="]("content",[u]),r["$[]="]("content",[m,f]),g["$<<"](r),o.content=t,o.$page().$build_components(o,g),p=o.$page().$find_object_by("content "+o.uuid.$to_s()),n(p)&&(o.content=p),p=o.$page().$find_object_by("title "+o.uuid.$to_s()),n(p)?o.title_object=p:t}),o(b,"$open",function(n){return n==null&&(n=new Map),t},-1),o(b,"$close",function(n){return n==null&&(n=new Map),t},-1)}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement"),C),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.window.dialog",s(s(s("GxG"),"Gui"),"DialogBox")),function(a,h){var p=b(a,"Vdom"),m=[p].concat(h);return function(a,h,m){var p=g(a,h,"Page"),y=[p].concat(m),b=e.$r(y),j=p.$$prototype;return j.dialog=j.dialog_queue=j.window_registry=t,o(p,"$window_open",function(o,i){var r=this,a=t,c=t;return o==null&&(o=t),i==null&&(i=t),!!n(o["$is_a?"](s(s(b("GxG"),"Database"),"DetachedHash")))&&(r.$build_components(r,[o],new Map([["application",i]])),a=r.$find_object_by(o.$uuid()),n(a)?(n(a.$menu_reference())&&(c=i.$search_content(a.$menu_reference()),n(c["$is_a?"](s(s(b("GxG"),"Database"),"DetachedHash")))?a.$set_menu(c):r.$log_warn("Invalid Menu Resource referenced: "+a.$menu_reference().$inspect())),r.$window_register(a.$uuid(),a),a.$before_open(),a.$open(),a.$show(),a.$after_open(),!0):(r.$log_warn("Unable to locate newly created window object."),!1))},-1),o(p,"$window_close",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=new Map),!!n(o["$is_any?"](s("String"),s("Symbol")))&&(a=r.$get_window_registration(o),!!n(a)&&(a["$[]"]("window").$before_close(),a["$[]"]("window").$close(),a["$[]"]("window").$hide(),a["$[]"]("window").$after_close(),n(a["$[]"]("window").$application())&&(a["$[]"]("window").$application().$unlink_window(o),a["$[]"]("window").$set_application(t)),r.$window_unregister(o),a["$[]"]("window").$destroy(),!0))},-1),o(p,"$dialog_open",function e(o,i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),n(o["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))?n(c.dialog["$is_a?"](s(s(s("GxG"),"Gui"),"DialogBox")))?(c.dialog_queue["$<<"](new Map([["source",o],["application",i],["details",a],["responder",l]])),!0):(c.$page().$build_components(c,[o],new Map([["application",i]])),r=c.$page().$find_object_by(o.$uuid()),!!n(r)&&(r.$set_title(o.$title()),n(i["$is_a?"](s(s("GxG"),"Application")))&&(r.$set_application(i),n(i.$get_window(o.$uuid()))||i.$link_window(r)),n(a)&&r.$set_data(a),n(l["$respond_to?"]("call"))&&r.$set_responder(l),r.$before_open(),r.$open(),r.$show(new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])),r.$after_open(),!0)):t},-1),o(p,"$dialog_close",function(o){var i=this,a=t;return o==null&&(o=new Map),n(i.dialog["$is_a?"](s(s(s("GxG"),"Gui"),"DialogBox")))&&(i.dialog.$before_close(),a=r(b("Proc"),"new",[],function e(){var o=e.$$s==null?this:e.$$s,i=t;return o.dialog==null&&(o.dialog=t),o.dialog_queue==null&&(o.dialog_queue=t),o.dialog.$close(),o.dialog.$after_close(),r(o.dialog,"every_child",[],function(o){var i=t;return o==null&&(o=t),n(o["$is_a?"](s(s(s("GxG"),"Gui"),"ApplicationViewport")))?(i=o.$application(),n(i)?i.$unlink_viewport(o.$title()):t):t}),o.dialog.$destroy(),o.dialog=t,n(f(o.dialog_queue.$size(),0))?(i=o.dialog_queue.$shift(),r(o.$page(),"dialog_open",[i["$[]"]("source"),i["$[]"]("application"),i["$[]"]("details")],i["$[]"]("responder").$to_proc())):t},{$$s:i}),n(o["$[]"]("origin"))&&n(o["$[]"]("destination"))?r(i.dialog,"hide",[o],a.$to_proc()):r(i.dialog,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])],["options",new Map([["duration",500]])]])],a.$to_proc())),!0},-1),o(p,"$window_is_in_back?",function(s){var i=this,o=t,a=t,c=t;return s==null&&(s=t),o=i.$get_window_registration(s),!!n(o)&&(a=n(c=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?c:0,!!d(o["$[]"]("layer"),a))},-1),o(p,"$window_is_in_front?",function(s){var i=this,o=t,a=t,c=t;return s==null&&(s=t),o=i.$get_window_registration(s),!!n(o)&&(a=n(c=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?c:0,!!d(o["$[]"]("layer"),a))},-1),o(p,"$window_send_to_back",function(s){var o,a=this,i=t,l=t;return s==null&&(s=t),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_is_in_back?"](s))?t:(l=a.$window_back_layer(),i["$[]"]("window").$gxg_merge_style("z-index",c(200,l)),(o=["layer",l],r(i,"[]=",o),o[o.length-1])))},-1),o(p,"$window_bring_to_front",function(s,o){var a=this,i=t,r=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(d(i["$[]"]("layer"),a.$window_top_layer())||(r=a.$window_next_layer(),i["$[]"]("window").$gxg_merge_style("z-index",c(200,r)),i["$[]="]("layer",r)),!0)},-1),o(p,"$next_minimize_slot",function(){var g=this,u=t,h=t,a=t,f=t,p=t,m=t,u=200,h=24,a=s(b("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),f=e.Range.$new(0,i(a["$[]"]("right"),a["$[]"]("left")).$step(u).$size(),!1),p=e.Range.$new(0,i(a["$[]"]("bottom"),a["$[]"]("top")).$step(h).$size(),!1),m=t;return function(){try{var s=_("break");return r(e.Range.$new(0,i(p,1),!1),"each",[],function o(p){var g=o.$$s==null?this:o.$$s;if(p==null&&(p=t),function(){try{var s=_("break");return r(e.Range.$new(0,i(f,1),!1),"each",[],function e(o){var f=e.$$s==null?this:e.$$s,g=t,i=t;if(f.window_registry==null&&(f.window_registry=t),o==null&&(o=t),g=!1,i=new Map([["top",c(a["$[]"]("top"),l(p,h))],["left",c(a["$[]"]("left"),l(o,u))],["right",c(c(a["$[]"]("left"),l(o,u)),u)],["bottom",c(c(a["$[]"]("top"),l(p,h)),h)]]),function(){try{var e=_("break");return r(f.window_registry.$values(),"each",[],function n(s){var o=t;if(s==null&&(s=t),o=new Map([["top",0],["left",0],["right",0],["bottom",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),o["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),o["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),d(o["$[]"]("top"),i["$[]"]("top"))&&d(o["$[]"]("left"),i["$[]"]("left"))&&d(o["$[]"]("right"),i["$[]"]("right"))&&d(o["$[]"]("bottom"),i["$[]"]("bottom")))g=!0,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n(g))return t;m=i,s.$throw(t,e.$$is_lambda)},{$$s:g})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),n(m))s.$throw(t,o.$$is_lambda);else return t},{$$s:g})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),m}),o(p,"$minimize_effect",function e(s){var m=e.$$p||t,g=this,c=t,a=t,u=t,h=t,o=t,f=t,p=t,v=t,d=t,j=t,l=t;return e.$$p=null,s==null&&(s=t),c=g.$get_window_switcher(),n(c)?(a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),a["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),u=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),h=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),o=new Map([["opacity",0]]),o["$[]="]("top",c.$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",c.$element().getBoundingClientRect().right.$to_i()),f=c.$element().getBoundingClientRect().right.$to_i(),p=c.$element().getBoundingClientRect().top.$to_i(),o["$[]="]("width",i(f,o["$[]"]("left"))),o["$[]="]("height",i(p,o["$[]"]("top"))),v=r(b("Proc"),"new",[],function(){return n(m["$respond_to?"]("call"))?m.$call(!0):t})):(d=g.$next_minimize_slot(),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),a["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),u=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),h=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),o=new Map([["opacity",.5]]),o["$[]="]("top",d["$[]"]("top")),o["$[]="]("left",d["$[]"]("left")),f=d["$[]"]("right"),p=d["$[]"]("bottom"),o["$[]="]("width",i(f,o["$[]"]("left"))),o["$[]="]("height",i(p,o["$[]"]("top"))),v=r(b("Proc"),"new",[],function e(){var o=e.$$s==null?this:e.$$s;return o.$window_send_to_back(s["$[]"]("window").$uuid()),n(m["$respond_to?"]("call"))?m.$call(!0):t},{$$s:g})),j=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),s["$[]"]("window").$animate(new Map([["origin",a],["destination",o],["options",new Map([["duration",500],["animationiteration",j],["animationend",v]])]])),l=new Map([["action","minimize"],["top",0],["left",0],["right",0],["bottom",0]]),l["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),l["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),l["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),l["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),l},-1),o(p,"$unminimize_effect",function e(s){var h=e.$$p||t,g=this,m=t,o=t,c=t,l=t,a=t,d=t,u=t,f=t,p=t;return e.$$p=null,s==null&&(s=t),m=g.$get_window_switcher(),n(m)?(o=new Map([["opacity",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),c=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),l=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",i(c,o["$[]"]("left"))),o["$[]="]("height",i(l,o["$[]"]("top"))),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(d,a["$[]"]("left"))),a["$[]="]("height",i(u,a["$[]"]("top")))):(o=new Map([["opacity",.5]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),c=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),l=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",i(c,o["$[]"]("left"))),o["$[]="]("height",i(l,o["$[]"]("top"))),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(d,a["$[]"]("left"))),a["$[]="]("height",i(u,a["$[]"]("top")))),f=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),p=r(b("Proc"),"new",[],function(){return n(h["$respond_to?"]("call"))?h.$call(!0):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationiteration",f],["animationend",p]])]])),!0},-1),o(p,"$maximize_effect",function e(o){var u=e.$$p||t,a=t,c=t,h=t,m=t,l=t,f=t,p=t,d=t;return e.$$p=null,o==null&&(o=t),a=s(b("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),c=new Map,c["$[]="]("top",o["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),c["$[]="]("left",o["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),h=o["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),m=o["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),c["$[]="]("width",i(h,c["$[]"]("left"))),c["$[]="]("height",i(m,c["$[]"]("top"))),l=new Map,l["$[]="]("top",a["$[]"]("top")),l["$[]="]("left",a["$[]"]("left")),l["$[]="]("width",i(a["$[]"]("right"),l["$[]"]("left"))),l["$[]="]("height",i(a["$[]"]("bottom"),l["$[]"]("top"))),f=r(b("Proc"),"new",[],function(){var n=t,s=t,i=t,a=t,n=o["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),s=o["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=o["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=o["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return o["$[]"]("window").$set_frame(new Map([["top",n],["left",s],["right",i],["bottom",a]]))}),p=r(b("Proc"),"new",[],function(){return n(u["$respond_to?"]("call"))?u.$call(!0):t}),o["$[]"]("window").$animate(new Map([["origin",c],["destination",l],["options",new Map([["duration",500],["animationiteration",f],["animationend",p]])]])),d=new Map([["action","maximize"],["top",0],["left",0],["right",0],["bottom",0]]),d["$[]="]("top",a["$[]"]("top")),d["$[]="]("left",a["$[]"]("left")),d["$[]="]("right",a["$[]"]("right")),d["$[]="]("bottom",a["$[]"]("bottom")),d},-1),o(p,"$unmaximize_effect",function e(s){var c=e.$$p||t,o=t,l=t,d=t,a=t,u=t,h=t,m=t,f=t;return e.$$p=null,s==null&&(s=t),o=new Map,o["$[]="]("top",s["$[]"]("window").$top()),o["$[]="]("left",s["$[]"]("window").$left()),l=s["$[]"]("window").$right(),d=s["$[]"]("window").$bottom(),o["$[]="]("width",i(l,o["$[]"]("left"))),o["$[]="]("height",i(d,o["$[]"]("top"))),a=new Map,a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),h=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),m=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),f=r(b("Proc"),"new",[],function(){return n(c["$respond_to?"]("call"))?c.$call(!0):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationiteration",m],["animationend",f]])]])),!0},-1),o(p,"$rollup_effect",function e(s){var l=e.$$p||t,i=t,d=t,a=t,c=t,o=t;return e.$$p=null,s==null&&(s=t),i=new Map,d=s["$[]"]("window").$top(),i["$[]="]("height",s["$[]"]("window").$height()),a=new Map,a["$[]="]("height",24),c=s["$[]"]("window").$find_child("window_body",!0),n(c)&&r(c,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])]])],function(){return s["$[]"]("window").$animate(new Map([["origin",i],["destination",a]])),n(l["$respond_to?"]("call"))?l.$call(!0):t}),o=new Map([["action","rollup"],["top",0],["left",0],["right",0],["bottom",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),o["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),o["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),o},-1),o(p,"$rolldown_effect",function e(s){var c=e.$$p||t,o=t,a=t,l=t;return e.$$p=null,s==null&&(s=t),o=new Map,o["$[]="]("height",24),a=new Map,a["$[]="]("height",i(s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),s["$[]"]("restore")["$[]"]("settings")["$[]"]("top"))),l=r(b("Proc"),"new",[],function(){var o=t,o=s["$[]"]("window").$find_child("window_body",!0);return n(o)?r(o,"show",[new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])],function(){return s["$[]"]("window").$commit_settings(),n(c["$respond_to?"]("call"))?c.$call(!0):t}):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationend",l]])]])),!0},-1),o(p,"$window_restoreable?",function(o){var a=this,i=t;return o==null&&(o=t),i=a.$get_window_registration(o),!!n(i)&&!!n(i["$[]"]("restore")["$is_a?"](s("Hash")))},-1),o(p,"$window_restore",function e(o,i){var c=e.$$p||t,l=this,a=t;if(e.$$p=null,o==null&&(o=t),i==null&&(i=new Map),a=l.$get_window_registration(o),n(a)){if(n(a["$[]"]("restore")["$is_a?"](s("Hash")))){switch(a["$[]"]("restore")["$[]"]("action").valueOf()){case"minimize":r(l,"unminimize_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;case"maximize":r(l,"unmaximize_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;case"rollup":r(l,"rolldown_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;default:t}return!0}return!1}else return!1},-1),o(p,"$window_minimize",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","minimize"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$minimize_effect(i))},{$$s:a}):(i["$[]="]("restore",new Map([["action","minimize"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$minimize_effect(i))),!0)},-1),o(p,"$window_maximize",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","maximize"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$maximize_effect(i)),t.$window_bring_to_front(s)},{$$s:a}):(i["$[]="]("restore",new Map([["action","maximize"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$maximize_effect(i)),a.$window_bring_to_front(s)),!0)},-1),o(p,"$window_rollup",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","rollup"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$rollup_effect(i))},{$$s:a}):(i["$[]="]("restore",new Map([["action","rollup"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$rollup_effect(i))),!0)},-1),o(p,"$get_window_registration",function(o){var i=this;return o==null&&(o=t),n(o["$is_any?"](s("String"),s("Symbol")))?i.window_registry["$[]"](o):t},-1),o(p,"$get_window",function(o){var a=this,i=t;return o==null&&(o=t),n(o["$is_any?"](s("String"),s("Symbol")))?(i=a.$get_window_registration(o),n(i)?i["$[]"]("window"):t):t},-1),o(p,"$window_list",function(){var s=this,n=t,n=[];return r(s.window_registry.$keys(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.window_registry==null&&(o.window_registry=t),s==null&&(s=t),n["$<<"](new Map([["uuid",s],["title",o.window_registry["$[]"](s)["$[]"]("window").$title()]]))},{$$s:s}),n}),o(p,"$window_repack_layers",function(){var n=this;return n.window_registry=r(n.window_registry,"sort_by",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$to_h(),r(n.window_registry.$values(),"each_with_index",[],function(n,s){var o;return n==null&&(n=t),s==null&&(s=t),n["$[]"]("window").$gxg_merge_style("z-index",c(200,s)),(o=["layer",s],r(n,"[]=",o),o[o.length-1])}),!0}),o(p,"$window_top_layer",function(){var o=this,s=t;return n(s=r(o.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?s:0}),o(p,"$window_back_layer",function(){var a=this,s=t,o=t,s=i(n(o=r(a.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?o:0,1);return n(v(s,100))&&(a.$window_repack_layers(),s=i(n(o=r(a.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?o:0,1)),s}),o(p,"$window_next_layer",function(){var i=this,s=t,o=t,s=c(n(o=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?o:0,1);return n(f(s,99))&&(i.$window_repack_layers(),s=c(n(o=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?o:0,1)),s}),o(p,"$window_register",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=t),!!n(o["$is_any?"](s("String"),s("Symbol")))&&!!n(i)&&(a=r.$window_next_layer(),i.$gxg_merge_style("z-index",c(200,a)),r.window_registry["$[]="](o,new Map([["window",i],["layer",a],["restore",t]])),!0)},-1),o(p,"$window_unregister",function(o){var i=this;return o==null&&(o=t),!!n(o["$is_any?"](s("String"),s("Symbol")))&&(i.window_registry.$delete(o),!0)},-1),o(p,"$set_window_switcher",function(s){var o=this;return s==null&&(s=t),n(s)?o.window_switcher=s:t},-1),o(p,"$get_window_switcher",u("window_switcher"))}(m[0],null,m)}(C[0],C)}(C[0],C)}(w[0],w)},Opal.modules["web/gxg_gui"]=function(e){var v=e.module,h=e.klass,p=e.send2,f=e.find_super,o=e.def,_=e.assign_ivar,m=e.return_ivar,s=e.truthy,c=e.rb_gt,a=e.send,r=e.eqeq,b=e.thrower,g=e.alias,i=e.rb_plus,j=e.neqeq,d=e.rb_times,l=e.rb_minus,u=e.rb_divide,w=e.range,y=[],t=e.nil,n=e.$$$;return e.add_stubs(">,size,shift,valid_uuid?,[],children,uuid,object_source,each_child,<<,==,title,register_component_class,add_child,is_a?,original_add_child,values,original_children,each,new_component,title=,to_s,[]=,build_components,page,find_object_by,respond_to?,include?,to_sym,log_warn,inspect,clone,node_path,nodes,split,node_at_path,+,join,gxg_get_state,expand,post_event,expand_path,to_proc,call,!=,unhighlight,highlight,parent,unshift,is_any?,update_appearance,find_parent_type,theme_icon,theme_widget,new,merge_style,show,set_state,set_attribute,tree,hide,collapse,unpersist,each_pair,animate,layout_refresh,to_i,*,to_f,layout_content_area,-,round,/,dialog_open,log_error,basename,reverse"),function(y,O){var C=v(y,"GxG"),x=[C].concat(O);return function(y,O){var C=v(y,"Gui"),x=[C].concat(O);return function(n,i,l){var d=h(n,i,"ApplicationViewport"),u=[d].concat(l),g=e.$r(u);return o(d,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.domtype="div",p(n,f(n,"_before_create",e,!1,!0),"_before_create",[],null)}),o(d,"$set_application",_("application")),o(d,"$application",m("application")),o(d,"$find_child",function(n){var d=this,l=t,i=t,o=t;if(n==null&&(n=t),l=t,s(n))for(i=[d];s(c(i.$size(),0));)if(o=i.$shift(),s(o))if(s(g("GxG")["$valid_uuid?"](n))){if(s(o.$children()["$[]"](d.$object_source().$uuid()))){l=o.$children()["$[]"](d.$object_source().$uuid());break}a(o,"each_child",[],function(n){return n==null&&(n=t),i["$<<"](n)})}else(function(){try{var e=b("break");return a(o,"each_child",[],function s(o){if(o==null&&(o=t),r(o.$title(),n))l=o,e.$throw(t,s.$$is_lambda);else return i["$<<"](o)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}})();return l},-1)}(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),x),n(n("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",n(n(n("GxG"),"Gui"),"ApplicationViewport")),function(l,d,u){var v=h(l,d,"Tree"),w=[v].concat(u),y=e.$r(w),_=v.$$prototype;return _.content=_.uuid=_.processors=_.selection=t,g(v,"original_add_child","add_child"),o(v,"$add_child",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?s(i.content)?i.content.$add_child(o):i.$original_add_child(o):t},-1),g(v,"original_children","children"),o(v,"$children",function(){var t=this;return s(t.content)?t.content.$children():new Map}),o(v,"$find_child",function(n,o){var h=this,l=t,u=t,d=t,i=t;for(n==null&&(n=t),o==null&&(o=!1),l=t,s(y("GxG")["$valid_uuid?"](n))?u=!0:u=!1,r(o,!0)?d=h.$original_children().$values():d=h.$children().$values();s(c(d.$size(),0));)if(i=d.$shift(),s(i)){if(s(u)){if(r(i.$uuid(),n)){l=i;break}}else if(r(i.$title(),n)){l=i;break}s(l)||a(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),d["$<<"](n)})}return l},-1),o(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,o.content=t,o.selection=t,o.processors=new Map,p(o,f(o,"initialize",e,!1,!0),"initialize",[n,s],null),o}),o(v,"$cascade",function(){var n=this,o=t,i=t,o=n.$new_component("org.gxg.gui.list");return o["$title="]("content "+n.uuid.$to_s()),o["$[]="]("options",new Map([["style",new Map([["white-space","nowrap"],["width","auto"],["height","auto"],["list-style","none"],["margin","0px"],["padding","0px"]])]])),n.content=t,n.$page().$build_components(n,[o]),i=n.$page().$find_object_by("content "+n.uuid.$to_s()),s(i)?n.content=i:t}),o(v,"$update_appearance",function(n){return n==null&&(n=t),t},-1),o(v,"$set_processor",function e(n){var o,i=e.$$p||t,r=this;return e.$$p=null,n==null&&(n=t),s(i["$respond_to?"]("call"))?s(["select","expand","collapse"]["$include?"](n.$to_s().$to_sym()))?(o=[n.$to_s().$to_sym(),i],a(r.processors,"[]=",o),o[o.length-1]):r.$log_warn("Unsupported processor type: "+n.$to_s().$to_sym().$inspect()):t},-1),o(v,"$node_at_path",function(o){var u=this,d=t,l=t,i=t;for(o==null&&(o=t),d=t,l=u.$children().$values().$clone();s(c(l.$size(),0));)if(i=l.$shift(),s(i["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))){if(r(i.$node_path(),o)){d=i;break}a(i.$nodes().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return d},-1),o(v,"$expand_path",function e(o){var l=e.$$p||t,h=this,d=t,u=t;return e.$$p=null,o==null&&(o=t),s(o["$is_a?"](n("String")))&&(d=[],u=o.$split("/"),function(){try{var e=b("break");return a(u,"each",[],function u(h){var f=u.$$s==null?this:u.$$s,m=t;if(h==null&&(h=t),s(c(h.$size(),0)))if(d["$<<"](h),m=f.$node_at_path(i("/",d.$join("/"))),s(m["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode"))))return r(m.$gxg_get_state("expanded"),!1)&&(m.$expand(),a(n(y("GxG"),"DISPATCHER"),"post_event",["display"],function e(){var t=e.$$s==null?this:e.$$s;return a(t,"expand_path",[o],l.$to_proc())},{$$s:f}),e.$throw(t,u.$$is_lambda)),r(m.$node_path(),o)&&s(l["$respond_to?"]("call"))?l.$call():t;else a(n(y("GxG"),"DISPATCHER"),"post_event",["display"],function e(){var t=e.$$s==null?this:e.$$s;return a(t,"expand_path",[o],l.$to_proc())},{$$s:f}),e.$throw(t,u.$$is_lambda);else return t},{$$s:h})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),!0},-1),o(v,"$selection",m("selection")),o(v,"$select",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&j(i.selection,o)?(s(i.selection)&&i.selection.$unhighlight(),i.selection=o,i.selection.$highlight(),s(i.processors["$[]"]("select")["$respond_to?"]("call"))?i.processors["$[]"]("select").$call(i.selection):t):t},-1),o(v,"$expand",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&s(i.processors["$[]"]("expand")["$respond_to?"]("call"))?i.processors["$[]"]("expand").$call(o):t},-1),o(v,"$collapse",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&s(i.processors["$[]"]("collapse")["$respond_to?"]("call"))?i.processors["$[]"]("collapse").$call(o):t},-1)}(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),x),n(n("GxG"),"Gui").$register_component_class("tree",n(n(n("GxG"),"Gui"),"Tree")),function(l,d,u){var v=h(l,d,"TreeNode"),_=[v].concat(u),y=e.$r(_),b=v.$$prototype;return b.data=b.content=b.appearance=b.uuid=b.label=b.expander=t,o(v,"$_before_create",function e(){var i=e.$$p||t,o=this;return e.$$p=null,s(o.data["$is_a?"](n("Hash")))&&s(o.data["$[]"]("title"))&&(o.title=o.data["$[]"]("title")),p(o,f(o,"_before_create",e,!1,!0),"_before_create",[],null)}),g(v,"original_add_child","add_child"),o(v,"$add_child",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?s(i.content)?i.content.$add_child(o):i.$original_add_child(o):t},-1),o(v,"$nodes",function(){var t=this;return s(t.content)?t.content.$children():new Map}),o(v,"$node_path",function(){for(var l=this,r=t,c=t,o=t,r="",c=[l],o=l.$parent();j(o,t);)s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&c.$unshift(o),o=o.$parent(),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"Tree")))&&(o=t);return a(c,"each",[],function(n){return n==null&&(n=t),r=i(r,"/"+n.$title())}),r}),o(v,"$find_child",function(n){var u=this,i=t,d=t,l=t,o=t;for(n==null&&(n=t),i=t,s(y("GxG")["$valid_uuid?"](n))?d=!0:d=!1,l=u.$children().$values();s(c(l.$size(),0));)if(o=l.$shift(),s(o)){if(s(d)){if(r(o.$uuid(),n)){i=o;break}}else if(r(o.$title(),n)){i=o;break}s(i)||a(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return i},-1),o(v,"$update_appearance",function(o){var i=this;return o==null&&(o=t),!!s(i.appearance["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))},-1),o(v,"$data",m("data")),o(v,"$appearance",m("appearance")),o(v,"$set_appearance",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(i.appearance=o,i.$update_appearance()):t},-1),o(v,"$tree_node",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"TreeNode"))}),o(v,"$tree",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Tree"))}),o(v,"$initialize",function e(o,i){var c=e.$$p||t,a=this,r=t;return e.$$p=null,a.content=t,a.appearance=new Map([["icon",a.$theme_icon("folder.svg")],["label","Untitled"]]),s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a.data=s(r=i["$[]"]("data"))?r:new Map([["title","Untitled"],["type","virtual_directory"],["content",new Map]]),a.appearance["$[]="]("icon",(s(r=i["$[]"]("icon"))?r:a.$theme_icon("folder.svg")).$to_s()),a.appearance["$[]="]("label",(s(r=i["$[]"]("label"))?r:a.data["$[]"]("title")).$to_s())),p(a,f(a,"initialize",e,!1,!0),"initialize",[o,i],null),a}),o(v,"$cascade",function(){var o=this,h=t,a=t,d=t,c=t,l=t,r=t,u=t,m=t,f=t,p=t,g=t,i=t,h=o.$new_component("org.gxg.gui.block.table");return h["$[]"]("settings")["$[]="]("nodepath",o.$node_path()),a=o.$new_component("org.gxg.gui.block.table"),d=o.$new_component("org.gxg.gui.image"),d["$title="]("expander "+o.uuid.$to_s()),d["$[]="]("options",new Map([["src",o.$theme_widget("collapse.svg")],["width",32],["height",32],["style",new Map([["clear","both"],["vertical-align","middle"]])]])),d["$[]="]("script",` + on(:mouseup) do |event| + the_node = self.tree_node() + if the_node + unless the_node.get_state(:disabled) == true + if self.get_state(:expanded) == true + self.set_attribute(:src, theme_widget('collapse.svg')) + self.set_state(:expanded,false) + the_node.collapse() + else + self.set_attribute(:src, theme_widget('expand.svg')) + self.set_state(:expanded,true) + the_node.expand() + end + end + end + end + `),c=n(n(n("GxG"),"Database"),"DetachedHash").$new(),c=o.$new_component("org.gxg.gui.block.table.cell"),c["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),c["$[]"]("content")["$<<"](d),l=o.$new_component("org.gxg.gui.block.table.cell"),l["$title="]("icon "+o.uuid.$to_s()),l["$[]="]("options",new Map([["src",o.appearance["$[]"]("icon")],["style",new Map([["clear","both"],["width","32px"],["height","32px"],["vertical-align","middle"]])]])),l["$[]="]("script",` + on(:mouseup) do |event| + the_node = self.tree_node() + if the_node + the_tree = the_node.tree() + if the_tree + the_tree.select(the_node) + end + end + end + `),r=n(n(n("GxG"),"Database"),"DetachedHash").$new(),r=o.$new_component("org.gxg.gui.block.table.cell"),r["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),r["$[]"]("content")["$<<"](l),u=o.$new_component("org.gxg.gui.label"),u["$title="]("title "+o.uuid.$to_s()),u["$[]="]("options",new Map([["content",o.appearance["$[]"]("label")],["style",new Map([["float","left"],["font-size","16px"],["vertical-align","middle"],["text-align","left"],["margin","2px"],["padding","2px"]])]])),u["$[]="]("script",` + on(:mouseup) do |event| + the_node = self.tree_node() + if the_node + the_tree = the_node.tree() + if the_tree + the_tree.select(the_node) + end + end + end + `),m=o.$new_component("org.gxg.gui.block.table.cell"),m["$[]="]("options",new Map([["style",new Map([["float","left"],["vertical-align","middle"]])]])),m["$[]"]("content")["$<<"](u),a=o.$new_component("org.gxg.gui.block.table.row"),a["$[]="]("script",` + on(:mouseenter) do |event| + the_node = self.tree_node() + if the_node + the_tree = the_node.highlight() + end + end + on(:mouseleave) do |event| + the_node = self.tree_node() + if the_node + the_tree = the_node.unhighlight() + end + end + `),a["$[]"]("content")["$<<"](c),a["$[]"]("content")["$<<"](r),a["$[]"]("content")["$<<"](m),f=o.$new_component("org.gxg.gui.list"),f["$title="]("content "+o.uuid.$to_s()),f["$[]="]("options",new Map([["width","100%"],["height","100%"],["style",new Map([["list-style","none"]])]])),p=o.$new_component("org.gxg.gui.block.table.cell"),p["$[]"]("content")["$<<"](f),g=o.$new_component("org.gxg.gui.block.table.row"),g["$[]"]("content")["$<<"](p),h["$[]"]("content")["$<<"](a),h["$[]"]("content")["$<<"](g),o.content=t,o.$page().$build_components(o,[h]),i=o.$page().$find_object_by("content "+o.uuid.$to_s()),s(i)&&(o.content=i),i=o.$page().$find_object_by("expander "+o.uuid.$to_s()),s(i)&&(o.expander=i),i=o.$page().$find_object_by("icon "+o.uuid.$to_s()),s(i)&&(o.icon=i),i=o.$page().$find_object_by("title "+o.uuid.$to_s()),s(i)?o.label=i:t}),o(v,"$highlight",function(n){var o=this;return n==null&&(n=t),s(o.label)?o.label.$merge_style(new Map([["background-color","#87acd5"]])):t},-1),o(v,"$unhighlight",function(n){var o=this;return n==null&&(n=t),s(o.label)?o.label.$merge_style(new Map([["background-color","#f2f2f2"]])):t},-1),o(v,"$expand",function(n){var o=this,i=t;return n==null&&(n=t),o.content.$show(n),o.$set_state("expanded",!0),s(o.expander)&&o.expander.$set_attribute("src",o.$page().$theme_widget("expand.svg")),i=o.$tree(),s(i)?i.$expand(o):t},-1),o(v,"$collapse",function(n){var o=this,i=t;return n==null&&(n=t),o.content.$hide(n),o.$set_state("expanded",!1),s(o.expander)&&o.expander.$set_attribute("src",o.$page().$theme_widget("collapse.svg")),i=o.$tree(),s(i)?i.$collapse(o):t},-1),o(v,"$enable",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()):o=new Map([["origin",new Map([["opacity",.5]])],["destination",new Map([["opacity",1]])]]),a(i.$children(),"each_pair",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.uuid==null&&(i.uuid=t),n==null&&(n=t),s==null&&(s=t),r(n,("content "+i.uuid.$to_s()).$to_sym())?t:(s.$set_state("disabled",!1),s.$animate(o))},{$$s:i})},-1),o(v,"$disable",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()):o=new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",.5]])]]),a(i.$children(),"each_pair",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.uuid==null&&(i.uuid=t),n==null&&(n=t),s==null&&(s=t),r(n,("content "+i.uuid.$to_s()).$to_sym())?t:(s.$animate(o),s.$set_state("disabled",!0))},{$$s:i})},-1)}(x[0],n(n(n("GxG"),"Gui"),"ListItem"),x),n(n("GxG"),"Gui").$register_component_class("tree_node",n(n(n("GxG"),"Gui"),"TreeNode")),h(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),"Panel"),n(n("GxG"),"Gui").$register_component_class("panel",n(n(n("GxG"),"Gui"),"Panel")),function(n,m){var p=v(n,"Vdom"),f=[p].concat(m);return function(n,m,f){var g=h(n,m,"Page"),v=[g].concat(f),p=e.$r(v);return o(g,"$upload_dialog",function n(o,r){var R=n.$$p||t,h=this,M=t,f=t,S=t,A=t,T=t,k=t,_=t,L=t,O=t,x=t,z=t,N=t,m=t,y=t,v=t,j=t,F=t,w=t,E=t,C=t,g=t,b=t,D=t;if(n.$$p=null,o==null&&(o=t),r==null&&(r=t),h.$layout_refresh(),M=(s(f=r)?f:new Map([["title","Choose a file:"]]))["$[]"]("title").$to_s(),S=(s(f=r)?f:new Map([["banner","Choose a file to upload"]]))["$[]"]("banner").$to_s(),A=(s(f=r)?f:new Map([["destination",t]]))["$[]"]("destination").$to_s(),T=d(h.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),k=20,_=5,L=l(T,d(i(k,_),2)),O=d(i(k,_),2),x=16,s(c(S.$to_s().$size(),40))?z=d(u(S.$size().$to_f(),40),x.$to_f()).$round().$to_i():z=x,N=16,s(c(A.$size(),0))){m=h.$new_component("org.gxg.gui.form"),m["$[]"]("options")["$[]="]("action","/file_upload"),m["$[]"]("options")["$[]="]("method","POST"),m["$[]"]("options")["$[]="]("enctype","multipart/form-data"),m["$[]"]("options")["$[]="]("style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])),O=330,y=h.$new_component("org.gxg.gui.input.file"),y["$title="]("file"),y["$[]"]("options")["$[]="]("name","file"),m["$[]"]("content")["$<<"](y),v=h.$new_component("org.gxg.gui.input.hidden"),v["$title="]("destination"),v["$[]"]("options")["$[]="]("name","destination"),v["$[]"]("options")["$[]="]("value",A),m["$[]"]("content")["$<<"](v),j=h.$new_component("org.gxg.gui.grid.container"),F=h.$new_component("org.gxg.gui.grid.x"),w=h.$new_component("org.gxg.gui.grid.x"),E=h.$new_component("org.gxg.gui.input.button"),C=h.$new_component("org.gxg.gui.input.button.submit"),F["$[]"]("content")["$<<"](E),w["$[]"]("content")["$<<"](C),j["$[]"]("content")["$<<"](F),j["$[]"]("content")["$<<"](w),m["$[]"]("content")["$<<"](j),E["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + form = self.find_parent_type(::GxG::Gui::Form) + if the_window && form + the_window.respond({:action => :cancel}) + end + end + `),C["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + form = self.find_parent_type(::GxG::Gui::Form) + if the_window && form + page.set_busy true + ::GxG::CONNECTION.post(form) do |response| + page.set_busy false + the_window.respond({:action => :upload, :destination => form.form_data[:destination].to_s}) + end + end + end + `),g=h.$new_component("org.gxg.gui.application.viewport"),g["$title="]("gxg_selection_viewport"),g["$[]"]("options")["$[]="]("style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])),g["$[]"]("content")["$<<"](m),b=h.$new_component("org.gxg.gui.window.dialog"),b["$title="](M),b["$[]="]("options",new Map([["window_title",M],["states",new Map([["hidden",!0]])],["width",350],["height",O]])),b["$[]"]("content")["$<<"](g);try{return a(h,"dialog_open",[b,o,r],R.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){D=t;try{return h.$log_error(new Map([["error",D],["parameters",r]])),!1}finally{e.pop_exception(t)}}else throw t}}else return h.$log_error("You MUST provide a destination path"),!1},-1),o(g,"$choice_dialog",function n(o,h){var te=n.$$p||t,E=this,ee=t,g=t,y=t,F=t,M=t,S=t,J=t,D=t,Z=t,A=t,O=t,w=t,b=t,v=t,C=t,_=t,x=t,H=t,P=t,$=t,B=t,R=t,Q=t,T=t,I=t,L=t,V=t,N=t,W=t,U=t,K=t,f=t,Y=t,G=t,X=t,m=t,j=t,k=t,z=t,q=t;switch(n.$$p=null,o==null&&(o=t),h==null&&(h=t),E.$layout_refresh(),ee=(s(g=h)?g:new Map([["title","Choose"]]))["$[]"]("title").$to_s(),y=(s(g=h)?g:new Map([["banner","(Please provide some text here)"]]))["$[]"]("banner").$to_s(),F=(s(g=h)?g:new Map([["one",""]]))["$[]"]("one").$to_s(),M=(s(g=h)?g:new Map([["two",""]]))["$[]"]("two").$to_s(),S=(s(g=h)?g:new Map([["three",""]]))["$[]"]("three").$to_s(),J=(s(g=h)?g:new Map([["default",""]]))["$[]"]("default").$to_s(),D=s(g=(s(Z=h)?Z:new Map([["type","choose"]]))["$[]"]("type"))?g:"choose",A=d(E.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),O=20,w=5,b=l(A,d(i(O,w),2)),v=d(i(O,w),2),C=16,s(c(y.$to_s().$size(),40))?_=d(u(y.$size().$to_f(),40),C.$to_f()).$round().$to_i():_=C,x=16,H=new Map([["component","org.gxg.gui.text"],["options",new Map([["content",y],["style",new Map([["font-size",""+C+"px"],["width","100%"]])]])],["content",[]],["script",""]]),P=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["height",_],["vertical-align","middle"]])]])],["content",[H]],["script",""]]),$=new Map([["component","org.gxg.gui.input.text"],["options",new Map([["title","data"],["content",J],["style",new Map([["background-color","#f2f2f2"],["font-size",""+x+"px"],["width","100%"]])]])],["content",[]],["script",""]]),B=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["vertical-align","middle"]])]])],["content",[$]],["script",""]]),R=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",F],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),R["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :one}) + end + end + `),Q=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[R]],["script",""]]),T=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",M],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),T["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :two}) + end + end + `),I=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[T]],["script",""]]),L=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",S],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),L["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :three}) + end + end + `),V=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[L]],["script",""]]),N=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),N["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :cancel}) + end + end + `),W=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"]])]])],["content",[N]],["script",""]]),U=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[P]],["script",""]]),K=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[B]],["script",""]]),f=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[]],["script",""]]),Y=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[U]],["script",""]]),G=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[K]],["script",""]]),X=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[f]],["script",""]]),m=new Map([["component","org.gxg.gui.form"],["options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding",""+O+"px"],["margin",""+w+"px"]])]])],["content",[]],["script",""]]),s(c(y.$size(),0))&&m["$[]"]("content")["$<<"](Y),D.valueOf()){case"choose":s(c(F.$size(),0))&&f["$[]"]("content")["$<<"](Q),s(c(M.$size(),0))&&f["$[]"]("content")["$<<"](I),s(c(S.$size(),0))&&f["$[]"]("content")["$<<"](V);break;case"alert":j=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),j["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :ok}) + end + end + `),k=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[j]],["script",""]]),f["$[]"]("content")["$<<"](k);break;case"input":f["$[]"]("content")["$<<"](W),j=new Map([["component","button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),j["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + form = self.find_parent_type(:form) + if the_window && form + the_window.respond({:action => :ok, :form => form.form_data()}) + end + end + `),k=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[j]],["script",""]]),f["$[]"]("content")["$<<"](k),m["$[]"]("content")["$<<"](G);break;default:t}switch(m["$[]"]("content")["$<<"](X),m["$[]"]("options")["$[]"]("style")["$[]="]("width",""+A+"px"),s(c(y.$to_s().$size(),0))&&(m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("height",""+_+"px"),m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,i(_,20))),r(D,"input")?(m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height",""+x+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,i(x,20)),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,52)):(m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,52)),v=i(v,32),m["$[]"]("options")["$[]"]("style")["$[]="]("height",""+l(v,d(i(O,w),2))+"px"),f["$[]"]("content").$size().valueOf()){case 1:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,2),25)+"px");break;case 2:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,4),12)+"px"),f["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,4),12)+"px");break;case 3:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px"),f["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px"),f["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px");break;default:t}z=new Map([["component","org.gxg.gui.window.dialog"],["options",new Map([["window_title",ee],["states",new Map([["hidden",!0]])],["width",A],["height",v]])],["script",""],["content",[m]]]),z["$[]="]("script",` + on(:keyup) do |event| + if event[:which] == 27 + self.respond({:action => :cancel}) + end + end + `);try{return a(E,"dialog_open",[z,o,h],te.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){q=t;try{return E.$log_error(new Map([["error",q],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}else throw t}},-1),o(g,"$vfs_dialog",function n(o,c){var K=n.$$p||t,d=this,f=t,v=t,_=t,A=t,$=t,h=t,j=t,g=t,V=t,T=t,W=t,u=t,L=t,k=t,C=t,S=t,x=t,F=t,O=t,z=t,D=t,N=t,E=t,R=t,P=t,H=t,I=t,B=t,m=t,M=t,b=t,y=t,U=t;switch(n.$$p=null,o==null&&(o=t),c==null&&(c=t),f="Unsupported Dialog Type",v="Unsupported",_=(s(A=c)?A:new Map([["type","folder"]]))["$[]"]("type"),_.valueOf()){case"save":case"save":f="Save As ...",v="Save";break;case"folder":case"folder":f="Choose Folder",v="Choose";break;case"object":case"object":f="Select Object",v="Select";break;default:t}switch($=` + def select(data=nil) + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.settings[:data] = @settings[:data] + menu_bar_header = page.find_object_by('gxg_path_menu_header') + if menu_bar_header + menu_bar_header.set_label(File.basename(@settings[:data])) + menu_bar_header.set_data(@settings[:data]) + end + menu = page.find_object_by('gxg_path_menu') + if menu + menu.update_menu(@settings[:data]) + end + sublist = page.find_object_by('gxg_path_subitems') + if sublist + sublist.update_appearance() + end + end + end + `,h=d.$new_component("org.gxg.gui.menu.bar"),h["$title="]("gxg_path_menu_bar"),h["$[]="]("settings",new Map([["path",s(A=c["$[]"]("path"))?A:"/"]])),j=d.$new_component("org.gxg.gui.menu.item"),j["$title="]("gxg_path_menu_header"),j["$[]="]("settings",new Map([["label",p("File").$basename(h["$[]"]("settings")["$[]"]("path"))],["data",t]])),g=d.$new_component("org.gxg.gui.menu"),g["$title="]("gxg_path_menu"),g["$[]="]("settings",new Map([["item_script",$]])),g["$[]="]("script",` + def update_menu(the_path=nil) + if the_path.is_a?(::String) + build_list = [] + menu[:content] = [] + # + menu_manifest = [] + (0..(the_path.split('/').size - 1)).each do |the_index| + menu_manifest << (the_path.split('/')[0..(the_index)].join('/')) + end + menu_manifest.reverse.[1..-1].each do |the_subpath| + the_item = ::GxG::Database::DetachedHash.new + the_item[:component] = 'menu_item' + the_item[:settings] = {:label => File.basename(the_subpath), :data => the_subpath} + the_item[:options] = {} + the_item[:script] = @settings[:item_script].to_s + the_item[:content] = [] + build_list << the_item + end + children.values.reverse.each do |the_child| + the_child.destroy + end + if build_list.size > 0 + page.build_components(self, build_list) + end + # + end + end + `),V=[],a(e.Range.$new(0,l(h["$[]"]("settings")["$[]"]("path").$split("/").$size(),1),!1),"each",[],function(s){return s==null&&(s=t),V["$<<"](h["$[]"]("settings")["$[]"]("path").$split("/")["$[]"](e.Range.$new(0,s,!1)).$join("/"))}),a(V.$reverse()["$[]"](w(1,-1,!1)),"each",[],function e(n){var o=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),s=o.$new_component("org.gxg.gui.menu.item"),s["$[]="]("settings",new Map([["label",p("File").$basename(n)],["data",n]])),s["$[]="]("script",$),g["$[]"]("content")["$<<"](s)},{$$s:d}),j["$[]"]("content")["$<<"](g),h["$[]"]("content")["$<<"](j),T=d.$new_component("org.gxg.gui.block.table.cell"),T["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),T["$[]="]("content",[h]),W=` + def highlight() + self.merge_style({:'background-color' => '#c2c2c2'}) + end + def unhighlight() + self.merge_style({:'background-color' => '#ffffff'}) + end + def select() + # unhighlight all others + parent.children.values.each do |the_child| + the_child.unhighlight() + end + # set selection + self.highlight() + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.settings[:selection] = self + end + end + on(:mouseup) do |the_event| + self.select() + end + `,u=d.$new_component("org.gxg.gui.list"),u["$title="]("gxg_path_subitems"),u["$[]="]("settings",new Map([["list_item_script",W]])),u["$[]="]("options",new Map([["style",new Map([["clear","both"],["list-style","none"],["padding","0px"],["margin","0px"]])]])),u["$[]="]("script",` + def add_list_item(the_icon=nil, the_path=nil, the_profile=nil) + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + # + the_item = ::GxG::Database::DetachedHash.new + the_item[:component] = 'list_tiem' + the_item[:settings] = {:label => File.basename(the_path), :data => the_path} + the_item[:options] = {} + the_item[:script] = @settings[:list_item_script].to_s + the_item[:content] = [] + # + the_window.settings[:manifest][(the_item.uuid.to_s.to_sym)] = {:path => the_path, :profile => the_profile} + # + icon_item = ::GxG::Database::DetachedHash.new + icon_item[:component] = 'image' + icon_item[:settings] = {} + icon_item[:options] = {src => the_icon.to_s, :style => {:width => '16px', :height => '16px'}} + icon_item[:script] = ' + on(:mouseup) do |the_event| + parent.select() + end + ' + icon_item[:content] = [] + # + label_item = ::GxG::Database::DetachedHash.new + label_item[:component] = 'label' + label_item[:settings] = {} + label_item[:options] = {:content => File.basename(the_path)} + label_item[:script] = ' + on(:mouseup) do |the_event| + parent.select() + end + ' + label_item[:content] = [] + # + the_item[:content] << icon_item + the_item[:content] << label_item + page.build_components(self, [(the_item)]) + true + else + false + end + end + # + def update_appearance(data=nil) + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + dialog_type = (the_window.settings[:type] || :folder) + the_path = the_window.settings[:data] + if the_path.is_a?(::String) +`+` # +`+` the_window.settings[:selection] = nil +`+` the_window.settings[:manifest] = {} +`+` # Clear List +`+` self.children.values.each do |the_child| +`+` the_child.destroy +`+` end +`+` # Rebuild List +`+` GxG::CONNECTION.entries({:location => (the_path)}) do |response| +`+` if response.is_a?(::Hash) +`+` response[:result].each do |the_profile| +`+` # add list item +`+` item_path = (the_path + '/' + the_profile[:title].to_s) +`+` if dialog_type == :folder +`+` if [:virtual_directory, :directory, :persisted_array].include?(the_profile[:type].to_s.to_sym) +`+` self.add_list_item(self.theme_icon('folder.svg'), item_path, the_profile) +`+` end +`+` else +`+` case (the_profile[:type].to_s.to_sym) +`+` when :virtual_directory, :directory, :persisted_array +`+` the_icon_path = self.theme_icon('folder.svg') +`+` when :persisted_hash +`+` the_icon_path = self.theme_icon('object.svg') +`+` else +`+` # Review: further qualify file type icons ?? +`+` the_icon_path = self.theme_icon('file.svg') +`+` end +`+` self.add_list_item(the_icon_path, item_path, the_profile) +`+` end +`+` # +`+` end +`+` # +`+` end +`+` end +`+` # +`+` end +`+` end +`+` end +`+" "),_.valueOf()){case"save":u["$[]="]("script",i(i(u["$[]"]("script"),` +`),` + self.set_select_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + # nothing + end + end + self.set_open_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym) + # open folder + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + menu_bar = the_window.find_child('path_menu_bar') + if menu_bar + GxG::DISPATCHER.post_event(:root) do + menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path] + end + end + end + end + end + end + `));break;case"folder":u["$[]="]("script",i(i(u["$[]"]("script"),` +`),` + self.set_select_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + # nothing + end + end + self.set_open_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym) + # open folder + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + menu_bar = the_window.find_child('path_menu_bar') + if menu_bar + GxG::DISPATCHER.post_event(:root) do + menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path] + end + end + end + end + end + end + `));break;case"object":u["$[]="]("script",i(i(u["$[]"]("script"),` +`),` + self.set_select_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + # if object selected enable Select button else disable it. + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + action_button = the_window.find_child('action_button') + if action_button + if [:file, :persisted_hash].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym) + action_button.enable() + else + action_button.disable() + end + end + end + end + end + self.set_open_responder do |the_uuid| + if @manifest[(the_uuid.to_s.to_sym)] + if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym) + # open folder + # first, disable Select button + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + menu_bar = the_window.find_child('path_menu_bar') + if menu_bar + GxG::DISPATCHER.post_event(:root) do + menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:profile][:path] + end + end + end + end + end + end + `));break;default:t}L=d.$new_component("org.gxg.gui.block"),L["$[]="]("options",new Map([["style",new Map([["width","100%"],["height","192px"],["overflow-y","scroll"]])]])),L["$[]="]("content",[u]),k=d.$new_component("org.gxg.gui.block.table.cell"),k["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),k["$[]="]("content",[L]),C=d.$new_component("org.gxg.gui.input.text"),C["$title="]("gxg_save_name"),C["$[]="]("options",new Map([["style",new Map([["background-color","#f2f2f2"],["font-size","16px"],["width","100%"]])]])),S=d.$new_component("org.gxg.gui.block.table.cell"),S["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),S["$[]="]("content",[C]),x=d.$new_component("org.gxg.gui.input.button.submit"),x["$title="]("gxg_action_button"),x["$[]="]("options",new Map([["content",v],["style",new Map([["padding","0px"],["width","80px"],["height","32px"]])]])),x["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + form = self.find_parent_type(::GxG::Gui::Form) + if the_window && form + the_action = the_window.settings[:type].to_s.to_sym + the_path = the_window.settings[:data].to_s + if the_action == :save + the_path = (the_path + '/' + (form.form_data()[:gxg_save_name] || 'Untitled.data').to_s) + end + the_window.respond({:action => the_action, :path => the_path}) + end + end + `),F=d.$new_component("org.gxg.gui.block.table.cell"),F["$[]="]("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),F["$[]="]("content",[x]),O=d.$new_component("org.gxg.gui.input.button.submit"),O["$title="]("gxg_cancel_button"),O["$[]="]("options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])),O["$[]="]("script",` + on(:mouseup) do |event| + the_window = self.find_parent_type(::GxG::Gui::DialogBox) + if the_window + the_window.respond({:action => :cancel}) + end + end + `),z=d.$new_component("org.gxg.gui.block.table.cell"),z["$[]="]("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),z["$[]="]("content",[O]),D=d.$new_component("org.gxg.gui.block.table.row"),D["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),D["$[]="]("content",[T]),N=d.$new_component("org.gxg.gui.block.table.row"),N["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),N["$[]="]("content",[k]),E=d.$new_component("org.gxg.gui.block.table.row"),E["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),E["$[]="]("content",[S]),R=d.$new_component("org.gxg.gui.block.table.row"),R["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),R["$[]="]("content",[z,F]),P=d.$new_component("org.gxg.gui.block.table"),P["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),P["$[]="]("content",[D]),H=d.$new_component("org.gxg.gui.block.table"),H["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","192px"]])]])),H["$[]="]("content",[N]),I=d.$new_component("org.gxg.gui.block.table"),I["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),I["$[]="]("content",[E]),B=d.$new_component("org.gxg.gui.block.table"),B["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),B["$[]="]("content",[R]),m=d.$new_component("org.gxg.gui.form"),m["$[]="]("options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])]])),m["$[]="]("content",[]),M=330,m["$[]"]("content")["$<<"](P),m["$[]"]("content")["$<<"](H),(r(_,"save")||r(_,"save"))&&(m["$[]"]("content")["$<<"](I),M=i(M,32)),m["$[]"]("content")["$<<"](B),b=d.$new_component("org.gxg.gui.application.viewport"),b["$title="]("gxg_selection_viewport"),b["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])]])),b["$[]="]("content",[m]),y=d.$new_component("org.gxg.gui.window.dialog"),y["$title="](f),y["$[]="]("options",new Map([["window_title",f],["states",new Map([["hidden",!0]])],["width",350],["height",M]])),y["$[]="]("content",[b]);try{return a(d,"dialog_open",[y,o,c],K.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){U=t;try{return d.$log_error(new Map([["error",U],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}else throw t}},-1)}(f[0],null,f)}(x[0],x)}(x[0],x)}(y[0],y)},Opal.modules["web/gxg_comm"]=function(e){var d=e.module,h=e.klass,i=e.def,n=e.truthy,o=e.send,l=e.return_ivar,a=e.rb_gt,u=e.rb_lt,c=e.rb_plus,r=e.eqeq,f=e.rb_minus,m=[],t=e.nil,s=e.$$$;return e.add_stubs("is_any?,respond_to?,[]=,to_sym,downcase,to_s,next_message,[],is_a?,keys,call,<<,parse,decode64,log_error,new,shift,encode64,generate,export,include?,to_json,valid_uuid?,uuid_generate,new_message,pull,cancel_timer,get_attribute,>,size,to_i,<,log_info,inspect,element,open?,on,to_proc,body,fail,succeed,+,==,pull_data,base64?,json?,process_detached_import,push,uuid,format,search,constraint,each,clone,gxg_export,push_data,set_busy,encrypt,id,send,socket,basename,split,index,join,-,post_event,sleep,navigate_to,open,gsub,create_channel,import,decrypt,fetch_channel,write,add_periodic_timer,follow_up,heartbeat"),function(m,p){var v=d(m,"GxG"),g=[v].concat(p);return function(a,r){var u=d(a,"Networking"),c=[u].concat(r);return function(a,r,c){var l=h(a,r,"SocketMonitor"),d=[l].concat(c),u=e.$r(d),m=l.$$prototype;return m.event_handlers=t,i(l,"$initialize",function(){var t=this;return t.event_handlers=new Map,t}),i(l,"$on",function e(i){var a,r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),n(i["$is_any?"](s("String"),s("Symbol")))&&n(r["$respond_to?"]("call"))?(a=[i.$to_s().$downcase().$to_sym(),r],o(c.event_handlers,"[]=",a),a[a.length-1]):t},-1),i(l,"$follow_up",function(o){var r=this,i=t,a=t;return o==null&&(o=new Map),i=s(u("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$next_message(),n(i["$is_a?"](s("Hash")))?(a=i.$keys()["$[]"](0),n(r.event_handlers["$[]"](a)["$respond_to?"]("call"))?r.event_handlers["$[]"](a).$call(i["$[]"](a)):t):t},-1)}(c[0],null,c),function(a,r,c){var d=h(a,r,"Socket"),f=[d].concat(c),u=e.$r(f),m=d.$$prototype;return m.inbox=m.socket=t,i(d,"$inbox",l("inbox")),i(d,"$add_to_inbox",function(o){var i=this,a=t;o==null&&(o="");try{return i.inbox["$<<"](s("JSON").$parse(o.$decode64(),new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[u("Exception")])){a=t;try{return i.$log_error(new Map([["error",a],["parameters",o.$decode64()]]))}finally{e.pop_exception(t)}}else throw t}},-1),i(d,"$error_message",function(t){var n=this;return n.$log_error(new Map([["error",u("Exception").$new(t)]]))}),i(d,"$next_message",function(){var t=this;return t.inbox.$shift()}),i(d,"$write",function(o){var a=this,i=t;return o==null&&(o=""),n(o["$is_any?"](s("Hash"),s(s(s("GxG"),"Database"),"DetachedHash")))&&(n(o["$is_a?"](s("Hash")))?o=u("JSON").$generate(o).$to_s().$encode64():o=u("JSON").$generate(o.$export()).$to_s().$encode64()),i=a.socket,!!n(i)&&(i.send(o),!0)},-1),i(d,"$close",function(){var o=this,s=t,s=o.socket;return!!n(s)&&(s.close,o.socket=t,!0)}),i(d,"$open?",function(){var t=this;return!!n(t.socket)}),i(d,"$open",function(a){var l,c=this,d=t,h=t,r=t,m=t;c.socket=t,n(window.location.href["$include?"]("https://"))?d="wss://"+a:d="ws://"+a;try{h=new Map([["attach_display",!0]]).$to_json().$encode64(),r=new WebSocket(d),r.onopen=function(){r.send(h)},r.onmessage=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].add_to_inbox('"+t.data+"')")},r.onclose=function(){e.eval("GxG::DISPLAY_DETAILS[:socket].close")},r.onerror=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].error_message('"+t.message+"')")},c.socket=r}catch(t){if(e.rescue(t,[u("Exception")])){m=t;try{c.$log_error(new Map([["error",m],["parameters",new Map([["url",d.$to_s()]])]]))}finally{e.pop_exception(t)}}else throw t}return n(c.socket)?(l=["socket",c],o(s(s("GxG"),"DISPLAY_DETAILS"),"[]=",l),l[l.length-1]):t}),i(d,"$set_remote_uuid",function(s){var o=this;return s==null&&(s=t),!!n(u("GxG")["$valid_uuid?"](s))&&(o.remote_uuid=s.$to_sym(),!0)},-1),i(d,"$initialize",function(){var n=this;return n.uuid=u("GxG").$uuid_generate().$to_sym(),n.remote_uuid=t,n.inbox=[],n})}(c[0],null,c)}(g[0],g),function(m,p){var v=d(m,"Networking"),g=[v].concat(p);return function(d,m,p){var g=h(d,m,"Connector"),j=[g].concat(p),v=e.$r(j),b=g.$$prototype;return b.uuid=b.remote_uuid=b.heart_beat_timer=b.active=b.relative_url=b.host_prefix=b.display_path=b.csrf=t,i(g,"$remote_uuid",l("remote_uuid")),i(g,"$open?",l("active")),i(g,"$close",function(){var o=this,i=t,i=o.$new_message(new Map([["close",!0]]));return i["$[]="]("sender",o.uuid),i["$[]="]("to",o.remote_uuid),o.$pull(i,new Map([["synchronous",!0]])),o.active=!1,o.csrf=t,n(o.heart_beat_timer["$is_a?"](s("Hash")))&&s(v("GxG"),"DISPATCHER").$cancel_timer(o.heart_beat_timer),!0}),i(g,"$post",function i(r,c){var p=i.$$p||t,d=this,f=t,h=t,l=t,g=t,m=t,b=t;return i.$$p=null,r==null&&(r=""),c==null&&(c=new Map),n(d.active)?!!n(r["$is_a?"](s(s(s("GxG"),"Gui"),"Form")))&&(f=r.$get_attribute("action").$to_s(),n(a(f.$size(),0))?n(a(d.relative_url.$to_s().$size(),0))?h=""+d.host_prefix+d.relative_url.$to_s()+f.$to_s()+"?display="+d.display_path.$to_s():h=""+d.host_prefix+f.$to_s()+"?display="+d.display_path.$to_s():n(a(d.relative_url.$to_s().$size(),0))?h=""+d.host_prefix+d.relative_url.$to_s()+"?display="+d.display_path.$to_s():h=""+d.host_prefix+"?display="+d.display_path.$to_s(),l=new XMLHttpRequest,l.open("POST",h,!0),l.timeout=n(g=c["$[]"]("timeout"))?g:5e3,l.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.setRequestHeader("Accept","application/json"),l.setRequestHeader("X-CSRF-Token",d.csrf),l.setRequestHeader("Content-Type","multipart/form-data"),m=o(v("Proc"),"new",[],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=new Map([["error","unknown"]])),n.$log_error(t)},{$$arity:-1,$$s:d}),b=o(v("Proc"),"new",[],function o(){var a=o.$$s==null?this:o.$$s,c=t,r=t,i=t,c=l.status.$to_i();if(n(u(c,300)))try{return r=s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])),a.$log_info(r.$inspect()),n(p["$respond_to?"]("call"))?p.$call(r):t}catch(t){if(e.rescue(t,[v("Exception")])){i=t;try{return a.$log_error(new Map([["error",i],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}else try{return m.$call(s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){i=t;try{return a.$log_error(new Map([["error",i],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}},{$$s:d}),l.addEventListener("load",b),l.addEventListener("error",m),l.addEventListener("timeout",m),l.addEventListener("abort",m),l.send(r.$element()),!0):t},-1),i(g,"$download_file",function e(i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,i==null&&(i=""),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("String")))&&n(l))&&(r=c.$new_message(new Map([["download_file",new Map([["path",i]])]])),r["$[]="]("sender",c.uuid),r["$[]="]("to",c.remote_uuid),n(a["$respond_to?"]("call"))&&o(r,"on",["fail"],a.$to_proc()),o(r,"on",["success"],function(o){var i=t,a=t;if(o==null&&(o=t),n(o["$is_a?"](s("Hash")))){i=o["$[]"]("result")["$[]"]("file_name").$to_s(),a=o["$[]"]("result")["$[]"]("file_data").$decode64();const t=window.streamSaver,n=t.createWriteStream(i,{}),e=n.getWriter(),s=(new TextEncoder).encode(a);return e.write(s),e.close(),l.$call(!0)}return l.$call(!1)}),s(v("GxG"),"CONNECTION").$pull(r),!0):t},-1),i(g,"$push",function(r,c){var d=this,m=t,f=t,l=t,p=t,h=t,g=t;return r==null&&(r=t),c==null&&(c=new Map),n(d.active)?!!n(r["$is_a?"](s(s(s("GxG"),"Events"),"Message")))&&(n(a(d.relative_url.$to_s().$size(),0))?m=""+d.host_prefix+d.relative_url.$to_s()+"?display="+d.display_path.$to_s():m=""+d.host_prefix+"?display="+d.display_path.$to_s(),f=r.$body().$to_json().$to_s(),l=new XMLHttpRequest,l.open("PUT",m,!0),l.timeout=n(p=c["$[]"]("timeout"))?p:5e3,l.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.setRequestHeader("Accept","application/json"),l.setRequestHeader("X-CSRF-Token",d.csrf),l.setRequestHeader("Content-Type","application/json"),h=o(v("Proc"),"new",[],function(n){return n==null&&(n=t),r.$fail(n)},-1),g=o(v("Proc"),"new",[],function o(){var c=o.$$s==null?this:o.$$s,i=t,a=t,i=l.status.$to_i();if(n(u(i,300)))try{return r.$succeed(s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){a=t;try{return c.$log_error(new Map([["error",a],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}else return h.$call(i)},{$$s:d}),l.addEventListener("load",g),l.addEventListener("error",h),l.addEventListener("timeout",h),l.addEventListener("abort",h),l.send(f),!0):t},-1),i(g,"$pull",function(l,d){var m=this,g=t,p=t,h=t,b=t,f=t,j=t;return l==null&&(l=t),d==null&&(d=new Map([["synchronous",!1]])),n(m.active)?!!n(l["$is_a?"](s(s(s("GxG"),"Events"),"Message")))&&(g="display="+m.display_path.$to_s()+"&details="+l.$body().$to_json().$encode64(),n(a(m.relative_url.$to_s().$size(),0))?p=c(c(c(m.host_prefix.$to_s(),m.relative_url.$to_s()),"?"),g):p=c(c(m.host_prefix.$to_s(),"?"),g),h=new XMLHttpRequest,r(d["$[]"]("synchronous"),!0)?h.open("GET",p.$to_s(),!1):(h.open("GET",p.$to_s(),!0),h.timeout=n(b=d["$[]"]("timeout"))?b:6e5),h.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.setRequestHeader("Accept","application/json"),f=o(v("Proc"),"new",[],function(n){return n==null&&(n=t),l.$fail(n)},-1),j=o(v("Proc"),"new",[],function o(){var r=o.$$s==null?this:o.$$s,i=t,a=t,i=h.status.$to_i();if(n(u(i,300)))try{return l.$succeed(s("JSON").$parse(h.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){a=t;try{return r.$log_error(new Map([["error",a],["parameters",h.response]]))}finally{e.pop_exception(t)}}else throw t}else return f.$call(i)},{$$s:m}),h.addEventListener("load",j),h.addEventListener("error",f),h.addEventListener("timeout",f),h.addEventListener("abort",f),h.send(null),!0):t},-1),i(g,"$push_message",function(n){return n==null&&(n=t),t},-1),i(g,"$pull_message",function(n){return n==null&&(n=new Map),t},-1),i(g,"$process_pending",function(n){return n==null&&(n=new Map),t},-1),i(g,"$push_object_portions",function e(n,s){var o=e.$$p||t;return e.$$p=null,n==null&&(n=new Map),s==null&&(s=t),t},-1),i(g,"$search_database",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["search_database",new Map([["criteria",i]])]]),a],r.$to_proc()),!0)},-1),i(g,"$search_pull",function i(a,r){var c=i.$$p||t,l=this;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),!!(n(a["$is_a?"](s("Hash")))&&n(c))&&(o(l,"pull_data",[new Map([["search_pull",new Map([["criteria",a]])]]),r],function o(i){var a=o.$$s==null?this:o.$$s,l=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash"))))if(n(i["$[]"]("result")))if(n(i["$[]"]("result")["$is_a?"](s("String"))))if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(i=i["$[]"]("result").$decode64()),n(i.$to_s()["$json?"]()))try{return i=s("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])),c.$call(s(s("GxG"),"Database").$process_detached_import(i))}catch(t){if(e.rescue(t,[v("Exception")])){l=t;try{return a.$log_error(new Map([["error",l],["parameters",new Map([["data",i]])]]))}finally{e.pop_exception(t)}}else throw t}else return t;else return a.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]));else return n(i["$[]"]("error"))&&n(r["$respond_to?"]("call"))?r.$call(i):t;else return t},{$$s:l}),!0)},-1),i(g,"$destroy_object",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(r))&&(o(c,"pull_data",[new Map([["destroy_object",new Map([["path",i]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$push_data",function e(i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(l))&&(r=c.$new_message(i),r["$[]="]("sender",c.uuid),r["$[]="]("to",c.remote_uuid),n(a["$respond_to?"]("call"))&&o(r,"on",["fail"],a.$to_proc()),o(r,"on",["success"],function(n){return n==null&&(n=t),l.$call(n)}),s(v("GxG"),"CONNECTION").$push(r),!0)},-1),i(g,"$push_object",function e(i,r){var h=e.$$p||t,m=this,l=t,c=t,d=t,u=t;return e.$$p=null,i==null&&(i=new Map),r==null&&(r=t),!!(n(i["$is_a?"](s("Hash")))&&n(h))&&(l=t,c=new Map,n(i["$[]"]("object")["$is_any?"](s(s("GxG"),"BinaryArray"),s("String")))?n(a(i["$[]"]("path").$to_s().$size(),0))?(c["$[]="]("path",i["$[]"]("path")),c["$[]="]("object",i["$[]"]("object").$to_s().$encode64())):l="You MUST specify a :path to store the data into.":n(i["$[]"]("object")["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))?(n(a(i["$[]"]("path").$to_s().$size(),0))&&c["$[]="]("path",i["$[]"]("path")),c["$[]="]("uuid",i["$[]"]("object").$uuid().$to_s()),d=[],u=new Map([["formats",new Map],["records",[]]]),n(a(i["$[]"]("object").$format().$to_s().$size(),0))&&d["$<<"](i["$[]"]("object").$format()),o(i["$[]"]("object"),"search",[],function(o,i,r){return o==null&&(o=t),i==null&&(i=t),r==null&&(r=t),n(o["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))&&n(a(o.$format().$to_s().$size(),0))&&d["$<<"](o.$format()),n(o["$is_a?"](s(s(s("GxG"),"Database"),"PersistedArray")))&&n(a(o.$constraint().$to_s().$size(),0))?d["$<<"](o.$constraint()):t}),o(d,"each",[],function(i){var r,a=t;return i==null&&(i=t),a=s(v("GxG"),"DB")["$[]"]("formats")["$[]"](i.$to_s().$to_sym()).$clone(),n(a["$is_a?"](s("Hash")))?(a["$[]="]("content",a["$[]"]("content").$gxg_export()),(r=[i.$to_s().$to_sym(),a],o(u["$[]"]("formats"),"[]=",r),r[r.length-1])):t}),u["$[]"]("records")["$<<"](i["$[]"]("object").$export()),c["$[]="]("object",u)):l="Invalid Data Type",n(l)?(n(r["$respond_to?"]("call"))&&r.$call(new Map([["result",t],["error",l]])),!1):(o(m,"push_data",[new Map([["put_object",c]]),r],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?h.$call(o):t}),!0))},-1),i(g,"$pull_data",function i(a,r){var d=i.$$p||t,l=this,c=t;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),n(a)&&n(d)?(c=l.$new_message(a),c["$[]="]("sender",l.uuid),c["$[]="]("to",l.remote_uuid),n(r["$respond_to?"]("call"))&&o(c,"on",["fail"],r.$to_proc()),o(c,"on",["success"],function o(i){var r=o.$$s==null?this:o.$$s,a=t,c=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash")))){if(a=t,n(i["$[]"]("result")["$is_a?"](s("String")))){if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(a=i["$[]"]("result").$decode64()),n(a.$to_s()["$json?"]()))try{a=s("JSON").$parse(a.$to_s(),new Map([["symbolize_names",!0]]))}catch(t){if(e.rescue(t,[v("Exception")])){c=t;try{r.$log_error(new Map([["error",c],["parameters",new Map([["data",a]])]]))}finally{e.pop_exception(t)}}else throw t}return d.$call(a)}return r.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]))}else return t},{$$s:l}),s(v("GxG"),"CONNECTION").$pull(c)):t},-1),i(g,"$pull_object",function e(i,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(c))&&(n(v("GxG")["$valid_uuid?"](i.$to_s()))?r=new Map([["get_object",new Map([["uuid",i]])]]):r=new Map([["get_object",new Map([["path",i]])]]),o(l,"pull_data",[r,a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?c.$call(s(s("GxG"),"Database").$process_detached_import(o)):t}),!0)},-1),i(g,"$load_format",function i(a,r){var c=i.$$p||t,l=this;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),!!(n(a)&&n(c))&&(o(l,"pull_data",[new Map([["get_format",a]]),r],function o(i){var a=o.$$s==null?this:o.$$s,l=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash"))))if(n(i["$[]"]("result")))if(n(i["$[]"]("result")["$is_a?"](s("String"))))if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(i=i["$[]"]("result").$decode64()),n(i.$to_s()["$json?"]()))try{return i=s("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])),s(s("GxG"),"Database").$process_detached_import(i),c.$call(new Map([["result",!0]]))}catch(t){if(e.rescue(t,[v("Exception")])){l=t;try{return a.$log_error(new Map([["error",l],["parameters",new Map([["data",i]])]]))}finally{e.pop_exception(t)}}else throw t}else return t;else return a.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]));else return n(i["$[]"]("error"))&&n(r["$respond_to?"]("call"))?r.$call(i):t;else return t},{$$s:l}),!0)},-1),i(g,"$store_format",function e(i,c){var u=e.$$p||t,h=this,l=t,d=t;return e.$$p=null,i==null&&(i=new Map),c==null&&(c=t),!!(n(i)&&n(u))&&(r(i.$keys().$size(),0)?l=s(s("GxG"),"DB")["$[]"]("formats").$keys():(l=[],o(s(s("GxG"),"DB")["$[]"]("formats").$keys(),"each",[],function(o){return o==null&&(o=t),n(a(i["$[]"]("uuid").$to_s().$size(),0))&&r(o,i["$[]"]("uuid"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("type").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("type"),i["$[]"]("type"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("ufs").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("ufs"),i["$[]"]("ufs"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("title").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("title"),i["$[]"]("title"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("version").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("version"),i["$[]"]("version"))?n(l["$include?"](o))?t:l["$<<"](o):t})),d=new Map([["formats",new Map],["records",[]]]),o(l,"each",[],function(n){var i,a=t;return n==null&&(n=t),a=s(s("GxG"),"DB")["$[]"]("formats")["$[]"](n.$to_s().$to_sym()).$clone(),a["$[]="]("content",a["$[]"]("content").$gxg_export()),(i=[n.$to_s().$to_sym(),a],o(d["$[]"]("formats"),"[]=",i),i[i.length-1])}),o(h,"push_data",[new Map([["put_format",d]]),c],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?u.$call(o):t}),!0)},-1),i(g,"$get_permissions",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(r))&&(o(c,"pull_data",[new Map([["get_permissions",new Map([["path",i]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$call_event",function e(i,a,r){var c=e.$$p||t,l=this;return e.$$p=null,i==null&&(i="core"),a==null&&(a=new Map([["interface",!0]])),r==null&&(r=t),n(l["$open?"]())?!!(n(a["$is_a?"](s("Hash")))&&n(c))&&(o(l,"pull_data",[new Map([["call_event",new Map([["service",i.$to_s()],["op_frame",a]])]]),r],c.$to_proc()),!0):t},-1),i(g,"$library_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["get_library",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_any?"](s("Array"),s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["format_pull",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_push",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"push_data",[new Map([["format_push",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_list",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["format_list",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$admin",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["admin",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$vfs",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!n(c["$open?"]())&&!!(n(i["$is_a?"](s("Hash")))&&n(r))&&!!n(["vfs_mkfile","vfs_mkdir","vfs_rename","vfs_destroy","vfs_copy","vfs_move","set_permissions"]["$include?"](i.$keys()["$[]"](0)))&&(o(c,"pull_data",[i,a],function(n){return n==null&&(n=t),r.$call(n)}),!0)},-1),i(g,"$app_state_push",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"push_data",[new Map([["app_state_push",new Map([["application",i["$[]"]("application")],["data",i["$[]"]("data")]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$app_state_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["app_state_pull",new Map([["application",i["$[]"]("application")]])]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$application_open",function e(i,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(l["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(c))&&(n(i["$[]"]("name"))?o(l,"pull_data",[new Map([["application_open",new Map([["restore",n(r=i["$[]"]("restore"))&&r],["name",i["$[]"]("name")]])]]),a],function(n){return n==null&&(n=t),c.$call(n)}):o(l,"pull_data",[new Map([["application_open",new Map([["restore",n(r=i["$[]"]("restore"))&&r],["path",i["$[]"]("path")]])]]),a],function(n){return n==null&&(n=t),c.$call(n)}),!0):t},-1),i(g,"$application_close",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["application_close",new Map([["application",i["$[]"]("application")]])]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$application_list",function e(s){var i=e.$$p||t,a=this;return e.$$p=null,s==null&&(s=t),n(a["$open?"]())?!!n(i)&&(o(a,"pull_data",[new Map([["application_list",!0]]),s],function(n){return n==null&&(n=t),i.$call(n)}),!0):t},-1),i(g,"$application_menu",function e(s){var i=e.$$p||t,a=this;return e.$$p=null,s==null&&(s=t),n(a["$open?"]())?!!n(i)&&(o(a,"pull_data",[new Map([["application_menu",!0]]),s],function(n){return n==null&&(n=t),i.$call(n)}),!0):t},-1),i(g,"$entries",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(s(v("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!0),o(c,"pull_data",[new Map([["entries",new Map([["path",i["$[]"]("path")]])]]),a],function(n){return n==null&&(n=t),r.$call(n),s(v("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!1)}),!0):t},-1),i(g,"$heartbeat",function(){var a=this,i=t;return n(a.active)?(i=a.$new_message(new Map([["heartbeat",!0]])),i["$[]="]("sender",a.uuid.$to_s()),i["$[]="]("to",a.remote_uuid.$to_s()),o(i,"on",["success"],function(i){var a;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))?(r(i["$[]"]("result")["$[]"]("status"),"credentialed"),(a=["server_status",i["$[]"]("result")["$[]"]("server").$to_s().$to_sym()],o(s(v("GxG"),"DISPLAY_DETAILS"),"[]=",a),a[a.length-1])):t}),s(v("GxG"),"CONNECTION").$pull(i)):t}),i(g,"$update_credential",function e(i,a){var d=e.$$p||t,l=this,u=t,c=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(l["$open?"]())&&n(i["$is_a?"](s("Hash")))&&n(d)?(u=i.$to_json().$to_s().$encrypt(l.csrf.$to_s()).$encode64(),c=l.$new_message(new Map([["update_credential",u]])),c["$[]="]("sender",l.uuid),c["$[]="]("to",l.remote_uuid),c["$[]"]("body")["$[]="]("thread",c.$id().$to_s()),o(c,"on",["success"],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))&&r(i["$[]"]("status"),"credentialed")&&(s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0),o(v("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$socket().$send(new Map([["open_channel",n.$to_s()]]).$to_json().$encode64(),"text")},{$$s:a})),d.$call(i)},{$$s:l}),n(a)&&o(c,"on",["fail"],function(n){return n==null&&(n=t),a.$call(n)}),s(v("GxG"),"CONNECTION").$push(c)):t},-1),i(g,"$downgrade_credential",function e(){var c=e.$$p||t,i=this,a=t;return e.$$p=null,n(i.active)?(a=i.$new_message(new Map([["downgrade_credential",!0]])),a["$[]="]("sender",i.uuid.$to_s()),a["$[]="]("to",i.remote_uuid.$to_s()),o(a,"on",["success"],function e(i){var l=e.$$s==null?this:e.$$s,a=t;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))&&r(i["$[]"]("status"),"uncredentialed")?(o(v("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$socket().$send(new Map([["close_channel",n.$to_s()]]).$to_json().$encode64(),"text")},{$$s:l}),s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),n(c["$respond_to?"]("call"))&&c.$call(i),a=new CustomEvent("credentialchanged",{detail:i["$[]"]("status").$to_s()}),window.dispatchEvent(a)):t},{$$s:i}),s(v("GxG"),"CONNECTION").$pull(a)):t}),i(g,"$action",function e(n,s){var o=e.$$p||t;return e.$$p=null,n==null&&(n=new Map),s==null&&(s=t),t},-1),i(g,"$relative_url",l("relative_url")),i(g,"$query",l("query")),i(g,"$article",l("article")),i(g,"$display_path",l("display_path")),i(g,"$secret",l("csrf")),i(g,"$initialize",function(){var l=this,g=t,m=t,h=t,d=t,p=t,u=t;return n(window.location.href["$include?"]("https://"))?l.host_prefix=c("https://",window.location.host):l.host_prefix=c("http://",window.location.host),l.relative_url="",g=v("File").$basename(window.location.pathname),m=window.location.pathname.$split("/"),h=m.$index(g),n(h["$is_a?"](s("Numeric")))&&n(a(h,1))&&(l.relative_url=m["$[]"](e.Range.$new(0,f(h,1),!1)).$join("/")),l.article=t,l.query=new Map,d=window.location.href.$split("?")["$[]"](1),n(d)?(l.article=d.$split("#")["$[]"](1),d=d.$split("#")["$[]"](0),n(d["$include?"]("&"))?p=d.$split("&"):p=d.$split("&"),o(p,"each",[],function e(n){var s,i=e.$$s==null?this:e.$$s,a=t;return i.query==null&&(i.query=t),n==null&&(n=t),a=n.$split("="),(s=[a["$[]"](0).$to_s().$to_sym(),a["$[]"](1)],o(i.query,"[]=",s),s[s.length-1])},{$$s:l})):l.article=window.location.href.$split("#")["$[]"](1),l.uuid=v("GxG").$uuid_generate().$to_sym(),l.remote_uuid=t,l.active=!0,l.display_path=t,l.in_busy=!1,l.out_busy=!1,l.pending=new Map,l.channels=new Map,l.buffers=new Map,l.csrf=t,l.the_connector=l,u=l.$new_message(new Map([["introduction",l.uuid.$to_s()]])),u["$[]="]("sender",l.uuid.$to_s()),u["$[]="]("to",l.host_prefix.$to_s()),o(u,"on",["success"],function i(a){var l=i.$$s==null?this:i.$$s;return a==null&&(a=t),r(a["$[]"]("result"),"OK")?(n(a["$[]"]("csrf"))&&(l.csrf=a["$[]"]("csrf")),r(a["$[]"]("status"),"credentialed")?s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0):s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),n(a["$[]"]("relative_url"))&&(l.relative_url=a["$[]"]("relative_url")),r(a["$[]"]("display"),"unavailable")?alert("Display Resource Unavailable"):(l.display_path=a["$[]"]("display"),l.active=!0,o(s(v("GxG"),"DISPATCHER"),"post_event",["display"],function i(){var l,a=i.$$s==null?this:i.$$s;for(a.query==null&&(a.query=t),a.article==null&&(a.article=t),a.relative_url==null&&(a.relative_url=t);!r(document.readyState.$to_s(),"complete");)a.$sleep(.5);return s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("query",a.query),s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("article",a.article),l=function(t){e.GxG.$eval("GxG::DISPLAY_DETAILS[:socket].close"),t&&(t.returnValue="closing...");for(var n=0;n<5e8;n++);return"closing..."},window.addEventListener("unload",l,!1),window.addEventListener("onunload",l,!1),window.addEventListener("beforeunload",l,!1),window.addEventListener("onbeforeunload",l,!1),window.onbeforeunload=l,window.beforeunload=l,o(s(v("GxG"),"DISPATCHER"),"post_event",["display"],function(){return s(s(s("GxG"),"Gui"),"Vdom").$navigate_to(window.location.pathname)}),s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("socket",s(s(s("GxG"),"Networking"),"Socket").$new()),s(s("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$open(c(c(c(window.location.host,"/"),a.relative_url),"/ws").$gsub("//","/")),o(s(s("GxG"),"SOCKET_MONITOR"),"on",["attach_socket"],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.uuid==null&&(a.uuid=t),a.remote_uuid==null&&(a.remote_uuid=t),i==null&&(i=t),n(s("GxG")["$valid_uuid?"](i))?(r=a.$new_message(new Map([["attach_socket",i.$to_s()]])),r["$[]="]("sender",a.uuid),r["$[]="]("to",a.remote_uuid),o(r,"on",["success"],function e(n){var o=e.$$s==null?this:e.$$s;return o.uuid==null&&(o.uuid=t),n==null&&(n=t),s(s("GxG"),"CHANNELS").$create_channel(o.uuid)},{$$s:a}),s(v("GxG"),"CONNECTION").$push(r)):t},{$$s:a}),o(s(s("GxG"),"SOCKET_MONITOR"),"on",["payload"],function e(o){var r=e.$$s==null?this:e.$$s,i=t,a=t;return r.csrf==null&&(r.csrf=t),o==null&&(o=t),i=s(s(s("GxG"),"Events"),"Message").$import(o.$to_s().$decode64().$decrypt(r.csrf)),n(i["$is_a?"](s(s(s("GxG"),"Events"),"Message")))?(a=s(s("GxG"),"CHANNELS").$fetch_channel(i["$[]"]("to")),n(a)||(s(s("GxG"),"CHANNELS").$create_channel(i["$[]"]("to")),a=s(s("GxG"),"CHANNELS").$fetch_channel(i["$[]"]("to"))),n(a)?a.$write(i):t):t},{$$s:a}),o(s(s("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",.333]])],function(){return s(s("GxG"),"SOCKET_MONITOR").$follow_up()})},{$$s:l}))):t},{$$s:l}),o(u,"on",["fail"],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.active=!1,s.$log_error(new Map([["error",v("Exception").$new("Communication Error")],["parameters",new Map([["response",n]])]]))},{$$s:l}),o(s(v("GxG"),"DISPATCHER"),"post_event",["communications"],function e(){var t=e.$$s==null?this:e.$$s;return s(v("GxG"),"CONNECTION").$pull(u),t.heart_beat_timer=o(s(v("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",60]])],function(){return s(v("GxG"),"CONNECTION").$heartbeat()})},{$$s:l}),l})}(g[0],null,g)}(g[0],g)}(m[0],m)},Opal.queue(function(e){var r=e.module,s=e.const_set,c=e.klass,o=e.def,t=e.top,i=[],a=e.nil,n=e.$$$;return e.add_stubs("require,to_i,new,private,[]"),t.$require("opal"),t.$require("opal/paths"),t.$require("bigdecimal"),t.$require("buffer"),t.$require("base64"),t.$require("console"),t.$require("date"),t.$require("delegate"),t.$require("enumerator"),t.$require("forwardable"),t.$require("iconv"),t.$require("json"),t.$require("js"),t.$require("observer"),t.$require("opal-parser"),t.$require("opal-platform"),t.$require("pathname"),t.$require("pp"),t.$require("promise"),t.$require("securerandom"),t.$require("singleton"),t.$require("stringio"),t.$require("strscan"),t.$require("thread"),t.$require("time"),t.$require("deps/chronic"),t.$require("web/gxg"),t.$require("web/gxg_augments"),t.$require("web/gxg_elements"),t.$require("web/gxg_events"),t.$require("web/gxg_database"),t.$require("web/gxg_libraries"),t.$require("web/gxg_applications"),t.$require("web/gxg_vdom"),t.$require("web/gxg_foundation"),t.$require("web/gxg_layout"),t.$require("web/gxg_windows"),t.$require("web/gxg_gui"),t.$require("web/gxg_comm"),function(e,t){var i=r(e,"GxG"),o=[i].concat(t);return s(o[0],"DISPLAY_DETAILS",new Map([["server_status","running"],["logged_in",!1],["host_path",""],["use_ssl",!1],["socket",a],["object",a],["theme","default"],["query",new Map],["article",a],["mode","browsing"]])),s(o[0],"LAYOUT",new Map([["top-left",new Map],["top",new Map],["top-right",new Map],["right",new Map],["bottom-right",new Map],["bottom",new Map],["bottom-left",new Map],["left",new Map]])),s(o[0],"LAYOUT_LIMITS",new Map([["top",0],["left",0],["bottom",window.innerHeight.$to_i()],["right",window.innerWidth.$to_i()],["page_width",window.innerWidth.$to_i()],["page_height",window.innerHeight.$to_i()]])),s(o[0],"APPLICATIONS",new Map([["processes",new Map],["libraries",new Map],["viewports",new Map],["prefetching",!1]])),s(o[0],"ANIMATION",new Map([["animations",new Map],["assets",new Map]])),s(o[0],"DB",new Map([["formats",new Map]])),s(o[0],"CONNECTION",n(n(n("GxG"),"Networking"),"Connector").$new()),s(o[0],"SOCKET_MONITOR",n(n(n("GxG"),"Networking"),"SocketMonitor").$new()),s(o[0],"THEMES",new Map),s(o[0],"PAGES",new Map),s(o[0],"DOCUMENTS",new Map)}(i[0],i),function(e,t){var s=c(e,t,"Object");return s.$private(),o(s,"$page",function(){return n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")}),o(s,"$applications",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("processes")}),o(s,"$libraries",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("libraries")}),o(s,"$viewports",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("viewports")}),o(s,"$connector",function(){return n(n("GxG"),"CONNECTION")}),o(s,"$socket",function(){return n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket")}),o(s,"$sockets",function(){return n(n("GxG"),"SOCKET_MONITOR")}),o(s,"$documents",function(){return n(n("GxG"),"DOCUMENTS")})}(i[0],null)}),Opal.queue(function(e){var t=e.Kernel,n=e.nil;return e.add_stubs("exit"),t.$exit()}) \ No newline at end of file