diff --git a/public/script/app.js b/public/script/app.js index 11b9ac6..a3067ad 100644 --- a/public/script/app.js +++ b/public/script/app.js @@ -1460,7 +1460,16 @@ angular let baseUrl = ""; try { const o = parseGithubUrl($scope.sourceUrl); - baseUrl = `https://github.com/${o.owner}/${o.repo}/raw/${$scope.source.branch}/`; + // Fall back to the repo's default branch when source.branch + // hasn't loaded yet — without this, relative + // resolved against a baseUrl like ".../raw//" (no branch + // segment), so the browser fetched ".../raw/X" and 404'd + // (#407). + const branch = + $scope.source.branch || + ($scope.details && $scope.details.defaultBranch) || + "main"; + baseUrl = `https://github.com/${o.owner}/${o.repo}/raw/${branch}/`; } catch (_) { /* fall through with empty base */ } const html = renderMD($scope.anonymize_readme, baseUrl); $scope.html_readme = $sce.trustAsHtml(html); diff --git a/public/script/bundle.min.js b/public/script/bundle.min.js index 5233f65..c1345e9 100644 --- a/public/script/bundle.min.js +++ b/public/script/bundle.min.js @@ -2622,4 +2622,4 @@ Expecting `+E.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on l :root { --mermaid-alt-font-family: ${t.altFontFamily}}`),i instanceof Map){let e=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];i.forEach(t=>{gq(t.styles)||e.forEach(e=>{n+=$Fe(t.id,e,t.styles)}),gq(t.textStyles)||(n+=$Fe(t.id,"tspan",(t?.textStyles||[]).map(e=>e.replace("color","fill"))))})}return n},"createCssStyles"),RFe=mt((e,t,i,n)=>{i=LFe(e,i);return uFe(aFe(n+`{${ch(t,i,e.themeVariables)}}`),dFe)},"createUserStyles"),MFe=mt((e="",t,i)=>{let n=e;return i||t||(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=(n=n_(n)).replace(/
/g,"
")},"cleanUpSvgCode"),IFe=mt((e="",t)=>{return``},"putIntoIFrame"),NFe=mt((e,t,i,n,r)=>{var s=e.append("div"),i=(s.attr("id",i),n&&s.attr("style",n),s.append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg"));return r&&i.attr("xmlns:xlink",r),i.append("g"),e},"appendDivSvgG");function DFe(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}mt(DFe,"sandboxedIframe");var OFe=mt((e,t,i,n)=>{e.getElementById(t)?.remove(),e.getElementById(i)?.remove(),e.getElementById(n)?.remove()},"removeExistingElements"),V=mt(async function(t,i,e){TBe();var n=AFe(i),r=(i=n.code,Ii());I.debug(r),i.length>(r?.maxTextSize??5e4)&&(i="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let s="#"+t,a="i"+t,o="#"+a,l="d"+t,c="#"+l,h=mt(()=>{var e=G(d?o:c).node();e&&"remove"in e&&e.remove()},"removeTempElements"),u=G("body"),d="sandbox"===r.securityLevel,p="loose"===r.securityLevel,g=r.fontFamily;void 0!==e?(e&&(e.innerHTML=""),d?(y=DFe(G(e),a),(u=G(y.nodes()[0].contentDocument.body)).node().style.margin=0):u=G(e),NFe(u,t,l,"font-family: "+g,"http://www.w3.org/1999/xlink")):(OFe(document,t,l,a),d?(y=DFe(G("body"),a),(u=G(y.nodes()[0].contentDocument.body)).node().style.margin=0):u=G("body"),NFe(u,t,l));let f,m;try{f=await fFe.fromText(i,{title:n.title})}catch(e){if(r.suppressErrorRendering)throw h(),e;f=await fFe.fromText("error"),m=e}var e=u.select(c).node(),y=f.type,n=e.firstChild,e=n.firstChild,b=f.renderer.getClasses?.(i,f),b=RFe(r,y,b,s),v=document.createElement("style");v.innerHTML=b,n.insertBefore(v,e);try{await f.renderer.draw(i,t,wye.version,f)}catch(e){throw r.suppressErrorRendering?h():lBe.draw(i,t,wye.version),e}FFe(y,u.select(c+" svg"),f.db.getAccTitle?.(),f.db.getAccDescription?.()),u.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let x=u.select(c).node().innerHTML;if(I.debug("config.arrowMarkerAbsolute",r.arrowMarkerAbsolute),x=MFe(x,d,qc(r.arrowMarkerAbsolute)),d?(b=u.select(c+" svg").node(),x=IFe(x,b)):p||(x=Dr.sanitize(x,{ADD_TAGS:CFe,ADD_ATTR:_Fe,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),yFe(),m)throw m;return h(),{diagramType:y,svg:x,bindFunctions:f.db.bindFunctions}},"render");function PFe(e={}){e=at({},e),e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),$i(e),e?.theme&&e.theme in gi?e.themeVariables=gi[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=gi.default.getThemeVariables(e.themeVariables)),e="object"==typeof e?Ei(e):Ri();T(e.logLevel),TBe()}mt(PFe,"initialize");var BFe=mt((e,t={})=>{e=TFe(e).code;return fFe.fromText(e,t)},"getDiagramFromText");function FFe(e,t,i,n){pFe(t,e),gFe(t,i,n,t.attr("id"))}mt(FFe,"addA11yInfo");var jFe=Object.freeze({render:V,parse:EFe,getDiagramFromText:BFe,initialize:PFe,getConfig:Ii,setConfig:Mi,getSiteConfig:Ri,updateSiteConfig:Li,reset:mt(()=>{Oi()},"reset"),globalReset:mt(()=>{Oi(ki)},"globalReset"),defaultConfig:ki}),zFe=(T(Ii().logLevel),Oi(Ii()),ZK(),s_(),mt((e,t,i)=>{I.warn(e),AC(e)?(i&&i(e.str,e.hash),t.push({...e,message:e.str,error:e})):(i&&i(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError")),HFe=mt(async function(t={querySelector:".mermaid"}){try{await UFe(t)}catch(e){if(AC(e)&&I.error(e.str),JFe.parseError&&JFe.parseError(e),!t.suppressErrors)throw I.error("Use the suppressErrors option to suppress these errors"),e}},"run"),UFe=mt(async function({postRenderCallback:e,querySelector:t,nodes:i}={querySelector:".mermaid"}){var n=jFe.getConfig();I.debug(`${e?"":"No "}Callback function found`);let r;if(i)r=i;else{if(!t)throw new Error("Nodes and querySelector are both undefined");r=document.querySelectorAll(t)}I.debug(`Found ${r.length} diagrams`),void 0!==n?.startOnLoad&&(I.debug("Start On Load: "+n?.startOnLoad),jFe.updateSiteConfig({startOnLoad:n?.startOnLoad}));var s,a=new t_.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),o=[];for(s of Array.from(r))if(I.info("Rendering diagram: "+s.id),!s.getAttribute("data-processed")){s.setAttribute("data-processed","true");var l="mermaid-"+a.next(),c=s.innerHTML,h=(c=Ge(t_.entityDecode(c)).trim().replace(//gi,"
"),t_.detectInit(c));h&&I.debug("Detected early reinit: ",h);try{var{svg:u,bindFunctions:d}=await ZFe(l,c,s);s.innerHTML=u,e&&await e(l),d&&d(s)}catch(e){zFe(e,o,JFe.parseError)}}if(0{TBe(),et(...e),!1===t&&await SBe()},"registerExternalDiagrams"),WFe=mt(function(){var e;JFe.startOnLoad&&(e=jFe.getConfig()["startOnLoad"],e)&&JFe.run().catch(e=>I.error("Mermaid failed to initialize",e))},"contentLoaded"),VFe=(typeof document<"u"&&window.addEventListener("load",WFe,!1),mt(function(e){JFe.parseError=e},"setParseErrorHandler")),GFe=[],YFe=!1,XFe=mt(async()=>{if(!YFe){for(YFe=!0;0new Promise((n,r)=>{var e=mt(()=>new Promise((t,i)=>{jFe.parse(s,a).then(e=>{t(e),n(e)},e=>{I.error("Error parsing",e),JFe.parseError?.(e),i(e),r(e)})}),"performCall");GFe.push(e),XFe().catch(r)}),"parse"),ZFe=mt((s,a,o)=>new Promise((n,r)=>{var e=mt(()=>new Promise((t,i)=>{jFe.render(s,a,o).then(e=>{t(e),n(e)},e=>{I.error("Error parsing",e),JFe.parseError?.(e),i(e),r(e)})}),"performCall");GFe.push(e),XFe().catch(r)}),"render"),QFe=mt(()=>Object.keys(Qe).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),JFe={startOnLoad:!0,mermaidAPI:jFe,parse:KFe,render:ZFe,init:e,run:HFe,registerExternalDiagrams:V,registerLayoutLoaders:IK,initialize:qFe,parseError:void 0,contentLoaded:WFe,setParseErrorHandler:VFe,detectType:Je,registerIconPacks:Pe,getRegisteredDiagramsMetadata:QFe},eje=JFe;return KFe=W,ee(j({},"__esModule",{value:!0}),KFe)})(),globalThis.mermaid=globalThis.__esbuild_esm_mermaid_nm.mermaid.default,"undefined"!=typeof window&&(window.markedMermaid=markedMermaid),"undefined"!=typeof module&&module.exports&&(module.exports=markedMermaid),!function(){function e(e){return e}function t(i){return function(e){var t=c("img",["image-output"]);return t.src="data:image/"+i+";base64,"+u(e).replace(/\n/g,""),t}}function i(){var t=this,e=d.display_priority.filter(function(e){return(t.raw.data||t.raw)[e]})[0];return e&&d.display[e]?d.display[e](t.raw[e]||t.raw.data[e]):c("div",["empty-output"])}function n(){var e=c("pre",["pyerr"]),t=this.raw.traceback.join("\n");return e.innerHTML=d.highlighter(d.ansi(h(t)),e),e}var r,s,a,o=this,l=void 0!==o.window,c=(s=(l?o:(r=new(require("jsdom").JSDOM)).window).document,function(e,t){e=s.createElement(e);return e.className=(t||[]).map(function(e){return d.prefix+e}).join(" "),e}),h=function(e){return e.replace(//g,">")},u=function(e){return e.join?e.map(u).join(""):e},d={prefix:"nb-",markdown:(a=o.marked||"function"==typeof require&&require("marked"))&&a.parse||e,ansi:(a=o.ansi_up||"function"==typeof require&&require("ansi_up"))&&a.ansi_to_html||e,sanitizer:(a=o.DOMPurify||"function"==typeof require&&require("dompurify"),(l?a&&a.sanitize:a(r.window).sanitize)||e),highlighter:e,VERSION:"0.7.0",Input:function(e,t){this.raw=e,this.cell=t}},p=(d.Input.prototype.render=function(){var e,t,i,n;return this.raw.length?(e=c("div",["input"]),"number"==typeof(n=this.cell).number&&e.setAttribute("data-prompt-number",this.cell.number),t=c("pre"),i=c("code"),n=n.worksheet.notebook.metadata,n=this.cell.raw.language||n.language||n.kernelspec&&n.kernelspec.language||n.language_info&&n.language_info.name,i.setAttribute("data-language",n),i.className="lang-"+n,i.innerHTML=d.highlighter(h(u(this.raw)),t,i,n),t.appendChild(i),e.appendChild(t),this.el=e):c("div")},d.display={},d.display.text=function(e){var t=c("pre",["text-output"]);return t.innerHTML=d.highlighter(d.ansi(u(e)),t),t},d.display["text/plain"]=d.display.text,d.display.html=function(e){var t=c("div",["html-output"]);return t.innerHTML=d.sanitizer(u(e)),t},d.display["text/html"]=d.display.html,d.display.marked=function(e){return d.display.html(d.markdown(u(e)))},d.display["text/markdown"]=d.display.marked,d.display.svg=function(e){var t=c("div",["svg-output"]);return t.innerHTML=u(e),t},d.display["text/svg+xml"]=d.display.svg,d.display["image/svg+xml"]=d.display.svg,d.display.latex=function(e){var t=c("div",["latex-output"]);return t.innerHTML=u(e),t},d.display["text/latex"]=d.display.latex,d.display.javascript=function(e){var t=c("script");return t.innerHTML=u(e),t},d.display["application/javascript"]=d.display.javascript,d.display.png=t("png"),d.display["image/png"]=d.display.png,d.display.jpeg=t("jpeg"),d.display["image/jpeg"]=d.display.jpeg,d.display_priority=["png","image/png","jpeg","image/jpeg","svg","image/svg+xml","text/svg+xml","html","text/html","text/markdown","latex","text/latex","javascript","application/javascript","text","text/plain"],d.Output=function(e,t){this.raw=e,this.cell=t,this.type=e.output_type},d.Output.prototype.renderers={display_data:i,execute_result:i,pyout:i,pyerr:n,error:n,stream:function(){var e=c("pre",[this.raw.stream||this.raw.name]),t=u(this.raw.text);return e.innerHTML=d.highlighter(d.ansi(h(t)),e),e}},d.Output.prototype.render=function(){var e=c("div",["output"]),t=("number"==typeof this.cell.number&&e.setAttribute("data-prompt-number",this.cell.number),this.renderers[this.type].call(this));return e.appendChild(t),this.el=e},d.coalesceStreams=function(e){var t,i;return e.length?(t=e[0],i=[t],e.slice(1).forEach(function(e){"stream"===e.raw.output_type&&"stream"===t.raw.output_type&&e.raw.stream===t.raw.stream&&e.raw.name===t.raw.name?t.raw.text=t.raw.text.concat(e.raw.text):(i.push(e),t=e)}),i):e},[{left:"$$",right:"$$",display:!0},{left:"\\[",right:"\\]",display:!0},{left:"\\(",right:"\\)",display:!(d.Cell=function(e,t){var i=this;i.raw=e,i.worksheet=t,i.type=e.cell_type,"code"===i.type&&(i.number=-1")))):e.innerHTML=d.sanitizer(d.markdown(t)),e},heading:function(){var e=c("h"+this.raw.level,["cell","heading-cell"]);return e.innerHTML=d.sanitizer(u(this.raw.source)),e},raw:function(){var e=c("div",["cell","raw-cell"]);return e.innerHTML=h(u(this.raw.source)),e},code:function(){var t=c("div",["cell","code-cell"]);t.appendChild(this.input.render()),this.outputs.forEach(function(e){t.appendChild(e.render())});return t}},d.Cell.prototype.render=function(){var e=this.renderers[this.type].call(this);return this.el=e},d.Worksheet=function(e,t){var i=this;this.raw=e,this.notebook=t,this.cells=e.cells.map(function(e){return new d.Cell(e,i)}),this.render=function(){var t=c("div",["worksheet"]);return i.cells.forEach(function(e){t.appendChild(e.render())}),this.el=t}},d.Notebook=function(e,t){var i=this,t=(this.raw=e,this.config=t,this.metadata=e.metadata||{}),t=(this.title=t.title||t.name,e.worksheets||[{cells:e.cells}]);this.worksheets=t.map(function(e){return new d.Worksheet(e,i)}),this.sheet=this.worksheets[0]},d.Notebook.prototype.render=function(){var t=c("div",["notebook"]);return this.worksheets.forEach(function(e){t.appendChild(e.render())}),this.el=t},d.parse=function(e,t){return new d.Notebook(e,t)},"function"==typeof define&&define.amd&&define(function(){return d}),"undefined"!=typeof exports?(exports="undefined"!=typeof module&&module.exports?module.exports=d:exports).nb=d:o.nb=d}.call(this);var Org=function(){var e={},n={rules:{},define:function(t,e){this.rules[t]=e,this["is"+t.substring(0,1).toUpperCase()+t.substring(1)]=function(e){return this.rules[t].exec(e)}}};function r(){}function s(e){this.stream=e,this.tokenStack=[]}function a(e,t){if(this.type=e,this.children=[],t)for(var i=0,n=t.length;i";return void 0!==this.value?e+=" "+this.value:this.children&&(e+="\n"+this.children.map(function(e,t){return"#"+t+" "+e.toString()}).join("\n").split("\n").map(function(e){return" "+e}).join("\n")),e}};var d={types:{},define:function(i,n){var e="create"+(this.types[i]=i).substring(0,1).toUpperCase()+i.substring(1),r="function"==typeof n;this[e]=function(e,t){e=new a(i,e);return r&&n(e,t||{}),e}}};function o(e){this.sequences=e.split(/\r?\n/),this.totalLines=this.sequences.length,this.lineNumber=0}function l(){this.inlineParser=new t}function t(){this.preEmphasis=" \t\\('\"",this.postEmphasis="- \t.,:!?;'\"\\)",this.borderForbidden=" \t\r\n,\"'",this.bodyRegexp="[\\s\\S]*?",this.markers="*/_=~+",this.emphasisPattern=this.buildEmphasisPattern(),this.linkPattern=/\[\[([^\]]*)\](?:\[([^\]]*)\])?\]/g}function i(){}function c(e,t){this.initialize(e,t),this.result=this.convert()}return d.define("text",function(e,t){e.value=t.value}),d.define("header",function(e,t){e.level=t.level}),d.define("orderedList"),d.define("unorderedList"),d.define("definitionList"),d.define("listElement"),d.define("paragraph"),d.define("preformatted"),d.define("table"),d.define("tableRow"),d.define("tableCell"),d.define("horizontalRule"),d.define("directive"),d.define("inlineContainer"),d.define("bold"),d.define("italic"),d.define("underline"),d.define("code"),d.define("verbatim"),d.define("dashed"),d.define("link",function(e,t){e.src=t.src}),void 0!==e&&(e.Node=d),o.prototype.peekNextLine=function(){return this.hasNext()?this.sequences[this.lineNumber]:null},o.prototype.getNextLine=function(){return this.hasNext()?this.sequences[this.lineNumber++]:null},o.prototype.hasNext=function(){return this.lineNumbere)){if(0<(l=s.level-i))for(var a,o=0;o]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’])/i,linkURL:function(e){var t=this;return e.replace(this.urlPattern,function(e){return e.indexOf("://")<0&&(e="http://"+e),t.makeLink(e)})},makeLink:function(e){throw"Implement makeLink"},makeSubscripts:function(e){return"{}"===this.documentOptions["^"]?e.replace(/\b([^_ \t]*)_{([^}]*)}/g,this.makeSubscript):this.documentOptions["^"]?e.replace(/\b([^_ \t]*)_([^_]*)\b/g,this.makeSubscript):e},makeSubscript:function(e,t,i){throw"Implement makeSubscript"},imageExtensionPattern:new RegExp("("+["bmp","png","jpeg","jpg","gif","tiff","tif","xbm","xpm","pbm","pgm","ppm"].join("|")+")$","i")},void 0!==e&&(e.Converter=i),c.prototype={__proto__:i.prototype,convert:function(){var e=this.orgDocument.title?this.convertNode(this.orgDocument.title):this.untitled,t=this.tag("h1",e),i=this.convertNodes(this.orgDocument.nodes,!0),n=this.computeToc(this.documentOptions.toc),r=this.tocToHTML(n);return{title:e,titleHTML:t,contentHTML:i,tocHTML:r,toc:n,toString:function(){return t+r+"\n"+i}}},tocToHTML:function(e){function o(e){for(var t="",i=0;i":[">",null],'"':[""",null],"'":["'",null],"->":["➔",function(e,t){return this.exportOptions.translateSymbolArrow&&!t}]},replaceRegexp:null,escapeSpecialChars:function(i,n){this.replaceRegexp||(this.replaceRegexp=new RegExp(Object.keys(this.replaceMap).join("|"),"g"));var r=this.replaceMap,s=this;return i.replace(this.replaceRegexp,function(e){var t;if(r[e])return"function"!=typeof(t=r[e][1])||t.call(s,i,n)?r[e][0]:e;throw"escapeSpecialChars: Invalid match"})},postProcess:function(e,t,i){return t=this.exportOptions.exportFromLineNumber&&"number"==typeof e.fromLineNumber?this.inlineTag("div",t,{"data-line-number":e.fromLineNumber}):t},makeLink:function(e){return''+decodeURIComponent(e)+""},makeSubscript:function(e,t,i){return''+t+''+i+""},attributesObjectToString:function(e){var t,i="";for(t in e)e.hasOwnProperty(t)&&(i+=" "+t+'="'+e[t]+'"');return i},inlineTag:function(e,t,i,n){var r="<"+e;return n&&(r+=" "+n),r+=this.attributesObjectToString(i=i||{}),null===t?r+"/>":r+">"+t+""},tag:function(e,t,i,n){return this.inlineTag(e,t,i,n)+"\n"}},void 0!==e&&(e.ConverterHTML=c),e}();function loadFilterPrefs(e){try{var t=localStorage.getItem(e);return t?JSON.parse(t):null}catch(e){return null}}function saveFilterPrefs(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function humanFileSize(e,t=!1,i=1){var n=t?1e3:1024;if(e/=8,Math.abs(e)=n&&s/g,"%3E")}return e}!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(k,O){"use strict";function b(e){return"function"==typeof e&&"number"!=typeof e.nodeType}function f(e){return null!=e&&e===e.window}var e=[],T=k.document,P=Object.getPrototypeOf,o=e.slice,B=e.concat,F=e.push,j=e.indexOf,z={},H=z.toString,U=z.hasOwnProperty,q=U.toString,W=q.call(Object),m={},V={type:!0,src:!0,nonce:!0,noModule:!0};function G(e,t,i){var n,r,s=(i=i||T).createElement("script");if(s.text=e,t)for(n in V)(r=t[n]||t.getAttribute&&t.getAttribute(n))&&s.setAttribute(n,r);i.head.appendChild(s).parentNode.removeChild(s)}function g(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?z[H.call(e)]||"object":typeof e}var S=function(e,t){return new S.fn.init(e,t)},Y=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function X(e){var t=!!e&&"length"in e&&e.length,i=g(e);return!b(e)&&!f(e)&&("array"===i||0===t||"number"==typeof t&&0>10|55296,1023&n|56320)}function P(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function B(){k()}var e,d,x,s,F,p,j,z,w,l,c,k,T,i,S,g,n,r,f,C="sizzle"+ +new Date,m=O.document,_=0,H=0,U=R(),q=R(),W=R(),y=R(),V=function(e,t){return e===t&&(c=!0),0},G={}.hasOwnProperty,t=[],Y=t.pop,X=t.push,A=t.push,K=t.slice,b=function(e,t){for(var i=0,n=e.length;i+~]|"+a+")"+a+"*"),ne=new RegExp(a+"|>"),re=new RegExp(J),se=new RegExp("^"+o+"$"),E={ID:new RegExp("^#("+o+")"),CLASS:new RegExp("^\\.("+o+")"),TAG:new RegExp("^("+o+"|[*])"),ATTR:new RegExp("^"+Q),PSEUDO:new RegExp("^"+J),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Z+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},ae=/HTML$/i,oe=/^(?:input|select|textarea|button)$/i,le=/^h\d$/i,h=/^[^{]+\{\s*\[native \w/,ce=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,he=/[+~]/,$=new RegExp("\\\\([\\da-f]{1,6}"+a+"?|("+a+")|.)","ig"),ue=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,de=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{A.apply(t=K.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){A={apply:t.length?function(e,t){X.apply(e,K.call(t))}:function(e,t){for(var i=e.length,n=0;e[i++]=t[n++];);e.length=i-1}}}function L(e,t,i,n){var r,s,a,o,l,c,h=t&&t.ownerDocument,u=t?t.nodeType:9;if(i=i||[],"string"!=typeof e||!e||1!==u&&9!==u&&11!==u)return i;if(!n&&((t?t.ownerDocument||t:m)!==T&&k(t),t=t||T,S)){if(11!==u&&(o=ce.exec(e)))if(r=o[1]){if(9===u){if(!(c=t.getElementById(r)))return i;if(c.id===r)return i.push(c),i}else if(h&&(c=h.getElementById(r))&&f(t,c)&&c.id===r)return i.push(c),i}else{if(o[2])return A.apply(i,t.getElementsByTagName(e)),i;if((r=o[3])&&d.getElementsByClassName&&t.getElementsByClassName)return A.apply(i,t.getElementsByClassName(r)),i}if(d.qsa&&!y[e+" "]&&(!g||!g.test(e))&&(1!==u||"object"!==t.nodeName.toLowerCase())){if(c=e,h=t,1===u&&ne.test(e)){for((a=t.getAttribute("id"))?a=a.replace(ue,P):t.setAttribute("id",a=C),s=(l=p(e)).length;s--;)l[s]="#"+a+" "+D(l[s]);c=l.join(","),h=he.test(e)&&me(t.parentNode)||t}try{return A.apply(i,h.querySelectorAll(c)),i}catch(t){y(e,!0)}finally{a===C&&t.removeAttribute("id")}}}return z(e.replace(v,"$1"),t,i,n)}function R(){var n=[];return function e(t,i){return n.push(t+" ")>x.cacheLength&&delete e[n.shift()],e[t+" "]=i}}function M(e){return e[C]=!0,e}function I(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function pe(e,t){for(var i=e.split("|"),n=i.length;n--;)x.attrHandle[i[n]]=t}function ge(e,t){var i=t&&e,n=i&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(n)return n;if(i)for(;i=i.nextSibling;)if(i===t)return-1;return e?1:-1}function fe(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&de(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function N(a){return M(function(s){return s=+s,M(function(e,t){for(var i,n=a([],e.length,s),r=n.length;r--;)e[i=n[r]]&&(e[i]=!(t[i]=e[i]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=L.support={},F=L.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!ae.test(t||e&&e.nodeName||"HTML")},k=L.setDocument=function(e){var e=e?e.ownerDocument||e:m;return e!==T&&9===e.nodeType&&e.documentElement&&(i=(T=e).documentElement,S=!F(T),m!==T&&(e=T.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",B,!1):e.attachEvent&&e.attachEvent("onunload",B)),d.attributes=I(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=I(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=h.test(T.getElementsByClassName),d.getById=I(function(e){return i.appendChild(e).id=C,!T.getElementsByName||!T.getElementsByName(C).length}),d.getById?(x.filter.ID=function(e){var t=e.replace($,u);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&S)return(t=t.getElementById(e))?[t]:[]}):(x.filter.ID=function(e){var t=e.replace($,u);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var i,n,r,s=t.getElementById(e);if(s){if((i=s.getAttributeNode("id"))&&i.value===e)return[s];for(r=t.getElementsByName(e),n=0;s=r[n++];)if((i=s.getAttributeNode("id"))&&i.value===e)return[s]}return[]}}),x.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var i,n=[],r=0,s=t.getElementsByTagName(e);if("*"!==e)return s;for(;i=s[r++];)1===i.nodeType&&n.push(i);return n},x.find.CLASS=d.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},n=[],g=[],(d.qsa=h.test(T.querySelectorAll))&&(I(function(e){i.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+a+"*(?:value|"+Z+")"),e.querySelectorAll("[id~="+C+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+C+"+*").length||g.push(".#.+[+~]")}),I(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+a+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),i.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(d.matchesSelector=h.test(r=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector||i.msMatchesSelector))&&I(function(e){d.disconnectedMatch=r.call(e,"*"),r.call(e,"[s!='']:x"),n.push("!=",J)}),g=g.length&&new RegExp(g.join("|")),n=n.length&&new RegExp(n.join("|")),e=h.test(i.compareDocumentPosition),f=e||h.test(i.contains)?function(e,t){var i=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(i.contains?i.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=e?function(e,t){var i;return e===t?(c=!0,0):!e.compareDocumentPosition-!t.compareDocumentPosition||(1&(i=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===i?e===T||e.ownerDocument===m&&f(m,e)?-1:t===T||t.ownerDocument===m&&f(m,t)?1:l?b(l,e)-b(l,t):0:4&i?-1:1)}:function(e,t){if(e===t)return c=!0,0;var i,n=0,r=e.parentNode,s=t.parentNode,a=[e],o=[t];if(!r||!s)return e===T?-1:t===T?1:r?-1:s?1:l?b(l,e)-b(l,t):0;if(r===s)return ge(e,t);for(i=e;i=i.parentNode;)a.unshift(i);for(i=t;i=i.parentNode;)o.unshift(i);for(;a[n]===o[n];)n++;return n?ge(a[n],o[n]):a[n]===m?-1:o[n]===m?1:0}),T},L.matches=function(e,t){return L(e,null,null,t)},L.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&k(e),d.matchesSelector&&S&&!y[t+" "]&&(!n||!n.test(t))&&(!g||!g.test(t)))try{var i=r.call(e,t);if(i||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(e){y(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,u),e[3]=(e[3]||e[4]||e[5]||"").replace($,u),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||L.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&L.error(e[0]),e},PSEUDO:function(e){var t,i=!e[6]&&e[2];return E.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":i&&re.test(i)&&(t=(t=p(i,!0))&&i.indexOf(")",i.length-t)-i.length)&&(e[0]=e[0].slice(0,t),e[2]=i.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace($,u).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,i,n){return function(e){e=L.attr(e,t);return null==e?"!="===i:!i||(e+="","="===i?e===n:"!="===i?e!==n:"^="===i?n&&0===e.indexOf(n):"*="===i?n&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function J(e,i,n){return b(i)?S.grep(e,function(e,t){return!!i.call(e,t,e)!==n}):i.nodeType?S.grep(e,function(e){return e===i!==n}):"string"!=typeof i?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/,ie=((S.fn.init=function(e,t,i){if(e){if(i=i||ee,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==i.ready?i.ready(e):e(S):S.makeArray(e,this);if(!(n="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:te.exec(e))||!n[1]&&t)return(!t||t.jquery?t||i:this.constructor(t)).find(e);if(n[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:T,!0)),Q.test(n[1])&&S.isPlainObject(t))for(var n in t)b(this[n])?this[n](t[n]):this.attr(n,t[n])}else(i=T.getElementById(n[2]))&&(this[0]=i,this.length=1)}return this}).prototype=S.fn,ee=S(T),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),i=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Se=/^$|^module$|\/(?:java|ecma)script/i,A={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function E(e,t){var i=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&l(e,t)?S.merge([e],i):i}function Ce(e,t){for(var i=0,n=e.length;ix",m.noCloneChecked=!!M.cloneNode(!0).lastChild.defaultValue;var Ee=/^key/,$e=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Le=/^([^.]*)(?:\.(.+)|)/;function i(){return!0}function $(){return!1}function Re(e,t){return e===function(){try{return T.activeElement}catch(e){}}()==("focus"===t)}function Me(e,t,i,n,r,s){var a,o;if("object"==typeof t){for(o in"string"!=typeof i&&(n=n||i,i=void 0),t)Me(e,o,i,n,t[o],s);return e}if(null==n&&null==r?(r=i,n=i=void 0):null==r&&("string"==typeof i?(r=n,n=void 0):(r=n,n=i,i=void 0)),!1===r)r=$;else if(!r)return e;return 1===s&&(a=r,(r=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,r,n,i)})}function Ie(e,r,s){s?(y.set(e,r,!1),S.event.add(e,r,{namespace:!1,handler:function(e){var t,i,n=y.get(this,r);if(1&e.isTrigger&&this[r]){if(n.length)(S.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=o.call(arguments),y.set(this,r,n),t=s(this,r),this[r](),n!==(i=y.get(this,r))||t?y.set(this,r,!1):i={},n!==i)return e.stopImmediatePropagation(),e.preventDefault(),i.value}else n.length&&(y.set(this,r,{value:S.event.trigger(S.extend(n[0],S.Event.prototype),n.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===y.get(e,r)&&S.event.add(e,r,i)}S.event={global:{},add:function(t,e,i,n,r){var s,a,o,l,c,h,u,d,p,g=y.get(t);if(g)for(i.handler&&(i=(s=i).handler,r=s.selector),r&&S.find.matchesSelector(x,r),i.guid||(i.guid=S.guid++),o=(o=g.events)||(g.events={}),a=(a=g.handle)||(g.handle=function(e){return void 0!==S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(C)||[""]).length;l--;)u=p=(d=Le.exec(e[l])||[])[1],d=(d[2]||"").split(".").sort(),u&&(c=S.event.special[u]||{},u=(r?c.delegateType:c.bindType)||u,c=S.event.special[u]||{},p=S.extend({type:u,origType:p,data:n,handler:i,guid:i.guid,selector:r,needsContext:r&&S.expr.match.needsContext.test(r),namespace:d.join(".")},s),(h=o[u])||((h=o[u]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(t,n,d,a))||t.addEventListener&&t.addEventListener(u,a),c.add&&(c.add.call(t,p),p.handler.guid||(p.handler.guid=i.guid)),r?h.splice(h.delegateCount++,0,p):h.push(p),S.event.global[u]=!0)},remove:function(e,t,i,n,r){var s,a,o,l,c,h,u,d,p,g,f,m=y.hasData(e)&&y.get(e);if(m&&(l=m.events)){for(c=(t=(t||"").match(C)||[""]).length;c--;)if(p=f=(o=Le.exec(t[c])||[])[1],g=(o[2]||"").split(".").sort(),p){for(u=S.event.special[p]||{},d=l[p=(n?u.delegateType:u.bindType)||p]||[],o=o[2]&&new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=d.length;s--;)h=d[s],!r&&f!==h.origType||i&&i.guid!==h.guid||o&&!o.test(h.namespace)||n&&n!==h.selector&&("**"!==n||!h.selector)||(d.splice(s,1),h.selector&&d.delegateCount--,u.remove&&u.remove.call(e,h));a&&!d.length&&(u.teardown&&!1!==u.teardown.call(e,g,m.handle)||S.removeEvent(e,p,m.handle),delete l[p])}else for(p in l)S.event.remove(e,p+t[c],i,n,!0);S.isEmptyObject(l)&&y.remove(e,"handle events")}},dispatch:function(e){var t,i,n,r,s,a=S.event.fix(e),o=new Array(arguments.length),e=(y.get(this,"events")||{})[a.type]||[],l=S.event.special[a.type]||{};for(o[0]=a,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,De=/\s*$/g;function Be(e,t){return l(e,"table")&&l(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Fe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function je(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function ze(e,t){var i,n,r,s,a,o;if(1===t.nodeType){if(y.hasData(e)&&(s=y.access(e),a=y.set(t,s),o=s.events))for(r in delete a.handle,a.events={},o)for(i=0,n=o[r].length;i")},clone:function(e,t,i){var n,r,s,a,o,l,c,h=e.cloneNode(!0),u=w(e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=E(h),n=0,r=(s=E(e)).length;n").attr(i.scriptAttrs||{}).prop({charset:i.scriptCharset,src:i.url}).on("load error",r=function(e){n.remove(),r=null,e&&t("error"===e.type?404:200,e.type)}),T.head.appendChild(n[0])},abort:function(){r&&r()}}});var Kt=[],Zt=/(=)\?(?=&|$)|\?\?/,Qt=(S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||S.expando+"_"+$t++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,i){var n,r,s,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return n=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+n):!1!==e.jsonp&&(e.url+=(Lt.test(e.url)?"&":"?")+e.jsonp+"="+n),e.converters["script json"]=function(){return s||S.error(n+" was not called"),s[0]},e.dataTypes[0]="json",r=k[n],k[n]=function(){s=arguments},i.always(function(){void 0===r?S(k).removeProp(n):k[n]=r,e[n]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(n)),s&&b(r)&&r(s[0]),s=r=void 0}),"script"}),m.createHTMLDocument=((e=T.implementation.createHTMLDocument("").body).innerHTML="
",2===e.childNodes.length),S.parseHTML=function(e,t,i){return"string"!=typeof e?[]:("boolean"==typeof t&&(i=t,t=!1),t||(m.createHTMLDocument?((n=(t=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,t.head.appendChild(n)):t=T),n=!i&&[],(i=Q.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,n),n&&n.length&&S(n).remove(),S.merge([],i.childNodes)));var n},S.fn.load=function(e,t,i){var n,r,s,a=this,o=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(n):e)}).always(i&&function(e,t){a.each(function(){i.apply(this,s||[e.responseText,t,e])})}),this},S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,i){var n,r,s,a,o=S.css(e,"position"),l=S(e),c={};"static"===o&&(e.style.position="relative"),s=l.offset(),n=S.css(e,"top"),a=S.css(e,"left"),o=("absolute"===o||"fixed"===o)&&-1<(n+a).indexOf("auto")?(r=(o=l.position()).top,o.left):(r=parseFloat(n)||0,parseFloat(a)||0),null!=(t=b(t)?t.call(e,i,S.extend({},s)):t).top&&(c.top=t.top-s.top+r),null!=t.left&&(c.left=t.left-s.left+o),"using"in t?t.using.call(e,c):l.css(c)}},S.fn.extend({offset:function(t){var e,i;return arguments.length?void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)}):(i=this[0])?i.getClientRects().length?(e=i.getBoundingClientRect(),i=i.ownerDocument.defaultView,{top:e.top+i.pageYOffset,left:e.left+i.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,i,n=this[0],r={top:0,left:0};if("fixed"===S.css(n,"position"))t=n.getBoundingClientRect();else{for(t=this.offset(),i=n.ownerDocument,e=n.offsetParent||i.documentElement;e&&(e===i.body||e===i.documentElement)&&"static"===S.css(e,"position");)e=e.parentNode;e&&e!==n&&1===e.nodeType&&((r=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),r.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-r.top-S.css(n,"marginTop",!0),left:t.left-r.left-S.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===S.css(e,"position");)e=e.offsetParent;return e||x})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,r){var s="pageYOffset"===r;S.fn[t]=function(e){return u(this,function(e,t,i){var n;if(f(e)?n=e:9===e.nodeType&&(n=e.defaultView),void 0===i)return n?n[r]:e[t];n?n.scrollTo(s?n.pageXOffset:i,s?i:n.pageYOffset):e[t]=i},t,e,arguments.length)}}),S.each(["top","left"],function(e,i){S.cssHooks[i]=Je(m.pixelPosition,function(e,t){if(t)return t=Qe(e,i),Ke.test(t)?S(e).position()[i]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,o){S.each({padding:"inner"+a,content:o,"":"outer"+a},function(n,s){S.fn[s]=function(e,t){var i=arguments.length&&(n||"boolean"!=typeof e),r=n||(!0===e||!0===t?"margin":"border");return u(this,function(e,t,i){var n;return f(e)?0===s.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(n=e.documentElement,Math.max(e.body["scroll"+a],n["scroll"+a],e.body["offset"+a],n["offset"+a],n["client"+a])):void 0===i?S.css(e,t,r):S.style(e,t,i,r)},o,i?e:void 0,i)}})}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,i){S.fn[i]=function(e,t){return 0=i.clientWidth&&e>=i.clientHeight})).length?r:s)[0].key+((t=e.split("-")[1])?"-"+t:""))}function k(e,t,i,n){n=3l[e]&&!n.escapeWithReference&&(i=q(c[t],l[e]-("right"===e?c.width:c.height))),R({},t,i)}};return t.forEach(function(e){var t=-1===["left","top"].indexOf(e)?"secondary":"primary";c=N({},c,h[t](e))}),e.offsets.popper=c,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,i=t.popper,t=t.reference,n=e.placement.split("-")[0],r=M,n=-1!==["top","bottom"].indexOf(n),s=n?"right":"bottom",a=n?"left":"top",n=n?"width":"height";return i[s]r(t[s])&&(e.offsets.popper[a]=r(t[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(z(e.instance.modifiers,"arrow","keepTogether")){t=t.element;if("string"==typeof t){if(!(t=e.instance.popper.querySelector(t)))return e}else if(!e.instance.popper.contains(t))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],n=e.offsets,r=n.popper,n=n.reference,i=-1!==["left","right"].indexOf(i),s=i?"height":"width",a=i?"Top":"Left",o=a.toLowerCase(),l=i?"left":"top",i=i?"bottom":"right",c=T(t)[s],i=(n[i]-cr[i]&&(e.offsets.popper[o]+=n[o]+c-r[i]),e.offsets.popper=y(e.offsets.popper),n[o]+n[s]/2-c/2),n=u(e.instance.popper),h=parseFloat(n["margin"+a],10),n=parseFloat(n["border"+a+"Width"],10),a=i-e.offsets.popper[o]-h-n,a=I(q(r[s]-c,a),0);e.arrowElement=t,e.offsets.arrow=(R(i={},o,W(a)),R(i,l,""),i)}return e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(c,h){if(!(t(c.instance.modifiers,"inner")||c.flipped&&c.placement===c.originalPlacement)){var u=w(c.instance.popper,c.instance.reference,h.padding,h.boundariesElement,c.positionFixed),d=c.placement.split("-")[0],p=S(d),g=c.placement.split("-")[1]||"",f=[];switch(h.behavior){case Q:f=[d,p];break;case J:f=H(d);break;case ee:f=H(d,!0);break;default:f=h.behavior}f.forEach(function(e,t){if(d!==e||f.length===t+1)return c;d=c.placement.split("-")[0],p=S(d);var e=c.offsets.popper,i=c.offsets.reference,n=M,i="left"===d&&n(e.right)>n(i.left)||"right"===d&&n(e.left)n(i.top)||"bottom"===d&&n(e.top)n(u.right),a=n(e.top)n(u.bottom),n="left"===d&&r||"right"===d&&s||"top"===d&&a||"bottom"===d&&e,o=-1!==["top","bottom"].indexOf(d),l=!!h.flipVariations&&(o&&"start"===g&&r||o&&"end"===g&&s||!o&&"start"===g&&a||!o&&"end"===g&&e),s=!!h.flipVariationsByContent&&(o&&"start"===g&&s||o&&"end"===g&&r||!o&&"start"===g&&e||!o&&"end"===g&&a),r=l||s;(i||n||r)&&(c.flipped=!0,(i||n)&&(d=f[t+1]),r&&(g="end"===(e=g)?"start":"start"===e?"end":e),c.placement=d+(g?"-"+g:""),c.offsets.popper=N({},c.offsets.popper,C(c.instance.popper,c.offsets.reference,c.placement)),c=A(c.instance.modifiers,c,"flip"))})}return c},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,i=t.split("-")[0],n=e.offsets,r=n.popper,n=n.reference,s=-1!==["left","right"].indexOf(i),a=-1===["top","left"].indexOf(i);return r[s?"left":"top"]=n[i]-(a?r[s?"width":"height"]:0),e.placement=S(t),e.offsets.popper=y(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(z(e.instance.modifiers,"hide","preventOverflow")){var t=e.offsets.reference,i=_(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomi.right||t.top>i.bottom||t.rightthis._items.length-1||e<0||(this._isSliding?h(this._element).one(g.SLID,function(){return t.to(e)}):i===e?(this.pause(),this.cycle()):this._slide(idocument.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},i._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},i._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},We="show",Ve={HIDE:"hide"+M,HIDDEN:"hidden"+M,SHOW:"show"+M,SHOWN:"shown"+M,INSERTED:"inserted"+M,CLICK:"click"+M,FOCUSIN:"focusin"+M,FOCUSOUT:"focusout"+M,MOUSEENTER:"mouseenter"+M,MOUSELEAVE:"mouseleave"+M},Ge="fade",Ye="show",Xe="hover",I=((o=Ke.prototype).enable=function(){this._isEnabled=!0},o.disable=function(){this._isEnabled=!1},o.toggleEnabled=function(){this._isEnabled=!this._isEnabled},o.toggle=function(e){var t,i;this._isEnabled&&(e?(t=this.constructor.DATA_KEY,(i=h(e.currentTarget).data(t))||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),h(e.currentTarget).data(t,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)):h(this.getTipElement()).hasClass(Ye)?this._leave(null,this):this._enter(null,this))},o.dispose=function(){clearTimeout(this._timeout),h.removeData(this.element,this.constructor.DATA_KEY),h(this.element).off(this.constructor.EVENT_KEY),h(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&h(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},o.show=function(){var t=this;if("none"===h(this.element).css("display"))throw new Error("Please use show on visible elements");var e,i,n=h.Event(this.constructor.Event.SHOW);this.isWithContent()&&this._isEnabled&&(h(this.element).trigger(n),i=u.findShadowRoot(this.element),i=h.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element),!n.isDefaultPrevented())&&i&&(n=this.getTipElement(),i=u.getUID(this.constructor.NAME),n.setAttribute("id",i),this.element.setAttribute("aria-describedby",i),this.setContent(),this.config.animation&&h(n).addClass(Ge),i="function"==typeof this.config.placement?this.config.placement.call(this,n,this.element):this.config.placement,i=this._getAttachment(i),this.addAttachmentClass(i),e=this._getContainer(),h(n).data(this.constructor.DATA_KEY,this),h.contains(this.element.ownerDocument.documentElement,this.tip)||h(n).appendTo(e),h(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new r(this.element,n,this._getPopperConfig(i)),h(n).addClass(Ye),"ontouchstart"in document.documentElement&&h(document.body).children().on("mouseover",null,h.noop),e=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,h(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)},h(this.tip).hasClass(Ge)?(i=u.getTransitionDurationFromElement(this.tip),h(this.tip).one(u.TRANSITION_END,e).emulateTransitionEnd(i)):e())},o.hide=function(e){function t(){i._hoverState!==We&&n.parentNode&&n.parentNode.removeChild(n),i._cleanTipClass(),i.element.removeAttribute("aria-describedby"),h(i.element).trigger(i.constructor.Event.HIDDEN),null!==i._popper&&i._popper.destroy(),e&&e()}var i=this,n=this.getTipElement(),r=h.Event(this.constructor.Event.HIDE);h(this.element).trigger(r),r.isDefaultPrevented()||(h(n).removeClass(Ye),"ontouchstart"in document.documentElement&&h(document.body).children().off("mouseover",null,h.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger[Xe]=!1,h(this.tip).hasClass(Ge)?(r=u.getTransitionDurationFromElement(n),h(n).one(u.TRANSITION_END,t).emulateTransitionEnd(r)):t(),this._hoverState="")},o.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},o.isWithContent=function(){return Boolean(this.getTitle())},o.addAttachmentClass=function(e){h(this.getTipElement()).addClass(Fe+"-"+e)},o.getTipElement=function(){return this.tip=this.tip||h(this.config.template)[0],this.tip},o.setContent=function(){var e=this.getTipElement();this.setElementContent(h(e.querySelectorAll(".tooltip-inner")),this.getTitle()),h(e).removeClass("fade show")},o.setElementContent=function(e,t){"object"!=typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=Oe(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?h(t).parent().is(e)||e.empty().append(t):e.text(h(t).text())},o.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},o._getPopperConfig=function(e){var t=this;return s({},{placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}},{},this.config.popperConfig)},o._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,{},t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},o._getContainer=function(){return!1===this.config.container?document.body:u.isElement(this.config.container)?h(this.config.container):h(document).find(this.config.container)},o._getAttachment=function(e){return Ue[e.toUpperCase()]},o._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){var t;"click"===e?h(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)}):"manual"!==e&&(t=e===Xe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,e=e===Xe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT,h(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(e,i.config.selector,function(e){return i._leave(e)}))}),this._hideModalHandler=function(){i.element&&i.hide()},h(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},o._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==e||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},o._enter=function(e,t){var i=this.constructor.DATA_KEY;(t=t||h(e.currentTarget).data(i))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),h(e.currentTarget).data(i,t)),e&&(t._activeTrigger["focusin"===e.type?"focus":Xe]=!0),h(t.getTipElement()).hasClass(Ye)||t._hoverState===We?t._hoverState=We:(clearTimeout(t._timeout),t._hoverState=We,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===We&&t.show()},t.config.delay.show):t.show())},o._leave=function(e,t){var i=this.constructor.DATA_KEY;(t=t||h(e.currentTarget).data(i))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),h(e.currentTarget).data(i,t)),e&&(t._activeTrigger["focusout"===e.type?"focus":Xe]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState="out",t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){"out"===t._hoverState&&t.hide()},t.config.delay.hide):t.hide())},o._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},o._getConfig=function(e){var t=h(this.element).data();return Object.keys(t).forEach(function(e){-1!==ze.indexOf(e)&&delete t[e]}),"number"==typeof(e=s({},this.constructor.Default,{},t,{},"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),u.typeCheckConfig(R,e,this.constructor.DefaultType),e.sanitize&&(e.template=Oe(e.template,e.whiteList,e.sanitizeFn)),e},o._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},o._cleanTipClass=function(){var e=h(this.getTipElement()),t=e.attr("class").match(je);null!==t&&t.length&&e.removeClass(t.join(""))},o._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},o._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(h(e).removeClass(Ge),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},Ke._jQueryInterface=function(i){return this.each(function(){var e=h(this).data(Pe),t="object"==typeof i&&i;if((e||!/dispose|hide/.test(i))&&(e||(e=new Ke(this,t),h(this).data(Pe,e)),"string"==typeof i)){if(void 0===e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},t(Ke,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return qe}},{key:"NAME",get:function(){return R}},{key:"DATA_KEY",get:function(){return Pe}},{key:"Event",get:function(){return Ve}},{key:"EVENT_KEY",get:function(){return M}},{key:"DefaultType",get:function(){return He}}]),Ke);function Ke(e,t){if(void 0===r)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}h.fn[R]=I._jQueryInterface,h.fn[R].Constructor=I,h.fn[R].noConflict=function(){return h.fn[R]=Be,I._jQueryInterface};var Ze,Qe="popover",Je="bs.popover",N="."+Je,et=h.fn[Qe],tt="bs-popover",it=new RegExp("(^|\\s)"+tt+"\\S+","g"),nt=s({},I.Default,{placement:"right",trigger:"click",content:"",template:''}),rt=s({},I.DefaultType,{content:"(string|element|function)"}),st={HIDE:"hide"+N,HIDDEN:"hidden"+N,SHOW:"show"+N,SHOWN:"shown"+N,INSERTED:"inserted"+N,CLICK:"click"+N,FOCUSIN:"focusin"+N,FOCUSOUT:"focusout"+N,MOUSEENTER:"mouseenter"+N,MOUSELEAVE:"mouseleave"+N},at=(c=Ze=I,(i=ot).prototype=Object.create(c.prototype),(i.prototype.constructor=i).__proto__=c,(i=ot.prototype).isWithContent=function(){return this.getTitle()||this._getContent()},i.addAttachmentClass=function(e){h(this.getTipElement()).addClass(tt+"-"+e)},i.getTipElement=function(){return this.tip=this.tip||h(this.config.template)[0],this.tip},i.setContent=function(){var e=h(this.getTipElement()),t=(this.setElementContent(e.find(".popover-header"),this.getTitle()),this._getContent());"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(".popover-body"),t),e.removeClass("fade show")},i._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},i._cleanTipClass=function(){var e=h(this.getTipElement()),t=e.attr("class").match(it);null!==t&&0=this._offsets[n]&&(void 0===this._offsets[n+1]||e li > .active",Ct=((i=_t.prototype).show=function(){var e,t,i,n,r,s,a=this;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&h(this._element).hasClass(Tt)||h(this._element).hasClass("disabled")||(t=h(this._element).closest(".nav, .list-group")[0],i=u.getSelectorFromElement(this._element),t&&(r="UL"===t.nodeName||"OL"===t.nodeName?St:".active",n=(n=h.makeArray(h(t).find(r)))[n.length-1]),r=h.Event(kt.HIDE,{relatedTarget:this._element}),s=h.Event(kt.SHOW,{relatedTarget:n}),n&&h(n).trigger(r),h(this._element).trigger(s),s.isDefaultPrevented())||r.isDefaultPrevented()||(i&&(e=document.querySelector(i)),this._activate(this._element,t),s=function(){var e=h.Event(kt.HIDDEN,{relatedTarget:a._element}),t=h.Event(kt.SHOWN,{relatedTarget:n});h(n).trigger(e),h(a._element).trigger(t)},e?this._activate(e,e.parentNode,s):s())},i.dispose=function(){h.removeData(this._element,xt),this._element=null},i._activate=function(e,t,i){function n(){return r._transitionComplete(e,s,i)}var r=this,s=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?h(t).children(".active"):h(t).find(St))[0],t=i&&s&&h(s).hasClass("fade");s&&t?(t=u.getTransitionDurationFromElement(s),h(s).removeClass("show").one(u.TRANSITION_END,n).emulateTransitionEnd(t)):n()},i._transitionComplete=function(e,t,i){var n;t&&(h(t).removeClass(Tt),(n=h(t.parentNode).find("> .dropdown-menu .active")[0])&&h(n).removeClass(Tt),"tab"===t.getAttribute("role"))&&t.setAttribute("aria-selected",!1),h(e).addClass(Tt),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),u.reflow(e),e.classList.contains("fade")&&e.classList.add("show"),e.parentNode&&h(e.parentNode).hasClass("dropdown-menu")&&((n=h(e).closest(".dropdown")[0])&&(t=[].slice.call(n.querySelectorAll(".dropdown-toggle")),h(t).addClass(Tt)),e.setAttribute("aria-expanded",!0)),i&&i()},_t._jQueryInterface=function(i){return this.each(function(){var e=h(this),t=e.data(xt);if(t||(t=new _t(this),e.data(xt,t)),"string"==typeof i){if(void 0===t[i])throw new TypeError('No method named "'+i+'"');t[i]()}})},t(_t,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),_t);function _t(e){this._element=e}h(document).on(kt.CLICK_DATA_API,'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',function(e){e.preventDefault(),Ct._jQueryInterface.call(h(this),"show")}),h.fn.tab=Ct._jQueryInterface,h.fn.tab.Constructor=Ct,h.fn.tab.noConflict=function(){return h.fn.tab=wt,Ct._jQueryInterface};var At="toast",Et="bs.toast",o="."+Et,$t=h.fn[At],Lt={CLICK_DISMISS:"click.dismiss"+o,HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o},Rt="show",Mt={animation:"boolean",autohide:"boolean",delay:"number"},It={animation:!0,autohide:!0,delay:500},Nt=((c=Dt.prototype).show=function(){var e,t=this,i=h.Event(Lt.SHOW);h(this._element).trigger(i),i.isDefaultPrevented()||(this._config.animation&&this._element.classList.add("fade"),i=function(){t._element.classList.remove("showing"),t._element.classList.add(Rt),h(t._element).trigger(Lt.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))},this._element.classList.remove("hide"),u.reflow(this._element),this._element.classList.add("showing"),this._config.animation?(e=u.getTransitionDurationFromElement(this._element),h(this._element).one(u.TRANSITION_END,i).emulateTransitionEnd(e)):i())},c.hide=function(){var e;this._element.classList.contains(Rt)&&(e=h.Event(Lt.HIDE),h(this._element).trigger(e),e.isDefaultPrevented()||this._close())},c.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Rt)&&this._element.classList.remove(Rt),h(this._element).off(Lt.CLICK_DISMISS),h.removeData(this._element,Et),this._element=null,this._config=null},c._getConfig=function(e){return e=s({},It,{},h(this._element).data(),{},"object"==typeof e&&e?e:{}),u.typeCheckConfig(At,e,this.constructor.DefaultType),e},c._setListeners=function(){var e=this;h(this._element).on(Lt.CLICK_DISMISS,'[data-dismiss="toast"]',function(){return e.hide()})},c._close=function(){function e(){i._element.classList.add("hide"),h(i._element).trigger(Lt.HIDDEN)}var t,i=this;this._element.classList.remove(Rt),this._config.animation?(t=u.getTransitionDurationFromElement(this._element),h(this._element).one(u.TRANSITION_END,e).emulateTransitionEnd(t)):e()},Dt._jQueryInterface=function(i){return this.each(function(){var e=h(this),t=e.data(Et);if(t||(t=new Dt(this,"object"==typeof i&&i),e.data(Et,t)),"string"==typeof i){if(void 0===t[i])throw new TypeError('No method named "'+i+'"');t[i](this)}})},t(Dt,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"DefaultType",get:function(){return Mt}},{key:"Default",get:function(){return It}}]),Dt);function Dt(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners()}h.fn[At]=Nt._jQueryInterface,h.fn[At].Constructor=Nt,h.fn[At].noConflict=function(){return h.fn[At]=$t,Nt._jQueryInterface},e.Alert=n,e.Button=G,e.Carousel=m,e.Collapse=ue,e.Dropdown=_,e.Modal=Re,e.Popover=at,e.Scrollspy=bt,e.Tab=Ct,e.Toast=Nt,e.Tooltip=I,e.Util=u,Object.defineProperty(e,"__esModule",{value:!0})}),function(){function l(e,i){var t,n;return i=a(e,i),(e=r.modules[i])||("function"==typeof(e=r.payloads[i])&&(t={id:i,uri:"",exports:n={},packaged:!0},n=e(function(e,t){return s(i,e,t)},n,t)||t.exports,r.modules[i]=n,delete r.payloads[i]),e=r.modules[i]=n||e),e}var e,t,i=function(){return this}(),r=(i||"undefined"==typeof window||(i=window),function(e,t,i){"string"!=typeof e?r.original?r.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(2==arguments.length&&(i=t),r.modules[e]||(r.payloads[e]=i,r.modules[e]=null))}),s=(r.modules={},r.payloads={},function(e,t,i){if("string"==typeof t){var n=l(e,t);if(null!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],s=0,a=t.length;s ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t=e.end,e=e.start,t=this.compare(t.row,t.column);return 1==t?1==(t=this.compare(e.row,e.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(e.row,e.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){e=this.compareRange(e);return-1==e||0==e||1==e},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row!==e||t<=this.end.column?0:1:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){var i,n;return this.end.row>t?i={row:t+1,column:0}:this.end.rowt?n={row:t+1,column:0}:this.start.row>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t,i={};for(t in e)i[t]=e[t];return i},t.copyArray=function(e){for(var t=[],i=0,n=e.length;iDate.now()-50)||(n=!1)},cancel:function(){n=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,i){"use strict";var B=e("../lib/event"),F=e("../lib/useragent"),j=e("../lib/dom"),z=e("../lib/lang"),H=e("../clipboard"),U=F.isChrome<18,q=F.isIE,W=63e+1?t.length:n,n+=r.length+1,r=r+"\n"+t):K&&0=m.length&&e.value===m&&m&&e.selectionEnd!==b}),w=null,k=(this.setInputHandler=function(e){w=e},!(this.getInputHandler=function(){return w})),T=function(e,t){if(k=k&&!1,p)return x(),e&&u.onPaste(e),p=!1,"";for(var i=d.selectionStart,n=d.selectionEnd,r=y,s=m.length-b,a=e,o=e.length-i,l=e.length-n,c=0;0y-1&&m[m.length-c]==e[e.length-c];)c++,s--;o-=c-1,l-=c-1;var h=a.length-c+1;return h<0&&(r=-h,h=0),a=a.slice(0,h),t||a||o||r||s||l?(h=!(g=!0),F.isAndroid&&". "==a&&(a=" ",h=!0),a&&!r&&!s&&!o&&!l||f?u.onTextInput(a):u.onTextInput(a,{extendLeft:r,extendRight:s,restoreStart:o,restoreEnd:l}),g=!1,m=e,y=i,b=n,v=l,h?"\n":a):""},S=function(e){if(a)return A();if(e&&e.inputType){if("historyUndo"==e.inputType)return u.execCommand("undo");if("historyRedo"==e.inputType)return u.execCommand("redo")}var e=d.value,t=T(e,!0);(500this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var e=e.getDocumentPosition(),t=this.editor,i=t.session.getBracketRange(e);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=t.selection.getWordRange(e.row,e.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var e=e.getDocumentPosition(),t=this.editor,i=(this.setState("selectByLines"),t.getSelectionRange());i.isMultiLine()&&i.contains(e.row,e.column)?(this.$clickSelection=t.selection.getLineRange(i.start.row),this.$clickSelection.end=t.selection.getLineRange(i.end.row).end):this.$clickSelection=t.selection.getLineRange(e.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){var t,i,n,r,s,a,o;if(!e.getAccelKey())return e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0),t=this.editor,this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0}),i=this.$lastScroll,r=(o=(n=e.domEvent.timeStamp)-i.t)?e.wheelX/o:i.vx,s=o?e.wheelY/o:i.vy,o<550&&(r=(r+i.vx)/2,s=(s+i.vy)/2),o=!1,1<=(a=Math.abs(r/s))&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(o=!0),(o=a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)?!0:o)?i.allowed=n:n-i.allowed<550&&(Math.abs(r)<=1.5*Math.abs(i.vx)&&Math.abs(s)<=1.5*Math.abs(i.vy)?(o=!0,i.allowed=n):i.allowed=0),i.t=n,i.vx=r,i.vy=s,o?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}e("./lib/oop");var r=e("./lib/dom");(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function u(e){a.call(this,e)}var d=e("../lib/dom"),n=e("../lib/oop"),p=e("../lib/event"),a=e("../tooltip").Tooltip;n.inherits(u,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),s=this.getHeight();i<(e+=15)+r&&(e-=e+r-i),n<(t+=15)+s&&(t-=20+s),a.prototype.setPosition.call(this,e,t)}}.call(u.prototype),t.GutterHandler=function(n){function r(){i=i&&clearTimeout(i),o&&(h.hide(),o=null,l._signal("hideGutterTooltip",h),l.off("mousewheel",r))}function s(e){h.setPosition(e.x,e.y)}var i,a,o,l=n.editor,c=l.renderer.$gutterLayer,h=new u(l.container);n.editor.setDefaultHandler("guttermousedown",function(e){if(l.isFocused()&&0==e.getButton()){var t=c.getRegion(e);if("foldWidgets"!=t){var t=e.getDocumentPosition().row,i=l.session.selection;if(e.getShiftKey())i.selectTo(t,0);else{if(2==e.domEvent.detail)return l.selectAll(),e.preventDefault();n.$clickSelection=l.selection.getLineRange(t)}return n.setState("selectByLines"),n.captureMouse(e),e.preventDefault()}}}),n.editor.setDefaultHandler("guttermousemove",function(e){var t=e.domEvent.target||e.domEvent.srcElement;if(d.hasCssClass(t,"ace_fold-widget"))return r();o&&n.$tooltipFollowsMouse&&s(e),a=e,i=i||setTimeout(function(){i=null,(a&&!n.isMousePressed?function(){var e=a.getDocumentPosition().row,t=c.$annotations[e];if(!t)return r();if(e==l.session.getLength()){var e=l.renderer.pixelToScreenCoordinates(0,a.y).row,i=a.$pos;if(e>l.session.documentToScreenRow(i.row,i.column))return r()}o!=t&&(o=t.text.join("
"),h.setHtml(o),h.show(),l._signal("showGutterTooltip",h),l.on("mousewheel",r),n.$tooltipFollowsMouse?s(a):(e=a.domEvent.target.getBoundingClientRect(),(i=h.getElement().style).left=e.right+"px",i.top=e.bottom+"px"))}:r)()},50)}),p.addListener(l.renderer.$gutter,"mouseout",function(e){a=null,o&&(i=i||setTimeout(function(){i=null,r()},50))},l),l.on("changeSession",r)}}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),e=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};!function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){var e,t;return null===this.$inSelection&&((e=this.editor.getSelectionRange()).isEmpty()?this.$inSelection=!1:(t=this.getDocumentPosition(),this.$inSelection=e.contains(t.row,t.column))),this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}.call(e.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(t){function e(){var e,t,i,n,r,s,a,o,l=d;d=b.renderer.screenToTextCoordinates(c,h),r=d,s=l,a=Date.now(),o=!s||r.row!=s.row,s=!s||r.column!=s.column,!m||o||s?(b.moveCursorToPosition(r),m=a,y={x:c,y:h}):5this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=(e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging"),_.isWin?"default":"move");e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;_.isIE&&"dragReady"==this.state&&3i&&(g=-1),d=e.clientX=a,p=e.clientY=s,k=T=0,new S(e,h));if(y=a.getDocumentPosition(),r-g<500&&1==t.length&&!x)w++,e.preventDefault(),e.button=0,m=null,clearTimeout(m),h.selection.moveToPosition(y),(s=2<=w?h.selection.getLineRange(y.row):h.session.getBracketRange(y))&&!s.isEmpty()?h.selection.setRange(s):h.selection.selectWord(),v="wait";else{w=0;var a=h.selection.cursor,t=h.selection.isEmpty()?a:h.selection.anchor,s=h.renderer.$cursorLayer.getPixelPosition(a,!0),a=h.renderer.$cursorLayer.getPixelPosition(t,!0),t=h.renderer.scroller.getBoundingClientRect(),o=h.renderer.layerConfig.offset,l=h.renderer.scrollLeft,c=function(e,t){return(e/=n)*e+(t=t/i-.75)*t};if(e.clientX=t.length||(r=i[n-1])!=S&&r!=C||(l=t[n+1])!=S&&l!=C?_:(l=y?C:l)==r?l:_;case M:return(r=0=e){for(n=l+1;n=e;)n++;for(r=l,s=n-1;r>8;return 0==i?191$&&t[o]t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var i=t?e.end:e.start,t=t?e.start:e.end;this.$setSelection(i.row,i.column,t.row,t.column)},this.$setSelection=function(e,t,i,n){var r,s;!this.$silent&&(r=this.$isEmpty,s=this.inMultiSelectMode,this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(i,n),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),this.$cursorChanged||this.$anchorChanged||r!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){var i;return void 0===t&&(e=(i=e||this.lead).row,t=i.column),this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),e=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(e)},this.getLineRange=function(e,t){var e="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(e),i=i?(e=i.start.row,i.end.row):e;return!0===t?new o(e,0,i,this.session.getLine(i).length):new o(e,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();(e=this.session.getFoldAt(t.row,t.column,-1))?this.moveCursorTo(e.start.row,e.start.column):0===t.column?0=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),ec&&(d=e.substring(c,m-f.length),u.type==p?u.value+=d:(u.type&&l.push(u),u={type:p,value:d}));for(var y=0;yb){for(h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});c=this.$rowTokens.length;){if(this.$row+=1,e=e||this.$session.getLength(),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0===i)for(i=0;0e.length&&(x=e.length)}),l==1/0&&(l=x,o=a=!1),h&&l%c!=0&&(l=Math.floor(l/c)*c),t(o?u:p)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var s,a,o=(d=new f(t,n.row,n.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(o&&/comment/.test(o.type)){for(;o&&/comment/.test(o.type);){if(-1!=(p=o.value.indexOf(r.start))){var c=d.getCurrentTokenRow(),h=d.getCurrentTokenColumn()+p,u=new m(c,h,c,h+r.start.length);break}o=d.stepBackward()}for(var d,p,o=(d=new f(t,n.row,n.column)).getCurrentToken();o&&/comment/.test(o.type);){if(-1!=(p=o.value.indexOf(r.end))){var c=d.getCurrentTokenRow(),h=d.getCurrentTokenColumn()+p,g=new m(c,h,c,h+r.end.length);break}o=d.stepForward()}g&&t.remove(g),u&&(t.remove(u),s=u.start.row,a=-r.start.length)}else a=r.start.length,s=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);l.start.row==s&&(l.start.column+=a),l.end.row==s&&(l.end.column+=a),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var n in this.$embeds=[],this.$modes={},e){var t,i,r;e[n]&&(i=(t=e[n]).prototype.$id,(r=a.$modes[i])||(a.$modes[i]=r=new t),a.$modes[n]||(a.$modes[n]=r),this.$embeds.push(n),this.$modes[n]=r)}for(var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],n=0;nthis.row||(e=e,t={row:this.row,column:this.column},i=this.$insertRight,n=((a="insert"==e.action)?1:-1)*(e.end.row-e.start.row),r=(a?1:-1)*(e.end.column-e.start.column),s=e.start,a=a?s:e.end,e=o(t,s,i)?{row:t.row,column:t.column}:o(a,t,!i)?{row:t.row+n,column:t.column+(t.row==a.row?r:0)}:{row:s.row,column:s.column},this.setPosition(e.row,e.column,!0))},this.setPosition=function(e,t,i){i=i?{row:e,column:t}:this.$clipPositionToDocument(e,t);this.row==i.row&&this.column==i.column||(e={row:this.row,column:this.column},this.row=i.row,this.column=i.column,this._signal("change",{old:e,value:i}))},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}.call(e.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";function n(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}var r=e("./lib/oop"),s=e("./apply_delta").applyDelta,a=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,l=e("./anchor").Anchor;(function(){r.implement(this,a),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new l(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){e=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=e?e[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t,i;return e.start.row===e.end.row?t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)]:((t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column),i=t.length-1,e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))),t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),e=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:e,action:"insert",lines:[t]},!0),this.clonePos(e)},this.clippedPos=function(e,t){var i=this.getLength(),i=(void 0===e?e=i:e<0?e=0:i<=e&&(e=i-1,t=void 0),this.getLine(e));return null==t&&(t=i.length),{row:e,column:t=Math.min(Math.max(t,0),i.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0,i=(e=Math.min(Math.max(e,0),this.getLength()))e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=t.tokens}}).call(n.prototype),t.BackgroundTokenizer=n}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"}var c=e("./lib/lang"),h=(e("./lib/oop"),e("./range").Range);(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,n){if(this.regExp)for(var r=n.firstRow,s=n.lastRow,a=r;a<=s;a++){var o=this.cache[a];null==o&&(o=(o=(o=c.getMatchOffsets(i.getLine(a),this.regExp)).length>this.MAX_RANGES?o.slice(0,this.MAX_RANGES):o).map(function(e){return new h(a,e.offset,a,e.offset+e.length)}),this.cache[a]=o.length?o:"");for(var l=o.length;l--;)t.drawSingleLineMarker(e,o[l].toScreenRange(i),this.clazz,n)}}}).call(n.prototype),t.SearchHighlight=n}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function r(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];e=t[t.length-1];this.range=new n(t[0].start.row,t[0].start.column,e.end.row,e.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var n=e("../range").Range;(function(){this.shiftRow=function(t){this.start.row+=t,this.end.row+=t,this.folds.forEach(function(e){e.start.row+=t,e.end.row+=t})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),0=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,s=0,a=this.folds,o=!0;null==t&&(t=this.end.row,i=this.end.column);for(var l=0;lt||i[i.length-1].start.row=n);a++);if("insert"==e.action)for(var l=r-n,c=-t.column+i.column;an)break;h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$bias<=0||(h.start.column+=c,h.start.row+=l)),h.end.row==n&&h.end.column>=t.column&&(h.end.column==t.column&&this.$bias<0||(h.end.column==t.column&&0h.start.column&&h.end.column==s[a+1].start.column&&(h.end.column-=c),h.end.column+=c,h.end.row+=l))}else for(var h,l=n-r,c=t.column-i.column;ar)break;h.end.rowt.column)&&(h.end.column=t.column,h.end.row=t.row):(h.end.column+=c,h.end.row+=l):h.end.row>r&&(h.end.row+=l),h.start.rowt.column)&&(h.start.column=t.column,h.start.row=t.row):(h.start.column+=c,h.start.row+=l):h.start.row>r&&(h.start.row+=l)}if(0!=l&&a=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(-1==(n=t?i.indexOf(t):n)&&(n=0);n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;ro)break}while(r&&a.test(r.type));r=n.stepBackward()}else r=n.getCurrentToken();return s.end.row=n.getCurrentTokenRow(),s.end.column=n.getCurrentTokenColumn()+r.value.length-2,s}},this.foldAll=function(e,t,i,n){null==i&&(i=1e5);var r=this.foldWidgets;if(r){t=t||this.getLength();for(var s,a=e=e||0;a=e&&(a=s.end.row,s.collapseChildren=i,this.addFold("...",s))}},this.foldToLevel=function(e){for(this.foldAll();0=e)break}n--}return{range:-1!==n&&s,firstRange:a}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};this.$toggleFoldWidget(e,i)||(e=t.target||t.srcElement)&&/ace_fold-widget/.test(e.className)&&(e.className+=" ace_invalid")},this.$toggleFoldWidget=function(e,t){var i,n,r,s;if(this.getFoldWidget)return i=this.getFoldWidget(e),n=this.getLine(e),(n=this.getFoldAt(e,-1==(i="end"===i?-1:1)?0:n.length,i))?(t.children||t.all?this.removeFold(n):this.expandFold(n),n):(i=this.getFoldWidgetRange(e,!0))&&!i.isMultiLine()&&(n=this.getFoldAt(i.start.row,i.start.column,1))&&i.isEqual(n.range)?(this.removeFold(n),n):(t.siblings?((n=this.getParentFoldRangeData(e)).range&&(r=n.range.start.row+1,s=n.range.end.row),this.foldAll(r,s,t.all?1e4:0)):t.children?(s=i?i.end.row:this.getLength(),this.foldAll(e+1,s,t.all?1e4:0)):i&&(t.all&&(i.collapseChildren=1e4),this.addFold("...",i)),i)},this.toggleFoldWidget=function(e){var t,i=this.selection.getCursor().row;i=this.getRowFoldStart(i),!this.$toggleFoldWidget(i,{})&&(t=(t=this.getParentFoldRangeData(i,!0)).range||t.firstRange)&&(i=t.start.row,(i=this.getFoldAt(i,this.getLine(i).length,1))?this.removeFold(i):this.addFold("...",t))},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;0==i?this.foldWidgets[t]=null:"remove"==e.action?this.foldWidgets.splice(t,1+i,null):((e=Array(1+i)).unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,e))},this.tokenizerUpdateFoldWidgets=function(e){e=e.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var u=e("../token_iterator").TokenIterator,o=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){return 0!=e.column&&""!=(t=t||this.getLine(e.row).charAt(e.column-1))&&(t=t.match(/([\(\[\{])|([\)\]\}])/))?t[1]?this.$findClosingBracket(t[1],e):this.$findOpeningBracket(t[2],e):null},this.getBracketRange=function(e){var t,i,n=this.getLine(e.row),r=!0,s=n.charAt(e.column-1),a=s&&s.match(/([\(\[\{])|([\)\]\}])/);if(a||(s=n.charAt(e.column),e={row:e.row,column:e.column+1},a=s&&s.match(/([\(\[\{])|([\)\]\}])/),r=!1),!a)return null;if(a[1]){if(!(i=this.$findClosingBracket(a[1],e)))return null;t=o.fromPoints(e,i),r||(t.end.column++,t.start.column--),t.cursor=t.end}else{if(!(i=this.$findOpeningBracket(a[2],e)))return null;t=o.fromPoints(i,e),r||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e){var t=this.getLine(e.row),i=t.charAt(e.column-1),n=i&&i.match(/([\(\[\{])|([\)\]\}])/);return n||(i=t.charAt(e.column),e={row:e.row,column:e.column+1},n=i&&i.match(/([\(\[\{])|([\)\]\}])/)),n?(t=new o(e.row,e.column-1,e.row,e.column),(i=n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e))?[t,new o(i.row,i.column,i.row,i.column+1)]:[t]):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],r=1,s=new u(this,t.row,t.column),a=s.getCurrentToken();if(a=a||s.stepForward()){i=i||new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+");for(var o=t.column-s.getCurrentTokenColumn()-2,l=a.value;;){for(;0<=o;){var c=l.charAt(o);if(c==n){if(0==--r)return{row:s.getCurrentTokenRow(),column:o+s.getCurrentTokenColumn()}}else c==e&&(r+=1);--o}for(;(a=s.stepBackward())&&!i.test(a.type););if(null==a)break;o=(l=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],r=1,s=new u(this,t.row,t.column),a=s.getCurrentToken();if(a=a||s.stepForward()){i=i||new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+");for(var o=t.column-s.getCurrentTokenColumn();;){for(var l=a.value,c=l.length;o>1,s=e[r];if(st&&(t=e.screenWidth)}),this.lineWidgetWidth=t)},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,s=this.$foldData[r],a=s?s.start.row:1/0,o=t.length,l=0;ln&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=e.length-1;-1!=i;i--){var n=e[i];"insert"==n.action||"remove"==n.action?this.doc.revertDelta(n):n.folds&&this.addFolds(n.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=0;ie.end.column&&(t.start.column+=s),t.end.row==e.end.row)&&t.end.column>e.end.column&&(t.end.column+=s),r&&t.start.row>=e.end.row&&(t.start.row+=r,t.end.row+=r)),t.end=this.insert(t.start,a),o.length&&(n=e.start,i=t.start,r=i.row-n.row,s=i.column-n.column,this.addFolds(o.map(function(e){return(e=e.clone()).start.row==n.row&&(e.start.column+=s),e.end.row==n.row&&(e.end.column+=s),e.start.row+=r,e.end.row+=r,e}))),t},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new u(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var s=this.getLine(r);i.start.row=r,i.end.row=r;for(var a=0;athis.doc.getLength()-1)return 0;n=r-t}else{e=this.$clipRowToDocument(e);n=(t=this.$clipRowToDocument(t))-e+1}var r=new u(e,0,t,Number.MAX_VALUE),r=this.getFoldsInRange(r).map(function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e}),i=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,i),r.length&&this.addFolds(r),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){var i;return t=Math.max(0,t),t=e<0?e=0:(i=this.doc.getLength())<=e?this.doc.getLine(e=i-1).length:Math.min(this.doc.getLine(e).length,t),{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){e!=this.$useWrapMode&&(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e&&(e=this.getLength(),this.$wrapData=Array(e),this.$updateWrapData(0,e-1)),this._signal("changeWrapMode"))},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange,t=(i.max<0&&(i={min:t,max:t}),this.$constrainWrapLimit(e,i.min,i.max));return t!=this.$wrapLimit&&1=r.row&&p.shiftRow(-o);a=s}else{var u=Array(o),d=(u.unshift(s,0),t?this.$wrapData:this.$rowLengthCache),c=(d.splice.apply(d,u),this.$foldData),h=0;for((p=this.getFoldLine(s))&&(0==(d=p.range.compareInside(n.row,n.column))?(p=p.split(n.row,n.column))&&(p.shiftRow(o),p.addRemoveChars(a,0,r.column-n.column)):-1==d&&(p.addRemoveChars(s,0,r.column-n.column),p.shiftRow(o)),h=c.indexOf(p)+1);h=s&&p.shiftRow(o)}else{var p,o=Math.abs(e.start.column-e.end.column);"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),o=-o),(p=this.getFoldLine(s))&&p.addRemoveChars(s,n.column,o)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,a):this.$updateRowLengthCache(s,a),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var a,i,o=this.doc.getAllLines(),n=this.getTabSize(),r=this.$wrapData,s=this.$wrapLimit,l=e;for(t=Math.min(t,o.length-1);l<=t;)(i=this.getFoldLine(l,i))?(a=[],i.walk(function(e,t,i,n){var r;if(null!=e){(r=this.$getDisplayTokens(e,a.length))[0]=g;for(var s=1;s>2)),o-1);ph[d-1]):!d,this.getLength()-1),g=this.getNextFoldLine(a),f=g?g.start.row:1/0;l<=e&&!(eo[c-1]):!c,this.getNextFoldLine(a)),u=h?h.start.row:1/0;a=p[g];)n++,g++;d=d.substring(p[g-1]||0,d.length),l=0u||(r.push(a=new v(c,u,c+o-1,d)),2y&&r[h].end.row==i.end.row;)h--;for(r=r.slice(p,h+1),p=0,h=r.length;p=r.length)break;u.lastIndex=o+=1}if(n.index+a>t)break;s.push(n.index,a)}for(var l=s.length-1;0<=l;l-=2){var c=s[l-1];if(i(e,c,e,c+(a=s[l])))return!0}}:function(e,t,i){var n=h.getLine(e);for(u.lastIndex=t;r=u.exec(n);){var r,s=r[0].length;if(i(e,r=r.index,e,r+s))return!0;if(!s&&(u.lastIndex=r+=1,r>=n.length))return!1}},{forEach:o?function(e){var t=n.row;if(!a(t,n.column,e)){for(t--;r<=t;t--)if(a(t,Number.MAX_VALUE,e))return;if(0!=i.wrap)for(t=s,r=n.row;r<=t;t--)if(a(t,Number.MAX_VALUE,e))return}}:function(e){var t=n.row;if(!a(t,n.column,e)){for(t+=1;t<=s;t++)if(a(t,0,e))return;if(0!=i.wrap)for(t=r,s=n.row;t<=s;t++)if(a(t,0,e))return}}})}}).call(n.prototype),t.Search=n}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),l=o.KEY_MODS;r.prototype=n.prototype,function(){function a(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),(this.commands[e.name]=e).bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i,n=e&&("string"==typeof e?e:e.name),r=(e=this.commands[n],t||delete this.commands[n],this.commandKeyBinding);for(i in r){var s,a=r[i];a==e?delete r[i]:Array.isArray(a)&&-1!=(s=a.indexOf(e))&&(a.splice(s,1),1==a.length)&&(r[i]=a[0])}},this.bindKey=function(e,n,r){if("object"==typeof e&&e&&(null==r&&(r=e.position),e=e[this.platform]),e)return"function"==typeof n?this.addCommand({exec:n,bindKey:e,name:n.name||e}):void e.split("|").forEach(function(e){var t="",i=(-1!=e.indexOf(" ")&&(e=(i=e.split(/\s+/)).pop(),i.forEach(function(e){e=this.parseKeys(e),e=l[e.hashId]+e.key;t+=(t?" ":"")+e,this._addCommandToBinding(t,"chainKeys")},this),t+=" "),this.parseKeys(e)),e=l[i.hashId]+i.key;this._addCommandToBinding(t+e,n,r)},this)},this._addCommandToBinding=function(e,t,i){var n=this.commandKeyBinding;if(t)if(!n[e]||this.$singleCommand)n[e]=t;else{Array.isArray(n[e])?-1!=(s=n[e].indexOf(t))&&n[e].splice(s,1):n[e]=[n[e]],"number"!=typeof i&&(i=a(t));for(var r=n[e],s=0;st?t+1:t,e.selection.moveCursorTo(i.row,t))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var s=0;s=n.lastRow||i.end.row<=n.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==t&&this.renderer.animateScrolling(this.curOp.scrollTop)}e=this.selection.toJSON();this.curOp.selectionAfter=e,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(e),this.prevOp=this.curOp,this.curOp=null}}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){var t,i,n,r;this.$mergeUndoDeltas&&(t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name,"insertstring"==e.command.name?(r=e.args,void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0):n=n&&-1!==i.indexOf(e.command.name),(n="always"!=this.$mergeUndoDeltas&&2e3"===n.value&&o--),n&&0<=o;);else{do{if(n=l,l=i.stepBackward(),n)if(-1!==n.type.indexOf("tag-name"))s===n.value&&("<"===l.value?o++:""===n.value){for(var c=0,h=l;h;){if(-1!==h.type.indexOf("tag-name")&&h.value===s){o--;break}if("<"===h.value)break;h=i.stepBackward(),c++}for(var u=0;uo.search(/\S|$/)&&(t=o.substr(s.column).search(/\S|$/),n.doc.removeInLine(s.row,s.column,s.column+t))),this.clearSelection(),s.column),t=n.getState(s.row),o=n.getLine(s.row),l=r.checkOutdent(t,o,e);n.insert(s,e),i&&i.selection&&(2==i.selection.length?this.selection.setSelectionRange(new m(s.row,a+i.selection[0],s.row,a+i.selection[1])):this.selection.setSelectionRange(new m(s.row+i.selection[0],i.selection[1],s.row+i.selection[2],i.selection[3]))),this.$enableAutoIndent&&(n.getDocument().isNewLine(e)&&(a=r.getNextLineIndent(t,o.slice(0,s.column),n.getTabString()),n.insert({row:s.row+1,column:0},a)),l)&&r.autoOutdent(t,n,s.row)},this.autoIndent=function(){for(var e,t,i,n,r,s=this.session,a=s.getMode(),o=(i=this.selection.isEmpty()?(t=0,s.doc.getLength()-1):(t=(e=this.getSelectionRange()).start.row,e.end.row),""),l="",c=s.getTabString(),h=t;h<=i;h++)0t.toLowerCase()?1:0});for(var r=new m(0,0,0,0),n=e.first;n<=e.last;n++){var s=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=s.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){for(var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g,n=(i.lastIndex=0,this.session.getLine(e));i.lastIndex=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},this.modifyNumber=function(e){var t,i,n,r=this.selection.getCursor().row,s=this.selection.getCursor().column,a=new m(r,s-1,r,s),a=this.session.getTextRange(a);!isNaN(parseFloat(a))&&isFinite(a)?(a=this.getNumberAt(r,s))&&(n=0<=a.value.indexOf(".")?a.start+a.value.indexOf(".")+1:a.end,t=a.start+a.value.length-n,i=parseFloat(a.value),i*=Math.pow(10,t),n!==a.end&&sp+1)break;p=g.last}for(h--,o=this.session.$moveLines(d,p,t?0:e),t&&-1==e&&(u=h+1);u<=h;)a[u].moveBy(o,0),u++;l+=o=t?o:0}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight),e=(!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),i.scrollTop);i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(e)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),e={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(e,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new v(this.session,i.row,i.column),r=n.getCurrentToken(),s=r||n.stepForward();if(s){var a,o,l,c=!1,h={},u=i.column-s.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;uwindow.innerHeight)&&null)&&(a.style.top=i+"px",a.style.left=e.left+"px",a.style.height=t.lineHeight+"px",a.scrollIntoView(s)),s=n=null)}),this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",t),this.renderer.off("afterRender",o),this.renderer.off("beforeRender",i))})},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,n.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},this.prompt=function(t,i,n){var r=this;b.loadModule("./ext/prompt",function(e){e.prompt(r,t,i,n)})}}.call(r.prototype),b.defineOptions(r.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?w.attach(this):w.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?w.attach(this):w.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());e&&this.renderer.placeholderNode?(this.renderer.off("afterRender",this.$updatePlaceholder),n.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null):e||this.renderer.placeholderNode?!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||""):(this.renderer.on("afterRender",this.$updatePlaceholder),n.addCssClass(this.container,"ace_hasPlaceholder"),(e=n.createElement("div")).className="ace_placeholder",e.textContent=this.$placeholder||"",this.renderer.placeholderNode=e,this.renderer.content.appendChild(this.renderer.placeholderNode))}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),{getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,i){return Math.max(t.toString().length,(i.lastRow+1).toString().length,2)*i.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}});t.Editor=r}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,i){"use strict";function r(e,t){for(var i=t;i--;){var n=e[i];if(n&&!n[0].ignore){for(;i"+e.end.row+":"+e.end.column}function a(e,t){var i="insert"==e.action,n="insert"==t.action;if(i&&n)if(0<=g(t.start,e.end))l(t,e,-1);else{if(!(g(t.start,e.start)<=0))return;l(e,t,1)}else if(i&&!n)if(0<=g(t.start,e.end))l(t,e,-1);else{if(!(g(t.end,e.start)<=0))return;l(e,t,-1)}else if(!i&&n)if(0<=g(t.start,e.start))l(t,e,1);else{if(!(g(t.start,e.start)<=0))return;l(e,t,1)}else if(!i&&!n)if(0<=g(t.start,e.start))l(t,e,1);else{if(!(g(t.end,e.start)<=0))return;l(e,t,-1)}return 1}function l(e,t,i){c(e.start,t.start,t.end,i),c(e.end,t.start,t.end,i)}function c(e,t,i,n){e.row==(1==n?t:i).row&&(e.column+=n*(i.column-t.column)),e.row+=n*(i.row-t.row)}function h(e,t){var i=e.lines,n=e.end,r=(e.end=o(t),e.end.row-e.start.row),s=i.splice(r,i.length),r=r?t.column:t.column-e.start.column;return i.push(s[0].substring(0,r)),s[0]=s[0].substr(r),{start:o(t),end:n,lines:s,action:e.action}}function u(e,t){var i;t={start:o((i=t).start),end:o(i.end),action:i.action,lines:i.lines.slice()};for(var n=e.length;n--;){for(var r=e[n],s=0;so+1;)this.$lines.pop();break}(a=this.$lines.get(++o))?a.row=l:(a=this.$lines.createCell(l,e,this.session,c),this.$lines.push(a)),this.$renderCell(a,e,r,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,i=t.gutterRenderer||this.$renderer,n=t.$firstLineNumber,r=this.$lines.last()?this.$lines.last().text:"",n=((this.$fixedWidth||t.$useWrapMode)&&(r=t.getLength()+n-1),i?i.getWidth(t,r,e):r.toString().length*e.characterWidth),i=this.$padding||this.$computePadding();(n+=i.left+i.right)===this.gutterWidth||isNaN(n)||(this.gutterWidth=n,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",n))},this.$updateCursorRow=function(){var e;this.$highlightGutterLine&&(e=this.session.selection.getCursor(),this.$cursorRow!==e.row)&&(this.$cursorRow=e.row)},this.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var i=0;i=this.$cursorRow){if(n.row>this.$cursorRow){var r=this.session.getFoldLine(this.$cursorRow);if(!(0i.right-t.right?"foldWidgets":void 0}}).call(n.prototype),t.Gutter=n}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}var p=e("../range").Range,r=e("../lib/dom");(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var i=-1!=this.i&&this.element.childNodes[this.i];i?this.i++:(i=document.createElement("div"),this.element.appendChild(i),this.i=-1),i.style.cssText=t,i.className=e},this.update=function(e){if(e){var t,i;for(i in this.config=e,this.i=0,this.markers){var n,r,s,a=this.markers[i];a.range?(s=a.range.clipRows(e.firstRow,e.lastRow)).isEmpty()||(s=s.toScreenRange(this.session),a.renderer?(n=this.$getTop(s.start.row,e),r=this.$padding+s.start.column*e.characterWidth,a.renderer(t,s,r,n,e)):"fullLine"==a.type?this.drawFullLineMarker(t,s,a.clazz,e):"screenLine"==a.type?this.drawScreenLineMarker(t,s,a.clazz,e):s.isMultiLine()?"text"==a.type?this.drawTextMarker(t,s,a.clazz,e):this.drawMultiLineMarker(t,s,a.clazz,e):this.drawSingleLineMarker(t,s,a.clazz+" ace_start ace_br15",e)):a.update(t,this,this.session,e)}if(-1!=this.i)for(;this.ie.lastRow)for(r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);0t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,i){for(var n=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;a=s;)a=this.$renderToken(o,a,c,h.substring(0,s-n)),h=h.substring(s-n),n=s,o=this.$createLineElement(),e.appendChild(o),o.appendChild(this.dom.createTextNode(y.stringRepeat(" ",i.indent),this.element)),a=0,s=i[++r]||Number.MAX_VALUE;0!=h.length&&(n+=h.length,a=this.$renderToken(o,a,c,h))}}i[i.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(o,a,null,"",!0)},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;(r=this.displayIndentGuides?this.renderIndentGuide(e,r):r)&&(i=this.$renderToken(e,i,n,r));for(var s=1;sthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,i,n,r);i=this.$renderToken(e,i,n,r)}},this.$renderOverflowMessage=function(e,t,i,n,r){i&&this.$renderToken(e,t,i,n.slice(0,this.MAX_LINE_LENGTH-t));i=this.dom.createElement("span");i.className="ace_inline_button ace_keyword ace_toggle_wrap",i.textContent=r?"":"",e.appendChild(i)},this.$renderLine=function(e,t,i){var n,r,s=e;(n=(i=i||0==i?i:this.session.getFoldLine(t))?this.$getFoldLineTokens(t,i):this.session.getTokens(t)).length?(r=this.session.getRowSplitData(t))&&r.length?(this.$renderWrappedLine(e,n,r),s=e.lastChild):(s=e,this.$useLineGroups()&&(s=this.$createLineElement(),e.appendChild(s)),this.$renderSimpleLine(s,n)):this.$useLineGroups()&&(s=this.$createLineElement(),e.appendChild(s)),this.showEOL&&s&&(i&&(t=i.end.row),(r=this.dom.createElement("span")).className="ace_invisible ace_invisible_eol",r.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,s.appendChild(r))},this.$getFoldLineTokens=function(e,t){var u=this.session,d=[],p=u.getTokens(e);return t.walk(function(e,t,i,n,r){if(null!=e)d.push({type:"fold",value:e});else if((p=r?u.getTokens(t):p).length){for(var s,a=p,o=n,l=i,c=0,h=0;h+a[c].value.lengthl-o&&(s=s.substring(0,l-o)),d.push({type:a[c].type,value:s}),h=o+s.length,c+=1);hl?d.push({type:a[c].type,value:s.substring(0,l-h)}):d.push(a[c]),h+=s.length,c+=1}},t.end.row,this.session.getLine(t.end.row).length),d},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(n.prototype),t.Text=n}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.element=c.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),c.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}var c=e("../lib/dom");(function(){this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)c.setStyle(t[i].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";setTimeout(function(){c.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){c.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,c.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=c.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){var e;if(1e.height+e.offset||o.top<0)&&1n;)this.removeCursor();var l=this.session.getOverwrite();this.$setOverwrite(l),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&((this.overwrite=e)?c.addCssClass(this.element,"ace_overwrite-cursors"):c.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(n.prototype),t.Cursor=n}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";function n(e){this.element=o.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=o.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,l.addListener(this.element,"scroll",this.onScroll.bind(this)),l.addListener(this.element,"mousedown",l.preventDefault)}function r(e,t){n.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=o.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0}function s(e,t){n.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"}var a=e("./lib/oop"),o=e("./lib/dom"),l=e("./lib/event"),c=e("./lib/event_emitter").EventEmitter;!function(){a.implement(this,c),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}.call(n.prototype),a.inherits(r,n),function(){this.classSuffix="-v",this.onScroll=function(){var e;this.skipEvent||(this.scrollTop=this.element.scrollTop,1!=this.coeff&&(e=this.element.clientHeight/this.scrollHeight,this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)),this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){32768<(this.scrollHeight=e)?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(r.prototype);a.inherits(s,n),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(s.prototype),t.ScrollBar=r,t.ScrollBarV=r,t.ScrollBarH=s,t.VScrollBar=r,t.HScrollBar=s}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";function n(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var i=this;this._flush=function(e){i.pending=!1;var t=i.changes;t&&(r.blockIdle(100),i.changes=0,i.onRender(t)),i.changes?i.$recursionLimit--<0||i.schedule():i.$recursionLimit=2}}var r=e("./lib/event");(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(n.prototype),t.RenderLoop=n}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),s=e("../lib/lang"),a=e("../lib/event"),o=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c="function"==typeof ResizeObserver,e=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",256),this.$characterSize={width:0,height:0},c?this.$addObserver():this.checkForSizeChanges()};!function(){n.implement(this,l),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){var t;!(e=void 0===e?this.$measureSizes():e)||this.$characterSize.width===e.width&&this.$characterSize.height===e.height||(this.$measureNode.style.fontWeight="bold",t=this.$measureSizes(),this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e}))},this.$addObserver=function(){var t=this;this.$observer=new window.ResizeObserver(function(e){t.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){var t;return this.$pollSizeChangesTimer||this.$observer?this.$pollSizeChangesTimer:(t=this).$pollSizeChangesTimer=a.onIdle(function e(){t.checkForSizeChanges(),a.onIdle(e,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){e={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/256};return 0===e.width||0===e.height?null:e},this.$measureCharWidth=function(e){return this.$main.textContent=s.stringRepeat(e,256),this.$main.getBoundingClientRect().width/256},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t=void 0===t?this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width:t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t&&t.parentElement?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){function e(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]}this.els=r.buildDom([e(0,0),e(200,0),e(0,200),e(200,200)],this.el)},this.transformCoordinates=function(e,t){function i(e,t,i){var n=e[1]*t[0]-e[0]*t[1];return[(-t[1]*i[0]+t[0]*i[1])/n,(+e[1]*i[0]-e[0]*i[1])/n]}function n(e,t){return[e[0]-t[0],e[1]-t[1]]}function r(e,t){return[e[0]+t[0],e[1]+t[1]]}function s(e,t){return[e*t[0],e*t[1]]}function a(e){e=e.getBoundingClientRect();return[e.left,e.top]}e=e&&s(1/this.$getZoom(this.el),e),this.els||this.$initTransformMeasureNodes();var o,l=a(this.els[0]),c=a(this.els[1]),h=a(this.els[2]),u=a(this.els[3]),u=i(n(u,c),n(u,h),n(r(c,h),r(u,l))),c=s(1+u[0],n(c,l)),h=s(1+u[1],n(h,l));return t?(o=u[0]*t[0]/200+u[1]*t[1]/200+1,t=r(s(t[0],c),s(t[1],h)),r(s(1/o/200,t),l)):(o=n(e,l),t=i(n(c,s(u[0],o)),n(h,s(u[1],o)),o),s(200,t))}}.call(e.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){var i=this,e=(this.container=e||o.createElement("div"),o.addCssClass(this.container,"ace_editor"),o.HI_DPI&&o.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),this.$gutter=o.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=o.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=o.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content),this.$textLayer=new c(this.content));this.canvas=e.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new u(this.container,this),this.scrollBarV.on("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new g(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!y.isIOS,this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)}var r=e("./lib/oop"),o=e("./lib/dom"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,g=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter,m='.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;padding: 0;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;font-variant-ligatures: no-common-ligatures;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_error_bracket {position: absolute;border-bottom: 1px solid #DE5555;border-radius: 0;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);transform-origin: left;white-space: pre;opacity: 0.7;margin: 0 10px;}',y=e("./lib/useragent"),b=y.isIE;o.importCssString(m,"ace_editor.css");(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),o.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),(this.session=e)&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(2a.height-n?o.translate(this.textarea,0,0):(a=1,r=this.$size.height-n,s?s.useTextareaForIME?(s=this.textarea.value,a=this.characterWidth*this.session.$getStringScreenWidth(s)[0]):t+=this.lineHeight+2:t+=this.lineHeight,(i-=this.scrollLeft)>this.$size.scrollerWidth-a&&(i=this.$size.scrollerWidth-a),i+=this.gutterWidth+this.margin.left,o.setStyle(e,"height",n+"px"),o.setStyle(e,"width",a+"px"),o.translate(this.textarea,Math.min(i,this.$size.scrollerWidth-a),Math.min(t,r)))):o.translate(this.textarea,-100,0))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.setMargin=function(e,t,i,n){var r=this.margin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t)&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i,n,t=this.layerConfig;(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL)&&(e|=this.$computeLayerConfig()|this.$loop.clear(),t.firstRow!=this.layerConfig.firstRow&&t.firstRowScreen==this.layerConfig.firstRowScreen&&0<(i=this.scrollTop+(t.firstRow-this.layerConfig.firstRow)*this.lineHeight)&&(this.scrollTop=i,e=(e|=this.CHANGE_SCROLL)|(this.$computeLayerConfig()|this.$loop.clear())),t=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),o.translate(this.content,-this.scrollLeft,-t.offset),i=t.width+2*this.$padding+"px",n=t.minHeight+"px",o.setStyle(this.content.style,"width",i),o.setStyle(this.content.style,"height",n)),e&this.CHANGE_H_SCROLL&&(o.translate(this.content,-this.scrollLeft,-t.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$changedLines=null,this.$textLayer.update(t),this.$showGutter&&this.$gutterLayer.update(t),this.$markerBack.update(t),this.$markerFront.update(t),this.$cursorLayer.update(t),this.$moveTextAreaToCursor()):e&this.CHANGE_SCROLL?(this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(t):this.$textLayer.scrollLines(t),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(t):this.$gutterLayer.scrollLines(t)),this.$markerBack.update(t),this.$markerFront.update(t),this.$cursorLayer.update(t),this.$moveTextAreaToCursor()):(e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(t),this.$showGutter&&this.$gutterLayer.update(t)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(t):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(t):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(t),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(t),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(t),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(t)),this._signal("afterRender",e)}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight());t=!((i=this.$maxPixelHeight&&i>this.$maxPixelHeight?this.$maxPixelHeight:i)<=2*this.lineHeight)&&th.top)),c=a!==n,h=(c&&(this.$vScroll=n,this.scrollBarV.setVisible(n)),this.scrollTop%this.lineHeight),a=Math.ceil(l/this.lineHeight)-1,a=(n=Math.max(0,Math.round((this.scrollTop-h)/this.lineHeight)))+a,u=this.lineHeight,n=t.screenToDocumentRow(n,0),d=t.getFoldLine(n),t=(d&&(n=d.start.row),d=t.documentToScreenRow(n,0),e=t.getRowLength(n)*u,a=Math.min(t.screenToDocumentRow(a,0),t.getLength()-1),l=i.scrollerHeight+t.getRowLength(a)*u+e,h=this.scrollTop-d*u,0);return this.layerConfig.width==s&&!o||(t=this.CHANGE_H_SCROLL),(o||c)&&(t|=this.$updateCachedSize(!0,this.gutterWidth,i.width,i.height),this._signal("scrollbarVisibilityChanged"),c)&&(s=this.$getLongestLine()),this.layerConfig={width:s,padding:this.$padding,firstRow:n,firstRowScreen:d,lastRow:a,lineHeight:u,characterWidth:this.characterWidth,minHeight:l,maxHeight:r,offset:h,gutterOffset:u?Math.max(0,Math.ceil((h+i.height-i.scrollerHeight)/u)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),t},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow,i=(this.$changedLines=null,this.layerConfig);if(!(e>i.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,i){this.scrollCursorIntoView(e,i),this.scrollCursorIntoView(t,i)},this.scrollCursorIntoView=function(e,t,i){var n,r,s;0!==this.$size.scrollerHeight&&(n=(e=this.$cursorLayer.getPixelPosition(e)).left,e=e.top,s=i&&i.top||0,i=i&&i.bottom||0,e<(r=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop)+s?(t&&r+s>e+this.lineHeight&&(e-=t*this.$size.scrollerHeight),0===e&&(e=-this.scrollMargin.top),this.session.setScrollTop(e)):r+this.$size.scrollerHeight-i=1-this.scrollMargin.top||0=1-this.scrollMargin.left||0this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);e.UIWorkerClient=function(e,t,i){var n=null,r=!1,s=Object.create(h),a=[],o=new c({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e),n&&(r?setTimeout(l):l())}}),l=(o.setEmitSync=function(e){r=e},function(){var e=a.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)});return s.postMessage=function(e){o.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},u.loadModule(["worker",t],function(e){for(n=new e[i](s);a.length;)l()}),o},e.WorkerClient=c,e.createWorker=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";function n(e,t,i,n,r,s){var a=this,t=(this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){a.onCursorChange()})},this.$pos=i,e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1});this.$undoStackDepth=t.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}var l=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop");(function(){s.implement(this,r),this.setup=function(){var t=this,i=this.doc,e=this.session,n=(this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=i.createAnchor(this.$pos.row,this.$pos.column),this.pos);n.$insertRight=!0,n.detach(),n.markerId=e.addMarker(new l(n.row,n.column,n.row,n.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(e){e=i.createAnchor(e.row,e.column);e.$insertRight=!0,e.detach(),t.others.push(e)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){var t,i;this.othersActive||(t=this.session,(i=this).othersActive=!0,this.others.forEach(function(e){e.markerId=t.addMarker(new l(e.row,e.column,e.row,e.column+i.length),i.othersClass,null,!1)}))},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),n&&(this.length+=i),n&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;0<=s;s--){var a={row:(o=this.others[s]).row,column:o.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;0<=s;s--){var o,a={row:(o=this.others[s]).row,column:o.column+r};this.doc.remove(new l(a.row,a.column,a.row,a.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var i=this,n=this.session,e=function(e,t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new l(e.row,e.column,e.row,e.column+i.length),t,null,!1)};e(this.pos,this.mainClass);for(var t=this.others.length;t--;)e(this.others[t],this.othersClass)}},this.onCursorChange=function(e){var t;!this.$updating&&this.session&&((t=this.session.selection.getCursor()).row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e)))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;is&&(s=e.column),(t=-1==t?0:t)t[1].length&&(r=t[1].length),st[3].length&&(a=t[3].length)),t):[e]}).map(t?n:o?l?function(e){return e[2]?i(r+s-e[2].length)+e[2]+i(a)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:n:function(e){return e[2]?i(r)+e[2]+i(a)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]})}}).call(c.prototype),r.onSessionChange=function(e){var t=e.session,e=(t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect,e.oldSession);e&&(e.multiSelect.off("addRange",this.$onAddRange),e.multiSelect.off("removeRange",this.$onRemoveRange),e.multiSelect.off("multiSelect",this.$onMultiSelect),e.multiSelect.off("singleSelect",this.$onSingleSelect),e.multiSelect.lead.off("change",this.$checkMultiselectChange),e.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},r.MultiSelect=i,e("./config").defineOptions(c.prototype,"editor",{enableMultiselect:{set:function(e){i(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",s)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",s))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var h=e("../../range").Range,e=t.FoldMode=function(){};!function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){e=e.getLine(i);return this.foldingStartMarker.test(e)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(e)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var n=/\S/,r=e.getLine(t),s=r.search(n);if(-1!=s){for(var a,i=i||r.length,o=e.getLength(),r=t,l=t;++ti.row&&(n.row--,n.column=e.getLine(n.row).length),h.fromPoints(i,n)},this.closingBracketBlock=function(e,t,i,n,r){i={row:i,column:n},n=e.$findOpeningBracket(t,i);if(n)return n.column++,i.column--,h.fromPoints(n,i)}}.call(e.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate",e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.session=e,(this.session.widgetManager=this).session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/dom");(function(){this.getRowLength=function(e){var t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var t=0;return this.lineWidgets.forEach(function(e){e&&e.rowCount&&!e.hidden&&(t+=e.rowCount)}),t},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e)&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;t&&(this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets),t=this.session.lineWidgets)&&t.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var t=e.data,n=t.start.row,r=t.end.row,s="add"==e.action,a=n+1;ar[t].column&&t++,n.unshift(t,0),r.splice.apply(r,n)),this.$updateRows())},this.$updateRows=function(){var i,e=this.session.lineWidgets;e&&(i=!0,e.forEach(function(e,t){if(e)for(i=!1,e.row=t;e.$oldWidget;)e.$oldWidget.row=t,e=e.$oldWidget}),i)&&(this.session.lineWidgets=null)},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t).el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1),this.session.lineWidgets[e.row]=e},this.addLineWidget=function(e){var t,i,n;return this.$registerLineWidget(e),e.session=this.session,this.editor&&(t=this.editor.renderer,e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight)&&(e.pixelHeight=e.el.offsetHeight),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight),i=this.session.getFoldAt(e.row,0),(e.$fold=i)&&(n=this.session.lineWidgets,e.row!=i.end.row||n[i.start.row]?e.hidden=!0:n[i.start.row]=e),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e)),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var r=1/0,s=0;s>1,a=i(t,e[s]);if(0=n.length?r=0"),s.appendChild(u.createElement("div"));l.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(o),n.widgetManager.removeLineWidget(l),e.off("changeSelection",l.destroy),e.off("changeSession",l.destroy),e.off("mouseup",l.destroy),e.off("change",l.destroy))},e.keyBinding.addKeyboardHandler(o),e.on("changeSelection",l.destroy),e.on("changeSession",l.destroy),e.on("mouseup",l.destroy),e.on("change",l.destroy),e.session.widgetManager.addLineWidget(l),l.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:l.el.offsetHeight})},u.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,s,t){"use strict";e("./lib/fixoldbrowsers");var a=e("./lib/dom"),o=e("./lib/event"),i=e("./range").Range,l=e("./editor").Editor,n=e("./edit_session").EditSession,r=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),s.config=e("./config"),s.require=e,"function"==typeof define&&(s.define=define),s.edit=function(e,t){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}var n,r;return e&&e.env&&e.env.editor instanceof l?e.env.editor:(i="",e&&/input|textarea/i.test(e.tagName)?(i=(n=e).value,e=a.createElement("pre"),n.parentNode.replaceChild(e,n)):e&&(i=e.textContent,e.innerHTML=""),i=s.createEditSession(i),e=new l(new c(e),i,t),r={document:i,editor:e,onResize:e.resize.bind(e,null)},n&&(r.textarea=n),o.addListener(window,"resize",r.onResize),e.on("destroy",function(){o.removeListener(window,"resize",r.onResize),r.editor.container.env=null}),e.container.env=e.env=r,e)},s.createEditSession=function(e,t){e=new n(e,t);return e.setUndoManager(new r),e},s.Range=i,s.Editor=l,s.EditSession=n,s.UndoManager=r,s.VirtualRenderer=c,s.version=s.config.version}),ace.require(["ace/ace"],function(e){for(var t in e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t]);window.ace.default=window.ace,"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=window.ace)}),angular.module("ui.ace",[]).constant("uiAceConfig",{}).directive("uiAce",["uiAceConfig",function(i){if(angular.isUndefined(window.ace))throw new Error("ui-ace need ace to work... (o rly?)");return{restrict:"EA",require:"?ngModel",link:function(a,e,o,n){function r(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);angular.isDefined(e)&&a.$evalAsync(function(){if(!angular.isFunction(e))throw new Error("ui-ace use a function as callback.");e(t)})}function t(e,t){if(e!==t){(u=angular.extend({},h,a.$eval(o.uiAce))).callbacks=[u.onLoad],u.onLoad!==h.onLoad&&u.callbacks.unshift(h.onLoad),p.removeListener("change",l),l=g(u.onChange),p.on("change",l),d.removeListener("blur",c),c=f(u.onBlur),d.on("blur",c);var i,n,r=d,e=p,s=u;if(angular.isDefined(s.workerPath)&&window.ace.require("ace/config").set("workerPath",s.workerPath),angular.isDefined(s.require)&&s.require.forEach(function(e){window.ace.require(e)}),angular.isDefined(s.showGutter)&&r.renderer.setShowGutter(s.showGutter),angular.isDefined(s.useWrapMode)&&e.setUseWrapMode(s.useWrapMode),angular.isDefined(s.showInvisibles)&&r.renderer.setShowInvisibles(s.showInvisibles),angular.isDefined(s.showIndentGuides)&&r.renderer.setDisplayIndentGuides(s.showIndentGuides),angular.isDefined(s.useSoftTabs)&&e.setUseSoftTabs(s.useSoftTabs),angular.isDefined(s.showPrintMargin)&&r.setShowPrintMargin(s.showPrintMargin),angular.isDefined(s.disableSearch)&&s.disableSearch&&r.commands.addCommands([{name:"unfind",bindKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(){return!1},readOnly:!0}]),angular.isString(s.theme)&&r.setTheme("ace/theme/"+s.theme),angular.isString(s.mode)&&e.setMode("ace/mode/"+s.mode),angular.isDefined(s.firstLineNumber)&&(angular.isNumber(s.firstLineNumber)?e.setOption("firstLineNumber",s.firstLineNumber):angular.isFunction(s.firstLineNumber)&&e.setOption("firstLineNumber",s.firstLineNumber())),angular.isDefined(s.advanced))for(i in s.advanced)n={name:i,value:s.advanced[i]},r.setOption(n.name,n.value);if(angular.isDefined(s.rendererOptions))for(i in s.rendererOptions)n={name:i,value:s.rendererOptions[i]},r.renderer.setOption(n.name,n.value);angular.forEach(s.callbacks,function(e){angular.isFunction(e)&&e(r)})}}var l,c,h=i.ace||{},u=angular.extend({},h,a.$eval(o.uiAce)),d=window.ace.edit(e[0]),p=d.getSession(),g=function(i){return function(e){var t=p.getValue();!n||t===n.$viewValue||a.$$phase||a.$root.$$phase||a.$evalAsync(function(){n.$setViewValue(t)}),r(i,e,d)}},f=function(e){return function(){r(e,d)}};o.$observe("readonly",function(e){d.setReadOnly(!!e||""===e)}),n&&(n.$formatters.push(function(e){if(angular.isUndefined(e)||null===e)return"";if(angular.isObject(e)||angular.isArray(e))throw new Error("ui-ace cannot use an object or an array as a model");return e}),n.$render=function(){p.setValue(n.$viewValue)});a.$watch(o.uiAce,t,!0),t(h),e.on("$destroy",function(){d.session.$stopWorker(),d.destroy()}),a.$watch(function(){return[e[0].offsetWidth,e[0].offsetHeight]},function(){d.resize(),d.renderer.updateFull()},!0)}}}]);const charactersAttributes="[^-a-z0-9:._]",allTagCharacters="(?:[^>\"']*(?:\"[^\"]*\"|'[^']*'))*?[^>]*";function by(r){return(e,t,i,n)=>t+urlRel2abs(i,r)+n}function cr(e,t,i,n){"string"==typeof t&&(t=new RegExp(t,"gi")),i=charactersAttributes+i;var r="\\s*=\\s*",s=new RegExp("("+i+r+'")([^"]+)()',"gi"),a=new RegExp("("+i+r+"')([^']+)()","gi"),o=new RegExp("("+i+r+")([^\"'][^\\s>]*)()","gi");return e=e.replace(t,function(e){return e.replace(s,by(n)).replace(a,by(n)).replace(o,by(n))})}function contentAbs2Relative(e,t){return e&&(e=cr(e,"<"+allTagCharacters+charactersAttributes+"href\\s*="+allTagCharacters+">","href",t),e=cr(e,"<"+allTagCharacters+charactersAttributes+"src\\s*="+allTagCharacters+">","src",t)),e}function generateRandomId(t){var i="ABCDEF0123456789";let n="";for(let e=0;e[\w-\._]+)\/(?[\w-\._]+)(\/pull\/(?[0-9]+))?/);if(e&&e.groups.owner&&e.groups.repo)return{owner:e.groups.owner,repo:e.groups.repo,pullRequestId:e.groups.PR}}throw"Invalid url"}function slugifyHeading(e){return String(e).toLowerCase().replace(/<[^>]+>/g,"").replace(/[^\p{L}\p{N}\s_-]/gu,"").trim().replace(/\s+/g,"-")}function renderMD(e,t){marked.use(markedEmoji({emojis:githubEmojis,unicode:!1})),e=contentAbs2Relative(e,t);var i=new marked.Renderer;const n=i.link,r=(i.link=function(e,t,i){return e.match(/\.mp4$|\.mov$/)?`
`:n.call(this,e,t,i)},{});return i.heading=function(e,t,i){var i=slugifyHeading(i||e),n=r[i]||0,i=(r[i]=n+1,0===n?i:i+"-"+n);return`${e} -`},marked.setOptions({renderer:i,pedantic:!1,gfm:!0,breaks:!1,sanitize:!1,smartLists:!0,smartypants:!1,xhtml:!1,headerIds:!1,katex:katex}),t&&marked.use(baseUrl(t)),marked.use(markedKatex({throwOnError:!1})),marked.use(markedMermaid()),DOMPurify.sanitize(marked.parse(e,{renderer:i}))}angular.module("ngPDFViewer",[]).factory("RecursionHelper",["$compile",function(s){return{compile:function(e,i){angular.isFunction(i)&&(i={post:i});var n,r=e.contents().remove();return{pre:i&&i.pre?i.pre:null,post:function(e,t){(n=n||s(r))(e,function(e){t.append(e)}),i&&i.post&&i.post.apply(null,arguments)}}}}}]).directive("pdfpageviewer",[function(){return{restrict:"E",template:"",scope:{onPageLoad:"=",page:"=",pdfDoc:"="},controller:["$scope","$element",function(n,r){n.scale=1;const s=r.find("canvas")[0];n.$watch("pdfDoc",e=>{e&&n.renderPage(n.page)}),n.renderPage=async function(e){var e=await n.pdfDoc.getPage(e),t=r[0].clientWidth/e.getViewport(1).width,t=e.getViewport(t),i=(s.height=t.height,s.width=t.width,s.getContext("2d"));return await e.render({canvasContext:i,viewport:t}),n.onPageLoad&&n.$apply(function(){n.onPageLoad({page:n.page,total:n.pdfDoc.numPages})}),!0}}]}}]).directive("pdfviewer",["RecursionHelper",function(t){return{restrict:"E",template:"",scope:{onPageLoad:"&",loadProgress:"&",src:"@",id:"="},compile:function(e){return t.compile(e)},controller:["$scope",function(n){n.pdfDoc=null,n.scale=1,n.documentProgress=function(e){n.loadProgress&&n.loadProgress({state:"loading",loaded:e.loaded,total:e.total})},n.loadPDF=function(e){PDFJS.getDocument(e,null,null,n.documentProgress).then(function(e){n.$apply(()=>{n.pdfDoc=e}),n.loadProgress&&n.loadProgress({state:"finished",loaded:0,total:0})},function(e,t){console.log("PDF load error: "+e),n.loadProgress&&n.loadProgress({state:"error",loaded:0,total:0})})},n.$on("pdfviewer.nextPage",function(e,t){null===t&&n.pageNum{n.loadPDF(n.src)})}]}}]).service("PDFViewerService",["$rootScope",function(i){var e={nextPage:function(){i.$broadcast("pdfviewer.nextPage")},prevPage:function(){i.$broadcast("pdfviewer.prevPage")},Instance:function(e){var t=e;return{prevPage:function(){i.$broadcast("pdfviewer.prevPage",t)},nextPage:function(){i.$broadcast("pdfviewer.nextPage",t)},gotoPage:function(e){i.$broadcast("pdfviewer.gotoPage",t,e)}}}};return e}]),angular.module("anonymous-github",["ngRoute","ngSanitize","ui.ace","ngPDFViewer","pascalprecht.translate","admin"]).config(["$routeProvider","$locationProvider","$translateProvider",function(e,t,i){i.useStaticFilesLoader({prefix:"/i18n/locale-",suffix:".json"}),i.preferredLanguage("en"),e.when("/",{templateUrl:"/partials/home.htm",controller:"homeController",title:"Anonymous GitHub – Share the code, not the author"}).when("/dashboard",{templateUrl:"/partials/dashboard.htm",controller:"unifiedDashboardController",title:"Your anonymizations – Anonymous GitHub"}).when("/pr-dashboard",{redirectTo:"/dashboard"}).when("/anonymize/:repoId?",{templateUrl:"/partials/anonymize.htm",controller:"anonymizeController",title:"New anonymization – Anonymous GitHub"}).when("/pull-request-anonymize/:pullRequestId?",{templateUrl:"/partials/anonymize.htm",controller:"anonymizeController",title:"Anonymize a pull request – Anonymous GitHub"}).when("/status/:repoId",{templateUrl:"/partials/status.htm",controller:"statusController",title:"Repository status – Anonymous GitHub"}).when("/conferences",{templateUrl:"/partials/conferences.htm",controller:"conferencesController",title:"Your conferences – Anonymous GitHub"}).when("/conference/new",{templateUrl:"/partials/newConference.htm",controller:"newConferenceController",title:"New conference – Anonymous GitHub"}).when("/conference/:conferenceId/edit",{templateUrl:"/partials/newConference.htm",controller:"newConferenceController",title:"Edit conference – Anonymous GitHub"}).when("/conference/:conferenceId",{templateUrl:"/partials/conference.htm",controller:"conferenceController",title:"Conference – Anonymous GitHub"}).when("/faq",{templateUrl:"/partials/faq.htm",controller:"faqController",title:"FAQ – Anonymous GitHub"}).when("/profile",{templateUrl:"/partials/profile.htm",controller:"profileController",title:"Your settings – Anonymous GitHub"}).when("/claim",{templateUrl:"/partials/claim.htm",controller:"claimController",title:"Claim an anonymization – Anonymous GitHub"}).when("/pr/:pullRequestId",{templateUrl:"/partials/pullRequest.htm",controller:"pullRequestController",title:"Anonymous pull request – Anonymous GitHub",reloadOnUrl:!1}).when("/r/:repoId/:path*?",{templateUrl:"/partials/explorer.htm",controller:"exploreController",title:"Anonymous repository – Anonymous GitHub",reloadOnUrl:!1}).when("/repository/:repoId/:path*?",{templateUrl:"/partials/explorer.htm",controller:"exploreController",title:"Anonymous repository – Anonymous GitHub",reloadOnUrl:!1}).when("/admin/",{templateUrl:"/partials/admin/repositories.htm",controller:"repositoriesAdminController",title:"Admin · Repositories – Anonymous GitHub"}).when("/admin/users",{templateUrl:"/partials/admin/users.htm",controller:"usersAdminController",title:"Admin · Users – Anonymous GitHub"}).when("/admin/users/:username",{templateUrl:"/partials/admin/user.htm",controller:"userAdminController",title:"Admin · User details – Anonymous GitHub"}).when("/admin/conferences",{templateUrl:"/partials/admin/conferences.htm",controller:"conferencesAdminController",title:"Admin · Conferences – Anonymous GitHub"}).when("/admin/queues",{templateUrl:"/partials/admin/queues.htm",controller:"queuesAdminController",title:"Admin · Queues – Anonymous GitHub"}).when("/404",{templateUrl:"/partials/404.htm",title:"Page not found – Anonymous GitHub"}).otherwise({templateUrl:"/partials/404.htm",title:"Page not found – Anonymous GitHub"}),t.html5Mode(!0)}]).filter("humanFileSize",function(){return humanFileSize}).filter("humanTime",function(){return function(e){if(!e)return"never";var t,i=(e="string"!=typeof(e=e instanceof Date?Math.round((Date.now()-e)/1e3):e)&&"number"!=typeof e?e:Math.round((Date.now()-new Date(e))/1e3))<0?"from now":"ago";if(172800e.replace(/&/g,"&").replace(//g,">");function u(e,t){if(t){var i=t.newPath&&"/dev/null"!==t.newPath?t.newPath:t.oldPath||"",n="/dev/null"===t.oldPath?"added":"/dev/null"===t.newPath?"deleted":t.oldPath&&t.newPath&&t.oldPath!==t.newPath?"renamed":"modified";if(e.push('
'),e.push('
'+s(i)+''+n+"
"),t.lines.length){e.push('');for(const r of t.lines)e.push('");e.push("
'+(r.oldNo||"")+''+(r.newNo||"")+''+("add"===r.kind?"+":"remove"===r.kind?"-":"hunk"===r.kind?"@":"")+''+s(r.text)+"
")}e.push("
")}}return function(e){if(!e)return e;const t=[];let i=null,n=0,r=0;var s=()=>i=i||{oldPath:"",newPath:"",lines:[]},a=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(u(t,i),i=null)},o=e.split("\n");for(let e=0;e{u.opens[t+"/"+e]=!0,t=t+"/"+e})}function r(e){var t,i=[],n={"":{child:i}};for(t of e){var r,s=n[t.path].child;let e=t.path+"/"+t.name;e.startsWith("/")&&(e=e.substring(1)),null!=t.size?s.push({name:t.name,size:t.size,sha:t.sha}):(r={name:t.name,child:[]},n[e]=r,s.push(r))}return i}const d=(e,t)=>{var i=!!e.child,n=!!t.child;return i&&n?e.name-t.name:i?-1:n?1:e.name-t.name};function p(r,e){if(!r)return"";var s,a;let o="
    ";for(s of r=r.sort(d)){let t=!!s.child,i=s.name,n=s.size;if(t){let e=i;for(r=s.child;r&&1==r.length;)e+="/"+r[0].name,n=r[0].size,r=r[0].child;i=e,null!=n&&0<=n&&(t=!1)}n=null!=n?"Size: "+humanFileSize(n||0):"";var l=e+"/"+i,c=["file"],h=(t&&c.push("folder"),u.opens[l]&&c.push("open"),u.isActive(l)&&c.push("active"),t&&(a=l,h=void 0,!!(h=u.$parent.options&&u.$parent.options.truncatedFolders||[]).length)&&(a=a.startsWith("/")?a.substring(1):a,-1!==h.indexOf(a)));if(h&&c.push("truncated"),o+=`
  • `,t?o+=`${i}`:o+=`${i}`,h&&(o+=``),u.opens[l]&&s.child)if(1"}u.$watch("file",e=>{if(null!=e){if(0==e.length)return t.html("Empty repository");!function e(t,i){if(t)for(const r of t){var n;r.child&&0!==r.child.length&&((n=i+"/"+r.name)in u.opens||(u.opens[n]=!0),e(r.child,n))}}(r(e),""),t.html(""),e=p(r(u.file).sort(d),""),n(e)(u,e=>{t.append(e)})}},!0),u.isActive=function(e){return i.path==e.substring(1)},u.openFolder=async function(e,t){u.opens[e]=!u.opens[e];t=t.srcElement.nextSibling;(null==t||"UL"===t.tagName&&0===t.children.length)&&(await u.$parent.getFiles(e.substring(1)),u.$apply())}}]}}]).directive("notebook",[function(){return{restrict:"E",scope:{file:"="},controller:["$element","$scope","$http",function(t,e,i){function n(e){e=nb.parse(e);try{t.html(""),t.append(e.render()),Prism.highlightAll()}catch(e){t.html("Unable to render the notebook.")}}function r(){if(e.$parent.content)try{n(JSON.parse(e.$parent.content))}catch(e){t.html("Unable to render the notebook invalid notebook format.")}else e.file&&i.get(e.file.download_url).then(e=>n(e.data))}e.$watch("file",e=>{r()}),r()}]}}]).directive("loc",[function(){return{restrict:"E",scope:{stats:"="},template:"
    ",controller:["$scope",function(i){function t(){for(var e in i.elements=[],i.total=0,i.stats){var t=i.stats[e].code;t&&(i.total+=t,i.elements.push({lang:e,loc:t,color:langColors[e]}))}setTimeout(()=>{$('[data-toggle="tooltip"]').tooltip()},100)}i.$watch("stats",e=>{t()}),t()}]}}]).controller("mainController",["$scope","$http","$location","$timeout",function(r,e,i,t){function n(e,t){t&&(r.title=t.title),r.path=i.url(),r.paths=i.path().substring(1).split("/")}r.title="Main",r.user={status:"connection"},r.site_options,r.toasts=[],r.removeToast=function(e){e=r.toasts.indexOf(e);-1!==e&&r.toasts.splice(e,1)},r.addToast=function(e){return r.toasts.push(e),t(function(){r.removeToast(e)},8e3),e},r.path=i.url(),r.paths=i.path().substring(1).split("/"),r.darkMode=function(e){localStorage.setItem("darkMode",e);var t,i="/css/prism-okaidia.css",n="/css/prism.css";((r.isDarkMode=e)?($("body").addClass("dark-mode"),(t=document.createElement("link")).href=i,t.rel="stylesheet",document.head.append(t),$(`link[href='${n}']`)):($("body").removeClass("dark-mode"),(t=document.createElement("link")).href=n,t.rel="stylesheet",document.head.append(t),$(`link[href='${i}']`))).remove(),r.$broadcast("dark-mode",e)},r.darkMode("true"==localStorage.getItem("darkMode")),e.get("/api/user").then(e=>{e&&(r.user=e.data)},()=>{r.user=null}),e.get("/api/options").then(e=>{e&&(r.site_options=e.data)},()=>{r.site_options=null}),e.get("/api/message").then(e=>{e&&(r.generalMessage=e.data)},()=>{r.generalMessage=null}),r.$on("$routeChangeSuccess",n),r.$on("$routeUpdate",n)}]).controller("faqController",["$scope","$http",function(e,t){}]).controller("profileController",["$scope","$http",function(t,i){function n(){i.get("/api/user/default").then(e=>{e=e.data;e.terms&&(t.terms=e.terms.join("\n")),t.option=Object.assign({},t.option,e.options)})}t.terms="",t.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},n(),t.saveDefault=()=>{var e={terms:t.terms.trim().split("\n"),options:t.options};i.post("/api/user/default",e).then(()=>{n(),t.message="Saved"},e=>{$translate("ERRORS."+e.data.error).then(e=>{t.error=e},console.error)})}}]).controller("claimController",["$scope","$http","$location",function(t,e,i){t.repoId=null,t.repoUrl=null,t.claim=()=>{e.post("/api/repo/claim",{repoId:t.repoId,repoUrl:t.repoUrl}).then(e=>{i.url("/dashboard")},e=>{t.error=e.data,t.claimForm.repoUrl.$setValidity("not_found",!1),t.claimForm.repoId.$setValidity("not_found",!1)})}}]).controller("homeController",["$scope","$http","$location",function(t,e,i){t.user&&!t.user.status&&i.url("/dashboard"),t.$watch("user.status",()=>{t.user&&!t.user.status&&i.url("/dashboard")}),e.get("/api/stat/").then(e=>{t.stat=e.data})}]).controller("unifiedDashboardController",["$scope","$http","$location",function(r,s,e){r.$on("$routeChangeStart",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),r.$watch("user.status",()=>{null==r.user&&e.url("/")}),null==r.user&&e.url("/"),setTimeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),r.items=[],r.search="";const t="dashboard.filterPrefs",i="all",n={status:{ready:!0,expired:!0,removed:!1}},a="-anonymizeDate";var o=loadFilterPrefs(t)||{};r.typeFilter=o.typeFilter||i,r.filters={status:Object.assign({},n.status,o.filters&&o.filters.status||{})},r.orderBy=o.orderBy||a,r.$watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(t,{typeFilter:r.typeFilter,filters:r.filters,orderBy:r.orderBy})}),r.$watch("filters",()=>{saveFilterPrefs(t,{typeFilter:r.typeFilter,filters:r.filters,orderBy:r.orderBy})},!0),s.get("/api/user/quota").then(e=>{r.quota=e.data,r.quota.storage.percent=r.quota.storage.total?100*r.quota.storage.used/r.quota.storage.total:100,r.quota.file.percent=r.quota.file.total?100*r.quota.file.used/r.quota.file.total:100,r.quota.repository.percent=r.quota.repository.total?100*r.quota.repository.used/r.quota.repository.total:100},console.error);let l=null,c=null;function h(){r.items=(l||[]).concat(c||[])}function u(){l=null,c=null,s.get("/api/user/anonymized_repositories").then(e=>{l=e.data.map(e=>(e.pageView||(e.pageView=0),e.lastView||(e.lastView=""),e.options.terms=e.options.terms.filter(e=>e),e._type="repo",e._id=e.repoId,e._name=e.repoId,e._source=e.source.fullName,e._editUrl="/anonymize/"+e.repoId,e._viewUrl="/r/"+e.repoId+"/",e)),h()},e=>{console.error(e)}),s.get("/api/user/anonymized_pull_requests").then(e=>{c=e.data.map(e=>(e.pageView||(e.pageView=0),e.lastView||(e.lastView=""),e.options.terms=e.options.terms.filter(e=>e),e._type="pr",e._id=e.pullRequestId,e._name=e.pullRequestId,e._source=e.source.repositoryFullName+"#"+e.source.pullRequestId,e._editUrl="/pull-request-anonymize/"+e.pullRequestId,e._viewUrl="/pr/"+e.pullRequestId+"/",e)),h()},e=>{console.error(e)})}function d(i,n){s.get("/api/repo/"+i).then(e=>{for(const t of r.items)if("repo"===t._type&&t.repoId==i){t.status=e.data.status;break}"ready"==e.data.status||"error"==e.data.status||"removed"==e.data.status||"expired"==e.data.status?n(e.data):setTimeout(()=>d(i,n),2500)})}u(),r.removeItem=t=>{const e="repo"===t._type?"repository":"pull request";if(confirm(`Are you sure that you want to remove the ${e} ${t._id}?`)){const n={title:`Removing ${t._id}...`,date:new Date,body:`The ${e} ${t._id} is going to be removed.`};r.addToast(n);var i="repo"===t._type?"/api/repo/"+t._id:"/api/pr/"+t._id;s.delete(i).then(()=>{"repo"===t._type?d(t._id,()=>{n.title=t._id+" is removed.",n.body=`The ${e} ${t._id} is removed.`,r.$apply()}):(n.title=t._id+" is removed.",n.body=`The ${e} ${t._id} is removed.`,u())},e=>{n.title=`Error during the removal of ${t._id}.`,n.body=e.body,u()})}},r.refreshItem=t=>{const e="repo"===t._type?"repository":"pull request",i={title:`Refreshing ${t._id}...`,date:new Date,body:`The ${e} ${t._id} is going to be refreshed.`};r.addToast(i);var n="repo"===t._type?`/api/repo/${t._id}/refresh`:`/api/pr/${t._id}/refresh`;s.post(n).then(()=>{"repo"===t._type?d(t._id,()=>{i.title=t._id+" is refreshed.",i.body=`The ${e} ${t._id} is refreshed.`,r.$apply()}):(i.title=t._id+" is refreshed.",i.body=`The ${e} ${t._id} is refreshed.`,u())},e=>{i.title=`Error during the refresh of ${t._id}.`,i.body=e.body,u()})},r.itemFilter=e=>("all"===r.typeFilter||e._type===r.typeFilter)&&0!=r.filters.status[e.status]&&(0==r.search.trim().length||!!(e._source&&-1{e.get("/api/repo/"+t.repoId,{repoId:t.repoId,repoUrl:t.repoUrl}).then(e=>{t.repo=e.data,"ready"==t.repo.status?t.progress=100:"queue"==t.repo.status?t.progress=10:"downloaded"==t.repo.status?t.progress=50:"download"==t.repo.status||"preparing"==t.repo.status?t.progress=25:"anonymizing"==t.repo.status&&(t.progress=75),"ready"!=t.repo.status&&"error"!=t.repo.status&&setTimeout(t.getStatus,2e3)},e=>{t.error=e.data.error})},t.getStatus()}]).controller("anonymizeController",["$scope","$http","$sce","$routeParams","$location","$translate","$timeout",function(r,a,n,e,t,s,o){function l(e,t,i){r.anonymize&&r.anonymize[e]&&r.anonymize[e].$setValidity(t,i)}var i;async function c(){var e=parseGithubUrl(r.sourceUrl);try{b();var t=await a.get(`/api/repo/${e.owner}/${e.repo}/`,{params:{repositoryID:r.repositoryID,force:"1"}});r.details=t.data,r.repoId||(r.repoId=r.details.repo+"-"+generateRandomId(4)),await r.getBranches()}catch(e){throw e.data&&(s("ERRORS."+e.data.error).then(e=>{r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),v(e.data.error)),l("sourceUrl","missing",!1),e}}async function h(e){if(r.readme&&!e)return r.readme;var t=parseGithubUrl(r.sourceUrl);try{var i=await a.get(`/api/repo/${t.owner}/${t.repo}/readme`,{params:{force:!0===e?"1":"0",branch:r.source.branch,repositoryID:r.repositoryID}});r.readme=i.data}catch(e){r.readme=""}}function u(){var e={terms:r.terms?r.terms.split("\n"):[],image:!!r.options.image,link:!!r.options.link,repoId:r.repoId};r.source&&r.source.branch&&(e.branchName=r.source.branch);try{var t=parseGithubUrl(r.sourceUrl);e.repoName=t.owner+"/"+t.repo}catch(e){}return e}function d(i,n){let r=null,s=0;return function(){r&&o.cancel(r),r=o(()=>{r=null;const t=++s;var e=i();e&&a.post("/api/anonymize-preview",e).then(e=>{t===s&&n(e.data)},()=>{})},200)}}r.sourceUrl="",r.detectedType=null,r.repoId="",r.pullRequestId="",r.terms="",r.defaultTerms="",r.branches=[],r.source={branch:"",commit:""},r.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,comments:!0,username:!0,date:!0},r.options.expirationDate.setDate(r.options.expirationDate.getDate()+90),r.anonymize_readme="",r.readme="",r.html_readme="",r.isUpdate=!1,i=()=>{e.repoId&&""!=e.repoId&&(r.isUpdate=!0,r.detectedType="repo",r.repoId=e.repoId,a.get("/api/repo/"+r.repoId).then(async e=>{r.sourceUrl="https://github.com/"+e.data.source.fullName,r.terms=e.data.options.terms.filter(e=>e).join("\n"),r.source=e.data.source,r._originalBranch=e.data.source.branch,r.options=Object.assign({},r.options,e.data.options),r.conference=e.data.conference,r.repositoryID=e.data.source.repositoryID,e.data.options.expirationDate&&(r.options.expirationDate=new Date(e.data.options.expirationDate)),await Promise.all([c(),h()]),g(),r.$apply()},()=>{t.url("/404")}),r.$watch("anonymize",()=>{r.anonymize.repoId&&(r.anonymize.repoId.$$element[0].disabled=!0),r.anonymize.sourceUrl&&(r.anonymize.sourceUrl.$$element[0].disabled=!0)})),e.pullRequestId&&""!=e.pullRequestId&&(r.isUpdate=!0,r.detectedType="pr",r.pullRequestId=e.pullRequestId,a.get("/api/pr/"+r.pullRequestId).then(async e=>{r.sourceUrl="https://github.com/"+e.data.source.repositoryFullName+"/pull/"+e.data.source.pullRequestId,r.terms=e.data.options.terms.filter(e=>e).join("\n"),r.source=e.data.source,r.options=Object.assign({},r.options,e.data.options),r.conference=e.data.conference,e.data.options.expirationDate&&(r.options.expirationDate=new Date(e.data.options.expirationDate)),r.details=(await a.get(`/api/pr/${e.data.source.repositoryFullName}/`+e.data.source.pullRequestId)).data,r.$apply()},()=>{t.url("/404")}),r.$watch("anonymize",()=>{r.anonymize.pullRequestId&&(r.anonymize.pullRequestId.$$element[0].disabled=!0),r.anonymize.sourceUrl&&(r.anonymize.sourceUrl.$$element[0].disabled=!0)}))},a.get("/api/user/default").then(e=>{e=e.data;e.terms&&(r.defaultTerms=e.terms.join("\n")),r.options=Object.assign({},r.options,e.options),r.options.expirationDate=new Date(r.options.expirationDate),r.options.expirationDate.setDate(r.options.expirationDate.getDate()+90),i&&i()}),r.urlSelected=async()=>{r.terms=r.defaultTerms,r.repoId="",r.pullRequestId="",r.details=null,r.branches=[],r.source={type:"GitHubStream",branch:"",commit:""},r.anonymize_readme="",r.readme="",r.html_readme="",r.detectedType=null;let e;try{e=parseGithubUrl(r.sourceUrl)}catch(e){return void l("sourceUrl","github",!1)}l("sourceUrl","github",!0);try{if(e.pullRequestId){r.detectedType="pr",r.source={repositoryFullName:e.owner+"/"+e.repo,pullRequestId:e.pullRequestId};var t=parseGithubUrl(r.sourceUrl);try{b();var i=await a.get(`/api/pr/${t.owner}/${t.repo}/`+t.pullRequestId);r.details=i.data,r.pullRequestId||(r.pullRequestId=t.repo+"-PR"+t.pullRequestId+"-"+generateRandomId(4))}catch(e){throw e.data&&(s("ERRORS."+e.data.error).then(e=>{r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),v(e.data.error)),l("sourceUrl","missing",!1),e}await 0}else r.detectedType="repo",await Promise.all([c(),h()]),g()}catch(e){return}r.$apply(),$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),r.$watch("options.update",e=>{"repo"===r.detectedType&&r.anonymize&&r.anonymize.commit&&(r.anonymize.commit.$$element[0].disabled=!!e)}),r.$watch("source.branch",async()=>{var e;"repo"===r.detectedType&&(e=r.branches.filter(e=>e.name==r.source.branch)[0])&&(r.isUpdate&&r._originalBranch===r.source.branch&&!!r.source.commit||(r.source.commit=e.commit),r.readme=e.readme,await h(),g(),r.$apply())}),r.getBranches=async e=>{var t=parseGithubUrl(r.sourceUrl);try{var i=await a.get(`/api/repo/${t.owner}/${t.repo}/branches`,{params:{force:!0===e?"1":"0",repositoryID:r.repositoryID}}),n=(r.branches=i.data,r.sourceUnreachable=!1,r.source.branch||(r.source.branch=r.details.defaultBranch),r.branches.filter(e=>e.name==r.source.branch));0{r.toasts=r.toasts||[],r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),l("sourceUrl","missing",!1)}r.$apply()};const p=d(()=>r.readme?{content:r.readme,options:u()}:null,e=>{r.anonymize_readme=e.content||"";let t="";try{var i=parseGithubUrl(r.sourceUrl);t=`https://github.com/${i.owner}/${i.repo}/raw/${r.source.branch}/`}catch(e){}e=renderMD(r.anonymize_readme,t);r.html_readme=n.trustAsHtml(e),o(Prism.highlightAll,150)});function g(){r.anonymize&&r.anonymize.terms&&(r.termsRegexWarning=!!r.terms&&!!r.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),p())}let f=new Map,m=new Set;const y=d(()=>{var e=function(){var e=new Set,t=r.details&&r.details.pullRequest;if(t){"string"==typeof t.title&&e.add(t.title),"string"==typeof t.body&&e.add(t.body),"string"==typeof t.diff&&e.add(t.diff);for(const i of r.details&&r.details.comments||[])"string"==typeof i.author&&e.add(i.author),"string"==typeof i.body&&e.add(i.body)}return e}(),e=(m=e,Array.from(e));return 0===e.length?null:{contents:e,options:u()}},t=>{if(t&&Array.isArray(t.contents)){var i=Array.from(m),n=new Map;for(let e=0;e{e.target.disabled=!0;var t=parseGithubUrl(r.sourceUrl),t={repoId:r.repoId,terms:r.terms.trim().split("\n").filter(e=>e),fullName:t.owner+"/"+t.repo,repository:r.sourceUrl,options:r.options,source:r.source,conference:r.conference},i=(r.details&&(t.options.pageSource=r.details.pageSource),b(),r.isUpdate?"/api/repo/"+r.repoId:"/api/repo/");a.post(i,t,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/status/"+r.repoId},e=>{e.data&&(s("ERRORS."+e.data.error).then(e=>{r.error=e},console.error),v(e.data.error))}).finally(()=>{e.target.disabled=!1,r.$apply()})},r.anonymizePullRequest=e=>{e.target.disabled=!0;var t=parseGithubUrl(r.sourceUrl),t={pullRequestId:r.pullRequestId,terms:r.terms.trim().split("\n").filter(e=>e),source:{repositoryFullName:t.owner+"/"+t.repo,pullRequestId:t.pullRequestId},options:r.options,conference:r.conference},i=(b(),r.isUpdate?"/api/pr/"+r.pullRequestId:"/api/pr/");a.post(i,t,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/pr/"+r.pullRequestId},e=>{e.data&&(s("ERRORS."+e.data.error).then(e=>{r.error=e},console.error),v(e.data.error))}).finally(()=>{e.target.disabled=!1,r.$apply()})},r.$watch("conference",()=>{r.conference&&a.get("/api/conferences/"+r.conference).then(e=>{r.conference_data=e.data,r.conference_data.startDate=new Date(r.conference_data.startDate),r.conference_data.endDate=new Date(r.conference_data.endDate),r.options.expirationDate=new Date(r.conference_data.endDate),r.options.expirationMode="remove",r.options.update=r.conference_data.options.update,r.options.image=r.conference_data.options.image,r.options.pdf=r.conference_data.options.pdf,r.options.notebook=r.conference_data.options.notebook,r.options.link=r.conference_data.options.link},()=>{r.conference_data=null})}),r.$watch("terms",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("options.image",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("options.link",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("details",()=>{"pr"===r.detectedType&&y()},!0)}]).controller("exploreController",["$scope","$http","$location","$routeParams","$sce","PDFViewerService",function(o,s,a,n,l,c){o.files=[];const h={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},u=["license","txt"],d=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],p=["wav","mp3","ogg","wma","flac","aac","m4a"],g=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];function r(){o.content="",o.file=o.files.filter(e=>e.name==o.paths[o.paths.length-1]&&e.path==o.paths.slice(0,o.paths.length-1).join("/"))[0];let e="0",t=(o.file&&o.file.sha&&(e=o.file.sha),o.url=`/api/repo/${o.repoId}/file/${o.filePath}?v=`+e,o.filePath.toLowerCase());var i=t.lastIndexOf("."),i=(-1{n.scrollToLine(i,!0,!0,function(){})},100)}else s(null)}e(!0);let a=null;n.on("guttermousedown",function(e){var t=e.getDocumentPosition().row;let i=t,n=t;e.domEvent&&e.domEvent.shiftKey&&null!==a?(i=Math.min(a,t),n=Math.max(a,t)):a=t;t=i===n?"#L"+(i+1):`#L${i+1}-L`+(n+1),t=window.location.pathname+window.location.search+t;window.history.replaceState(null,"",t),s(i,n),e.stop()}),window.addEventListener("hashchange",()=>e(!1)),n.setFontSize(o.aceOption.fontSize),n.setReadOnly(o.aceOption.readOnly),n.setKeyboardHandler(o.aceOption.keyBinding),n.setSelectionStyle(o.aceOption.fullLineSelection?"line":"text"),n.setOption("displayIndentGuides",!0),n.setHighlightActiveLine(o.aceOption.highlightActiveLine),"hide"==o.aceOption.cursor&&(n.renderer.$cursorLayer.element.style.display="none"),n.setHighlightGutterLine(o.aceOption.highlightGutterLine),n.setShowInvisibles(o.aceOption.showInvisibles),n.setDisplayIndentGuides(o.aceOption.showIndentGuides),n.renderer.setShowPrintMargin(o.aceOption.showPrintMargin),n.setHighlightSelectedWord(o.aceOption.highlightSelectedWord),n.session.setUseSoftTabs(o.aceOption.useSoftTab),n.session.setTabSize(o.aceOption.tabSize),n.setBehavioursEnabled(o.aceOption.enableBehaviours),n.setFadeFoldWidgets(o.aceOption.fadeFoldWidgets)}},o.$on("dark-mode",(e,t)=>{o.aceOption.theme=t?"nord_dark":"chrome"}),o.isDarkMode&&(o.aceOption.theme="nord_dark"),o.type="pdf"==(i=t)?(o.instance=c.Instance("viewer"),"pdf"):"md"==i?"md":"org"==i?"org":"ipynb"==i?"IPython":-1e}).then(e=>{var t;o.type=r,o.content=e.data,""==o.content&&(o.content=null),"md"==o.type&&(o.content=l.trustAsHtml(renderMD(e.data,a.url()+"/../")),o.type="html"),"org"==o.type&&(t=contentAbs2Relative(e.data),t=(new Org.Parser).parse(t).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1}),o.content=l.trustAsHtml(t.toString()),o.type="html"),"code"==o.type&&"application/octet-stream"==e.headers("content-type")&&(o.type="binary",o.content="binary"),setTimeout(()=>{Prism.highlightAll()},50)},t=>{o.type="error",o.content="unknown_error";try{t.data=JSON.parse(t.data),t.data.error?o.content=t.data.error:o.content=t.data}catch(e){console.log(t),-1==t.status?o.content="request_error":502==t.status&&(o.content="unreachable")}})}else o.type="error",o.content="no_file_selected"}function f(){var t;o.repoId=n.repoId,o.type="loading",o.filePath=n.path||"",o.paths=o.filePath.split("/"),t=async e=>{for(let e=0;e{if(""==o.paths[0]){var i={};for(const e of o.files)-1{o.options=e.data,o.options.url?window.location=o.options.url:t&&t(e.data)},e=>{o.type="error",o.content=e.data.error})}o.$on("$routeUpdate",function(e,t){if((n.path||"")!=o.filePath){if(o.filePath=n.path||"",o.paths=o.filePath.split("/").filter(e=>e&&0e.path===i)||o.getFiles(i)}}}),o.getFiles=async function(e){try{var t=await s.get(`/api/repo/${o.repoId}/files/?path=${encodeURIComponent(e)}&v=`+o.options.lastUpdateDate);return o.files.push(...t.data),t.data}catch(e){o.type="error",o.content=e.data.error,o.files=[]}},f()}]).controller("pullRequestController",["$scope","$http","$location","$routeParams","$sce",function(i,n,e,t,r){i.pullRequestId=t.pullRequestId,i.type="loading",async function(t){n.get(`/api/pr/${i.pullRequestId}/options`).then(e=>{i.options=e.data,i.options.url?window.location=i.options.url:t&&t(e.data)},e=>{i.type="error",i.content=e.data.error})}(e=>{!async function(t){n.get(`/api/pr/${i.pullRequestId}/content`).then(e=>{i.details=e.data,t&&t(e.data)},e=>{i.type="error",i.content=e.data.error})}()})}]).controller("conferencesController",["$scope","$http","$location",function(i,n,e){i.$watch("user.status",()=>{null==i.user&&e.url("/")}),null==i.user&&e.url("/"),i.conferences=[],i.search="";const t="conferences.filterPrefs",r={status:{ready:!0,expired:!1,removed:!1}},s="name";var a=loadFilterPrefs(t)||{};function o(){n.get("/api/conferences/").then(e=>{i.conferences=e.data||[]},e=>{console.error(e)})}i.filters={status:Object.assign({},r.status,a.filters&&a.filters.status||{})},i.orderBy=a.orderBy||s,i.$watch("orderBy",()=>{saveFilterPrefs(t,{filters:i.filters,orderBy:i.orderBy})}),i.$watch("filters",()=>{saveFilterPrefs(t,{filters:i.filters,orderBy:i.orderBy})},!0),i.removeConference=function(e){if(confirm(`Are you sure that you want to remove the conference ${e.name}? All the repositories linked to this conference will expire.`)){const t={title:`Removing ${e.name}...`,date:new Date,body:`The conference ${e.name} is going to be removed.`};i.addToast(t),n.delete("/api/conferences/"+e.conferenceID).then(()=>{t.title=e.name+" is removed.",t.body=`The conference ${e.name} is removed.`,o()})}},o(),i.conferenceFilter=e=>0!=i.filters.status[e.status]&&(0==i.search.trim().length||-1{null==i.user&&n.url("/")}),null==i.user&&n.url("/"),i.plans=[],i.editionMode=!1,t.conferenceId&&(i.editionMode=!0,e.get("/api/conferences/"+t.conferenceId).then(e=>{i.options=e.data,i.options.startDate=new Date(i.options.startDate),i.options.endDate=new Date(i.options.endDate)})),e.get("/api/conferences/plans").then(e=>{i.plans=e.data,i.plan=i.plans.filter(e=>e.id==i.options.plan.planID)[0]});var t=new Date,r=(t.setDate(1),t.setMonth(t.getMonth()+1),new Date);r.setMonth(t.getMonth()+7,0),i.options={startDate:t,endDate:r,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},i.plan=null,i.$watch("options.plan.planID",()=>{i.plan=i.plans.filter(e=>e.id==i.options.plan.planID)[0]}),i.submit=function(){const t={title:`Creating ${i.options.name}...`,date:new Date,body:`The conference ${i.options.conferenceID} is in creation.`};i.editionMode&&(t.title=`Updating ${i.options.name}...`,t.body=`The conference '${i.options.conferenceID}' is updating.`),i.addToast(t),i.conference.name.$setValidity("required",!0),i.conference.conferenceID.$setValidity("pattern",!0),i.conference.conferenceID.$setValidity("required",!0),i.conference.conferenceID.$setValidity("used",!0),i.conference.startDate.$setValidity("required",!0),i.conference.startDate.$setValidity("invalid",!0),i.conference.endDate.$setValidity("required",!0),i.conference.endDate.$setValidity("invalid",!0),i.conference.$setValidity("error",!0),e.post("/api/conferences/"+(i.editionMode?i.options.conferenceID:""),i.options).then(()=>{i.editionMode?(t.title=i.options.name+" updated",t.body=`The conference '${i.options.conferenceID}' is updated.`):(t.title=i.options.name+" created",t.body=`The conference '${i.options.conferenceID}' is created.`),n.url("/conference/"+i.options.conferenceID)},e=>{switch(e.data.error){case"conf_name_missing":i.conference.name.$setValidity("required",!1);break;case"conf_id_missing":i.conference.conferenceID.$setValidity("required",!1);break;case"conf_id_format":i.conference.conferenceID.$setValidity("pattern",!1);break;case"conf_id_used":i.conference.conferenceID.$setValidity("used",!1);break;case"conf_start_date_missing":i.conference.startDate.$setValidity("required",!1);break;case"conf_end_date_missing":i.conference.endDate.$setValidity("required",!1);break;case"conf_start_date_invalid":i.conference.startDate.$setValidity("invalid",!1);break;case"conf_end_date_invalid":i.conference.endDate.$setValidity("invalid",!1);break;default:i.conference.$setValidity("error",!1)}i.removeToast(t)})}}]).controller("conferenceController",["$scope","$http","$location","$routeParams",function(t,e,i,n){t.$watch("user.status",()=>{null==t.user&&i.url("/")}),null==t.user&&i.url("/"),t.conference=null,t.search="",t.filters={status:{ready:!0,expired:!1,removed:!1}},t.orderBy="-anonymizeDate",t.repoFiler=e=>0!=t.filters.status[e.status]&&(0==t.search.trim().length||-1{t.conference=e.data})}]),angular.module("admin",[]).controller("repositoriesAdminController",["$scope","$http","$location",function(n,r,e){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&e.url("/")}),null==n.user&&e.url("/"),n.repositories=[],n.total=-1,n.totalPage=0;const s="admin.repos.filterPrefs";var t=loadFilterPrefs(s)||{};function a(){r.get("/api/admin/repos",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.repositories=e.data.results},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"lastView",search:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},t,{page:1,search:""}),n.removeCache=e=>{r.delete("/api/admin/repos/"+e.repoId).then(e=>{n.$apply()},e=>{console.error(e)})},n.updateRepository=t=>{const i={title:`Refreshing ${t.repoId}...`,date:new Date,body:`The repository ${t.repoId} is going to be refreshed.`};n.toasts.push(i),t.s,r.post(`/api/repo/${t.repoId}/refresh`).then(e=>{"ready"==e.data.status?i.title=t.repoId+" is refreshed.":i.title=`Refreshing of ${t.repoId}.`},e=>{i.title=`Error during the refresh of ${t.repoId}.`,i.body=e.body})},a();let o=null;n.$watch("query",()=>{clearTimeout(o),o=setTimeout(a,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(s,i)},!0)}]).controller("usersAdminController",["$scope","$http","$location",function(n,e,t){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&t.url("/")}),null==n.user&&t.url("/"),n.users=[],n.total=-1,n.totalPage=0;const r="admin.users.filterPrefs";var i=loadFilterPrefs(r)||{};function s(){e.get("/api/admin/users",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.users=e.data.results,n.$apply()},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"username",search:""},i,{page:1,search:""}),s();let a=null;n.$watch("query",()=>{clearTimeout(a),a=setTimeout(s,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(r,i)},!0)}]).controller("userAdminController",["$scope","$http","$location","$routeParams",function(n,r,e,t){n.$watch("user.status",()=>{null==n.user&&e.url("/")}),null==n.user&&e.url("/"),n.userInfo,n.repositories=[],n.search="";const i="admin.user.filterPrefs",s={status:{ready:!0,expired:!1,removed:!1}},a="-anonymizeDate";var o=loadFilterPrefs(i)||{};function l(e){r.get("/api/admin/users/"+e+"/repos",{}).then(e=>{n.repositories=e.data},e=>{console.error(e)})}function c(){r.get("/api/admin/tokens").then(e=>{n.tokens=e.data||[]},e=>{401!==e.status&&403!==e.status&&console.error(e)})}n.filters={status:Object.assign({},s.status,o.filters&&o.filters.status||{})},n.orderBy=o.orderBy||a,n.$watch("orderBy",()=>{saveFilterPrefs(i,{filters:n.filters,orderBy:n.orderBy})}),n.$watch("filters",()=>{saveFilterPrefs(i,{filters:n.filters,orderBy:n.orderBy})},!0),n.repoFiler=e=>0!=n.filters.status[e.status]&&(0==n.search.trim().length||-1{n.userInfo=e.data},e=>{console.error(e)}),l(t.username),n.tokens=[],n.tokenForm={name:"",plaintext:null},c(),n.createToken=()=>{n.tokenForm.name&&r.post("/api/admin/tokens",{name:n.tokenForm.name}).then(e=>{n.tokenForm.plaintext=e.data.token,n.tokenForm.name="",c()},e=>console.error(e))},n.revokeToken=e=>{confirm(`Revoke token "${e.name}"?`)&&r.delete("/api/admin/tokens/"+e.id).then(()=>c(),e=>console.error(e))},n.removeCache=e=>{r.delete("/api/admin/repos/"+e.repoId).then(e=>{n.$apply()},e=>{console.error(e)})},n.updateRepository=t=>{const i={title:`Refreshing ${t.repoId}...`,date:new Date,body:`The repository ${t.repoId} is going to be refreshed.`};n.toasts.push(i),t.s,r.post(`/api/repo/${t.repoId}/refresh`).then(e=>{"ready"==e.data.status?i.title=t.repoId+" is refreshed.":i.title=`Refreshing of ${t.repoId}.`},e=>{i.title=`Error during the refresh of ${t.repoId}.`,i.body=e.body})},n.getGitHubRepositories=e=>{r.get(`/api/user/${n.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(e=>{n.userInfo.repositories=e.data})};let h=null;n.$watch("query",()=>{clearTimeout(h),h=setTimeout(()=>{l(t.username)},500)},!0)}]).controller("conferencesAdminController",["$scope","$http","$location",function(n,e,t){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&t.url("/")}),null==n.user&&t.url("/"),n.conferences=[],n.total=-1,n.totalPage=0;const r="admin.conferences.filterPrefs";var i=loadFilterPrefs(r)||{};function s(){e.get("/api/admin/conferences",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.conferences=e.data.results,n.$apply()},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"name",search:""},i,{page:1,search:""}),s();let a=null;n.$watch("query",()=>{clearTimeout(a),a=setTimeout(s,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(r,i)},!0)}]).controller("queuesAdminController",["$scope","$http","$location",function(i,n,e){function r(){n.get("/api/admin/queues",{params:i.query}).then(e=>{i.downloadJobs=e.data.downloadQueue,i.removeJobs=e.data.removeQueue,i.removeCaches=e.data.cacheQueue},e=>{console.error(e)})}i.$watch("user.status",()=>{null==i.user&&e.url("/")}),null==i.user&&e.url("/"),i.downloadJobs=[],i.removeJobs=[],r(),i.removeJob=function(e,t){n.delete(`/api/admin/queue/${e}/`+t.id,{params:i.query}).then(e=>{r()},e=>{console.error(e)})},i.retryJob=function(e,t){n.post(`/api/admin/queue/${e}/`+t.id,{params:i.query}).then(e=>{r()},e=>{console.error(e)})}}]); \ No newline at end of file +`},marked.setOptions({renderer:i,pedantic:!1,gfm:!0,breaks:!1,sanitize:!1,smartLists:!0,smartypants:!1,xhtml:!1,headerIds:!1,katex:katex}),t&&marked.use(baseUrl(t)),marked.use(markedKatex({throwOnError:!1})),marked.use(markedMermaid()),DOMPurify.sanitize(marked.parse(e,{renderer:i}))}angular.module("ngPDFViewer",[]).factory("RecursionHelper",["$compile",function(s){return{compile:function(e,i){angular.isFunction(i)&&(i={post:i});var n,r=e.contents().remove();return{pre:i&&i.pre?i.pre:null,post:function(e,t){(n=n||s(r))(e,function(e){t.append(e)}),i&&i.post&&i.post.apply(null,arguments)}}}}}]).directive("pdfpageviewer",[function(){return{restrict:"E",template:"",scope:{onPageLoad:"=",page:"=",pdfDoc:"="},controller:["$scope","$element",function(n,r){n.scale=1;const s=r.find("canvas")[0];n.$watch("pdfDoc",e=>{e&&n.renderPage(n.page)}),n.renderPage=async function(e){var e=await n.pdfDoc.getPage(e),t=r[0].clientWidth/e.getViewport(1).width,t=e.getViewport(t),i=(s.height=t.height,s.width=t.width,s.getContext("2d"));return await e.render({canvasContext:i,viewport:t}),n.onPageLoad&&n.$apply(function(){n.onPageLoad({page:n.page,total:n.pdfDoc.numPages})}),!0}}]}}]).directive("pdfviewer",["RecursionHelper",function(t){return{restrict:"E",template:"",scope:{onPageLoad:"&",loadProgress:"&",src:"@",id:"="},compile:function(e){return t.compile(e)},controller:["$scope",function(n){n.pdfDoc=null,n.scale=1,n.documentProgress=function(e){n.loadProgress&&n.loadProgress({state:"loading",loaded:e.loaded,total:e.total})},n.loadPDF=function(e){PDFJS.getDocument(e,null,null,n.documentProgress).then(function(e){n.$apply(()=>{n.pdfDoc=e}),n.loadProgress&&n.loadProgress({state:"finished",loaded:0,total:0})},function(e,t){console.log("PDF load error: "+e),n.loadProgress&&n.loadProgress({state:"error",loaded:0,total:0})})},n.$on("pdfviewer.nextPage",function(e,t){null===t&&n.pageNum{n.loadPDF(n.src)})}]}}]).service("PDFViewerService",["$rootScope",function(i){var e={nextPage:function(){i.$broadcast("pdfviewer.nextPage")},prevPage:function(){i.$broadcast("pdfviewer.prevPage")},Instance:function(e){var t=e;return{prevPage:function(){i.$broadcast("pdfviewer.prevPage",t)},nextPage:function(){i.$broadcast("pdfviewer.nextPage",t)},gotoPage:function(e){i.$broadcast("pdfviewer.gotoPage",t,e)}}}};return e}]),angular.module("anonymous-github",["ngRoute","ngSanitize","ui.ace","ngPDFViewer","pascalprecht.translate","admin"]).config(["$routeProvider","$locationProvider","$translateProvider",function(e,t,i){i.useStaticFilesLoader({prefix:"/i18n/locale-",suffix:".json"}),i.preferredLanguage("en"),e.when("/",{templateUrl:"/partials/home.htm",controller:"homeController",title:"Anonymous GitHub – Share the code, not the author"}).when("/dashboard",{templateUrl:"/partials/dashboard.htm",controller:"unifiedDashboardController",title:"Your anonymizations – Anonymous GitHub"}).when("/pr-dashboard",{redirectTo:"/dashboard"}).when("/anonymize/:repoId?",{templateUrl:"/partials/anonymize.htm",controller:"anonymizeController",title:"New anonymization – Anonymous GitHub"}).when("/pull-request-anonymize/:pullRequestId?",{templateUrl:"/partials/anonymize.htm",controller:"anonymizeController",title:"Anonymize a pull request – Anonymous GitHub"}).when("/status/:repoId",{templateUrl:"/partials/status.htm",controller:"statusController",title:"Repository status – Anonymous GitHub"}).when("/conferences",{templateUrl:"/partials/conferences.htm",controller:"conferencesController",title:"Your conferences – Anonymous GitHub"}).when("/conference/new",{templateUrl:"/partials/newConference.htm",controller:"newConferenceController",title:"New conference – Anonymous GitHub"}).when("/conference/:conferenceId/edit",{templateUrl:"/partials/newConference.htm",controller:"newConferenceController",title:"Edit conference – Anonymous GitHub"}).when("/conference/:conferenceId",{templateUrl:"/partials/conference.htm",controller:"conferenceController",title:"Conference – Anonymous GitHub"}).when("/faq",{templateUrl:"/partials/faq.htm",controller:"faqController",title:"FAQ – Anonymous GitHub"}).when("/profile",{templateUrl:"/partials/profile.htm",controller:"profileController",title:"Your settings – Anonymous GitHub"}).when("/claim",{templateUrl:"/partials/claim.htm",controller:"claimController",title:"Claim an anonymization – Anonymous GitHub"}).when("/pr/:pullRequestId",{templateUrl:"/partials/pullRequest.htm",controller:"pullRequestController",title:"Anonymous pull request – Anonymous GitHub",reloadOnUrl:!1}).when("/r/:repoId/:path*?",{templateUrl:"/partials/explorer.htm",controller:"exploreController",title:"Anonymous repository – Anonymous GitHub",reloadOnUrl:!1}).when("/repository/:repoId/:path*?",{templateUrl:"/partials/explorer.htm",controller:"exploreController",title:"Anonymous repository – Anonymous GitHub",reloadOnUrl:!1}).when("/admin/",{templateUrl:"/partials/admin/repositories.htm",controller:"repositoriesAdminController",title:"Admin · Repositories – Anonymous GitHub"}).when("/admin/users",{templateUrl:"/partials/admin/users.htm",controller:"usersAdminController",title:"Admin · Users – Anonymous GitHub"}).when("/admin/users/:username",{templateUrl:"/partials/admin/user.htm",controller:"userAdminController",title:"Admin · User details – Anonymous GitHub"}).when("/admin/conferences",{templateUrl:"/partials/admin/conferences.htm",controller:"conferencesAdminController",title:"Admin · Conferences – Anonymous GitHub"}).when("/admin/queues",{templateUrl:"/partials/admin/queues.htm",controller:"queuesAdminController",title:"Admin · Queues – Anonymous GitHub"}).when("/404",{templateUrl:"/partials/404.htm",title:"Page not found – Anonymous GitHub"}).otherwise({templateUrl:"/partials/404.htm",title:"Page not found – Anonymous GitHub"}),t.html5Mode(!0)}]).filter("humanFileSize",function(){return humanFileSize}).filter("humanTime",function(){return function(e){if(!e)return"never";var t,i=(e="string"!=typeof(e=e instanceof Date?Math.round((Date.now()-e)/1e3):e)&&"number"!=typeof e?e:Math.round((Date.now()-new Date(e))/1e3))<0?"from now":"ago";if(172800e.replace(/&/g,"&").replace(//g,">");function u(e,t){if(t){var i=t.newPath&&"/dev/null"!==t.newPath?t.newPath:t.oldPath||"",n="/dev/null"===t.oldPath?"added":"/dev/null"===t.newPath?"deleted":t.oldPath&&t.newPath&&t.oldPath!==t.newPath?"renamed":"modified";if(e.push('
    '),e.push('
    '+s(i)+''+n+"
    "),t.lines.length){e.push('');for(const r of t.lines)e.push('");e.push("
    '+(r.oldNo||"")+''+(r.newNo||"")+''+("add"===r.kind?"+":"remove"===r.kind?"-":"hunk"===r.kind?"@":"")+''+s(r.text)+"
    ")}e.push("
    ")}}return function(e){if(!e)return e;const t=[];let i=null,n=0,r=0;var s=()=>i=i||{oldPath:"",newPath:"",lines:[]},a=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(u(t,i),i=null)},o=e.split("\n");for(let e=0;e{u.opens[t+"/"+e]=!0,t=t+"/"+e})}function r(e){var t,i=[],n={"":{child:i}};for(t of e){var r,s=n[t.path].child;let e=t.path+"/"+t.name;e.startsWith("/")&&(e=e.substring(1)),null!=t.size?s.push({name:t.name,size:t.size,sha:t.sha}):(r={name:t.name,child:[]},n[e]=r,s.push(r))}return i}const d=(e,t)=>{var i=!!e.child,n=!!t.child;return i&&n?e.name-t.name:i?-1:n?1:e.name-t.name};function p(r,e){if(!r)return"";var s,a;let o="
      ";for(s of r=r.sort(d)){let t=!!s.child,i=s.name,n=s.size;if(t){let e=i;for(r=s.child;r&&1==r.length;)e+="/"+r[0].name,n=r[0].size,r=r[0].child;i=e,null!=n&&0<=n&&(t=!1)}n=null!=n?"Size: "+humanFileSize(n||0):"";var l=e+"/"+i,c=["file"],h=(t&&c.push("folder"),u.opens[l]&&c.push("open"),u.isActive(l)&&c.push("active"),t&&(a=l,h=void 0,!!(h=u.$parent.options&&u.$parent.options.truncatedFolders||[]).length)&&(a=a.startsWith("/")?a.substring(1):a,-1!==h.indexOf(a)));if(h&&c.push("truncated"),o+=`
    • `,t?o+=`${i}`:o+=`${i}`,h&&(o+=``),u.opens[l]&&s.child)if(1"}u.$watch("file",e=>{if(null!=e){if(0==e.length)return t.html("Empty repository");!function e(t,i){if(t)for(const r of t){var n;r.child&&0!==r.child.length&&((n=i+"/"+r.name)in u.opens||(u.opens[n]=!0),e(r.child,n))}}(r(e),""),t.html(""),e=p(r(u.file).sort(d),""),n(e)(u,e=>{t.append(e)})}},!0),u.isActive=function(e){return i.path==e.substring(1)},u.openFolder=async function(e,t){u.opens[e]=!u.opens[e];t=t.srcElement.nextSibling;(null==t||"UL"===t.tagName&&0===t.children.length)&&(await u.$parent.getFiles(e.substring(1)),u.$apply())}}]}}]).directive("notebook",[function(){return{restrict:"E",scope:{file:"="},controller:["$element","$scope","$http",function(t,e,i){function n(e){e=nb.parse(e);try{t.html(""),t.append(e.render()),Prism.highlightAll()}catch(e){t.html("Unable to render the notebook.")}}function r(){if(e.$parent.content)try{n(JSON.parse(e.$parent.content))}catch(e){t.html("Unable to render the notebook invalid notebook format.")}else e.file&&i.get(e.file.download_url).then(e=>n(e.data))}e.$watch("file",e=>{r()}),r()}]}}]).directive("loc",[function(){return{restrict:"E",scope:{stats:"="},template:"
      ",controller:["$scope",function(i){function t(){for(var e in i.elements=[],i.total=0,i.stats){var t=i.stats[e].code;t&&(i.total+=t,i.elements.push({lang:e,loc:t,color:langColors[e]}))}setTimeout(()=>{$('[data-toggle="tooltip"]').tooltip()},100)}i.$watch("stats",e=>{t()}),t()}]}}]).controller("mainController",["$scope","$http","$location","$timeout",function(r,e,i,t){function n(e,t){t&&(r.title=t.title),r.path=i.url(),r.paths=i.path().substring(1).split("/")}r.title="Main",r.user={status:"connection"},r.site_options,r.toasts=[],r.removeToast=function(e){e=r.toasts.indexOf(e);-1!==e&&r.toasts.splice(e,1)},r.addToast=function(e){return r.toasts.push(e),t(function(){r.removeToast(e)},8e3),e},r.path=i.url(),r.paths=i.path().substring(1).split("/"),r.darkMode=function(e){localStorage.setItem("darkMode",e);var t,i="/css/prism-okaidia.css",n="/css/prism.css";((r.isDarkMode=e)?($("body").addClass("dark-mode"),(t=document.createElement("link")).href=i,t.rel="stylesheet",document.head.append(t),$(`link[href='${n}']`)):($("body").removeClass("dark-mode"),(t=document.createElement("link")).href=n,t.rel="stylesheet",document.head.append(t),$(`link[href='${i}']`))).remove(),r.$broadcast("dark-mode",e)},r.darkMode("true"==localStorage.getItem("darkMode")),e.get("/api/user").then(e=>{e&&(r.user=e.data)},()=>{r.user=null}),e.get("/api/options").then(e=>{e&&(r.site_options=e.data)},()=>{r.site_options=null}),e.get("/api/message").then(e=>{e&&(r.generalMessage=e.data)},()=>{r.generalMessage=null}),r.$on("$routeChangeSuccess",n),r.$on("$routeUpdate",n)}]).controller("faqController",["$scope","$http",function(e,t){}]).controller("profileController",["$scope","$http",function(t,i){function n(){i.get("/api/user/default").then(e=>{e=e.data;e.terms&&(t.terms=e.terms.join("\n")),t.option=Object.assign({},t.option,e.options)})}t.terms="",t.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},n(),t.saveDefault=()=>{var e={terms:t.terms.trim().split("\n"),options:t.options};i.post("/api/user/default",e).then(()=>{n(),t.message="Saved"},e=>{$translate("ERRORS."+e.data.error).then(e=>{t.error=e},console.error)})}}]).controller("claimController",["$scope","$http","$location",function(t,e,i){t.repoId=null,t.repoUrl=null,t.claim=()=>{e.post("/api/repo/claim",{repoId:t.repoId,repoUrl:t.repoUrl}).then(e=>{i.url("/dashboard")},e=>{t.error=e.data,t.claimForm.repoUrl.$setValidity("not_found",!1),t.claimForm.repoId.$setValidity("not_found",!1)})}}]).controller("homeController",["$scope","$http","$location",function(t,e,i){t.user&&!t.user.status&&i.url("/dashboard"),t.$watch("user.status",()=>{t.user&&!t.user.status&&i.url("/dashboard")}),e.get("/api/stat/").then(e=>{t.stat=e.data})}]).controller("unifiedDashboardController",["$scope","$http","$location",function(r,s,e){r.$on("$routeChangeStart",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),r.$watch("user.status",()=>{null==r.user&&e.url("/")}),null==r.user&&e.url("/"),setTimeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),r.items=[],r.search="";const t="dashboard.filterPrefs",i="all",n={status:{ready:!0,expired:!0,removed:!1}},a="-anonymizeDate";var o=loadFilterPrefs(t)||{};r.typeFilter=o.typeFilter||i,r.filters={status:Object.assign({},n.status,o.filters&&o.filters.status||{})},r.orderBy=o.orderBy||a,r.$watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(t,{typeFilter:r.typeFilter,filters:r.filters,orderBy:r.orderBy})}),r.$watch("filters",()=>{saveFilterPrefs(t,{typeFilter:r.typeFilter,filters:r.filters,orderBy:r.orderBy})},!0),s.get("/api/user/quota").then(e=>{r.quota=e.data,r.quota.storage.percent=r.quota.storage.total?100*r.quota.storage.used/r.quota.storage.total:100,r.quota.file.percent=r.quota.file.total?100*r.quota.file.used/r.quota.file.total:100,r.quota.repository.percent=r.quota.repository.total?100*r.quota.repository.used/r.quota.repository.total:100},console.error);let l=null,c=null;function h(){r.items=(l||[]).concat(c||[])}function u(){l=null,c=null,s.get("/api/user/anonymized_repositories").then(e=>{l=e.data.map(e=>(e.pageView||(e.pageView=0),e.lastView||(e.lastView=""),e.options.terms=e.options.terms.filter(e=>e),e._type="repo",e._id=e.repoId,e._name=e.repoId,e._source=e.source.fullName,e._editUrl="/anonymize/"+e.repoId,e._viewUrl="/r/"+e.repoId+"/",e)),h()},e=>{console.error(e)}),s.get("/api/user/anonymized_pull_requests").then(e=>{c=e.data.map(e=>(e.pageView||(e.pageView=0),e.lastView||(e.lastView=""),e.options.terms=e.options.terms.filter(e=>e),e._type="pr",e._id=e.pullRequestId,e._name=e.pullRequestId,e._source=e.source.repositoryFullName+"#"+e.source.pullRequestId,e._editUrl="/pull-request-anonymize/"+e.pullRequestId,e._viewUrl="/pr/"+e.pullRequestId+"/",e)),h()},e=>{console.error(e)})}function d(i,n){s.get("/api/repo/"+i).then(e=>{for(const t of r.items)if("repo"===t._type&&t.repoId==i){t.status=e.data.status;break}"ready"==e.data.status||"error"==e.data.status||"removed"==e.data.status||"expired"==e.data.status?n(e.data):setTimeout(()=>d(i,n),2500)})}u(),r.removeItem=t=>{const e="repo"===t._type?"repository":"pull request";if(confirm(`Are you sure that you want to remove the ${e} ${t._id}?`)){const n={title:`Removing ${t._id}...`,date:new Date,body:`The ${e} ${t._id} is going to be removed.`};r.addToast(n);var i="repo"===t._type?"/api/repo/"+t._id:"/api/pr/"+t._id;s.delete(i).then(()=>{"repo"===t._type?d(t._id,()=>{n.title=t._id+" is removed.",n.body=`The ${e} ${t._id} is removed.`,r.$apply()}):(n.title=t._id+" is removed.",n.body=`The ${e} ${t._id} is removed.`,u())},e=>{n.title=`Error during the removal of ${t._id}.`,n.body=e.body,u()})}},r.refreshItem=t=>{const e="repo"===t._type?"repository":"pull request",i={title:`Refreshing ${t._id}...`,date:new Date,body:`The ${e} ${t._id} is going to be refreshed.`};r.addToast(i);var n="repo"===t._type?`/api/repo/${t._id}/refresh`:`/api/pr/${t._id}/refresh`;s.post(n).then(()=>{"repo"===t._type?d(t._id,()=>{i.title=t._id+" is refreshed.",i.body=`The ${e} ${t._id} is refreshed.`,r.$apply()}):(i.title=t._id+" is refreshed.",i.body=`The ${e} ${t._id} is refreshed.`,u())},e=>{i.title=`Error during the refresh of ${t._id}.`,i.body=e.body,u()})},r.itemFilter=e=>("all"===r.typeFilter||e._type===r.typeFilter)&&0!=r.filters.status[e.status]&&(0==r.search.trim().length||!!(e._source&&-1{e.get("/api/repo/"+t.repoId,{repoId:t.repoId,repoUrl:t.repoUrl}).then(e=>{t.repo=e.data,"ready"==t.repo.status?t.progress=100:"queue"==t.repo.status?t.progress=10:"downloaded"==t.repo.status?t.progress=50:"download"==t.repo.status||"preparing"==t.repo.status?t.progress=25:"anonymizing"==t.repo.status&&(t.progress=75),"ready"!=t.repo.status&&"error"!=t.repo.status&&setTimeout(t.getStatus,2e3)},e=>{t.error=e.data.error})},t.getStatus()}]).controller("anonymizeController",["$scope","$http","$sce","$routeParams","$location","$translate","$timeout",function(r,a,s,e,t,o,l){function c(e,t,i){r.anonymize&&r.anonymize[e]&&r.anonymize[e].$setValidity(t,i)}var i;async function n(){var e=parseGithubUrl(r.sourceUrl);try{b();var t=await a.get(`/api/repo/${e.owner}/${e.repo}/`,{params:{repositoryID:r.repositoryID,force:"1"}});r.details=t.data,r.repoId||(r.repoId=r.details.repo+"-"+generateRandomId(4)),await r.getBranches()}catch(e){throw e.data&&(o("ERRORS."+e.data.error).then(e=>{r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),v(e.data.error)),c("sourceUrl","missing",!1),e}}async function h(e){if(r.readme&&!e)return r.readme;var t=parseGithubUrl(r.sourceUrl);try{var i=await a.get(`/api/repo/${t.owner}/${t.repo}/readme`,{params:{force:!0===e?"1":"0",branch:r.source.branch,repositoryID:r.repositoryID}});r.readme=i.data}catch(e){r.readme=""}}function u(){var e={terms:r.terms?r.terms.split("\n"):[],image:!!r.options.image,link:!!r.options.link,repoId:r.repoId};r.source&&r.source.branch&&(e.branchName=r.source.branch);try{var t=parseGithubUrl(r.sourceUrl);e.repoName=t.owner+"/"+t.repo}catch(e){}return e}function d(i,n){let r=null,s=0;return function(){r&&l.cancel(r),r=l(()=>{r=null;const t=++s;var e=i();e&&a.post("/api/anonymize-preview",e).then(e=>{t===s&&n(e.data)},()=>{})},200)}}r.sourceUrl="",r.detectedType=null,r.repoId="",r.pullRequestId="",r.terms="",r.defaultTerms="",r.branches=[],r.source={branch:"",commit:""},r.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,comments:!0,username:!0,date:!0},r.options.expirationDate.setDate(r.options.expirationDate.getDate()+90),r.anonymize_readme="",r.readme="",r.html_readme="",r.isUpdate=!1,i=()=>{e.repoId&&""!=e.repoId&&(r.isUpdate=!0,r.detectedType="repo",r.repoId=e.repoId,a.get("/api/repo/"+r.repoId).then(async e=>{r.sourceUrl="https://github.com/"+e.data.source.fullName,r.terms=e.data.options.terms.filter(e=>e).join("\n"),r.source=e.data.source,r._originalBranch=e.data.source.branch,r.options=Object.assign({},r.options,e.data.options),r.conference=e.data.conference,r.repositoryID=e.data.source.repositoryID,e.data.options.expirationDate&&(r.options.expirationDate=new Date(e.data.options.expirationDate)),await Promise.all([n(),h()]),g(),r.$apply()},()=>{t.url("/404")}),r.$watch("anonymize",()=>{r.anonymize.repoId&&(r.anonymize.repoId.$$element[0].disabled=!0),r.anonymize.sourceUrl&&(r.anonymize.sourceUrl.$$element[0].disabled=!0)})),e.pullRequestId&&""!=e.pullRequestId&&(r.isUpdate=!0,r.detectedType="pr",r.pullRequestId=e.pullRequestId,a.get("/api/pr/"+r.pullRequestId).then(async e=>{r.sourceUrl="https://github.com/"+e.data.source.repositoryFullName+"/pull/"+e.data.source.pullRequestId,r.terms=e.data.options.terms.filter(e=>e).join("\n"),r.source=e.data.source,r.options=Object.assign({},r.options,e.data.options),r.conference=e.data.conference,e.data.options.expirationDate&&(r.options.expirationDate=new Date(e.data.options.expirationDate)),r.details=(await a.get(`/api/pr/${e.data.source.repositoryFullName}/`+e.data.source.pullRequestId)).data,r.$apply()},()=>{t.url("/404")}),r.$watch("anonymize",()=>{r.anonymize.pullRequestId&&(r.anonymize.pullRequestId.$$element[0].disabled=!0),r.anonymize.sourceUrl&&(r.anonymize.sourceUrl.$$element[0].disabled=!0)}))},a.get("/api/user/default").then(e=>{e=e.data;e.terms&&(r.defaultTerms=e.terms.join("\n")),r.options=Object.assign({},r.options,e.options),r.options.expirationDate=new Date(r.options.expirationDate),r.options.expirationDate.setDate(r.options.expirationDate.getDate()+90),i&&i()}),r.urlSelected=async()=>{r.terms=r.defaultTerms,r.repoId="",r.pullRequestId="",r.details=null,r.branches=[],r.source={type:"GitHubStream",branch:"",commit:""},r.anonymize_readme="",r.readme="",r.html_readme="",r.detectedType=null;let e;try{e=parseGithubUrl(r.sourceUrl)}catch(e){return void c("sourceUrl","github",!1)}c("sourceUrl","github",!0);try{if(e.pullRequestId){r.detectedType="pr",r.source={repositoryFullName:e.owner+"/"+e.repo,pullRequestId:e.pullRequestId};var t=parseGithubUrl(r.sourceUrl);try{b();var i=await a.get(`/api/pr/${t.owner}/${t.repo}/`+t.pullRequestId);r.details=i.data,r.pullRequestId||(r.pullRequestId=t.repo+"-PR"+t.pullRequestId+"-"+generateRandomId(4))}catch(e){throw e.data&&(o("ERRORS."+e.data.error).then(e=>{r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),v(e.data.error)),c("sourceUrl","missing",!1),e}await 0}else r.detectedType="repo",await Promise.all([n(),h()]),g()}catch(e){return}r.$apply(),$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),r.$watch("options.update",e=>{"repo"===r.detectedType&&r.anonymize&&r.anonymize.commit&&(r.anonymize.commit.$$element[0].disabled=!!e)}),r.$watch("source.branch",async()=>{var e;"repo"===r.detectedType&&(e=r.branches.filter(e=>e.name==r.source.branch)[0])&&(r.isUpdate&&r._originalBranch===r.source.branch&&!!r.source.commit||(r.source.commit=e.commit),r.readme=e.readme,await h(),g(),r.$apply())}),r.getBranches=async e=>{var t=parseGithubUrl(r.sourceUrl);try{var i=await a.get(`/api/repo/${t.owner}/${t.repo}/branches`,{params:{force:!0===e?"1":"0",repositoryID:r.repositoryID}}),n=(r.branches=i.data,r.sourceUnreachable=!1,r.source.branch||(r.source.branch=r.details.defaultBranch),r.branches.filter(e=>e.name==r.source.branch));0{r.toasts=r.toasts||[],r.addToast({title:"Error",date:new Date,body:e}),r.error=e},console.error),c("sourceUrl","missing",!1)}r.$apply()};const p=d(()=>r.readme?{content:r.readme,options:u()}:null,e=>{r.anonymize_readme=e.content||"";let t="";try{var i=parseGithubUrl(r.sourceUrl),n=r.source.branch||r.details&&r.details.defaultBranch||"main";t=`https://github.com/${i.owner}/${i.repo}/raw/${n}/`}catch(e){}e=renderMD(r.anonymize_readme,t);r.html_readme=s.trustAsHtml(e),l(Prism.highlightAll,150)});function g(){r.anonymize&&r.anonymize.terms&&(r.termsRegexWarning=!!r.terms&&!!r.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),p())}let f=new Map,m=new Set;const y=d(()=>{var e=function(){var e=new Set,t=r.details&&r.details.pullRequest;if(t){"string"==typeof t.title&&e.add(t.title),"string"==typeof t.body&&e.add(t.body),"string"==typeof t.diff&&e.add(t.diff);for(const i of r.details&&r.details.comments||[])"string"==typeof i.author&&e.add(i.author),"string"==typeof i.body&&e.add(i.body)}return e}(),e=(m=e,Array.from(e));return 0===e.length?null:{contents:e,options:u()}},t=>{if(t&&Array.isArray(t.contents)){var i=Array.from(m),n=new Map;for(let e=0;e{e.target.disabled=!0;var t=parseGithubUrl(r.sourceUrl),t={repoId:r.repoId,terms:r.terms.trim().split("\n").filter(e=>e),fullName:t.owner+"/"+t.repo,repository:r.sourceUrl,options:r.options,source:r.source,conference:r.conference},i=(r.details&&(t.options.pageSource=r.details.pageSource),b(),r.isUpdate?"/api/repo/"+r.repoId:"/api/repo/");a.post(i,t,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/status/"+r.repoId},e=>{e.data&&(o("ERRORS."+e.data.error).then(e=>{r.error=e},console.error),v(e.data.error))}).finally(()=>{e.target.disabled=!1,r.$apply()})},r.anonymizePullRequest=e=>{e.target.disabled=!0;var t=parseGithubUrl(r.sourceUrl),t={pullRequestId:r.pullRequestId,terms:r.terms.trim().split("\n").filter(e=>e),source:{repositoryFullName:t.owner+"/"+t.repo,pullRequestId:t.pullRequestId},options:r.options,conference:r.conference},i=(b(),r.isUpdate?"/api/pr/"+r.pullRequestId:"/api/pr/");a.post(i,t,{headers:{"Content-Type":"application/json"}}).then(()=>{window.location.href="/pr/"+r.pullRequestId},e=>{e.data&&(o("ERRORS."+e.data.error).then(e=>{r.error=e},console.error),v(e.data.error))}).finally(()=>{e.target.disabled=!1,r.$apply()})},r.$watch("conference",()=>{r.conference&&a.get("/api/conferences/"+r.conference).then(e=>{r.conference_data=e.data,r.conference_data.startDate=new Date(r.conference_data.startDate),r.conference_data.endDate=new Date(r.conference_data.endDate),r.options.expirationDate=new Date(r.conference_data.endDate),r.options.expirationMode="remove",r.options.update=r.conference_data.options.update,r.options.image=r.conference_data.options.image,r.options.pdf=r.conference_data.options.pdf,r.options.notebook=r.conference_data.options.notebook,r.options.link=r.conference_data.options.link},()=>{r.conference_data=null})}),r.$watch("terms",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("options.image",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("options.link",()=>{"repo"===r.detectedType&&g(),"pr"===r.detectedType&&y()}),r.$watch("details",()=>{"pr"===r.detectedType&&y()},!0)}]).controller("exploreController",["$scope","$http","$location","$routeParams","$sce","PDFViewerService",function(o,s,a,n,l,c){o.files=[];const h={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},u=["license","txt"],d=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],p=["wav","mp3","ogg","wma","flac","aac","m4a"],g=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];function r(){o.content="",o.file=o.files.filter(e=>e.name==o.paths[o.paths.length-1]&&e.path==o.paths.slice(0,o.paths.length-1).join("/"))[0];let e="0",t=(o.file&&o.file.sha&&(e=o.file.sha),o.url=`/api/repo/${o.repoId}/file/${o.filePath}?v=`+e,o.filePath.toLowerCase());var i=t.lastIndexOf("."),i=(-1{n.scrollToLine(i,!0,!0,function(){})},100)}else s(null)}e(!0);let a=null;n.on("guttermousedown",function(e){var t=e.getDocumentPosition().row;let i=t,n=t;e.domEvent&&e.domEvent.shiftKey&&null!==a?(i=Math.min(a,t),n=Math.max(a,t)):a=t;t=i===n?"#L"+(i+1):`#L${i+1}-L`+(n+1),t=window.location.pathname+window.location.search+t;window.history.replaceState(null,"",t),s(i,n),e.stop()}),window.addEventListener("hashchange",()=>e(!1)),n.setFontSize(o.aceOption.fontSize),n.setReadOnly(o.aceOption.readOnly),n.setKeyboardHandler(o.aceOption.keyBinding),n.setSelectionStyle(o.aceOption.fullLineSelection?"line":"text"),n.setOption("displayIndentGuides",!0),n.setHighlightActiveLine(o.aceOption.highlightActiveLine),"hide"==o.aceOption.cursor&&(n.renderer.$cursorLayer.element.style.display="none"),n.setHighlightGutterLine(o.aceOption.highlightGutterLine),n.setShowInvisibles(o.aceOption.showInvisibles),n.setDisplayIndentGuides(o.aceOption.showIndentGuides),n.renderer.setShowPrintMargin(o.aceOption.showPrintMargin),n.setHighlightSelectedWord(o.aceOption.highlightSelectedWord),n.session.setUseSoftTabs(o.aceOption.useSoftTab),n.session.setTabSize(o.aceOption.tabSize),n.setBehavioursEnabled(o.aceOption.enableBehaviours),n.setFadeFoldWidgets(o.aceOption.fadeFoldWidgets)}},o.$on("dark-mode",(e,t)=>{o.aceOption.theme=t?"nord_dark":"chrome"}),o.isDarkMode&&(o.aceOption.theme="nord_dark"),o.type="pdf"==(i=t)?(o.instance=c.Instance("viewer"),"pdf"):"md"==i?"md":"org"==i?"org":"ipynb"==i?"IPython":-1e}).then(e=>{var t;o.type=r,o.content=e.data,""==o.content&&(o.content=null),"md"==o.type&&(o.content=l.trustAsHtml(renderMD(e.data,a.url()+"/../")),o.type="html"),"org"==o.type&&(t=contentAbs2Relative(e.data),t=(new Org.Parser).parse(t).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1}),o.content=l.trustAsHtml(t.toString()),o.type="html"),"code"==o.type&&"application/octet-stream"==e.headers("content-type")&&(o.type="binary",o.content="binary"),setTimeout(()=>{Prism.highlightAll()},50)},t=>{o.type="error",o.content="unknown_error";try{t.data=JSON.parse(t.data),t.data.error?o.content=t.data.error:o.content=t.data}catch(e){console.log(t),-1==t.status?o.content="request_error":502==t.status&&(o.content="unreachable")}})}else o.type="error",o.content="no_file_selected"}function f(){var t;o.repoId=n.repoId,o.type="loading",o.filePath=n.path||"",o.paths=o.filePath.split("/"),t=async e=>{for(let e=0;e{if(""==o.paths[0]){var i={};for(const e of o.files)-1{o.options=e.data,o.options.url?window.location=o.options.url:t&&t(e.data)},e=>{o.type="error",o.content=e.data.error})}o.$on("$routeUpdate",function(e,t){if((n.path||"")!=o.filePath){if(o.filePath=n.path||"",o.paths=o.filePath.split("/").filter(e=>e&&0e.path===i)||o.getFiles(i)}}}),o.getFiles=async function(e){try{var t=await s.get(`/api/repo/${o.repoId}/files/?path=${encodeURIComponent(e)}&v=`+o.options.lastUpdateDate);return o.files.push(...t.data),t.data}catch(e){o.type="error",o.content=e.data.error,o.files=[]}},f()}]).controller("pullRequestController",["$scope","$http","$location","$routeParams","$sce",function(i,n,e,t,r){i.pullRequestId=t.pullRequestId,i.type="loading",async function(t){n.get(`/api/pr/${i.pullRequestId}/options`).then(e=>{i.options=e.data,i.options.url?window.location=i.options.url:t&&t(e.data)},e=>{i.type="error",i.content=e.data.error})}(e=>{!async function(t){n.get(`/api/pr/${i.pullRequestId}/content`).then(e=>{i.details=e.data,t&&t(e.data)},e=>{i.type="error",i.content=e.data.error})}()})}]).controller("conferencesController",["$scope","$http","$location",function(i,n,e){i.$watch("user.status",()=>{null==i.user&&e.url("/")}),null==i.user&&e.url("/"),i.conferences=[],i.search="";const t="conferences.filterPrefs",r={status:{ready:!0,expired:!1,removed:!1}},s="name";var a=loadFilterPrefs(t)||{};function o(){n.get("/api/conferences/").then(e=>{i.conferences=e.data||[]},e=>{console.error(e)})}i.filters={status:Object.assign({},r.status,a.filters&&a.filters.status||{})},i.orderBy=a.orderBy||s,i.$watch("orderBy",()=>{saveFilterPrefs(t,{filters:i.filters,orderBy:i.orderBy})}),i.$watch("filters",()=>{saveFilterPrefs(t,{filters:i.filters,orderBy:i.orderBy})},!0),i.removeConference=function(e){if(confirm(`Are you sure that you want to remove the conference ${e.name}? All the repositories linked to this conference will expire.`)){const t={title:`Removing ${e.name}...`,date:new Date,body:`The conference ${e.name} is going to be removed.`};i.addToast(t),n.delete("/api/conferences/"+e.conferenceID).then(()=>{t.title=e.name+" is removed.",t.body=`The conference ${e.name} is removed.`,o()})}},o(),i.conferenceFilter=e=>0!=i.filters.status[e.status]&&(0==i.search.trim().length||-1{null==i.user&&n.url("/")}),null==i.user&&n.url("/"),i.plans=[],i.editionMode=!1,t.conferenceId&&(i.editionMode=!0,e.get("/api/conferences/"+t.conferenceId).then(e=>{i.options=e.data,i.options.startDate=new Date(i.options.startDate),i.options.endDate=new Date(i.options.endDate)})),e.get("/api/conferences/plans").then(e=>{i.plans=e.data,i.plan=i.plans.filter(e=>e.id==i.options.plan.planID)[0]});var t=new Date,r=(t.setDate(1),t.setMonth(t.getMonth()+1),new Date);r.setMonth(t.getMonth()+7,0),i.options={startDate:t,endDate:r,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},i.plan=null,i.$watch("options.plan.planID",()=>{i.plan=i.plans.filter(e=>e.id==i.options.plan.planID)[0]}),i.submit=function(){const t={title:`Creating ${i.options.name}...`,date:new Date,body:`The conference ${i.options.conferenceID} is in creation.`};i.editionMode&&(t.title=`Updating ${i.options.name}...`,t.body=`The conference '${i.options.conferenceID}' is updating.`),i.addToast(t),i.conference.name.$setValidity("required",!0),i.conference.conferenceID.$setValidity("pattern",!0),i.conference.conferenceID.$setValidity("required",!0),i.conference.conferenceID.$setValidity("used",!0),i.conference.startDate.$setValidity("required",!0),i.conference.startDate.$setValidity("invalid",!0),i.conference.endDate.$setValidity("required",!0),i.conference.endDate.$setValidity("invalid",!0),i.conference.$setValidity("error",!0),e.post("/api/conferences/"+(i.editionMode?i.options.conferenceID:""),i.options).then(()=>{i.editionMode?(t.title=i.options.name+" updated",t.body=`The conference '${i.options.conferenceID}' is updated.`):(t.title=i.options.name+" created",t.body=`The conference '${i.options.conferenceID}' is created.`),n.url("/conference/"+i.options.conferenceID)},e=>{switch(e.data.error){case"conf_name_missing":i.conference.name.$setValidity("required",!1);break;case"conf_id_missing":i.conference.conferenceID.$setValidity("required",!1);break;case"conf_id_format":i.conference.conferenceID.$setValidity("pattern",!1);break;case"conf_id_used":i.conference.conferenceID.$setValidity("used",!1);break;case"conf_start_date_missing":i.conference.startDate.$setValidity("required",!1);break;case"conf_end_date_missing":i.conference.endDate.$setValidity("required",!1);break;case"conf_start_date_invalid":i.conference.startDate.$setValidity("invalid",!1);break;case"conf_end_date_invalid":i.conference.endDate.$setValidity("invalid",!1);break;default:i.conference.$setValidity("error",!1)}i.removeToast(t)})}}]).controller("conferenceController",["$scope","$http","$location","$routeParams",function(t,e,i,n){t.$watch("user.status",()=>{null==t.user&&i.url("/")}),null==t.user&&i.url("/"),t.conference=null,t.search="",t.filters={status:{ready:!0,expired:!1,removed:!1}},t.orderBy="-anonymizeDate",t.repoFiler=e=>0!=t.filters.status[e.status]&&(0==t.search.trim().length||-1{t.conference=e.data})}]),angular.module("admin",[]).controller("repositoriesAdminController",["$scope","$http","$location",function(n,r,e){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&e.url("/")}),null==n.user&&e.url("/"),n.repositories=[],n.total=-1,n.totalPage=0;const s="admin.repos.filterPrefs";var t=loadFilterPrefs(s)||{};function a(){r.get("/api/admin/repos",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.repositories=e.data.results},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"lastView",search:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},t,{page:1,search:""}),n.removeCache=e=>{r.delete("/api/admin/repos/"+e.repoId).then(e=>{n.$apply()},e=>{console.error(e)})},n.updateRepository=t=>{const i={title:`Refreshing ${t.repoId}...`,date:new Date,body:`The repository ${t.repoId} is going to be refreshed.`};n.toasts.push(i),t.s,r.post(`/api/repo/${t.repoId}/refresh`).then(e=>{"ready"==e.data.status?i.title=t.repoId+" is refreshed.":i.title=`Refreshing of ${t.repoId}.`},e=>{i.title=`Error during the refresh of ${t.repoId}.`,i.body=e.body})},a();let o=null;n.$watch("query",()=>{clearTimeout(o),o=setTimeout(a,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(s,i)},!0)}]).controller("usersAdminController",["$scope","$http","$location",function(n,e,t){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&t.url("/")}),null==n.user&&t.url("/"),n.users=[],n.total=-1,n.totalPage=0;const r="admin.users.filterPrefs";var i=loadFilterPrefs(r)||{};function s(){e.get("/api/admin/users",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.users=e.data.results,n.$apply()},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"username",search:""},i,{page:1,search:""}),s();let a=null;n.$watch("query",()=>{clearTimeout(a),a=setTimeout(s,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(r,i)},!0)}]).controller("userAdminController",["$scope","$http","$location","$routeParams",function(n,r,e,t){n.$watch("user.status",()=>{null==n.user&&e.url("/")}),null==n.user&&e.url("/"),n.userInfo,n.repositories=[],n.search="";const i="admin.user.filterPrefs",s={status:{ready:!0,expired:!1,removed:!1}},a="-anonymizeDate";var o=loadFilterPrefs(i)||{};function l(e){r.get("/api/admin/users/"+e+"/repos",{}).then(e=>{n.repositories=e.data},e=>{console.error(e)})}function c(){r.get("/api/admin/tokens").then(e=>{n.tokens=e.data||[]},e=>{401!==e.status&&403!==e.status&&console.error(e)})}n.filters={status:Object.assign({},s.status,o.filters&&o.filters.status||{})},n.orderBy=o.orderBy||a,n.$watch("orderBy",()=>{saveFilterPrefs(i,{filters:n.filters,orderBy:n.orderBy})}),n.$watch("filters",()=>{saveFilterPrefs(i,{filters:n.filters,orderBy:n.orderBy})},!0),n.repoFiler=e=>0!=n.filters.status[e.status]&&(0==n.search.trim().length||-1{n.userInfo=e.data},e=>{console.error(e)}),l(t.username),n.tokens=[],n.tokenForm={name:"",plaintext:null},c(),n.createToken=()=>{n.tokenForm.name&&r.post("/api/admin/tokens",{name:n.tokenForm.name}).then(e=>{n.tokenForm.plaintext=e.data.token,n.tokenForm.name="",c()},e=>console.error(e))},n.revokeToken=e=>{confirm(`Revoke token "${e.name}"?`)&&r.delete("/api/admin/tokens/"+e.id).then(()=>c(),e=>console.error(e))},n.removeCache=e=>{r.delete("/api/admin/repos/"+e.repoId).then(e=>{n.$apply()},e=>{console.error(e)})},n.updateRepository=t=>{const i={title:`Refreshing ${t.repoId}...`,date:new Date,body:`The repository ${t.repoId} is going to be refreshed.`};n.toasts.push(i),t.s,r.post(`/api/repo/${t.repoId}/refresh`).then(e=>{"ready"==e.data.status?i.title=t.repoId+" is refreshed.":i.title=`Refreshing of ${t.repoId}.`},e=>{i.title=`Error during the refresh of ${t.repoId}.`,i.body=e.body})},n.getGitHubRepositories=e=>{r.get(`/api/user/${n.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(e=>{n.userInfo.repositories=e.data})};let h=null;n.$watch("query",()=>{clearTimeout(h),h=setTimeout(()=>{l(t.username)},500)},!0)}]).controller("conferencesAdminController",["$scope","$http","$location",function(n,e,t){n.Math=Math,n.$watch("user.status",()=>{null==n.user&&t.url("/")}),null==n.user&&t.url("/"),n.conferences=[],n.total=-1,n.totalPage=0;const r="admin.conferences.filterPrefs";var i=loadFilterPrefs(r)||{};function s(){e.get("/api/admin/conferences",{params:n.query}).then(e=>{n.total=e.data.total,n.totalPage=Math.ceil(e.data.total/n.query.limit),n.conferences=e.data.results,n.$apply()},e=>{console.error(e)})}n.query=Object.assign({},{page:1,limit:25,sort:"name",search:""},i,{page:1,search:""}),s();let a=null;n.$watch("query",()=>{clearTimeout(a),a=setTimeout(s,500);const{page:e,search:t,...i}=n.query;saveFilterPrefs(r,i)},!0)}]).controller("queuesAdminController",["$scope","$http","$location",function(i,n,e){function r(){n.get("/api/admin/queues",{params:i.query}).then(e=>{i.downloadJobs=e.data.downloadQueue,i.removeJobs=e.data.removeQueue,i.removeCaches=e.data.cacheQueue},e=>{console.error(e)})}i.$watch("user.status",()=>{null==i.user&&e.url("/")}),null==i.user&&e.url("/"),i.downloadJobs=[],i.removeJobs=[],r(),i.removeJob=function(e,t){n.delete(`/api/admin/queue/${e}/`+t.id,{params:i.query}).then(e=>{r()},e=>{console.error(e)})},i.retryJob=function(e,t){n.post(`/api/admin/queue/${e}/`+t.id,{params:i.query}).then(e=>{r()},e=>{console.error(e)})}}]); \ No newline at end of file