(function(j,q,h){var A=!+"\v1",n=A?"\r":"\n",E=function(){return null;},p=0,t="plaintext",a="sunlight-",D,u,s,b={tabWidth:4,classPrefix:a,showWhitespace:false},m={},r={},c={beforeHighlightNode:[],beforeHighlight:[],beforeTokenize:[],afterTokenize:[],beforeAnalyze:[],afterAnalyze:[],afterHighlight:[],afterHighlightNode:[]};D=function(){function F(G){return function(I){var H=q.createElement("span");H.className=I.options.classPrefix+G;H.appendChild(I.createTextNode(I.tokens[I.index]));return I.addNode(H)||true;};}return{handleToken:function(G){return F(G.tokens[G.index].name)(G);},handle_default:function(G){return G.addNode(G.createTextNode(G.tokens[G.index]));},handle_ident:function(G){var H=function(J,K){var I;J=J||[];for(I=0;I<J.length;I++){if(typeof(J[I])==="function"){if(J[I](G)){return F("named-ident")(G);}}else{if(K&&K(J[I])(G.tokens)){return F("named-ident")(G);}}}return false;};return H(G.language.namedIdentRules.custom)||H(G.language.namedIdentRules.follows,function(I){return k(G.index-1,-1,I,G.language.caseInsensitive);})||H(G.language.namedIdentRules.precedes,function(I){return k(G.index+1,1,I,G.language.caseInsensitive);})||H(G.language.namedIdentRules.between,function(I){return f(G.index,I.opener,I.closer,G.language.caseInsensitive);})||F("ident")(G);}};}();u=function(K){var I=0,N=1,G=1,F,H=h,M,L;K=K.replace(/\r\n/g,"\n").replace(/\r/g,"\n");F=K.length;M=F>0?K.charAt(0):H;function J(O){var P;if(O===0){return"";}O=O||1;P=K.substring(I+1,I+O+1);return P===""?H:P;}return{toString:function(){return"length: "+F+", index: "+I+", line: "+N+", column: "+G+", current: ["+M+"]";},peek:function(O){return J(O);},substring:function(){return K.substring(I);},peekSubstring:function(){return K.substring(I+1);},read:function(P){var R=J(P),Q,O;if(R===""){return R;}if(R!==H){I+=R.length;G+=R.length;if(L){N++;G=1;L=false;}Q=R.substring(0,R.length-1).replace(/[^\n]/g,"").length;if(Q>0){N+=Q;G=1;}O=l(R);if(O==="\n"){L=true;}M=O;}else{I=F;M=H;}return R;},text:function(){return K;},getLine:function(){return N;},getColumn:function(){return G;},isEof:function(){return I>=F;},isSol:function(){return G===1;},isSolWs:function(){var O=I,P;if(G===1){return true;}while((P=K.charAt(--O))!==""){if(P==="\n"){return true;}if(!/\s/.test(P)){return false;}}return true;},isEol:function(){return L;},EOF:H,current:function(){return M;}};};r={analyzer:o(D),customTokens:[],namedIdentRules:{},punctuation:/[^\w\s]/,numberParser:w,caseInsensitive:false,doNotParse:/\s/,contextItems:{},embeddedLanguages:{}};s=function(){var F=null;if(q.defaultView&&q.defaultView.getComputedStyle){F=q.defaultView.getComputedStyle;}else{F=function(H,G){return H.currentStyle||{};};}return function(G,H){return F(G,null)[H];};}();function o(H){function G(){}G.prototype=H;return new G();}function y(H,G){var F;for(F=0;F<G.length;F++){H.appendChild(G[F]);}}function l(F){return F.charAt?F.charAt(F.length-1):F[F.length-1];}function i(G,I,F){var H;if(G.indexOf&&!F){return G.indexOf(I)>=0;}for(H=0;H<G.length;H++){if(G[H]===I){return true;}if(F&&typeof(G[H])==="string"&&typeof(I)==="string"&&G[H].toUpperCase()===I.toUpperCase()){return true;}}return false;}function g(F,G){var H;if(!G){return F;}for(H in G){F[H]=G[H];}return F;}function x(F){return g({},F);}function C(F){return F.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");}function k(I,H,G,F){G=G.slice(0);return function(M){var L=I,J,K,N;if(H===1){G.reverse();}for(J=0;J<G.length;J++){N=M[L+(J*H)];K=G[G.length-1-J];if(N===h){if(K.optional!==h&&K.optional){L-=H;}else{return false;}}else{if(N.name===K.token&&(K.values===h||i(K.values,N.value,F))){continue;}else{if(K.optional!==h&&K.optional){L-=H;}else{return false;}}}}return true;};}function f(H,G,I,F){return function(L){var J=H,K,M=false;while((K=L[--J])!==h){if(K.name===I.token&&i(I.values,K.value)){if(K.name===G.token&&i(G.values,K.value,F)){M=true;break;}return false;}if(K.name===G.token&&i(G.values,K.value,F)){M=true;break;}}if(!M){return false;}J=H;while((K=L[++J])!==h){if(K.name===G.token&&i(G.values,K.value,F)){if(K.name===I.token&&i(I.values,K.value,F)){M=true;break;}return false;}if(K.name===I.token&&i(I.values,K.value,F)){M=true;break;}}return M;};}function e(H,M,I,F){var L=H.reader.current(),K,G,N,O=H.reader.getLine(),J=H.reader.getColumn();M=M||[];if(H.language.caseInsensitive){L=L.toUpperCase();}if(!M[L]){return null;}M=M[L];for(K=0;K<M.length;K++){G=M[K].value;N=L+H.reader.peek(G.length);if(G===N||M[K].regex.test(N)){return H.createToken(I,H.reader.current()+H.reader[F?"peek":"read"](G.length-1),O,J);}}return null;}function z(K,F,J,I){var H=1,G;J=J||1;while(G=K[F+(J*H++)]){if(!I(G)){return G;}}return h;}function v(L,K,F){var G={},H,J,I;for(H=0;H<L.length;H++){J=F?L[H].toUpperCase():L[H];I=J.charAt(0);if(!G[I]){G[I]=[];}G[I].push({value:J,regex:new RegExp("^"+C(J)+K,F?"i":"")});}return G;}function w(I){var L=I.reader.current(),K,G=I.reader.getLine(),J=I.reader.getColumn(),F=true,H;if(!/\d/.test(L)){if(L!=="."||!/\d/.test(I.reader.peek())){return null;}K=L+I.reader.read();F=false;}else{K=L;if(L==="0"&&I.reader.peek()!=="."){F=false;}}while((H=I.reader.peek())!==I.reader.EOF){if(!/[A-Za-z0-9]/.test(H)){if(H==="."&&F&&/\d$/.test(I.reader.peek(2))){K+=I.reader.read();F=false;continue;}break;}K+=I.reader.read();}return I.createToken("number",K,G,J);}function B(F,H,G){var J=c[F]||[],I;for(I=0;I<J.length;I++){J[I].call(H,G);}}function d(F){this.options=g(x(b),F);}d.prototype=function(){var J,N;function H(S,T){var Q=S[2]||[],P=S[1].length,U=typeof(S[1])==="string"?new RegExp(C(S[1])):S[1].regex,R=S[3]||false;return function(Z,V,X,W,ab,Y){var aa=false;X=X||"";Y=Y?1:0;function ac(af){var ad,ag=Z.reader.current(),ae;for(ae=0;ae<Q.length;ae++){ad=(af?ag:"")+Z.reader.peek(Q[ae].length-af);if(ad===Q[ae]){X+=Z.reader.read(ad.length-af);return true;}}ad=(af?ag:"")+Z.reader.peek(P-af);if(U.test(ad)){aa=true;return false;}X+=af?ag:Z.reader.read();return true;}if(!Y||ac(true)){while(Z.reader.peek()!==Z.reader.EOF&&ac(false)){}}if(Y){X+=Z.reader.current();Z.reader.read();}else{X+=R||Z.reader.peek()===Z.reader.EOF?"":Z.reader.read(P);}if(!aa){Z.continuation=V;}return Z.createToken(T,X,W,ab);};}function L(R){var Q,P;for(Q=0;Q<R.language.embeddedLanguages.length;Q++){if(!m[R.language.embeddedLanguages[Q].language]){continue;}P=x(R.language.embeddedLanguages[Q]);if(P.switchTo(R)){P.oldItems=x(R.items);R.embeddedLanguageStack.push(P);R.language=m[P.language];R.items=g(R.items,x(R.language.contextItems));break;}}}function O(P){var Q=l(P.embeddedLanguageStack),R;if(Q&&Q.switchBack(P)){P.language=m[Q.parentLanguage];R=P.embeddedLanguageStack.pop();P.items=x(R.oldItems);R.oldItems={};}}J=function(){function W(Z){return Z.language.identFirstLetter&&Z.language.identFirstLetter.test(Z.reader.current());}function S(Z){return e(Z,Z.language.keywords,"keyword");}function X(aa){var ab,Z;if(aa.language.customTokens===h){return null;}for(ab in aa.language.customTokens){Z=e(aa,aa.language.customTokens[ab],ab);if(Z!==null){return Z;}}return null;}function V(Z){return e(Z,Z.language.operators,"operator");}function R(Z){var aa=Z.reader.current();if(Z.language.punctuation.test(C(aa))){return Z.createToken("punctuation",aa,Z.reader.getLine(),Z.reader.getColumn());}return null;}function Q(ab){var ad,aa,Z=ab.reader.getLine(),ac=ab.reader.getColumn();if(!W(ab)){return null;}ad=ab.reader.current();while((aa=ab.reader.peek())!==ab.reader.EOF){if(!ab.language.identAfterFirstLetter.test(aa)){break;}ad+=ab.reader.read();}return ab.createToken("ident",ad,Z,ac);}function Y(Z){if(Z.defaultData.text===""){Z.defaultData.line=Z.reader.getLine();Z.defaultData.column=Z.reader.getColumn();}Z.defaultData.text+=Z.reader.current();return null;}function P(Z){var af=Z.reader.current(),ab,aa,ae,ag,ai,ac,ad,ah;for(ab in Z.language.scopes){aa=Z.language.scopes[ab];for(ae=0;ae<aa.length;ae++){ag=aa[ae][0];ah=af+Z.reader.peek(ag.length-1);if(ag!==ah&&(!Z.language.caseInsensitive||ah.toUpperCase()!==ag.toUpperCase())){continue;}ai=Z.reader.getLine(),ac=Z.reader.getColumn();Z.reader.read(ag.length-1);ad=H(aa[ae],ab);return ad(Z,ad,ah,ai,ac);}}return null;}function T(Z){return Z.language.numberParser(Z);}function U(ab){var ac=ab.language.customParseRules,aa,Z;if(ac===h){return null;}for(aa=0;aa<ac.length;aa++){Z=ac[aa](ab);if(Z){return Z;}}return null;}return function(Z){if(Z.language.doNotParse.test(Z.reader.current())){return Y(Z);}return U(Z)||X(Z)||S(Z)||P(Z)||Q(Z)||T(Z)||V(Z)||R(Z)||Y(Z);};}();N=function(T,W,U,Q){var V=[],S,P,R;B("beforeTokenize",this,{code:T,language:W});S={reader:u(T),language:W,items:x(W.contextItems),token:function(X){return V[X];},getAllTokens:function(){return V.slice(0);},count:function(){return V.length;},options:Q,embeddedLanguageStack:[],defaultData:{text:"",line:1,column:1},createToken:function(Y,aa,X,Z){return{name:Y,line:X,value:A?aa.replace(/\n/g,"\r"):aa,column:Z,language:this.language.name};}};if(U.continuation){P=U.continuation;U.continuation=null;V.push(P(S,P,"",S.reader.getLine(),S.reader.getColumn(),true));}while(!S.reader.isEof()){L(S);R=J(S);if(R!==null){if(S.defaultData.text!==""){V.push(S.createToken("default",S.defaultData.text,S.defaultData.line,S.defaultData.column));S.defaultData.text="";}if(R[0]!==h){V=V.concat(R);}else{V.push(R);}}O(S);S.reader.read();}if(S.defaultData.text!==""){V.push(S.createToken("default",S.defaultData.text,S.defaultData.line,S.defaultData.column));}B("afterTokenize",this,{code:T,parserContext:S});return S;};function F(T,R,Q){var P=[],S=function(){var U,V;if(Q.showWhitespace){U=String.fromCharCode(183);V=new Array(Q.tabWidth).join(String.fromCharCode(8212))+String.fromCharCode(8594);}else{U=String.fromCharCode(160);V=new Array(Q.tabWidth+1).join(U);}return function(Z){var aa=Z.value.split(" ").join(U),X,ab,Y,W;while((X=aa.indexOf("\t"))>=0){ab=aa.lastIndexOf(n,X);Y=ab===-1?X:X-ab-1;W=Q.tabWidth-(Y%Q.tabWidth);aa=aa.substring(0,X)+V.substring(Q.tabWidth-W)+aa.substring(X+1);}return aa;};}();return{tokens:(R.tokens||[]).concat(T.getAllTokens()),index:R.index?R.index+1:0,language:null,getAnalyzer:E,options:Q,continuation:T.continuation,addNode:function(U){P.push(U);},createTextNode:function(U){return q.createTextNode(S(U));},getNodes:function(){return P;},resetNodes:function(){P=[];},items:T.items};}function K(Q,P,R){var T=m[P],S;R=R||{};if(T===h){T=m[t];}B("beforeHighlight",this,{code:Q,language:T,previousContext:R});S=F(N.call(this,Q,T,R,this.options),R,this.options);I.call(this,S,R.index?R.index+1:0);B("afterHighlight",this,{analyzerContext:S});return S;}function M(Q){var P=q.createElement("span");P.className=Q.options.classPrefix+Q.language.name;return P;}function I(X,Y){var P,W,Q,U,R,S,T,V;B("beforeAnalyze",this,{analyzerContext:X});if(X.tokens.length>0){X.language=m[X.tokens[0].language]||m[t];P=[];W=0;Q=M(X);for(U=Y;U<X.tokens.length;U++){T=m[X.tokens[U].language]||m[t];if(T.name!==X.language.name){y(Q,X.getNodes());X.resetNodes();P.push(Q);X.language=T;Q=M(X);}X.index=U;R=X.tokens[U].name;S="handle_"+R;V=X.getAnalyzer.call(X)||X.language.analyzer;V[S]?V[S](X):V.handleToken(X);}y(Q,X.getNodes());P.push(Q);X.resetNodes();for(U=0;U<P.length;U++){X.addNode(P[U]);}}B("afterAnalyze",this,{analyzerContext:X});}return{matchSunlightNode:function(){var P;return function(Q){if(!P){P=new RegExp("(?:\\s|^)"+this.options.classPrefix+"highlight-(\\S+)(?:\\s|$)");}return P.exec(Q.className);};}(),isAlreadyHighlighted:function(){var P;return function(Q){if(!P){P=new RegExp("(?:\\s|^)"+this.options.classPrefix+"highlighted(?:\\s|$)");}return P.test(Q.className);};}(),highlight:function(Q,P){return K.call(this,Q,P);},highlightNode:function G(S){var V,R,Y,U,Q,T,X,P,W;if(this.isAlreadyHighlighted(S)||(V=this.matchSunlightNode(S))===null){return;}R=V[1];Y=0;B("beforeHighlightNode",this,{node:S});for(U=0;U<S.childNodes.length;U++){if(S.childNodes[U].nodeType===3){X=K.call(this,S.childNodes[U].nodeValue,R,X);p++;Y=Y||p;Q=X.getNodes();S.replaceChild(Q[0],S.childNodes[U]);for(T=1;T<Q.length;T++){S.insertBefore(Q[T],Q[T-1].nextSibling);}}else{if(S.childNodes[U].nodeType===1){G.call(this,S.childNodes[U]);}}}S.className+=" "+this.options.classPrefix+"highlighted";if(s(S,"display")==="block"){P=q.createElement("div");P.className=this.options.classPrefix+"container";W=q.createElement("div");W.className=this.options.classPrefix+"code-container";P.appendChild(W);S.parentNode.insertBefore(W,S);S.parentNode.removeChild(S);W.appendChild(S);W.parentNode.insertBefore(P,W);W.parentNode.removeChild(W);P.appendChild(W);}B("afterHighlightNode",this,{container:P,codeContainer:W,node:S,count:Y});}};}();j.Sunlight={version:"1.15",Highlighter:d,createAnalyzer:function(){return o(D);},globalOptions:b,highlightAll:function(H){var G=new d(H),F=q.getElementsByTagName("*"),I;for(I=0;I<F.length;I++){G.highlightNode(F[I]);}},registerLanguage:function(F,J){var I,H,G;if(!F){throw'Languages must be registered with an identifier, e.g. "php" for PHP';}J=g(g({},r),J);J.name=F;J.keywords=v(J.keywords||[],"\\b",J.caseInsensitive);J.operators=v(J.operators||[],"",J.caseInsensitive);for(I in J.customTokens){J.customTokens[I]=v(J.customTokens[I].values,J.customTokens[I].boundary,J.caseInsensitive);}H=[];for(G in J.embeddedLanguages){H.push({parentLanguage:J.name,language:G,switchTo:J.embeddedLanguages[G].switchTo,switchBack:J.embeddedLanguages[G].switchBack});}J.embeddedLanguages=H;m[J.name]=J;},isRegistered:function(F){return m[F]!==h;},bind:function(F,G){if(!c[F]){throw'Unknown event "'+F+'"';}c[F].push(G);},util:{last:l,regexEscape:C,eol:n,clone:x,escapeSequences:["\\n","\\t","\\r","\\\\","\\v","\\f"],contains:i,matchWord:e,createHashMap:v,createBetweenRule:f,createProceduralRule:k,getNextNonWsToken:function(G,F){return z(G,F,1,function(H){return H.name==="default";});},getPreviousNonWsToken:function(G,F){return z(G,F,-1,function(H){return H.name==="default";});},getNextWhile:function(H,F,G){return z(H,F,1,G);},getPreviousWhile:function(H,F,G){return z(H,F,-1,G);},whitespace:{token:"default",optional:true},getComputedStyle:s}};j.Sunlight.registerLanguage(t,{punctuation:/(?!x)x/,numberParser:E});}(this,document));(function(b,a,d){if(b===d){throw"Include sunlight.js before including plugin files";}function c(g){var e=function f(h){if(!h.lastChild){return null;}if(h.lastChild.nodeType===3){return h.lastChild;}return f(h.lastChild);}(g)||{lastChild:""};return g.innerHTML.replace(/[^\n]/g,"").length-/\n$/.test(e.nodeValue);}b.bind("afterHighlightNode",function(g){var n,o,j,m,e,h,k,l,f;if(!this.options.lineNumbers){return;}if(this.options.lineNumbers==="automatic"&&b.util.getComputedStyle(g.node,"display")!=="block"){return;}n=a.createElement("pre");o=c(g.node);e=this.options.lineHighlight.length>0;if(e){j=a.createElement("div");j.className=this.options.classPrefix+"line-highlight-overlay";}n.className=this.options.classPrefix+"line-number-margin";k=a.createTextNode(b.util.eol);for(h=this.options.lineNumberStart;h<=this.options.lineNumberStart+o;h++){l=a.createElement("a");f=(g.node.id?g.node.id:this.options.classPrefix+g.count)+"-line-"+h;l.setAttribute("name",f);l.setAttribute("href","#"+f);l.appendChild(a.createTextNode(h));n.appendChild(l);n.appendChild(k.cloneNode(false));if(e){m=a.createElement("div");if(b.util.contains(this.options.lineHighlight,h)){m.className=this.options.classPrefix+"line-highlight-active";}j.appendChild(m);}}g.codeContainer.insertBefore(n,g.codeContainer.firstChild);if(e){g.codeContainer.appendChild(j);}g.codeContainer.style.borderWidth="1px";g.codeContainer.style.borderStyle="solid";});b.globalOptions.lineNumbers="automatic";b.globalOptions.lineNumberStart=1;b.globalOptions.lineHighlight=[];}(this["Sunlight"],document));
