Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

update jshint

  • Loading branch information...
commit 62542433fc1585d4a415bfc81da42d1faeaff5d1 1 parent 4478d60
@nightwing nightwing authored
Showing with 1 addition and 2 deletions.
  1. +1 −2  chrome/content/ace++/worker.js
View
3  chrome/content/ace++/worker.js
@@ -1,6 +1,5 @@
define("fbace/worker", function(require, exports, module) {
-var lang = require("pilot/lang");
var lint = require("ace/worker/jshint").JSHINT;
@@ -157,4 +156,4 @@ exports.ConsoleWorker = function(session) {
// minified code taken from ace javascript worker
-define("ace/worker/jshint",["require","exports","module"],function(a,b,c){var d=function(){function bZ(){function b(){var a=x;bm("[");if(x.id!=="]")for(;;){if(x.id==="(end)")bg("Missing ']' to match '[' from line {a}.",x,a.line);else{if(x.id==="]"){be("Unexpected comma.",O);break}x.id===","&&bg("Unexpected comma.",x)}bZ();if(x.id!==",")break;bm(",")}bm("]")}function a(){var a={},b=x;bm("{");if(x.id!=="}")for(;;){if(x.id==="(end)")bg("Missing '}' to match '{' from line {a}.",x,b.line);else{if(x.id==="}"){be("Unexpected comma.",O);break}x.id===","?bg("Unexpected comma.",x):x.id!=="(string)"&&be("Expected a string and instead saw {a}.",x,x.value)}a[x.value]===!0?be("Duplicate key '{a}'.",x,x.value):x.value==="__proto__"&&!A.proto||x.value==="__iterator__"&&!A.iterator?be("The '{a}' key may produce unexpected results.",x,x.value):a[x.value]=!0,bm(),bm(":"),bZ();if(x.id!==",")break;bm(",")}bm("}")}switch(x.id){case"{":a();break;case"[":b();break;case"true":case"false":case"null":case"(number)":case"(string)":bm();break;case"-":bm("-"),O.character!==x.from&&be("Unexpected space after '-'.",O),bo(O,x),bm("(number)");break;default:bg("Expected a JSON value.",x)}}function bX(b,c){var d,e=A,f=G;A=Object.create(A),G=Object.create(G),j={"(name)":b||'"'+a+'"',"(line)":x.line,"(context)":j,"(breakage)":0,"(loopage)":0,"(scope)":G,"(statement)":c},d=j,O.funct=j,l.push(j),b&&bj(b,"function"),j["(params)"]=bW(),bS(!1),G=f,A=e,j["(last)"]=O.line,j=j["(context)"];return d}function bW(){var a,b=x,c=[];bm("("),bq();if(x.id===")")bm(")"),bq(D,O);else for(;;){a=bN(!0),c.push(a),bj(a,"parameter");if(x.id===",")bv();else{bm(")",b),bq(D,O);return c}}}function bV(){var a=bM(!0);a||(x.id==="(string)"?(a=x.value,bm()):x.id==="(number)"&&(a=x.value.toString(),bm()));return a}function bU(a){var b=a.value,c=a.line,d=n[b];typeof d=="function"&&(d=!1),d?d[d.length-1]!==c&&d.push(c):(d=[c],n[b]=d)}function bT(a){v&&typeof v[a]!="boolean"&&be("Unexpected /*member '{a}'.",O,a),typeof u[a]=="number"?u[a]+=1:u[a]=1}function bS(a,b){var c,d=o,e=p,f=L,g=G,h;o=a,G=Object.create(G),br(O,x),h=x;if(x.id==="{"){bm("{");if(x.id!=="}"||O.line!==x.line){p+=A.indent;while(!a&&x.from>p)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b<x.lbp)e=O.value=="Array",bm(),e&&O.id=="("&&x.id==")"&&be("Use the array literal notation [].",O),O.led?d=O.led(d):bg("Expected an operator and instead saw '{a}'.",O,O.id)}return d}function bm(b,c){switch(O.id){case"(number)":x.id==="."&&be("A dot following a number can be confused with a decimal point.",O);break;case"-":(x.id==="-"||x.id==="--")&&be("Confusing minusses.");break;case"+":(x.id==="+"||x.id==="++")&&be("Confusing plusses.")}if(O.type==="(string)"||O.identifier)a=O.value;b&&x.id!==b&&(c?x.id==="(end)"?be("Unmatched '{a}'.",c,c.id):be("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",x,b,c.id,c.line,x.value):(x.type!=="(identifier)"||x.value!==b)&&be("Expected '{a}' and instead saw '{b}'.",x,b,x.value)),D=O,O=x;for(;;){x=t.shift()||bi.token();if(x.id==="(end)"||x.id==="(error)")return;if(x.type==="special")bk();else if(x.id!=="(endline)")break}}function bl(a){var b=a||0,c=0,d;while(c<=b)d=t[c],d||(d=t[c]=bi.token()),c+=1;return d}function bk(){var a,b,d,e=x.value,f,g;switch(e){case"*/":bg("Unbegun comment.");break;case"/*members":case"/*member":e="/*members",v||(v={}),b=v;break;case"/*jshint":case"/*jslint":b=A,d=c;break;case"/*global":b=B;break;default:bg("What?")}f=bi.token();loop:for(;;){for(;;){if(f.type==="special"&&f.value==="*/")break loop;if(f.id!=="(endline)"&&f.id!==",")break;f=bi.token()}f.type!=="(string)"&&f.type!=="(identifier)"&&e!=="/*members"&&bg("Bad option.",f),g=bi.token(),g.id===":"?(g=bi.token(),b===v&&bg("Expected '{a}' and instead saw '{b}'.",f,"*/",":"),f.value!=="indent"||e!=="/*jshint"&&e!=="/*jslint"?f.value!=="maxerr"||e!=="/*jshint"&&e!=="/*jslint"?f.value!=="maxlen"||e!=="/*jshint"&&e!=="/*jslint"?g.value==="true"?b[f.value]=!0:g.value==="false"?b[f.value]=!1:bg("Bad option value.",g):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bg("Expected a small integer and instead saw '{a}'.",g,g.value),b.maxlen=a):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bg("Expected a small integer and instead saw '{a}'.",g,g.value),b.maxerr=a):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bg("Expected a small integer and instead saw '{a}'.",g,g.value),b.white=!0,b.indent=a),f=bi.token()):((e==="/*jshint"||e==="/*jslint")&&bg("Missing option value.",f),b[f.value]=!1,f=g)}d&&bc()}function bj(a,b){a==="hasOwnProperty"&&be("'hasOwnProperty' is a really bad name."),ba(j,a)&&!j["(global)"]&&(j[a]===!0?A.latedef&&be("'{a}' was used before it was defined.",x,a):A.shadow||be("'{a}' is already defined.",x,a)),j[a]=b,j["(global)"]?(m[a]=j,ba(n,a)&&(A.latedef&&be("'{a}' was used before it was defined.",x,a),delete n[a])):G[a]=j}function bh(a,b,c,d,e,f,g){return bg(a,{line:b,from:c},d,e,f,g)}function bg(a,b,c,d,e,f){var g=be(a,b,c,d,e,f);bd("Stopping, unable to continue.",g.line,g.character)}function bf(a,b,c,d,e,f,g){return be(a,{line:b,from:c},d,e,f,g)}function be(a,b,c,e,f,g){var h,i,j;b=b||x,b.id==="(end)"&&(b=O),i=b.line||0,h=b.from||0,j={id:"(error)",raw:a,evidence:s[i-1]||"",line:i,character:h,a:c,b:e,c:f,d:g},j.reason=a.supplant(j),d.errors.push(j),A.passfail&&bd("Stopping. ",i,h),Q+=1,Q>=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen<d.length&&bf("Line too long.",c,d.length),e=d.search(/\s+$/),A.trailing&&~e&&!~d.search(/^\s+$/)&&bf("Trailing whitespace.",c,e);return!0}var a,b,c,d;return{init:function(a){typeof a=="string"?s=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n"):s=a,s[0]&&s[0].substr(0,2)=="#!"&&(s[0]=""),c=0,e(),b=1},range:function(e,g){var h,i="";b=a,d.charAt(0)!==e&&bh("Expected '{a}' and instead saw '{b}'.",c,a,e,d.charAt(0));for(;;){d=d.slice(1),a+=1,h=d.charAt(0);switch(h){case"":bh("Missing '{a}'.",c,a,h);break;case g:d=d.slice(1),a+=1;return f("(range)",i);case"\\":bf("Unexpected '{a}'.",c,a,h)}i+=h}},token:function(){function t(g){function k(b){var e=parseInt(d.substr(i+1,b),16);i+=b,e>=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx("</").reach=!0,bx("<!"),bx("<!--"),bx("-->"),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f<e.length;f+=1)B[e[f]]=!0;else if(typeof e=="object"){g=Object.keys(e);for(f=0;f<g.length;f+=1)B[g[f]]=!!e[g[f]]}A=b}else A={};A.indent=A.indent||4,A.maxerr=A.maxerr||50,N="";for(f=0;f<A.indent;f+=1)N+=" ";p=1,m=Object.create(B),G=m,j={"(global)":!0,"(name)":"(global)","(scope)":G,"(breakage)":0,"(loopage)":0},l=[j],P=[],H=!1,I=null,u={},v=null,n={},o=!1,t=[],q=!1,Q=0,bi.init(a),C=!0,L=!1,D=O=x=M["(begin)"],bc();try{bm();switch(x.id){case"{":case"[":A.laxbreak=!0,q=!0,bZ();break;default:x.value==="use strict"&&(A.globalstrict||be('Use the function form of "use strict".'),bQ()),bR("lib")}bm("(end)")}catch(h){h&&d.errors.push({reason:h.message,line:h.line||x.line,character:h.character||x.from},null)}return d.errors.length===0};b$.data=function(){var a={functions:[]},b,c,d=[],e,f,g,h=[],i,j=[],m;b$.errors.length&&(a.errors=b$.errors),q&&(a.json=!0);for(i in n)ba(n,i)&&d.push({name:i,line:n[i]});d.length>0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f<l.length;f+=1){e=l[f],b={};for(g=0;g<k.length;g+=1)b[k[g]]=[];for(i in e)ba(e,i)&&i.charAt(0)!=="("&&(m=e[i],m==="unction"&&(m="unused"),Array.isArray(b[m])&&(b[m].push(i),m==="unused"&&j.push({name:i,line:e["(line)"],"function":e["(name)"]})));for(g=0;g<k.length;g+=1)b[k[g]].length===0&&delete b[k[g]];b.name=e["(name)"],b.param=e["(params)"],b.line=e["(line)"],b.last=e["(last)"],a.functions.push(b)}j.length>0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("<div><i>"+a+"</i> "),b=b.sort();for(d=0;d<b.length;d+=1)b[d]!==e&&(e=b[d],m.push((c?", ":"")+e),c=!0);m.push("</div>")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("<div id=errors><i>Error:</i>");if(b.errors)for(h=0;h<b.errors.length;h+=1)d=b.errors[h],d&&(e=d.evidence||"",m.push("<p>Problem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"</p><p class=evidence>"+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"</p>"));if(b.implieds){n=[];for(h=0;h<b.implieds.length;h+=1)n[h]="<code>"+b.implieds[h].name+"</code>&nbsp;<i>"+b.implieds[h].line+"</i>";m.push("<p><i>Implied global:</i> "+n.join(", ")+"</p>")}if(b.unused){n=[];for(h=0;h<b.unused.length;h+=1)n[h]="<code><u>"+b.unused[h].name+"</u></code>&nbsp;<i>"+b.unused[h].line+"</i> <code>"+b.unused[h]["function"]+"</code>";m.push("<p><i>Unused variable:</i> "+n.join(", ")+"</p>")}b.json&&m.push("<p>JSON: bad.</p>"),m.push("</div>")}if(!a){m.push("<br><div id=functions>"),b.urls&&o("URLs<br>",b.urls,"<br>"),b.json&&!f?m.push("<p>JSON: good.</p>"):b.globals?m.push("<div><i>Global</i> "+b.globals.sort().join(", ")+"</div>"):m.push("<div><i>No new global variables introduced.</i></div>");for(h=0;h<b.functions.length;h+=1)g=b.functions[h],m.push("<br><div class=function><i>"+g.line+"-"+g.last+"</i> "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")</div>"),o("<big><b>Unused</b></big>",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="<br><pre id=members>/*members ",j=10;for(h=0;h<c.length;h+=1)i=c[h],l=i.name(),j+l.length>72&&(m.push(k+"<br>"),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l="<i>"+l+"</i>"),h<c.length-1&&(l+=", "),k+=l;m.push(k+"<br>*/</pre>")}m.push("</div>")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)})
+define("ace/worker/jshint",["require","exports","module"],function(a,b,c){var d=function(){function ba(){}function bb(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function bc(a,b){var c;for(c in b)bb(b,c)&&(a[c]=b[c])}function bd(){A.couch&&bc(B,f),A.rhino&&bc(B,F),A.prototypejs&&bc(B,E),A.node&&bc(B,y),A.devel&&bc(B,g),A.dojo&&bc(B,h),A.browser&&bc(B,e),A.nonstandard&&bc(B,J),A.jquery&&bc(B,r),A.mootools&&bc(B,w),A.wsh&&bc(B,S),A.esnext&&Q(),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function be(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned).",raw:a}}function bf(a,b,c,e){return d.undefs.push([a,b,c,e])}function bg(a,b,c,e,f,g){var h,i,j;return b=b||x,b.id==="(end)"&&(b=O),i=b.line||0,h=b.from||0,j={id:"(error)",raw:a,evidence:s[i-1]||"",line:i,character:h,a:c,b:e,c:f,d:g},j.reason=a.supplant(j),d.errors.push(j),A.passfail&&be("Stopping. ",i,h),R+=1,R>=A.maxerr&&be("Too many errors.",i,h),j}function bh(a,b,c,d,e,f,g){return bg(a,{line:b,from:c},d,e,f,g)}function bi(a,b,c,d,e,f){var g=bg(a,b,c,d,e,f)}function bj(a,b,c,d,e,f,g){return bi(a,{line:b,from:c},d,e,f,g)}function bl(a,b){a==="hasOwnProperty"&&bg("'hasOwnProperty' is a really bad name."),bb(j,a)&&!j["(global)"]&&(j[a]===!0?A.latedef&&bg("'{a}' was used before it was defined.",x,a):!A.shadow&&b!=="exception"&&bg("'{a}' is already defined.",x,a)),j[a]=b,j["(global)"]?(m[a]=j,bb(n,a)&&(A.latedef&&bg("'{a}' was used before it was defined.",x,a),delete n[a])):G[a]=j}function bm(){var a,b,d,e=x.value,f,g;switch(e){case"*/":bi("Unbegun comment.");break;case"/*members":case"/*member":e="/*members",v||(v={}),b=v;break;case"/*jshint":case"/*jslint":b=A,d=c;break;case"/*global":b=B;break;default:bi("What?")}f=bk.token();a:for(;;){for(;;){if(f.type==="special"&&f.value==="*/")break a;if(f.id!=="(endline)"&&f.id!==",")break;f=bk.token()}f.type!=="(string)"&&f.type!=="(identifier)"&&e!=="/*members"&&bi("Bad option.",f),g=bk.token(),g.id===":"?(g=bk.token(),b===v&&bi("Expected '{a}' and instead saw '{b}'.",f,"*/",":"),f.value!=="indent"||e!=="/*jshint"&&e!=="/*jslint"?f.value!=="maxerr"||e!=="/*jshint"&&e!=="/*jslint"?f.value!=="maxlen"||e!=="/*jshint"&&e!=="/*jslint"?f.value==="validthis"?j["(global)"]?bi("Option 'validthis' can't be used in a global scope."):g.value==="true"||g.value==="false"?b[f.value]=g.value==="true":bi("Bad option value.",g):g.value==="true"?b[f.value]=!0:g.value==="false"?b[f.value]=!1:bi("Bad option value.",g):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bi("Expected a small integer and instead saw '{a}'.",g,g.value),b.maxlen=a):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bi("Expected a small integer and instead saw '{a}'.",g,g.value),b.maxerr=a):(a=+g.value,(typeof a!="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bi("Expected a small integer and instead saw '{a}'.",g,g.value),b.white=!0,b.indent=a),f=bk.token()):((e==="/*jshint"||e==="/*jslint")&&bi("Missing option value.",f),b[f.value]=!1,f=g)}d&&bd()}function bn(a){var b=a||0,c=0,d;while(c<=b)d=t[c],d||(d=t[c]=bk.token()),c+=1;return d}function bo(b,c){switch(O.id){case"(number)":x.id==="."&&bg("A dot following a number can be confused with a decimal point.",O);break;case"-":(x.id==="-"||x.id==="--")&&bg("Confusing minusses.");break;case"+":(x.id==="+"||x.id==="++")&&bg("Confusing plusses.")}if(O.type==="(string)"||O.identifier)a=O.value;b&&x.id!==b&&(c?x.id==="(end)"?bg("Unmatched '{a}'.",c,c.id):bg("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",x,b,c.id,c.line,x.value):(x.type!=="(identifier)"||x.value!==b)&&bg("Expected '{a}' and instead saw '{b}'.",x,b,x.value)),D=O,O=x;for(;;){x=t.shift()||bk.token();if(x.id==="(end)"||x.id==="(error)")return;if(x.type==="special")bm();else if(x.id!=="(endline)")break}}function bp(b,c){var d,e=!1;x.id==="(end)"&&bi("Unexpected early end of program.",O),bo(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id===".")return bg("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bo(),O;bi("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b<x.lbp)e=O.value==="Array",bo(),e&&O.id==="("&&x.id===")"&&bg("Use the array literal notation [].",O),O.led?d=O.led(d):bi("Expected an operator and instead saw '{a}'.",O,O.id)}return d}function bq(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&(a.from+=a.character-a.from,bg("Unexpected space after '{a}'.",a,a.value))}function br(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&bg("Unexpected space before '{a}'.",b,b.value)}function bs(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bq(a,b)}function bt(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&(a.from+=a.character-a.from,bg("Missing space after '{a}'.",a,a.value)))}function bu(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?bg("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&(a.from+=a.character-a.from,bg("Missing space after '{a}'.",a,a.value)))}function bv(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&bg("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bw(a){a=a||O,a.line!==x.line&&bg("Line breaking error '{a}'.",a,a.value)}function bx(){O.line!==x.line?A.laxcomma||(bx.first&&(bg("Comma warnings can be turned off with 'laxcomma'"),bx.first=!1),bg("Bad line breaking before '{a}'.",O,x.id)):!O.comment&&O.character!==x.from&&A.white&&(O.from+=O.character-O.from,bg("Unexpected space after '{a}'.",O,O.value)),bo(","),bt(O,x)}function by(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bz(a){return by(a,0)}function bA(a,b){var c=bz(a);return c.identifier=c.reserved=!0,c.fud=b,c}function bB(a,b){var c=bA(a,b);return c.block=!0,c}function bC(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bD(a,b){var c=by(a,150);return bC(c),c.nud=typeof b=="function"?b:function(){this.right=bp(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?bg("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&bg("Bad operand.",this);return this},c}function bE(a,b){var c=bz(a);return c.type=a,c.nud=b,c}function bF(a,b){var c=bE(a,b);return c.identifier=c.reserved=!0,c}function bG(a,b){return bF(a,function(){return typeof b=="function"&&b(this),this})}function bH(a,b,c,d){var e=by(a,c);return bC(e),e.led=function(e){return d||(bu(D,O),bt(O,x)),a==="in"&&e.id==="!"&&bg("Confusing use of '{a}'.",e,"!"),typeof b=="function"?b(e,this):(this.left=e,this.right=bp(c),this)},e}function bI(a,b){var c=by(a,100);return c.led=function(a){bu(D,O),bt(O,x);var c=bp(100);return a&&a.id==="NaN"||c&&c.id==="NaN"?bg("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&bg("Confusing use of '{a}'.",a,"!"),c.id==="!"&&bg("Confusing use of '{a}'.",c,"!"),this.left=a,this.right=c,this},c}function bJ(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bK(a,b){return by(a,20).exps=!0,bH(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?bg("Read only.",a):a["function"]&&bg("'{a}' is a function.",a,a.value);if(a){A.esnext&&j[a.value]==="const"&&bg("Attempting to override '{a}' which is a constant",a,a.value);if(a.id==="."||a.id==="[")return(!a.left||a.left.value==="arguments")&&bg("Bad assignment.",b),b.right=bp(19),b;if(a.identifier&&!a.reserved)return j[a.value]==="exception"&&bg("Do not assign to the exception parameter.",a),b.right=bp(19),b;a===M["function"]&&bg("Expected an identifier in an assignment and instead saw a function invocation.",O)}bi("Bad assignment.",b)},20)}function bL(a,b,c){var d=by(a,c);return bC(d),d.led=typeof b=="function"?b:function(a){return A.bitwise&&bg("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bp(c),this},d}function bM(a){return by(a,20).exps=!0,bH(a,function(a,b){A.bitwise&&bg("Unexpected use of '{a}'.",b,b.id),bt(D,O),bt(O,x);if(a)return a.id==="."||a.id==="["||a.identifier&&!a.reserved?(bp(19),b):(a===M["function"]&&bg("Expected an identifier in an assignment, and instead saw a function invocation.",O),b);bi("Bad assignment.",b)},20)}function bN(a,b){var c=by(a,150);return c.led=function(a){return A.plusplus?bg("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&bg("Bad operand.",this),this.left=a,this},c}function bO(a){if(x.identifier)return bo(),O.reserved&&!A.es5&&(!a||O.value!=="undefined")&&bg("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id),O.value}function bP(a){var b=bO(a);if(b)return b;O.id==="function"&&x.id==="("?bg("Missing name in function declaration."):bi("Expected an identifier and instead saw '{a}'.",x,x.value)}function bQ(a){var b=0,c;if(x.id!==";"||z)return;for(;;){c=bn(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){if(!A.latedef)break;bg("Inner functions should be listed at the top of the outer function.",c);break}bg("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bR(a){var b=p,c,d=G,e=x;if(e.id===";"){bo(";");return}return e.identifier&&!e.reserved&&bn().id===":"&&(bo(),bo(":"),G=Object.create(d),bl(e.value,"label"),x.labelled||bg("Label '{a}' on {b} statement.",x,e.value,x.value),$.test(e.value+":")&&bg("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bv(),c=bp(0,!0),e.block||(!A.expr&&(!c||!c.exps)?bg("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&bg("Do not use 'new' for side effects."),x.id!==";"?A.asi||(!A.lastsemic||x.id!=="}"||x.line!==O.line)&&bh("Missing semicolon.",O.line,O.character):(bq(O,x),bo(";"),bt(O,x))),p=b,G=d,c}function bS(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(d=bn(),(!d||d.id!=="(")&&bg("Unnecessary semicolon."),bo(";")):b.push(bR(a===x.line));return b}function bT(){var a,b,c;for(;;){if(x.id==="(string)"){b=bn(0);if(b.id==="(endline)"){a=1;do c=bn(a),a+=1;while(c.id==="(endline)");if(c.id!==";"){if(c.id!=="(string)"&&c.id!=="(number)"&&c.id!=="(regexp)"&&c.identifier!==!0&&c.id!=="}")break;bg("Missing semicolon.",x)}else b=c}else if(b.id==="}")bg("Missing semicolon.",b);else if(b.id!==";")break;bv(),bo(),L[O.value]&&bg('Unnecessary directive "{a}".',O,O.value),O.value==="use strict"&&(A.newcap=!0,A.undef=!0),L[O.value]=!0,b.id===";"&&bo(";");continue}break}}function bU(a,b,c){var d,e=o,f=p,g,h=G,i,k,l;o=a;if(!a||!A.funcscope)G=Object.create(G);bt(O,x),i=x;if(x.id==="{"){bo("{"),k=O.line;if(x.id!=="}"){p+=A.indent;while(!a&&x.from>p)p+=A.indent;if(c){g={};for(l in L)bb(L,l)&&(g[l]=L[l]);bT(),A.strict&&j["(context)"]["(global)"]&&!g["use strict"]&&!L["use strict"]&&bg('Missing "use strict" statement.')}d=bS(k),c&&(L=g),p-=A.indent,k!==x.line&&bv()}else k!==x.line&&bv();bo("}",i),p=f}else a?((!b||A.curly)&&bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,p+=A.indent,d=[bR(x.line===O.line)],p-=A.indent,z=!1):bi("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null;if(!a||!A.funcscope)G=h;return o=e,a&&A.noempty&&(!d||d.length===0)&&bg("Empty block."),d}function bV(a){v&&typeof v[a]!="boolean"&&bg("Unexpected /*member '{a}'.",O,a),typeof u[a]=="number"?u[a]+=1:u[a]=1}function bW(a){var b=a.value,c=a.line,d=n[b];typeof d=="function"&&(d=!1),d?d[d.length-1]!==c&&d.push(c):(d=[c],n[b]=d)}function bX(){var a=bO(!0);return a||(x.id==="(string)"?(a=x.value,bo()):x.id==="(number)"&&(a=x.value.toString(),bo())),a}function bY(){var a,b=x,c=[];bo("("),bs();if(x.id===")"){bo(")");return}for(;;){a=bP(!0),c.push(a),bl(a,"parameter");if(x.id!==",")return bo(")",b),bs(D,O),c;bx()}}function bZ(b,c){var d,e=A,f=G;return A=Object.create(A),G=Object.create(G),j={"(name)":b||'"'+a+'"',"(line)":x.line,"(context)":j,"(breakage)":0,"(loopage)":0,"(scope)":G,"(statement)":c},d=j,O.funct=j,l.push(j),b&&bl(b,"function"),j["(params)"]=bY(),bU(!1,!1,!0),G=f,A=e,j["(last)"]=O.line,j=j["(context)"],d}function b_(){function a(){var a={},b=x;bo("{");if(x.id!=="}")for(;;){if(x.id==="(end)")bi("Missing '}' to match '{' from line {a}.",x,b.line);else{if(x.id==="}"){bg("Unexpected comma.",O);break}x.id===","?bi("Unexpected comma.",x):x.id!=="(string)"&&bg("Expected a string and instead saw {a}.",x,x.value)}a[x.value]===!0?bg("Duplicate key '{a}'.",x,x.value):x.value==="__proto__"&&!A.proto||x.value==="__iterator__"&&!A.iterator?bg("The '{a}' key may produce unexpected results.",x,x.value):a[x.value]=!0,bo(),bo(":"),b_();if(x.id!==",")break;bo(",")}bo("}")}function b(){var a=x;bo("[");if(x.id!=="]")for(;;){if(x.id==="(end)")bi("Missing ']' to match '[' from line {a}.",x,a.line);else{if(x.id==="]"){bg("Unexpected comma.",O);break}x.id===","&&bi("Unexpected comma.",x)}b_();if(x.id!==",")break;bo(",")}bo("]")}switch(x.id){case"{":a();break;case"[":b();break;case"true":case"false":case"null":case"(number)":case"(string)":bo();break;case"-":bo("-"),O.character!==x.from&&bg("Unexpected space after '-'.",O),bq(O,x),bo("(number)");break;default:bi("Expected a JSON value.",x)}}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,esnext:!0,evil:!0,expr:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,lastsemic:!0,latedef:!0,laxbreak:!0,laxcomma:!0,loopfunc:!0,mootools:!0,multistr:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nonstandard:!0,nomen:!0,onevar:!0,onecase:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,smarttabs:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,validthis:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},J={escape:!1,unescape:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R,S={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},T,U,V,W,X,Y,Z,$,_;(function(){T=/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i,U=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,V=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,X=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Y=/\*\/|\/\*/,Z=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,$=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,_=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){return ba.prototype=a,new ba}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)bb(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Z.test(this)?this:W.test(this)?'"'+this.replace(X,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bk=function(){function f(){var a,c;return d>=s.length?!1:(b=1,e=s[d],d+=1,A.smarttabs?a=e.search(/ \t/):a=e.search(/ \t|\t /),a>=0&&bh("Mixed spaces and tabs.",d,a+1),e=e.replace(/\t/g,N),a=e.search(U),a>=0&&bh("Unsafe character.",d,a),A.maxlen&&A.maxlen<e.length&&bh("Line too long.",d,e.length),c=/\s+$/.test(e),A.trailing&&c&&!/^\s+$/.test(e)&&bh("Trailing whitespace.",d,c),!0)}function g(a,e){var f,g;return a==="(color)"||a==="(range)"?g={type:a}:a==="(punctuator)"||a==="(identifier)"&&bb(M,e)?g=M[e]||M["(error)"]:g=M[a],g=Object.create(g),(a==="(string)"||a==="(range)")&&!A.scripturl&&$.test(e)&&bh("Script URL.",d,c),a==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bh("The '{a}' property is deprecated.",d,c,e):e==="__iterator__"&&!A.iterator?bh("'{a}' is only available in JavaScript 1.7.",d,c,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&(!A.node||O.id==="."||e!=="__dirname"&&e!=="__filename")&&bh("Unexpected {a} in '{b}'.",d,c,"dangling '_'",e)),g.value=e,g.line=d,g.character=b,g.from=c,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"||f==="case")),g}var b,c,d,e;return{init:function(a){typeof a=="string"?s=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n"):s=a,s[0]&&s[0].substr(0,2)==="#!"&&(s[0]=""),d=0,f(),c=1},range:function(a,f){var h,i="";c=b,e.charAt(0)!==a&&bj("Expected '{a}' and instead saw '{b}'.",d,b,a,e.charAt(0));for(;;){e=e.slice(1),b+=1,h=e.charAt(0);switch(h){case"":bj("Missing '{a}'.",d,b,h);break;case f:return e=e.slice(1),b+=1,g("(range)",i);case"\\":bh("Unexpected '{a}'.",d,b,h)}i+=h}},token:function(){function u(a){var d=a.exec(e),f;if(d)return n=d[0].length,f=d[1],h=f.charAt(0),e=e.substr(n),c=b+n-f.length,b+=n,f}function v(a){function l(a){var c=parseInt(e.substr(i+1,a),16);i+=a,c>=32&&c<=126&&c!==34&&c!==92&&c!==39&&bh("Unnecessary escapement.",d,b),b+=a,h=String.fromCharCode(c)}var h,i,j="",k=!1;q&&a!=='"'&&bh("Strings must use doublequote.",d,b),i=0;a:for(;;){while(i>=e.length){i=0;var m=d,n=c;if(!f()){bj("Unclosed string.",m,n);break a}k?k=!1:bh("Unclosed string.",m,n)}h=e.charAt(i);if(h===a)return b+=1,e=e.substr(i+1),g("(string)",j,a);if(h<" "){if(h==="\n"||h==="\r")break;bh("Control character in string: {a}.",d,b+i,e.slice(0,i))}else if(h==="\\"){i+=1,b+=1,h=e.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bh("Avoid \\'.",d,b);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":l(4);break;case"v":q&&bh("Avoid \\v.",d,b),h=" ";break;case"x":q&&bh("Avoid \\x-.",d,b),l(2);break;case"":k=!0;if(A.multistr){q&&bh("Avoid EOL escapement.",d,b),h="",b-=1;break}bh("Bad escapement of EOL. Use option multistr if needed.",d,b);break;default:bh("Bad escapement.",d,b)}}j+=h,b+=1,i+=1}}var a,h,i,j,k,l,m,n,o,p,r,s,t;for(;;){if(!e)return g(f()?"(endline)":"(end)","");r=u(V);if(!r){r="",h="";while(e&&e<"!")e=e.substr(1);e&&(bj("Unexpected '{a}'.",d,b,e.substr(0,1)),e="")}else{if(h.isAlpha()||h==="_"||h==="$")return g("(identifier)",r);if(h.isDigit())return isFinite(Number(r))||bh("Bad number '{a}'.",d,b,r),e.substr(0,1).isAlpha()&&bh("Missing space after '{a}'.",d,b,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bh("Don't use extra leading zeros '{a}'.",d,b,r):q&&(j==="x"||j==="X")&&bh("Avoid 0x-. '{a}'.",d,b,r)),r.substr(r.length-1)==="."&&bh("A trailing decimal point can be confused with a dot '{a}'.",d,b,r),g("(number)",r);switch(r){case'"':case"'":return v(r);case"//":e="",O.comment=!0;break;case"/*":for(;;){m=e.search(Y);if(m>=0)break;f()||bj("Unclosed comment.",d,b)}b+=m+2,e.substr(m,1)==="/"&&bj("Nested comment.",d,b),e=e.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:d,character:b,from:c};case"":break;case"/":O.id==="/="&&bj("A regular expression literal can be confused with '/='.",d,c);if(C){k=0,i=0,n=0;for(;;){a=!0,h=e.charAt(n),n+=1;switch(h){case"":return bj("Unclosed regular expression.",d,c),be("Stopping.",d,c);case"/":k>0&&bh("{a} unterminated regular expression group(s).",d,c+n,k),h=e.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[e.charAt(n)]===!0)p[e.charAt(n)]=!1,n+=1;return b+=n,e=e.substr(n),p=e.charAt(0),(p==="/"||p==="*")&&bj("Confusing regular expression.",d,c),g("(regexp)",h);case"\\":h=e.charAt(n),h<" "?bh("Unexpected control character in regular expression.",d,c+n):h==="<"&&bh("Unexpected escaped character '{a}' in regular expression.",d,c+n,h),n+=1;break;case"(":k+=1,a=!1;if(e.charAt(n)==="?"){n+=1;switch(e.charAt(n)){case":":case"=":case"!":n+=1;break;default:bh("Expected '{a}' and instead saw '{b}'.",d,c+n,":",e.charAt(n))}}else i+=1;break;case"|":a=!1;break;case")":k===0?bh("Unescaped '{a}'.",d,c+n,")"):k-=1;break;case" ":p=1;while(e.charAt(n)===" ")n+=1,p+=1;p>1&&bh("Spaces are hard to count. Use {{a}}.",d,c+n,p);break;case"[":h=e.charAt(n),h==="^"&&(n+=1,A.regexp?bh("Insecure '{a}'.",d,c+n,h):e.charAt(n)==="]"&&bj("Unescaped '{a}'.",d,c+n,"^")),h==="]"&&bh("Empty class.",d,c+n-1),s=!1,t=!1;a:do{h=e.charAt(n),n+=1;switch(h){case"[":case"^":bh("Unescaped '{a}'.",d,c+n,h),t?t=!1:s=!0;break;case"-":s&&!t?(s=!1,t=!0):t?t=!1:e.charAt(n)==="]"?t=!0:(A.regexdash!==(n===2||n===3&&e.charAt(1)==="^")&&bh("Unescaped '{a}'.",d,c+n-1,"-"),s=!0);break;case"]":t&&!A.regexdash&&bh("Unescaped '{a}'.",d,c+n-1,"-");break a;case"\\":h=e.charAt(n),h<" "?bh("Unexpected control character in regular expression.",d,c+n):h==="<"&&bh("Unexpected escaped character '{a}' in regular expression.",d,c+n,h),n+=1,/[wsd]/i.test(h)?(t&&(bh("Unescaped '{a}'.",d,c+n,"-"),t=!1),s=!1):t?t=!1:s=!0;break;case"/":bh("Unescaped '{a}'.",d,c+n-1,"/"),t?t=!1:s=!0;break;case"<":t?t=!1:s=!0;break;default:t?t=!1:s=!0}}while(h);break;case".":A.regexp&&bh("Insecure '{a}'.",d,c+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bh("Unescaped '{a}'.",d,c+n,h)}if(a)switch(e.charAt(n)){case"?":case"+":case"*":n+=1,e.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=e.charAt(n),(h<"0"||h>"9")&&bh("Expected a number and instead saw '{a}'.",d,c+n,h),n+=1,o=+h;for(;;){h=e.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=e.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=e.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}e.charAt(n)!=="}"?bh("Expected '{a}' and instead saw '{b}'.",d,c+n,"}",h):n+=1,e.charAt(n)==="?"&&(n+=1),o>l&&bh("'{a}' should not be greater than '{b}'.",d,c+n,o,l)}}return h=e.substr(0,n-1),b+=n,e=e.substr(n),g("(regexp)",h)}return g("(punctuator)",r);case"#":return g("(punctuator)",r);default:return g("(punctuator)",r)}}}}}}();bx.first=!0,bE("(number)",function(){return this}),bE("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bl(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":bg("'{a}' is a statement label.",O,b)}else if(j["(global)"])A.undef&&typeof B[b]!="boolean"&&(a!=="typeof"&&a!=="delete"||x&&(x.value==="."||x.value==="["))&&bf(j,"'{a}' is not defined.",O,b),bW(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":bg("'{a}' used out of scope.",O,b);break;case"label":bg("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)bg("'{a}' is not allowed.",O,b),bW(O);else if(typeof c!="object")A.undef&&(a!=="typeof"&&a!=="delete"||x&&(x.value==="."||x.value==="["))&&bf(j,"'{a}' is not defined.",O,b),j[b]=!0,bW(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":bg("'{a}' is a statement label.",O,b)}}return this},led:function(){bi("Expected an operator and instead saw '{a}'.",x,x.value)}},bE("(regexp)",function(){return this}),bz("(endline)"),bz("(begin)"),bz("(end)").reach=!0,bz("</").reach=!0,bz("<!"),bz("<!--"),bz("-->"),bz("(error)").reach=!0,bz("}").reach=!0,bz(")"),bz("]"),bz('"').reach=!0,bz("'").reach=!0,bz(";"),bz(":").reach=!0,bz(","),bz("#"),bz("@"),bF("else"),bF("case").reach=!0,bF("catch"),bF("default").reach=!0,bF("finally"),bG("arguments",function(a){L["use strict"]&&j["(global)"]&&bg("Strict violation.",a)}),bG("eval"),bG("false"),bG("Infinity"),bG("NaN"),bG("null"),bG("this",function(a){L["use strict"]&&!A.validthis&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&bg("Possible strict violation.",a)}),bG("true"),bG("undefined"),bK("=","assign",20),bK("+=","assignadd",20),bK("-=","assignsub",20),bK("*=","assignmult",20),bK("/=","assigndiv",20).nud=function(){bi("A regular expression literal can be confused with '/='.")},bK("%=","assignmod",20),bM("&=","assignbitand",20),bM("|=","assignbitor",20),bM("^=","assignbitxor",20),bM("<<=","assignshiftleft",20),bM(">>=","assignshiftright",20),bM(">>>=","assignshiftrightunsigned",20),bH("?",function(a,b){return b.left=a,b.right=bp(10),bo(":"),b["else"]=bp(10),b},30),bH("||","or",40),bH("&&","and",50),bL("|","bitor",70),bL("^","bitxor",80),bL("&","bitand",90),bI("==",function(a,b){var c=A.eqnull&&(a.value==="null"||b.value==="null");return!c&&A.eqeqeq?bg("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bJ(a)?bg("Use '{a}' to compare with '{b}'.",this,"===",a.value):bJ(b)&&bg("Use '{a}' to compare with '{b}'.",this,"===",b.value),this}),bI("==="),bI("!=",function(a,b){var c=A.eqnull&&(a.value==="null"||b.value==="null");return!c&&A.eqeqeq?bg("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bJ(a)?bg("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bJ(b)&&bg("Use '{a}' to compare with '{b}'.",this,"!==",b.value),this}),bI("!=="),bI("<"),bI(">"),bI("<="),bI(">="),bL("<<","shiftleft",120),bL(">>","shiftright",120),bL(">>>","shiftrightunsigned",120),bH("in","in",120),bH("instanceof","instanceof",120),bH("+",function(a,b){var c=bp(130);return a&&c&&a.id==="(string)"&&c.id==="(string)"?(a.value+=c.value,a.character=c.character,!A.scripturl&&$.test(a.value)&&bg("JavaScript URL.",a),a):(b.left=a,b.right=c,b)},130),bD("+","num"),bD("+++",function(){return bg("Confusing pluses."),this.right=bp(150),this.arity="unary",this}),bH("+++",function(a){return bg("Confusing pluses."),this.left=a,this.right=bp(130),this},130),bH("-","sub",130),bD("-","neg"),bD("---",function(){return bg("Confusing minuses."),this.right=bp(150),this.arity="unary",this}),bH("---",function(a){return bg("Confusing minuses."),this.left=a,this.right=bp(130),this},130),bH("*","mult",140),bH("/","div",140),bH("%","mod",140),bN("++","postinc"),bD("++","preinc"),M["++"].exps=!0,bN("--","postdec"),bD("--","predec"),M["--"].exps=!0,bD("delete",function(){var a=bp(0);return(!a||a.id!=="."&&a.id!=="[")&&bg("Variables should not be deleted."),this.first=a,this}).exps=!0,bD("~",function(){return A.bitwise&&bg("Unexpected '{a}'.",this,"~"),bp(150),this}),bD("!",function(){return this.right=bp(150),this.arity="unary",b[this.right.id]===!0&&bg("Confusing use of '{a}'.",this,"!"),this}),bD("typeof","typeof"),bD("new",function(){var a=bp(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":bg("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":bg("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||bg("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&bg("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&bg("Bad constructor.",O);else A.supernew||bg("Weird construction. Delete 'new'.",this);return bq(O,x),x.id!=="("&&!A.supernew&&bg("Missing '()' invoking a constructor."),this.first=a,this}),M["new"].exps=!0,bD("void").exps=!0,bH(".",function(a,b){bq(D,O),br();var c=bP();return typeof c=="string"&&bV(c),b.left=a,b.right=c,!a||a.value!=="arguments"||c!=="callee"&&c!=="caller"?!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&bg("document.write can be a form of eval.",a):A.noarg?bg("Avoid arguments.{a}.",a,c):L["use strict"]&&bi("Strict violation."),!A.evil&&(c==="eval"||c==="execScript")&&bg("eval is evil."),b},160,!0),bH("(",function(a,b){D.id!=="}"&&D.id!==")"&&br(D,O),bs(),A.immed&&!a.immed&&a.id==="function"&&bg("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?bg("Math is not a function.",a):A.newcap&&bg("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bp(10),c+=1;if(x.id!==",")break;bx()}return bo(")"),bs(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&bg("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?bg("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&bg("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&bg("Bad invocation.",a)),b.left=a,b},155,!0).exps=!0,bD("(",function(){bs(),x.id==="function"&&(x.immed=!0);var a=bp(0);return bo(")",this),bs(D,O),A.immed&&a.id==="function"&&(x.id==="("||x.id==="."&&(bn().value==="call"||bn().value==="apply")?bg("Move the invocation into the parens that contain the function.",x):bg("Do not wrap function literals in parens unless they are to be immediately invoked.",this)),a}),bH("[",function(a,b){br(D,O),bs();var c=bp(0),d;return c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&bg("eval is evil.",b),bV(c.value),!A.sub&&Z.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&bg("['{a}'] is better written in dot notation.",c,c.value))),bo("]",b),bs(D,O),b.left=a,b.right=c,b},160,!0),bD("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")bg("Extra comma."),bo(",");if(x.id==="]")break;a&&O.line!==x.line&&bv(),this.first.push(bp(10));if(x.id!==",")break;bx();if(x.id==="]"&&!A.es5){bg("Extra comma.",O);break}}return a&&(p-=A.indent,bv()),bo("]",this),this},160),function(a){a.nud=function(){function h(a,b){g[a]&&bb(g,a)?bg("Duplicate member '{a}'.",x,c):g[a]={},g[a].basic=!0,g[a].basicToken=b}function i(a,b){g[a]&&bb(g,a)?(g[a].basic||g[a].setter)&&bg("Duplicate member '{a}'.",x,c):g[a]={},g[a].setter=!0,g[a].setterToken=b}function j(a){g[a]&&bb(g,a)?(g[a].basic||g[a].getter)&&bg("Duplicate member '{a}'.",x,c):g[a]={},g[a].getter=!0,g[a].getterToken=O}var a,b,c,d,e,f,g={};a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bv();if(x.value==="get"&&bn().id!==":")bo("get"),A.es5||bi("get/set are ES5 features."),c=bX(),c||bi("Missing property name."),j(c),f=x,bq(O,x),b=bZ(),e=b["(params)"],e&&bg("Unexpected parameter '{a}' in get {b} function.",f,e[0],c),bq(O,x);else if(x.value==="set"&&bn().id!==":")bo("set"),A.es5||bi("get/set are ES5 features."),c=bX(),c||bi("Missing property name."),i(c,x),f=x,bq(O,x),b=bZ(),e=b["(params)"],(!e||e.length!==1)&&bg("Expected a single parameter in set {a} function.",f,c);else{c=bX(),h(c,x);if(typeof c!="string")break;bo(":"),bt(O,x),bp(10)}bV(c);if(x.id!==",")break;bx(),x.id===","?bg("Extra comma.",O):x.id==="}"&&!A.es5&&bg("Extra comma.",O)}a&&(p-=A.indent,bv()),bo("}",this);if(A.es5)for(var k in g)bb(g,k)&&g[k].setter&&!g[k].getter&&bg("Setter is defined without getter.",g[k].setterToken);return this},a.fud=function(){bi("Expected to see a statement and instead saw a block.",O)}}(bz("{")),Q=function(){var a=bA("const",function(a){var b,c,d;this.first=[];for(;;){bt(O,x),b=bP(),j[b]==="const"&&bg("const '"+b+"' has already been declared"),j["(global)"]&&B[b]===!1&&bg("Redefinition of '{a}'.",O,b),bl(b,"const");if(a)break;c=O,this.first.push(O),x.id!=="="&&bg("const '{a}' is initialized to 'undefined'.",O,b),x.id==="="&&(bt(O,x),bo("="),bt(O,x),x.id==="undefined"&&bg("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bn(0).id==="="&&x.identifier&&bi("Constant {a} was not declared correctly.",x,x.value),d=bp(0),c.first=d);if(x.id!==",")break;bx()}return this});a.exps=!0};var b$=bA("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?bg("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){bt(O,x),b=bP(),A.esnext&&j[b]==="const"&&bg("const '"+b+"' has already been declared"),j["(global)"]&&B[b]===!1&&bg("Redefinition of '{a}'.",O,b),bl(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(bt(O,x),bo("="),bt(O,x),x.id==="undefined"&&bg("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bn(0).id==="="&&x.identifier&&bi("Variable {a} was not declared correctly.",x,x.value),d=bp(0),c.first=d);if(x.id!==",")break;bx()}return this});b$.exps=!0,bB("function",function(){o&&bg("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bP();return A.esnext&&j[a]==="const"&&bg("const '"+a+"' has already been declared"),bq(O,x),bl(a,"unction"),bZ(a,!0),x.id==="("&&x.line===O.line&&bi("Function declarations are not invocable. Wrap the whole function invocation in parens."),this}),bD("function",function(){var a=bO();return a?bq(O,x):bt(O,x),bZ(a),!A.loopfunc&&j["(loopage)"]&&bg("Don't make functions within a loop."),this}),bB("if",function(){var a=x;return bo("("),bt(this,a),bs(),bp(20),x.id==="="&&(A.boss||bg("Expected a conditional expression and instead saw an assignment."),bo("="),bp(20)),bo(")",a),bs(D,O),bU(!0,!0),x.id==="else"&&(bt(O,x),bo("else"),x.id==="if"||x.id==="switch"?bR(!0):bU(!0,!0)),this}),bB("try",function(){var a,b,c;bU(!1),x.id==="catch"&&(bo("catch"),bt(O,x),bo("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?bg("Expected an identifier and instead saw '{a}'.",x,b):bl(b,"exception"),bo(),bo(")"),bU(!1),a=!0,G=c);if(x.id==="finally"){bo("finally"),bU(!1);return}return a||bi("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value),this}),bB("while",function(){var a=x;return j["(breakage)"]+=1,j["(loopage)"]+=1,bo("("),bt(this,a),bs(),bp(20),x.id==="="&&(A.boss||bg("Expected a conditional expression and instead saw an assignment."),bo("="),bp(20)),bo(")",a),bs(D,O),bU(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1,this}).labelled=!0,bF("with"),bB("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bo("("),bt(this,a),bs(),this.condition=bp(20),bo(")",a),bs(D,O),bt(O,x),a=x,bo("{"),bt(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:_.test(s[x.line-2])||bg("Expected a 'break' statement before 'case'.",O)}bv(-A.indent),bo("case"),this.cases.push(bp(20)),b=!0,bo(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:_.test(s[x.line-2])||bg("Expected a 'break' statement before 'default'.",O)}bv(-A.indent),bo("default"),b=!0,bo(":");break;case"}":p-=A.indent,bv(),bo("}",a);if(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")A.onecase||bg("This 'switch' should be an 'if'.",this);j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bi("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bi("Each value should have its own case label.");return;case":":b=!1,bS();break;default:bi("Missing ':' on a case clause.",O);return}else{if(O.id!==":"){bi("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);return}bo(":"),bi("Unexpected '{a}'.",O,":"),bS()}}}).labelled=!0,bA("debugger",function(){return A.debug||bg("All 'debugger' statements should be removed."),this}).exps=!0,function(){var a=bA("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bU(!0),bo("while");var a=x;return bt(O,a),bo("("),bs(),bp(20),x.id==="="&&(A.boss||bg("Expected a conditional expression and instead saw an assignment."),bo("="),bp(20)),bo(")",a),bs(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1,this});a.labelled=!0,a.exps=!0}(),bB("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bo("("),bt(this,b),bs();if(bn(x.id==="var"?1:0).id==="in"){if(x.id==="var")bo("var"),b$.fud.call(b$,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:bg("Bad for in variable '{a}'.",x,x.value)}bo()}return bo("in"),bp(20),bo(")",b),a=bU(!0,!0),A.forin&&a&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&bg("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1,this}if(x.id!==";")if(x.id==="var")bo("var"),b$.fud.call(b$);else for(;;){bp(0,"for");if(x.id!==",")break;bx()}bw(O),bo(";"),x.id!==";"&&(bp(20),x.id==="="&&(A.boss||bg("Expected a conditional expression and instead saw an assignment."),bo("="),bp(20))),bw(O),bo(";"),x.id===";"&&bi("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bp(0,"for");if(x.id!==",")break;bx()}return bo(")",b),bs(D,O),bU(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1,this}).labelled=!0,bA("break",function(){var a=x.value;return j["(breakage)"]===0&&bg("Unexpected '{a}'.",x,this.value),A.asi||bw(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?bg("'{a}' is not a statement label.",x,a):G[a]!==j&&bg("'{a}' is out of scope.",x,a),this.first=x,bo()),bQ("break"),this}).exps=!0,bA("continue",function(){var a=x.value;return j["(breakage)"]===0&&bg("Unexpected '{a}'.",x,this.value),A.asi||bw(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?bg("'{a}' is not a statement label.",x,a):G[a]!==j&&bg("'{a}' is out of scope.",x,a),this.first=x,bo()):j["(loopage)"]||bg("Unexpected '{a}'.",x,this.value),bQ("continue"),this}).exps=!0,bA("return",function(){return this.line===x.line?(x.id==="(regexp)"&&bg("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(bt(O,x),bn().value==="="&&!A.boss&&bh("Did you mean to return a conditional instead of an assignment?",O.line,O.character+1),this.first=bp(0))):A.asi||bw(this),bQ("return"),this}).exps=!0,bA("throw",function(){return bw(this),bt(O,x),this.first=bp(20),bQ("throw"),this}).exps=!0,bF("class"),bF("const"),bF("enum"),bF("export"),bF("extends"),bF("import"),bF("super"),bF("let"),bF("yield"),bF("implements"),bF("interface"),bF("package"),bF("private"),bF("protected"),bF("public"),bF("static");var ca=function(a,b,c){var e,f,g;d.errors=[],d.undefs=[],B=Object.create(I),bc(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f<e.length;f+=1)B[e[f]]=!0;else if(typeof e=="object"){g=Object.keys(e);for(f=0;f<g.length;f+=1)B[g[f]]=!!e[g[f]]}A=b}else A={};A.indent=A.indent||4,A.maxerr=A.maxerr||50,N="";for(f=0;f<A.indent;f+=1)N+=" ";p=1,m=Object.create(B),G=m,j={"(global)":!0,"(name)":"(global)","(scope)":G,"(breakage)":0,"(loopage)":0},l=[j],P=[],H=null,u={},v=null,n={},o=!1,t=[],q=!1,R=0,bk.init(a),C=!0,L={},D=O=x=M["(begin)"],bd(),bc(B,c||{});try{bo();switch(x.id){case"{":case"[":A.laxbreak=!0,q=!0,b_();break;default:bT(),L["use strict"]&&!A.globalstrict&&bg('Use the function form of "use strict".',D),bS()}bo("(end)");var h=function(a,b){do{if(typeof b[a]=="string")return b[a]==="unused"?b[a]="var":b[a]==="unction"&&(b[a]="closure"),!0;b=b["(context)"]}while(b);return!1},i=function(a,b){if(!n[a])return;var c=[];for(var d=0;d<n[a].length;d+=1)n[a][d]!==b&&c.push(n[a][d]);c.length===0?delete n[a]:n[a]=c};for(f=0;f<d.undefs.length;f+=1)g=d.undefs[f].slice(0),h(g[2].value,g[0])?i(g[2].value,g[2].line):bg.apply(bg,g.slice(1))}catch(k){if(k){var r=x||{};d.errors.push({raw:k.raw,reason:k.message,line:k.line||r.line,character:k.character||r.from},null)}}return d.errors.length===0};return ca.data=function(){var a={functions:[],options:A},b,c,d=[],e,f,g,h=[],i,j=[],m;ca.errors.length&&(a.errors=ca.errors),q&&(a.json=!0);for(i in n)bb(n,i)&&d.push({name:i,line:n[i]});d.length>0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f<l.length;f+=1){e=l[f],b={};for(g=0;g<k.length;g+=1)b[k[g]]=[];for(i in e)bb(e,i)&&i.charAt(0)!=="("&&(m=e[i],m==="unction"&&(m="unused"),Array.isArray(b[m])&&(b[m].push(i),m==="unused"&&j.push({name:i,line:e["(line)"],"function":e["(name)"]})));for(g=0;g<k.length;g+=1)b[k[g]].length===0&&delete b[k[g]];b.name=e["(name)"],b.param=e["(params)"],b.line=e["(line)"],b.last=e["(last)"],a.functions.push(b)}j.length>0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},ca.report=function(a){function o(a,b){var c,d,e;if(b){m.push("<div><i>"+a+"</i> "),b=b.sort();for(d=0;d<b.length;d+=1)b[d]!==e&&(e=b[d],m.push((c?", ":"")+e),c=!0);m.push("</div>")}}var b=ca.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("<div id=errors><i>Error:</i>");if(b.errors)for(h=0;h<b.errors.length;h+=1)d=b.errors[h],d&&(e=d.evidence||"",m.push("<p>Problem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"</p><p class=evidence>"+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"</p>"));if(b.implieds){n=[];for(h=0;h<b.implieds.length;h+=1)n[h]="<code>"+b.implieds[h].name+"</code>&nbsp;<i>"+b.implieds[h].line+"</i>";m.push("<p><i>Implied global:</i> "+n.join(", ")+"</p>")}if(b.unused){n=[];for(h=0;h<b.unused.length;h+=1)n[h]="<code><u>"+b.unused[h].name+"</u></code>&nbsp;<i>"+b.unused[h].line+"</i> <code>"+b.unused[h]["function"]+"</code>";m.push("<p><i>Unused variable:</i> "+n.join(", ")+"</p>")}b.json&&m.push("<p>JSON: bad.</p>"),m.push("</div>")}if(!a){m.push("<br><div id=functions>"),b.urls&&o("URLs<br>",b.urls,"<br>"),b.json&&!f?m.push("<p>JSON: good.</p>"):b.globals?m.push("<div><i>Global</i> "+b.globals.sort().join(", ")+"</div>"):m.push("<div><i>No new global variables introduced.</i></div>");for(h=0;h<b.functions.length;h+=1)g=b.functions[h],m.push("<br><div class=function><i>"+g.line+"-"+g.last+"</i> "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")</div>"),o("<big><b>Unused</b></big>",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="<br><pre id=members>/*members ",j=10;for(h=0;h<c.length;h+=1)i=c[h],l=i.name(),j+l.length>72&&(m.push(k+"<br>"),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l="<i>"+l+"</i>"),h<c.length-1&&(l+=", "),k+=l;m.push(k+"<br>*/</pre>")}m.push("</div>")}}return m.join("")},ca.jshint=ca,ca}();typeof b=="object"&&b&&(b.JSHINT=d)});
Please sign in to comment.
Something went wrong with that request. Please try again.