').html(html).html():html;};Ox.parseMarkdown=function(string){var array=[];return string.replace(/\r\n/g,'\n').replace(/\r/g,'\n').replace(/(?:^|\n)```(.*)\n([^`]+)\n```/g,function(match,classname,code){array.push(''
++code.trim().replace(/
');return salt.join(array.length-1);}).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(match,prev,backticks,code,next){array.push(prev+''
++code.trim().replace(/');return salt.join(array.length-1);}).replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,'$2').replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,'$2').replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,function(match,all,text,id,url,rest,quote,title){return''+text+'';}).replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'$1').replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(match,mail){return Ox.encodeEmailAddress(mail);}).replace(/\n\n/g,'
').replace(new RegExp(salt.join('(\\d+)'),'g'),function(match,index){return array[parseInt(index)];});};Ox.sanitizeHTML=function(html,tags,globalAttributes){tags=tags||defaultTags;globalAttributes=globalAttributes||[];var escaped={},level=0,matches=[],selfClosingTags=['img','br'],validAttributes={},requiredAttributes={},validate={},validTags=tags.map(function(tag){validAttributes[tag.name]=globalAttributes.concat(tag.required||[]).concat(tag.optional||[]);requiredAttributes[tag.name]=tag.required||[];validate[tag.name]=tag.validate||{};return tag.name;});if(Ox.contains(validTags,'[]')){html=html.replace(/\[((\/|https?:\/\/|mailto:).+?) (.+?)\]/gi,'$3');validTags=validTags.filter(function(tag){return tag!='[]';});}
+html=splitHTMLTags(html).map(function(string,i){var attrs={},attrMatch,attrRegexp=/([^=\ ]+)="([^"]+)"/g,attrString,isClosing,isTag=i%2,isValid=true,tag,tagMatch,tagRegexp=/<(\/)?([^\ \/]+)(.*?)(\/)?>/g;if(isTag){tagMatch=tagRegexp.exec(string);if(tagMatch){isClosing=!Ox.isUndefined(tagMatch[1]);tag=tagMatch[2];attrString=tagMatch[3].trim();while(attrMatch=attrRegexp.exec(attrString)){if(validAttributes[tag]&&Ox.contains(validAttributes[tag],attrMatch[1])){attrs[attrMatch[1]]=attrMatch[2];}}
+if(!isClosing&&!Ox.contains(selfClosingTags,tag)){level++;}
+if(!Ox.contains(validTags,tag)||(attrString.length&&Ox.isEmpty(attrs))){isValid=false;}else if(!isClosing&&requiredAttributes[tag]){requiredAttributes[tag].forEach(function(attr){if(Ox.isUndefined(attrs[attr])){isValid=false;}});}
+if(isValid&&!Ox.isEmpty(attrs)){Ox.forEach(attrs,function(value,key){if(!Ox.isUndefined(validate[tag][key])&&!validate[tag][key].exec(value)){isValid=false;return false;}});}
+if(isValid&&isClosing){isValid=!escaped[level];}else{escaped[level]=!isValid;}
+if(isClosing){level--;}
+if(isValid){return'<'
++(isClosing?'/':'')
++tag
++(!isClosing&&!Ox.isEmpty(attrs)?' '+Ox.values(Ox.map(attrs,function(value,key){return key+'="'+value+'"';})).join(' '):'')
++'>';}}}
+return Ox.encodeHTMLEntities(Ox.decodeHTMLEntities(string));}).join('');html=Ox.addLinks(html,true);html=html.replace(/\n\n/g,'
');return Ox.normalizeHTML(html);};Ox.stripTags=function(string){return string.replace(/<.*?>/g,'');};}());'use strict';Ox.oshash=function(file,callback){var hash=fromString(file.size.toString());read(0);function add(A,B){var a,b,c,d;d=A[3]+B[3];c=A[2]+B[2]+(d>>16);d&=0xffff;b=A[1]+B[1]+(c>>16);c&=0xffff;a=A[0]+B[0]+(b>>16);b&=0xffff;a&=0xffff;return[a,b,c,d];}
+function fromData(s,offset){offset=offset||0;return[s.charCodeAt(offset+6)+(s.charCodeAt(offset+7)<<8),s.charCodeAt(offset+4)+(s.charCodeAt(offset+5)<<8),s.charCodeAt(offset+2)+(s.charCodeAt(offset+3)<<8),s.charCodeAt(offset+0)+(s.charCodeAt(offset+1)<<8)];}
+function fromString(str){var base=10,blen=1,i,num,pos,r=[0,0,0,0];for(pos=0;pos>>=16;}
+if(num){blen++;}}while(num);}
+return r;}
+function hex(h){return(Ox.pad(h[0].toString(16),'left',4,'0')
++Ox.pad(h[1].toString(16),'left',4,'0')
++Ox.pad(h[2].toString(16),'left',4,'0')
++Ox.pad(h[3].toString(16),'left',4,'0')).toLowerCase();}
+function read(offset,last){var blob,block=65536,length=8,reader=new FileReader();reader.onload=function(data){var s=data.target.result,s_length=s.length-length,i;for(i=0;i<=s_length;i+=length){hash=add(hash,fromData(s,i));}
+if(file.size>>(32-s));return t4;};function cvt_hex(val){var str="";var i;var v;for(i=7;i>=0;i--){v=(val>>>(i*4))&0x0f;str+=v.toString(16);}
+return str;};var blockstart;var i,j;var W=new Array(80);var H0=0x67452301;var H1=0xEFCDAB89;var H2=0x98BADCFE;var H3=0x10325476;var H4=0xC3D2E1F0;var A,B,C,D,E;var temp;msg=Ox.encodeUTF8(msg);var msg_len=msg.length;var word_array=new Array();for(i=0;i>>29);word_array.push((msg_len<<3)&0x0ffffffff);for(blockstart=0;blockstart\s+(.+?)$/,multiline:/^\/\*\@.*?\n([\w\W]+)\n.*?\@?\*\/$/,script:/\n(\s*