*/r.PARSE_OPTIONS={ecmaVersion:5,locations:!0},r.READONLY_DESCRIPTOR={configurable:!0,enumerable:!0,writable:!1},r.NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!0},r.READONLY_NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!1},r.VARIABLE_DESCRIPTOR={configurable:!1,enumerable:!0,writable:!0},r.STEP_ERROR={},r.SCOPE_REFERENCE={},r.VALUE_IN_DESCRIPTOR={},r.toStringCycles_=[],r.prototype.getErrorLineNumber=function(e){var t=this.sourceCode;if(null==e||null==e.start)return NaN;try{return((t=t.substring(0,e.start)).match(/\n/g)||[]).length+1-this.sourceCodeLineOffset}catch(e){returnNaN}},r.prototype.getErrorLineNumberMessage=function(e){returnisNaN(e)?" (Unknown line number)":e<=0?" (Error occurred in an imported function)":" (Line Number "+e+". This line number is probably incorrect if your script is importing any functions. This is being worked on)"},r.prototype.appendCode=function(e){vart=this.stateStack[0];if(!t||"Program"!==t.node.type)throwError("Expecting original AST to start with a Program node.");if("string"==typeofe&&(e=n.a(e,r.PARSE_OPTIONS)),!e||"Program"!==e.type)throwError("Expecting new AST to start with a Program node.");this.populateScope_(e,t.scope);for(vara,i=0;a=e.body[i];i++)t.node.body.push(a);t.done=!1},r.prototype.step=function(){vare=this.stateStack,t=e[e.length-1];if(!t)return!1;vara=t.node,n=a.type;if("Program"===n&&t.done)return!1;if(this.paused_)return!0;try{vari=this.stepFunctions_[n](e,t,a)}catch(e){if(e!==r.STEP_ERROR)throwe}returni&&e.push(i),!!a.end||this.step()},r.prototype.run=function(){for(;!this.paused_&&this.step(););returnthis.paused_},r.prototype.initGlobalScope=function(e){this.setProperty(e,"NaN",NaN,r.READONLY_DESCRIPTOR),this.setProperty(e,"Infinity",1/0,r.READONLY_DESCRIPTOR),this.setProperty(e,"undefined",void0,r.READONLY_DESCRIPTOR),this.setProperty(e,"window",e,r.READONLY_DESCRIPTOR),this.setProperty(e,"this",e,r.READONLY_DESCRIPTOR),this.setProperty(e,"self",e),this.OBJECT_PROTO=newr.Object(null),this.FUNCTION_PROTO=newr.Object(this.OBJECT_PROTO),this.initFunction(e),this.initObject(e),e.proto=this.OBJECT_PROTO,this.setProperty(e,"constructor",this.OBJECT,r.NONENUMERABLE_DESCRIPTOR),this.initArray(e),this.initString(e),this.initBoolean(e),this.initNumber(e),this.initDate(e),this.initRegExp(e),this.initError(e),this.initMath(e),this.initJSON(e);vart=this,a=this.createNativeFunction((function(e){throwEvalError("Can't happen")}),!1);a.eval=!0,this.setProperty(e,"eval",a),this.setProperty(e,"parseInt",this.createNativeFunction(parseInt,!1)),this.setProperty(e,"parseFloat",this.createNativeFunction(parseFloat,!1)),this.setProperty(e,"isNaN",this.createNativeFunction(isNaN,!1)),this.setProperty(e,"isFinite",this.createNativeFunction(isFinite,!1));for(varn=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],i=0;i<n.length;i++){varo=function(e){returnfunction(a){try{returne(a)}catch(e){t.throwException(t.URI_ERROR,e.message)}}}(n[i][0]);this.setProperty(e,n[i][1],this.createNativeFunction(o,!1),r.NONENUMERABLE_DESCRIPTOR)}this.OBJECT=this.OBJECT,this.OBJECT_PROTO=this.OBJECT_PROTO,this.FUNCTION=this.FUNCTION,this.FUNCTION_PROTO=this.FUNCTION_PROTO,this.ARRAY=this.ARRAY,this.ARRAY_PROTO=this.ARRAY_PROTO,this.REGEXP=this.REGEXP,this.REGEXP_PROTO=this.REGEXP_PROTO,this.DATE=this.DATE,this.DATE_PROTO=this.DATE_PROTO,this.UNDEFINED=void0,this.NULL=null,this.NAN=NaN,this.TRUE=!0,this.FALSE=!1,this.STRING_EMPTY="",this.NUMBER_ZERO=0,this.NUMBER_ONE=1,this.initFunc_&&this.initFunc_(this,e)},r.prototype.initFunction=function(e){vart,a=this,i=/^[A-Za-z_$][\w$]*$/;(t=function(e){if(a.calledWithNew())vart=this;elset=a.createObjectProto(a.FUNCTION_PROTO);if(arguments.length)varo=String(arguments[arguments.length-1]);elseo="";vars=Array.prototype.slice.call(arguments,0,-1).join(",").trim();if(s){for(varl=s.split(/\s*,\s*/),c=0;c<l.length;c++){varu=l[c];i.test(u)||a.throwException(a.SYNTAX_ERROR,"Invalidfunc