var mobwrite={};mobwrite.syncGateway="/multiuser/muq.php";mobwrite.get_maxchars=1000;mobwrite.debug=false;if(!("console" in window)||!("info" in window.console)||!("warn" in window.console)||!("error" in window.console)){mobwrite.debug=false}mobwrite.sniffUserAgent=function(){if(window.opera){mobwrite.UA_opera=true}else{var a=navigator.userAgent.toLowerCase();mobwrite.UA_webkit=a.indexOf("webkit")!=-1;if(!mobwrite.UA_webkit){mobwrite.UA_gecko=a.indexOf("gecko")!=-1;if(!mobwrite.UA_gecko){mobwrite.UA_msie=a.indexOf("msie")!=-1}}}};mobwrite.UA_gecko=false;mobwrite.UA_opera=false;mobwrite.UA_msie=false;mobwrite.UA_webkit=false;mobwrite.sniffUserAgent();mobwrite.syncRunPid_=null;mobwrite.syncKillPid_=null;mobwrite.timeoutInterval=30000;mobwrite.minSyncInterval=1000;mobwrite.maxSyncInterval=10000;mobwrite.syncInterval=2000;mobwrite.idPrefix="";mobwrite.nullifyAll=false;mobwrite.clientChange_=false;mobwrite.serverChange_=false;mobwrite.syncAjaxObj_=null;mobwrite.uniqueId=function(){var b="abcdefghijklmnopqrstuvwxyz";var c=b.charAt(Math.random()*b.length);b+="0123456789-_:.";for(var a=1;a<8;a++){c+=b.charAt(Math.random()*b.length)}if(c.indexOf("--")!=-1){c=mobwrite.uniqueId()}return c};mobwrite.syncUsername=mobwrite.uniqueId();mobwrite.shared={};mobwrite.shareHandlers=[];mobwrite.shareObj=function(a){if(a){this.file=a;this.dmp=new diff_match_patch();this.dmp.Diff_Timeout=0.5;this.editStack=[];if(mobwrite.debug){window.console.info('Creating shareObj: "'+a+'"')}}};mobwrite.shareObj.prototype.shadowText="";mobwrite.shareObj.prototype.clientVersion=0;mobwrite.shareObj.prototype.serverVersion=0;mobwrite.shareObj.prototype.deltaOk=false;mobwrite.shareObj.prototype.mergeChanges=true;mobwrite.shareObj.prototype.getClientText=function(){window.alert("Defined by subclass");return""};mobwrite.shareObj.prototype.setClientText=function(a){window.alert("Defined by subclass")};mobwrite.shareObj.prototype.patchClientText=function(c){var b=this.getClientText();var a=this.dmp.patch_apply(c,b);if(b!=a[0]){this.setClientText(a[0])}};mobwrite.shareObj.prototype.onSentDiff=function(a){};mobwrite.shareObj.prototype.fireChange=function(b){if("createEvent" in document){var a=document.createEvent("HTMLEvents");a.initEvent("change",false,false);b.dispatchEvent(a)}else{if("fireEvent" in b){b.fireEvent("onchange")}}};mobwrite.shareObj.prototype.nullify=function(){mobwrite.unshare(this.file);return"N:"+mobwrite.idPrefix+this.file+"\n"};mobwrite.shareObj.prototype.syncText=function(){var b=this.getClientText();if(this.deltaOk){var f=this.dmp.diff_main(this.shadowText,b,true);if(f.length>2){this.dmp.diff_cleanupSemantic(f);this.dmp.diff_cleanupEfficiency(f)}var e=f.length!=1||f[0][0]!=DIFF_EQUAL;if(e){mobwrite.clientChange_=true;this.shadowText=b}if(e||!this.editStack.length){var d=(this.mergeChanges?"d:":"D:")+this.clientVersion+":"+this.dmp.diff_toDelta(f);this.editStack.push([this.clientVersion,d]);this.clientVersion++;this.onSentDiff(f)}}else{if(this.shadowText!=b){this.shadowText=b}this.clientVersion++;var d="r:"+this.clientVersion+":"+encodeURI(b).replace(/%20/g," ");this.editStack.push([this.clientVersion,d]);this.deltaOk=true}var c="F:"+this.serverVersion+":"+mobwrite.idPrefix+this.file+"\n";for(var a=0;a<this.editStack.length;a++){c+=this.editStack[a][1]+"\n"}return c.replace(/\x00/g,"%00")};mobwrite.syncRun1_=function(){mobwrite.clientChange_=false;var f=[];f[0]="u:"+mobwrite.syncUsername+"\n";var e=true;for(var a in mobwrite.shared){if(mobwrite.shared.hasOwnProperty(a)){if(mobwrite.nullifyAll){f.push(mobwrite.shared[a].nullify())}else{f.push(mobwrite.shared[a].syncText())}e=false}}if(e){if(mobwrite.debug){window.console.info("MobWrite task stopped.")}return}if(f.length==1){if(mobwrite.debug){window.console.info("All objects silent; null sync.")}mobwrite.syncRun2_("\n\n");return}var d=(mobwrite.syncGateway.indexOf("://")!=-1);if(mobwrite.debug){window.console.info("TO server:\n"+f.join(""))}f.push("\n");f=f.join("");mobwrite.syncKillPid_=window.setTimeout(mobwrite.syncKill_,mobwrite.timeoutInterval);if(d){var g=mobwrite.splitBlocks_(f);var c=document.getElementsByTagName("head")[0];for(var a=0;a<g.length;a++){var b=document.getElementById("mobwrite_sync"+a);if(b){b.parentNode.removeChild(b);if(!mobwrite.UA_msie){for(var h in b){delete b[h]}b=null}}if(!b){b=document.createElement("script");b.type="text/javascript";b.charset="utf-8";b.id="mobwrite_sync"+a}b.src=g[a];c.appendChild(b)}}else{f="q="+encodeURIComponent(f);mobwrite.syncAjaxObj_=mobwrite.syncLoadAjax_(mobwrite.syncGateway,f,mobwrite.syncCheckAjax_)}};mobwrite.splitBlocks_=function(q,a){var b=encodeURIComponent(q);var l=mobwrite.syncGateway+"?p=";var f=mobwrite.get_maxchars-l.length;var g=b.replace(/%20/g,"+");if(g.length<=f){return[l+g]}var e=1;if(typeof a!="undefined"){e=String(a).length}var n=[];var r=encodeURIComponent(b);var i=mobwrite.uniqueId();var c=(l+"b%3A"+i+"+++%0A%0A").length+2*e;var k=mobwrite.get_maxchars-c;if(k<3){if(mobwrite.debug){window.console.error("mobwrite.get_maxchars too small to send data.")}k=3}var p=Math.ceil(r.length/k);if(typeof a!="undefined"){p=Math.max(p,a)}var m="b%3A"+i+"+"+encodeURIComponent(p)+"+";var h=0;for(var d=1;d<=p;d++){var o=h+k;if(r.charAt(o-1)=="%"){o-=1}else{if(r.charAt(o-2)=="%"){o-=2}}var j=r.substring(h,o);n.push(l+m+d+"+"+j+"%0A%0A");h=o}if(h<r.length){if(mobwrite.debug){window.console.debug("Recursing splitBlocks_ at n="+(p+1))}return this.splitBlocks_(q,p+1)}return n};mobwrite.callback=function(a){if(a){mobwrite.syncRun2_(a+"\n")}else{window.clearTimeout(mobwrite.syncKillPid_);mobwrite.syncKillPid_=window.setTimeout(mobwrite.syncKill_,mobwrite.timeoutInterval)}};mobwrite.syncRun2_=function(n){mobwrite.serverChange_=false;if(mobwrite.debug){window.console.info("FROM server:\n"+n)}n=n.replace(/%00/g,"\0");if(n.length<2||n.substring(n.length-2)!="\n\n"){n="";if(mobwrite.error){window.console.info("Truncated data.  Abort.")}}var o=n.split("\n");var e=null;var f=null;for(var g=0;g<o.length;g++){var p=o[g];if(!p){break}if(p.charAt(1)!=":"){if(mobwrite.debug){window.console.error("Unparsable line: "+p)}continue}var d=p.charAt(0);var m=p.substring(2);var j;if("FfDdRr".indexOf(d)!=-1){var c=m.indexOf(":");if(c<1){if(mobwrite.debug){window.console.error("No version number: "+p)}continue}j=parseInt(m.substring(0,c),10);if(isNaN(j)){if(mobwrite.debug){window.console.error("NaN version number: "+p)}continue}m=m.substring(c+1)}if(d=="F"||d=="f"){if(m.substring(0,mobwrite.idPrefix.length)==mobwrite.idPrefix){m=m.substring(mobwrite.idPrefix.length)}else{e=null;if(mobwrite.debug){window.console.error('File does not have "'+mobwrite.idPrefix+'" prefix: '+m)}continue}if(mobwrite.shared.hasOwnProperty(m)){e=mobwrite.shared[m];e.deltaOk=true;f=j;for(var l=0;l<e.editStack.length;l++){if(e.editStack[l][0]<=f){e.editStack.splice(l,1);l--}}}else{e=null;if(mobwrite.debug){window.console.error("Unknown file: "+m)}}}else{if(d=="R"||d=="r"){if(e){e.shadowText=decodeURI(m);e.clientVersion=f;e.serverVersion=j;e.editStack=[];if(d=="R"){e.setClientText(e.shadowText)}mobwrite.serverChange_=true}}else{if(d=="D"||d=="d"){if(e){if(f!=e.clientVersion){e.deltaOk=false;if(mobwrite.debug){window.console.error("Client version number mismatch.\nExpected: "+e.clientVersion+" Got: "+f)}}else{if(j>e.serverVersion){e.deltaOk=false;if(mobwrite.debug){window.console.error("Server version in future.\nExpected: "+e.serverVersion+" Got: "+j)}}else{if(j<e.serverVersion){if(mobwrite.debug){window.console.warn("Server version in past.\nExpected: "+e.serverVersion+" Got: "+j)}}else{var h;try{h=e.dmp.diff_fromDelta(e.shadowText,m);e.serverVersion++}catch(k){h=null;e.deltaOk=false;mobwrite.syncInterval=0;if(mobwrite.debug){window.console.error("Delta mismatch.\n"+encodeURI(e.shadowText))}}if(h&&(h.length!=1||h[0][0]!=DIFF_EQUAL)){if(d=="D"){e.shadowText=e.dmp.diff_text2(h);e.setClientText(e.shadowText)}else{var b=e.dmp.patch_make(e.shadowText,h);var a=e.dmp.patch_apply(b,e.shadowText);e.shadowText=a[0];e.patchClientText(b)}mobwrite.serverChange_=true}}}}}}}}}mobwrite.computeSyncInterval_();window.clearTimeout(mobwrite.syncRunPid_);mobwrite.syncRunPid_=window.setTimeout(mobwrite.syncRun1_,mobwrite.syncInterval);window.clearTimeout(mobwrite.syncKillPid_);mobwrite.syncKillPid_=null};mobwrite.computeSyncInterval_=function(){var a=mobwrite.maxSyncInterval-mobwrite.minSyncInterval;if(mobwrite.clientChange_){mobwrite.syncInterval-=a*0.4}if(mobwrite.serverChange_){mobwrite.syncInterval-=a*0.2}if(!mobwrite.clientChange_&&!mobwrite.serverChange_){mobwrite.syncInterval+=a*0.1}mobwrite.syncInterval=Math.max(mobwrite.minSyncInterval,mobwrite.syncInterval);mobwrite.syncInterval=Math.min(mobwrite.maxSyncInterval,mobwrite.syncInterval)};mobwrite.syncKill_=function(){mobwrite.syncKillPid_=null;if(mobwrite.syncAjaxObj_){mobwrite.syncAjaxObj_.abort();mobwrite.syncAjaxObj_=null}if(mobwrite.debug){window.console.warn("Connection timeout.")}window.clearTimeout(mobwrite.syncRunPid_);mobwrite.syncRunPid_=window.setTimeout(mobwrite.syncRun1_,1)};mobwrite.syncLoadAjax_=function(a,b,g){var c=null;if(window.XMLHttpRequest){try{c=new XMLHttpRequest()}catch(f){c=null}}else{if(window.ActiveXObject){try{c=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{c=new ActiveXObject("Microsoft.XMLHTTP")}catch(d){c=null}}}}if(c){c.onreadystatechange=g;c.open("POST",a,true);c.setRequestHeader("Content-Type","application/x-www-form-urlencoded");c.send(b)}return c};mobwrite.syncCheckAjax_=function(){if(typeof mobwrite=="undefined"||!mobwrite.syncAjaxObj_){return}if(mobwrite.syncAjaxObj_.readyState==4){if(mobwrite.syncAjaxObj_.status==200){var a=mobwrite.syncAjaxObj_.responseText;mobwrite.syncAjaxObj_=null;mobwrite.syncRun2_(a)}else{if(mobwrite.debug){window.console.warn("Connection error code: "+mobwrite.syncAjaxObj_.status)}mobwrite.syncAjaxObj_=null}}};mobwrite.unload_=function(){if(!mobwrite.syncKillPid_){mobwrite.debug=false;mobwrite.syncRun1_()}};if(window.addEventListener){window.addEventListener("unload",mobwrite.unload_,false)}else{if(window.attachEvent){window.attachEvent("onunload",mobwrite.unload_)}}mobwrite.share=function(e){for(var c=0;c<arguments.length;c++){var d=arguments[c];var b=null;for(var a=0;a<mobwrite.shareHandlers.length&&!b;a++){b=mobwrite.shareHandlers[a].call(mobwrite,d)}if(b&&b.file){if(!b.file.match(/^[A-Za-z][-.:\w]*$/)){if(mobwrite.debug){window.console.error('Illegal id "'+b.file+'".')}continue}if(b.file in mobwrite.shared){if(mobwrite.debug){window.console.warn('Ignoring duplicate share on "'+d+'".')}continue}mobwrite.shared[b.file]=b;if(mobwrite.syncRunPid_===null){if(mobwrite.debug){window.console.info("MobWrite task started.")}}else{window.clearTimeout(mobwrite.syncRunPid_)}mobwrite.syncRunPid_=window.setTimeout(mobwrite.syncRun1_,10)}else{if(mobwrite.debug){window.console.warn("Share: Unknown widget type: "+d+".")}}}};mobwrite.unshare=function(e){for(var c=0;c<arguments.length;c++){var d=arguments[c];if(typeof d=="string"&&mobwrite.shared.hasOwnProperty(d)){delete mobwrite.shared[d];if(mobwrite.debug){window.console.info("Unshared: "+d)}}else{var b=null;for(var a=0;a<mobwrite.shareHandlers.length&&!b;a++){b=mobwrite.shareHandlers[a].call(mobwrite,d)}if(b&&b.file){if(mobwrite.shared.hasOwnProperty(b.file)){delete mobwrite.shared[b.file];if(mobwrite.debug){window.console.info("Unshared: "+d)}}else{if(mobwrite.debug){window.console.warn("Ignoring "+d+". Not currently shared.")}}}else{if(mobwrite.debug){window.console.warn("Unshare: Unknown widget type: "+d+".")}}}}};mobwrite.validNode_=function(a){while(a.parentNode){a=a.parentNode}return a.nodeType==9};mobwrite.shareHandlerForm=function(c){if(typeof c=="string"){c=document.getElementById(c)||document.forms[c]}if(c&&"tagName" in c&&c.tagName=="FORM"){for(var a=0,b;b=c.elements[a];a++){mobwrite.share(b)}}return null};mobwrite.shareHandlers.push(mobwrite.shareHandlerForm);mobwrite.shareHiddenObj=function(a){mobwrite.shareObj.apply(this,[a.id]);this.element=a};mobwrite.shareHiddenObj.prototype=new mobwrite.shareObj("");mobwrite.shareHiddenObj.prototype.getClientText=function(){if(!mobwrite.validNode_(this.element)){mobwrite.unshare(this.file)}this.mergeChanges=!this.element.value.match(/^\s*-?[\d.]+\s*$/);return this.element.value};mobwrite.shareHiddenObj.prototype.setClientText=function(a){this.element.value=a};mobwrite.shareHiddenObj.shareHandler=function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&"type" in a&&a.type=="hidden"){return new mobwrite.shareHiddenObj(a)}return null};mobwrite.shareHandlers.push(mobwrite.shareHiddenObj.shareHandler);mobwrite.shareCheckboxObj=function(a){mobwrite.shareObj.apply(this,[a.id]);this.element=a;this.mergeChanges=false};mobwrite.shareCheckboxObj.prototype=new mobwrite.shareObj("");mobwrite.shareCheckboxObj.prototype.getClientText=function(){if(!mobwrite.validNode_(this.element)){mobwrite.unshare(this.file)}return this.element.checked?this.element.value:""};mobwrite.shareCheckboxObj.prototype.setClientText=function(b){var a=this.element.value||"on";this.element.checked=(b==a);this.fireChange(this.element)};mobwrite.shareCheckboxObj.shareHandler=function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&"type" in a&&a.type=="checkbox"){return new mobwrite.shareCheckboxObj(a)}return null};mobwrite.shareHandlers.push(mobwrite.shareCheckboxObj.shareHandler);mobwrite.shareSelectObj=function(a){mobwrite.shareObj.apply(this,[a.id]);this.element=a;this.mergeChanges=(a.type=="select-multiple")};mobwrite.shareSelectObj.prototype=new mobwrite.shareObj("");mobwrite.shareSelectObj.prototype.getClientText=function(){if(!mobwrite.validNode_(this.element)){mobwrite.unshare(this.file)}var c=[];for(var a=0,b;b=this.element.options[a];a++){if(b.selected){c.push(b.value)}}return c.join("\0")};mobwrite.shareSelectObj.prototype.setClientText=function(c){c="\0"+c+"\0";for(var a=0,b;b=this.element.options[a];a++){b.selected=(c.indexOf("\0"+b.value+"\0")!=-1)}this.fireChange(this.element)};mobwrite.shareSelectObj.shareHandler=function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&"type" in a&&(a.type=="select-one"||a.type=="select-multiple")){return new mobwrite.shareSelectObj(a)}return null};mobwrite.shareHandlers.push(mobwrite.shareSelectObj.shareHandler);mobwrite.shareRadioObj=function(a){mobwrite.shareObj.apply(this,[a.id]);this.elements=[a];this.form=a.form;this.name=a.name;this.mergeChanges=false};mobwrite.shareRadioObj.prototype=new mobwrite.shareObj("");mobwrite.shareRadioObj.prototype.getClientText=function(){if(!mobwrite.validNode_(this.elements[0])){mobwrite.unshare(this.file)}for(var a=0;a<this.elements.length;a++){if(this.elements[a].checked){return this.elements[a].value}}return""};mobwrite.shareRadioObj.prototype.setClientText=function(b){for(var a=0;a<this.elements.length;a++){this.elements[a].checked=(b==this.elements[a].value);this.fireChange(this.elements[a])}};mobwrite.shareRadioObj.shareHandler=function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&"type" in a&&a.type=="radio"){for(var b in mobwrite.shared){if(mobwrite.shared[b].form==a.form&&mobwrite.shared[b].name==a.name){mobwrite.shared[b].elements.push(a);return null}}return new mobwrite.shareRadioObj(a)}return null};mobwrite.shareHandlers.push(mobwrite.shareRadioObj.shareHandler);mobwrite.shareTextareaObj=function(a){mobwrite.shareObj.apply(this,[a.id]);this.element=a;if(a.type=="password"){this.mergeChanges=false}};mobwrite.shareTextareaObj.prototype=new mobwrite.shareObj("");mobwrite.shareTextareaObj.prototype.getClientText=function(){if(!mobwrite.validNode_(this.element)){mobwrite.unshare(this.file)}var a=mobwrite.shareTextareaObj.normalizeLinebreaks_(this.element.value);if(this.element.type=="text"){this.mergeChanges=!a.match(/^\s*-?[\d.,]+\s*$/)}return a};mobwrite.shareTextareaObj.prototype.setClientText=function(a){this.element.value=a;this.fireChange(this.element)};mobwrite.shareTextareaObj.prototype.patchClientText=function(b){this.dmp.Match_Distance=1000;this.dmp.Match_Threshold=0.6;var a=this.getClientText();var e=this.captureCursor_();var c=[];if(e){c[0]=e.startOffset;if("endOffset" in e){c[1]=e.endOffset}}var d=this.patch_apply_(b,a,c);if(a!=d){this.setClientText(d);if(e){e.startOffset=c[0];if(c.length>1){e.endOffset=c[1];if(e.startOffset>=e.endOffset){e.collapsed=true}}this.restoreCursor_(e)}}};mobwrite.shareTextareaObj.prototype.patch_apply_=function(h,n,e){if(h.length==0){return n}h=this.dmp.patch_deepCopy(h);var t=this.dmp.patch_addPadding(h);n=t+n+t;this.dmp.patch_splitMax(h);var r=0;for(var l=0;l<h.length;l++){var c=h[l].start2+r;var m=this.dmp.diff_text1(h[l].diffs);var o;var b=-1;if(m.length>this.dmp.Match_MaxBits){o=this.dmp.match_main(n,m.substring(0,this.dmp.Match_MaxBits),c);if(o!=-1){b=this.dmp.match_main(n,m.substring(m.length-this.dmp.Match_MaxBits),c+m.length-this.dmp.Match_MaxBits);if(b==-1||o>=b){o=-1}}}else{o=this.dmp.match_main(n,m,c)}if(o==-1){if(mobwrite.debug){window.console.warn("Patch failed: "+h[l])}r-=h[l].length2-h[l].length1}else{if(mobwrite.debug){window.console.info("Patch OK.")}r=o-c;var k;if(b==-1){k=n.substring(o,o+m.length)}else{k=n.substring(o,b+this.dmp.Match_MaxBits)}var a=this.dmp.diff_main(m,k,false);if(m.length>this.dmp.Match_MaxBits&&this.dmp.diff_levenshtein(a)/m.length>this.dmp.Patch_DeleteThreshold){if(mobwrite.debug){window.console.warn("Patch contents mismatch: "+h[l])}}else{var f=0;var d;for(var j=0;j<h[l].diffs.length;j++){var s=h[l].diffs[j];if(s[0]!==DIFF_EQUAL){d=this.dmp.diff_xIndex(a,f)}if(s[0]===DIFF_INSERT){n=n.substring(0,o+d)+s[1]+n.substring(o+d);for(var p=0;p<e.length;p++){if(e[p]+t.length>o+d){e[p]+=s[1].length}}}else{if(s[0]===DIFF_DELETE){var q=o+d;var g=o+this.dmp.diff_xIndex(a,f+s[1].length);n=n.substring(0,q)+n.substring(g);for(var p=0;p<e.length;p++){if(e[p]+t.length>q){if(e[p]+t.length<g){e[p]=q-t.length}else{e[p]-=g-q}}}}}if(s[0]!==DIFF_DELETE){f+=s[1].length}}}}}n=n.substring(t.length,n.length-t.length);return n};mobwrite.shareTextareaObj.prototype.captureCursor_=function(){if("activeElement" in this.element&&!this.element.activeElement){return null}var b=this.dmp.Match_MaxBits/2;var h=this.element.value;var i={};if("selectionStart" in this.element){try{var g=this.element.selectionStart;var j=this.element.selectionEnd}catch(c){return null}i.startPrefix=h.substring(g-b,g);i.startSuffix=h.substring(g,g+b);i.startOffset=g;i.collapsed=(g==j);if(!i.collapsed){i.endPrefix=h.substring(j-b,j);i.endSuffix=h.substring(j,j+b);i.endOffset=j}}else{var f=this.element;while(f.parentNode){f=f.parentNode}if(!f.selection||!f.selection.createRange){return null}var a=f.selection.createRange();if(a.parentElement()!=this.element){return null}var d=f.body.createTextRange();i.collapsed=(a.text=="");d.moveToElementText(this.element);if(!i.collapsed){d.setEndPoint("EndToEnd",a);i.endPrefix=d.text;i.endOffset=i.endPrefix.length;i.endPrefix=i.endPrefix.substring(i.endPrefix.length-b)}d.setEndPoint("EndToStart",a);i.startPrefix=d.text;i.startOffset=i.startPrefix.length;i.startPrefix=i.startPrefix.substring(i.startPrefix.length-b);d.moveToElementText(this.element);d.setEndPoint("StartToStart",a);i.startSuffix=d.text.substring(0,b);if(!i.collapsed){d.setEndPoint("StartToEnd",a);i.endSuffix=d.text.substring(0,b)}}if("scrollTop" in this.element){i.scrollTop=this.element.scrollTop/this.element.scrollHeight;i.scrollLeft=this.element.scrollLeft/this.element.scrollWidth}return i};mobwrite.shareTextareaObj.prototype.restoreCursor_=function(j){this.dmp.Match_Distance=1000;this.dmp.Match_Threshold=0.9;var e=this.dmp.Match_MaxBits/2;var d=this.element.value;var a=j.startPrefix+j.startSuffix;var l,i;var m=this.dmp.match_main(d,a,j.startOffset-e);if(m!==null){l=d.substring(m,m+a.length);i=this.dmp.diff_main(a,l,false);m+=this.dmp.diff_xIndex(i,j.startPrefix.length)}var f=null;if(!j.collapsed){a=j.endPrefix+j.endSuffix;f=this.dmp.match_main(d,a,j.endOffset-e);if(f!==null){l=d.substring(f,f+a.length);i=this.dmp.diff_main(a,l,false);f+=this.dmp.diff_xIndex(i,j.endPrefix.length)}}if(m===null&&f!==null){m=f}else{if(m===null&&f===null){m=j.startOffset}}if(f===null){f=m}if("selectionStart" in this.element){this.element.selectionStart=m;this.element.selectionEnd=f}else{var h=this.element;while(h.parentNode){h=h.parentNode}if(!h.selection||!h.selection.createRange){return}var b=this.element.value.substring(0,m);var c=b.replace(/\r\n/g,"\n").length;var g=h.body.createTextRange();g.moveToElementText(this.element);g.collapse(true);g.moveStart("character",c);if(!j.collapsed){b=this.element.value.substring(m,f);var k=b.replace(/\r\n/g,"\n").length;g.moveEnd("character",k)}g.select()}if("scrollTop" in j){this.element.scrollTop=j.scrollTop*this.element.scrollHeight;this.element.scrollLeft=j.scrollLeft*this.element.scrollWidth}};mobwrite.shareTextareaObj.normalizeLinebreaks_=function(a){return a.replace(/\r\n/g,"\n").replace(/\r/g,"\n")};mobwrite.shareTextareaObj.shareHandler=function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&"value" in a&&"type" in a&&(a.type=="textarea"||a.type=="text"||a.type=="password")){if(mobwrite.UA_webkit){a.addEventListener("focus",function(){this.activeElement=true},false);a.addEventListener("blur",function(){this.activeElement=false},false);a.activeElement=false}return new mobwrite.shareTextareaObj(a)}return null};mobwrite.shareHandlers.push(mobwrite.shareTextareaObj.shareHandler);function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Diff_DualThreshold=32;this.Match_Threshold=0.5;this.Match_Distance=1000;this.Patch_DeleteThreshold=0.5;this.Patch_Margin=4;function a(){var d=0;var b=1;var c=2;while(b!=c){d++;b=c;c=c<<1}return d}this.Match_MaxBits=a()}var DIFF_DELETE=-1;var DIFF_INSERT=1;var DIFF_EQUAL=0;diff_match_patch.prototype.diff_main=function(g,f,d){if(g==f){return[[DIFF_EQUAL,g]]}if(typeof d=="undefined"){d=true}var e=d;var a=this.diff_commonPrefix(g,f);var b=g.substring(0,a);g=g.substring(a);f=f.substring(a);a=this.diff_commonSuffix(g,f);var c=g.substring(g.length-a);g=g.substring(0,g.length-a);f=f.substring(0,f.length-a);var h=this.diff_compute(g,f,e);if(b){h.unshift([DIFF_EQUAL,b])}if(c){h.push([DIFF_EQUAL,c])}this.diff_cleanupMerge(h);return h};diff_match_patch.prototype.diff_compute=function(n,l,h){var b;if(!n){return[[DIFF_INSERT,l]]}if(!l){return[[DIFF_DELETE,n]]}var k=n.length>l.length?n:l;var r=n.length>l.length?l:n;var u=k.indexOf(r);if(u!=-1){b=[[DIFF_INSERT,k.substring(0,u)],[DIFF_EQUAL,r],[DIFF_INSERT,k.substring(u+r.length)]];if(n.length>l.length){b[0][0]=b[2][0]=DIFF_DELETE}return b}k=r=null;var d=this.diff_halfMatch(n,l);if(d){var q=d[0];var p=d[1];var f=d[2];var c=d[3];var z=d[4];var y=this.diff_main(q,f,h);var w=this.diff_main(p,c,h);return y.concat([[DIFF_EQUAL,z]],w)}if(h&&(n.length<100||l.length<100)){h=false}var m;if(h){var x=this.diff_linesToChars(n,l);n=x[0];l=x[1];m=x[2]}b=this.diff_map(n,l);if(!b){b=[[DIFF_DELETE,n],[DIFF_INSERT,l]]}if(h){this.diff_charsToLines(b,m);this.diff_cleanupSemantic(b);b.push([DIFF_EQUAL,""]);var s=0;var g=0;var o=0;var v="";var e="";while(s<b.length){switch(b[s][0]){case DIFF_INSERT:o++;e+=b[s][1];break;case DIFF_DELETE:g++;v+=b[s][1];break;case DIFF_EQUAL:if(g>=1&&o>=1){var x=this.diff_main(v,e,false);b.splice(s-g-o,g+o);s=s-g-o;for(var t=x.length-1;t>=0;t--){b.splice(s,0,x[t])}s=s+x.length}o=0;g=0;v="";e="";break}s++}b.pop()}return b};diff_match_patch.prototype.diff_linesToChars=function(g,f){var e=[];var a={};e[0]="";function b(m){var k="";var i=0;var l=-1;var j=e.length;while(l<m.length-1){l=m.indexOf("\n",i);if(l==-1){l=m.length-1}var h=m.substring(i,l+1);i=l+1;if(a.hasOwnProperty?a.hasOwnProperty(h):(a[h]!==undefined)){k+=String.fromCharCode(a[h])}else{k+=String.fromCharCode(j);a[h]=j;e[j++]=h}}return k}var d=b(g);var c=b(f);return[d,c,e]};diff_match_patch.prototype.diff_charsToLines=function(e,b){for(var a=0;a<e.length;a++){var c=e[a][1];var d=[];for(var f=0;f<c.length;f++){d[f]=b[c.charCodeAt(f)]}e[a][1]=d.join("")}};diff_match_patch.prototype.diff_map=function(n,l){var r=(new Date()).getTime()+this.Diff_Timeout*1000;var t=n.length;var g=l.length;var i=t+g-1;var q=this.Diff_DualThreshold*2<i;var e=[];var b=[];var f={};var c={};f[1]=0;c[1]=0;var m,j;var u;var w={};var p=false;var o=!!(w.hasOwnProperty);var h=(t+g)%2;for(var v=0;v<i;v++){if(this.Diff_Timeout>0&&(new Date()).getTime()>r){return null}e[v]={};for(var s=-v;s<=v;s+=2){if(s==-v||s!=v&&f[s-1]<f[s+1]){m=f[s+1]}else{m=f[s-1]+1}j=m-s;if(q){u=m+","+j;if(h&&(o?w.hasOwnProperty(u):(w[u]!==undefined))){p=true}if(!h){w[u]=v}}while(!p&&m<t&&j<g&&n.charAt(m)==l.charAt(j)){m++;j++;if(q){u=m+","+j;if(h&&(o?w.hasOwnProperty(u):(w[u]!==undefined))){p=true}if(!h){w[u]=v}}}f[s]=m;e[v][m+","+j]=true;if(m==t&&j==g){return this.diff_path1(e,n,l)}else{if(p){b=b.slice(0,w[u]+1);var z=this.diff_path1(e,n.substring(0,m),l.substring(0,j));return z.concat(this.diff_path2(b,n.substring(m),l.substring(j)))}}}if(q){b[v]={};for(var s=-v;s<=v;s+=2){if(s==-v||s!=v&&c[s-1]<c[s+1]){m=c[s+1]}else{m=c[s-1]+1}j=m-s;u=(t-m)+","+(g-j);if(!h&&(o?w.hasOwnProperty(u):(w[u]!==undefined))){p=true}if(h){w[u]=v}while(!p&&m<t&&j<g&&n.charAt(t-m-1)==l.charAt(g-j-1)){m++;j++;u=(t-m)+","+(g-j);if(!h&&(o?w.hasOwnProperty(u):(w[u]!==undefined))){p=true}if(h){w[u]=v}}c[s]=m;b[v][m+","+j]=true;if(p){e=e.slice(0,w[u]+1);var z=this.diff_path1(e,n.substring(0,t-m),l.substring(0,g-j));return z.concat(this.diff_path2(b,n.substring(t-m),l.substring(g-j)))}}}}return null};diff_match_patch.prototype.diff_path1=function(b,f,e){var g=[];var a=f.length;var i=e.length;var c=null;for(var h=b.length-2;h>=0;h--){while(1){if(b[h].hasOwnProperty?b[h].hasOwnProperty((a-1)+","+i):(b[h][(a-1)+","+i]!==undefined)){a--;if(c===DIFF_DELETE){g[0][1]=f.charAt(a)+g[0][1]}else{g.unshift([DIFF_DELETE,f.charAt(a)])}c=DIFF_DELETE;break}else{if(b[h].hasOwnProperty?b[h].hasOwnProperty(a+","+(i-1)):(b[h][a+","+(i-1)]!==undefined)){i--;if(c===DIFF_INSERT){g[0][1]=e.charAt(i)+g[0][1]}else{g.unshift([DIFF_INSERT,e.charAt(i)])}c=DIFF_INSERT;break}else{a--;i--;if(c===DIFF_EQUAL){g[0][1]=f.charAt(a)+g[0][1]}else{g.unshift([DIFF_EQUAL,f.charAt(a)])}c=DIFF_EQUAL}}}}return g};diff_match_patch.prototype.diff_path2=function(a,e,b){var j=[];var i=0;var h=e.length;var g=b.length;var c=null;for(var f=a.length-2;f>=0;f--){while(1){if(a[f].hasOwnProperty?a[f].hasOwnProperty((h-1)+","+g):(a[f][(h-1)+","+g]!==undefined)){h--;if(c===DIFF_DELETE){j[i-1][1]+=e.charAt(e.length-h-1)}else{j[i++]=[DIFF_DELETE,e.charAt(e.length-h-1)]}c=DIFF_DELETE;break}else{if(a[f].hasOwnProperty?a[f].hasOwnProperty(h+","+(g-1)):(a[f][h+","+(g-1)]!==undefined)){g--;if(c===DIFF_INSERT){j[i-1][1]+=b.charAt(b.length-g-1)}else{j[i++]=[DIFF_INSERT,b.charAt(b.length-g-1)]}c=DIFF_INSERT;break}else{h--;g--;if(c===DIFF_EQUAL){j[i-1][1]+=e.charAt(e.length-h-1)}else{j[i++]=[DIFF_EQUAL,e.charAt(e.length-h-1)]}c=DIFF_EQUAL}}}}return j};diff_match_patch.prototype.diff_commonPrefix=function(e,d){if(!e||!d||e.charCodeAt(0)!==d.charCodeAt(0)){return 0}var b=0;var f=Math.min(e.length,d.length);var a=f;var c=0;while(b<a){if(e.substring(c,a)==d.substring(c,a)){b=a;c=b}else{f=a}a=Math.floor((f-b)/2+b)}return a};diff_match_patch.prototype.diff_commonSuffix=function(d,c){if(!d||!c||d.charCodeAt(d.length-1)!==c.charCodeAt(c.length-1)){return 0}var b=0;var e=Math.min(d.length,c.length);var a=e;var f=0;while(b<a){if(d.substring(d.length-a,d.length-f)==c.substring(c.length-a,c.length-f)){b=a;f=b}else{e=a}a=Math.floor((e-b)/2+b)}return a};diff_match_patch.prototype.diff_halfMatch=function(c,b){var k=c.length>b.length?c:b;var d=c.length>b.length?b:c;if(k.length<10||d.length<1){return null}var n=this;function i(v,o,r){var t=v.substring(r,r+Math.floor(v.length/4));var p=-1;var z="";var s,q,y,x;while((p=o.indexOf(t,p+1))!=-1){var u=n.diff_commonPrefix(v.substring(r),o.substring(p));var w=n.diff_commonSuffix(v.substring(0,r),o.substring(0,p));if(z.length<w+u){z=o.substring(p-w,p)+o.substring(p,p+u);s=v.substring(0,r-w);q=v.substring(r+u);y=o.substring(0,p-w);x=o.substring(p+u)}}if(z.length>=v.length/2){return[s,q,y,x,z]}else{return null}}var g=i(k,d,Math.ceil(k.length/4));var f=i(k,d,Math.ceil(k.length/2));var a;if(!g&&!f){return null}else{if(!f){a=g}else{if(!g){a=f}else{a=g[4].length>f[4].length?g:f}}}var j,h,m,l;if(c.length>b.length){j=a[0];h=a[1];m=a[2];l=a[3]}else{m=a[0];l=a[1];j=a[2];h=a[3]}var e=a[4];return[j,h,m,l,e]};diff_match_patch.prototype.diff_cleanupSemantic=function(h){var d=false;var a=[];var f=0;var e=null;var g=0;var c=0;var b=0;while(g<h.length){if(h[g][0]==DIFF_EQUAL){a[f++]=g;c=b;b=0;e=h[g][1]}else{b+=h[g][1].length;if(e!==null&&(e.length<=c)&&(e.length<=b)){h.splice(a[f-1],0,[DIFF_DELETE,e]);h[a[f-1]+1][0]=DIFF_INSERT;f--;f--;g=f>0?a[f-1]:-1;c=0;b=0;e=null;d=true}}g++}if(d){this.diff_cleanupMerge(h)}this.diff_cleanupSemanticLossless(h)};diff_match_patch.prototype.diff_cleanupSemanticLossless=function(b){var e=/[^a-zA-Z0-9]/;var q=/\s/;var d=/[\r\n]/;var j=/\n\r?\n$/;var a=/^\r?\n\r?\n/;function f(t,s){if(!t||!s){return 5}var u=0;if(t.charAt(t.length-1).match(e)||s.charAt(0).match(e)){u++;if(t.charAt(t.length-1).match(q)||s.charAt(0).match(q)){u++;if(t.charAt(t.length-1).match(d)||s.charAt(0).match(d)){u++;if(t.match(j)||s.match(a)){u++}}}}return u}var n=1;while(n<b.length-1){if(b[n-1][0]==DIFF_EQUAL&&b[n+1][0]==DIFF_EQUAL){var h=b[n-1][1];var l=b[n][1];var g=b[n+1][1];var r=this.diff_commonSuffix(h,l);if(r){var c=l.substring(l.length-r);h=h.substring(0,h.length-r);l=c+l.substring(0,l.length-r);g=c+g}var o=h;var k=l;var m=g;var i=f(h,l)+f(l,g);while(l.charAt(0)===g.charAt(0)){h+=l.charAt(0);l=l.substring(1)+g.charAt(0);g=g.substring(1);var p=f(h,l)+f(l,g);if(p>=i){i=p;o=h;k=l;m=g}}if(b[n-1][1]!=o){if(o){b[n-1][1]=o}else{b.splice(n-1,1);n--}b[n][1]=k;if(m){b[n+1][1]=m}else{b.splice(n+1,1);n--}}}n++}};diff_match_patch.prototype.diff_cleanupEfficiency=function(g){var i=false;var f=[];var c=0;var d="";var a=0;var h=false;var j=false;var b=false;var e=false;while(a<g.length){if(g[a][0]==DIFF_EQUAL){if(g[a][1].length<this.Diff_EditCost&&(b||e)){f[c++]=a;h=b;j=e;d=g[a][1]}else{c=0;d=""}b=e=false}else{if(g[a][0]==DIFF_DELETE){e=true}else{b=true}if(d&&((h&&j&&b&&e)||((d.length<this.Diff_EditCost/2)&&(h+j+b+e)==3))){g.splice(f[c-1],0,[DIFF_DELETE,d]);g[f[c-1]+1][0]=DIFF_INSERT;c--;d="";if(h&&j){b=e=true;c=0}else{c--;a=c>0?f[c-1]:-1;b=e=false}i=true}}a++}if(i){this.diff_cleanupMerge(g)}};diff_match_patch.prototype.diff_cleanupMerge=function(h){h.push([DIFF_EQUAL,""]);var g=0;var f=0;var e=0;var c="";var b="";var a;while(g<h.length){switch(h[g][0]){case DIFF_INSERT:e++;b+=h[g][1];g++;break;case DIFF_DELETE:f++;c+=h[g][1];g++;break;case DIFF_EQUAL:if(f!==0||e!==0){if(f!==0&&e!==0){a=this.diff_commonPrefix(b,c);if(a!==0){if((g-f-e)>0&&h[g-f-e-1][0]==DIFF_EQUAL){h[g-f-e-1][1]+=b.substring(0,a)}else{h.splice(0,0,[DIFF_EQUAL,b.substring(0,a)]);g++}b=b.substring(a);c=c.substring(a)}a=this.diff_commonSuffix(b,c);if(a!==0){h[g][1]=b.substring(b.length-a)+h[g][1];b=b.substring(0,b.length-a);c=c.substring(0,c.length-a)}}if(f===0){h.splice(g-f-e,f+e,[DIFF_INSERT,b])}else{if(e===0){h.splice(g-f-e,f+e,[DIFF_DELETE,c])}else{h.splice(g-f-e,f+e,[DIFF_DELETE,c],[DIFF_INSERT,b])}}g=g-f-e+(f?1:0)+(e?1:0)+1}else{if(g!==0&&h[g-1][0]==DIFF_EQUAL){h[g-1][1]+=h[g][1];h.splice(g,1)}else{g++}}e=0;f=0;c="";b="";break}}if(h[h.length-1][1]===""){h.pop()}var d=false;g=1;while(g<h.length-1){if(h[g-1][0]==DIFF_EQUAL&&h[g+1][0]==DIFF_EQUAL){if(h[g][1].substring(h[g][1].length-h[g-1][1].length)==h[g-1][1]){h[g][1]=h[g-1][1]+h[g][1].substring(0,h[g][1].length-h[g-1][1].length);h[g+1][1]=h[g-1][1]+h[g+1][1];h.splice(g-1,1);d=true}else{if(h[g][1].substring(0,h[g+1][1].length)==h[g+1][1]){h[g-1][1]+=h[g+1][1];h[g][1]=h[g][1].substring(h[g+1][1].length)+h[g+1][1];h.splice(g+1,1);d=true}}}g++}if(d){this.diff_cleanupMerge(h)}};diff_match_patch.prototype.diff_xIndex=function(g,f){var d=0;var b=0;var e=0;var c=0;var a;for(a=0;a<g.length;a++){if(g[a][0]!==DIFF_INSERT){d+=g[a][1].length}if(g[a][0]!==DIFF_DELETE){b+=g[a][1].length}if(d>f){break}e=d;c=b}if(g.length!=a&&g[a][0]===DIFF_DELETE){return c}return c+(f-e)};diff_match_patch.prototype.diff_prettyHtml=function(f){var c=[];var b=0;for(var a=0;a<f.length;a++){var g=f[a][0];var d=f[a][1];var e=d.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"&para;<BR>");switch(g){case DIFF_INSERT:c[a]='<INS STYLE="background:#E6FFE6;" TITLE="i='+b+'">'+e+"</INS>";break;case DIFF_DELETE:c[a]='<DEL STYLE="background:#FFE6E6;" TITLE="i='+b+'">'+e+"</DEL>";break;case DIFF_EQUAL:c[a]='<SPAN TITLE="i='+b+'">'+e+"</SPAN>";break}if(g!==DIFF_DELETE){b+=d.length}}return c.join("")};diff_match_patch.prototype.diff_text1=function(c){var b=[];for(var a=0;a<c.length;a++){if(c[a][0]!==DIFF_INSERT){b[a]=c[a][1]}}return b.join("")};diff_match_patch.prototype.diff_text2=function(c){var b=[];for(var a=0;a<c.length;a++){if(c[a][0]!==DIFF_DELETE){b[a]=c[a][1]}}return b.join("")};diff_match_patch.prototype.diff_levenshtein=function(f){var e=0;var b=0;var d=0;for(var a=0;a<f.length;a++){var g=f[a][0];var c=f[a][1];switch(g){case DIFF_INSERT:b+=c.length;break;case DIFF_DELETE:d+=c.length;break;case DIFF_EQUAL:e+=Math.max(b,d);b=0;d=0;break}}e+=Math.max(b,d);return e};diff_match_patch.prototype.diff_toDelta=function(c){var b=[];for(var a=0;a<c.length;a++){switch(c[a][0]){case DIFF_INSERT:b[a]="+"+encodeURI(c[a][1]);break;case DIFF_DELETE:b[a]="-"+c[a][1].length;break;case DIFF_EQUAL:b[a]="="+c[a][1].length;break}}return b.join("\t").replace(/\x00/g,"%00").replace(/%20/g," ")};diff_match_patch.prototype.diff_fromDelta=function(b,j){var f=[];var e=0;var a=0;j=j.replace(/%00/g,"\0");var h=j.split(/\t/g);for(var i=0;i<h.length;i++){var d=h[i].substring(1);switch(h[i].charAt(0)){case"+":try{f[e++]=[DIFF_INSERT,decodeURI(d)]}catch(g){throw new Error("Illegal escape in diff_fromDelta: "+d)}break;case"-":case"=":var c=parseInt(d,10);if(isNaN(c)||c<0){throw new Error("Invalid number in diff_fromDelta: "+d)}var k=b.substring(a,a+=c);if(h[i].charAt(0)=="="){f[e++]=[DIFF_EQUAL,k]}else{f[e++]=[DIFF_DELETE,k]}break;default:if(h[i]){throw new Error("Invalid diff operation in diff_fromDelta: "+h[i])}}}if(a!=b.length){throw new Error("Delta length ("+a+") does not equal source text length ("+b.length+").")}return f};diff_match_patch.prototype.match_main=function(c,a,b){b=Math.max(0,Math.min(b,c.length));if(c==a){return 0}else{if(!c.length){return -1}else{if(c.substring(b,b+a.length)==a){return b}else{return this.match_bitap(c,a,b)}}}};diff_match_patch.prototype.match_bitap=function(l,t,i){if(t.length>this.Match_MaxBits){throw new Error("Pattern too long for this browser.")}var m=this.match_alphabet(t);var a=this;function b(y,d){var s=y/t.length;var j=Math.abs(i-d);if(!a.Match_Distance){return j?1:s}return s+(j/a.Match_Distance)}var o=this.Match_Threshold;var c=l.indexOf(t,i);if(c!=-1){o=Math.min(b(0,c),o)}c=l.lastIndexOf(t,i+t.length);if(c!=-1){o=Math.min(b(0,c),o)}var v=1<<(t.length-1);c=-1;var f,k;var g=t.length+l.length;var h;for(var u=0;u<t.length;u++){f=0;k=g;while(f<k){if(b(u,i+k)<=o){f=k}else{g=k}k=Math.floor((g-f)/2+f)}g=k;var e=Math.max(1,i-k+1);var n=Math.min(i+k,l.length)+t.length;var p=Array(n+2);p[n+1]=(1<<u)-1;for(var q=n;q>=e;q--){var w=m[l.charAt(q-1)];if(u===0){p[q]=((p[q+1]<<1)|1)&w}else{p[q]=((p[q+1]<<1)|1)&w|(((h[q+1]|h[q])<<1)|1)|h[q+1]}if(p[q]&v){var r=b(u,q-1);if(r<=o){o=r;c=q-1;if(c>i){e=Math.max(1,2*i-c)}else{break}}}}if(b(u+1,i)>o){break}h=p}return c};diff_match_patch.prototype.match_alphabet=function(c){var b={};for(var a=0;a<c.length;a++){b[c.charAt(a)]=0}for(var a=0;a<c.length;a++){b[c.charAt(a)]|=1<<(c.length-a-1)}return b};diff_match_patch.prototype.patch_addContext=function(f,e){var b=e.substring(f.start2,f.start2+f.length1);var d=0;while(e.indexOf(b)!=e.lastIndexOf(b)&&b.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin){d+=this.Patch_Margin;b=e.substring(f.start2-d,f.start2+f.length1+d)}d+=this.Patch_Margin;var a=e.substring(f.start2-d,f.start2);if(a){f.diffs.unshift([DIFF_EQUAL,a])}var c=e.substring(f.start2+f.length1,f.start2+f.length1+d);if(c){f.diffs.push([DIFF_EQUAL,c])}f.start1-=a.length;f.start2-=a.length;f.length1+=a.length+c.length;f.length2+=a.length+c.length};diff_match_patch.prototype.patch_make=function(o,c,p){var d,k;if(typeof o=="string"&&typeof c=="string"&&typeof p=="undefined"){d=o;k=this.diff_main(d,c,true);if(k.length>2){this.diff_cleanupSemantic(k);this.diff_cleanupEfficiency(k)}}else{if(typeof o=="object"&&typeof c=="undefined"&&typeof p=="undefined"){k=o;d=this.diff_text1(k)}else{if(typeof o=="string"&&typeof c=="object"&&typeof p=="undefined"){d=o;k=c}else{if(typeof o=="string"&&typeof c=="string"&&typeof p=="object"){d=o;k=p}else{throw new Error("Unknown call format to patch_make.")}}}}if(k.length===0){return[]}var b=[];var e=new patch_obj();var h=0;var j=0;var i=0;var g=d;var m=d;for(var n=0;n<k.length;n++){var f=k[n][0];var l=k[n][1];if(!h&&f!==DIFF_EQUAL){e.start1=j;e.start2=i}switch(f){case DIFF_INSERT:e.diffs[h++]=k[n];e.length2+=l.length;m=m.substring(0,i)+l+m.substring(i);break;case DIFF_DELETE:e.length1+=l.length;e.diffs[h++]=k[n];m=m.substring(0,i)+m.substring(i+l.length);break;case DIFF_EQUAL:if(l.length<=2*this.Patch_Margin&&h&&k.length!=n+1){e.diffs[h++]=k[n];e.length1+=l.length;e.length2+=l.length}else{if(l.length>=2*this.Patch_Margin){if(h){this.patch_addContext(e,g);b.push(e);e=new patch_obj();h=0;g=m;j=i}}}break}if(f!==DIFF_INSERT){j+=l.length}if(f!==DIFF_DELETE){i+=l.length}}if(h){this.patch_addContext(e,g);b.push(e)}return b};diff_match_patch.prototype.patch_deepCopy=function(c){var d=[];for(var b=0;b<c.length;b++){var f=c[b];var a=new patch_obj();a.diffs=[];for(var e=0;e<f.diffs.length;e++){a.diffs[e]=f.diffs[e].slice()}a.start1=f.start1;a.start2=f.start2;a.length1=f.length1;a.length2=f.length2;d[b]=a}return d};diff_match_patch.prototype.patch_apply=function(a,p){if(a.length==0){return[p,[]]}a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);p=c+p+c;this.patch_splitMax(a);var o=0;var g=[];for(var n=0;n<a.length;n++){var b=a[n].start2+o;var e=this.diff_text1(a[n].diffs);var f;var k=-1;if(e.length>this.Match_MaxBits){f=this.match_main(p,e.substring(0,this.Match_MaxBits),b);if(f!=-1){k=this.match_main(p,e.substring(e.length-this.Match_MaxBits),b+e.length-this.Match_MaxBits);if(k==-1||f>=k){f=-1}}}else{f=this.match_main(p,e,b)}if(f==-1){g[n]=false;o-=a[n].length2-a[n].length1}else{g[n]=true;o=f-b;var d;if(k==-1){d=p.substring(f,f+e.length)}else{d=p.substring(f,k+this.Match_MaxBits)}if(e==d){p=p.substring(0,f)+this.diff_text2(a[n].diffs)+p.substring(f+e.length)}else{var i=this.diff_main(e,d,false);if(e.length>this.Match_MaxBits&&this.diff_levenshtein(i)/e.length>this.Patch_DeleteThreshold){g[n]=false}else{this.diff_cleanupSemanticLossless(i);var j=0;var h;for(var m=0;m<a[n].diffs.length;m++){var l=a[n].diffs[m];if(l[0]!==DIFF_EQUAL){h=this.diff_xIndex(i,j)}if(l[0]===DIFF_INSERT){p=p.substring(0,f+h)+l[1]+p.substring(f+h)}else{if(l[0]===DIFF_DELETE){p=p.substring(0,f+h)+p.substring(f+this.diff_xIndex(i,j+l[1].length))}}if(l[0]!==DIFF_DELETE){j+=l[1].length}}}}}}p=p.substring(c.length,p.length-c.length);return[p,g]};diff_match_patch.prototype.patch_addPadding=function(d){var c=this.Patch_Margin;var b="";for(var a=1;a<=c;a++){b+=String.fromCharCode(a)}for(var a=0;a<d.length;a++){d[a].start1+=c;d[a].start2+=c}var g=d[0];var f=g.diffs;if(f.length==0||f[0][0]!=DIFF_EQUAL){f.unshift([DIFF_EQUAL,b]);g.start1-=c;g.start2-=c;g.length1+=c;g.length2+=c}else{if(c>f[0][1].length){var e=c-f[0][1].length;f[0][1]=b.substring(f[0][1].length)+f[0][1];g.start1-=e;g.start2-=e;g.length1+=e;g.length2+=e}}g=d[d.length-1];f=g.diffs;if(f.length==0||f[f.length-1][0]!=DIFF_EQUAL){f.push([DIFF_EQUAL,b]);g.length1+=c;g.length2+=c}else{if(c>f[f.length-1][1].length){var e=c-f[f.length-1][1].length;f[f.length-1][1]+=b.substring(0,e);g.length1+=e;g.length2+=e}}return b};diff_match_patch.prototype.patch_splitMax=function(a){for(var l=0;l<a.length;l++){if(a[l].length1>this.Match_MaxBits){var f=a[l];a.splice(l--,1);var i=this.Match_MaxBits;var c=f.start1;var b=f.start2;var g="";while(f.diffs.length!==0){var e=new patch_obj();var j=true;e.start1=c-g.length;e.start2=b-g.length;if(g!==""){e.length1=e.length2=g.length;e.diffs.push([DIFF_EQUAL,g])}while(f.diffs.length!==0&&e.length1<i-this.Patch_Margin){var h=f.diffs[0][0];var k=f.diffs[0][1];if(h===DIFF_INSERT){e.length2+=k.length;b+=k.length;e.diffs.push(f.diffs.shift());j=false}else{if(h===DIFF_DELETE&&e.diffs.length==1&&e.diffs[0][0]==DIFF_EQUAL&&k.length>2*i){e.length1+=k.length;c+=k.length;j=false;e.diffs.push([h,k]);f.diffs.shift()}else{k=k.substring(0,i-e.length1-this.Patch_Margin);e.length1+=k.length;c+=k.length;if(h===DIFF_EQUAL){e.length2+=k.length;b+=k.length}else{j=false}e.diffs.push([h,k]);if(k==f.diffs[0][1]){f.diffs.shift()}else{f.diffs[0][1]=f.diffs[0][1].substring(k.length)}}}}g=this.diff_text2(e.diffs);g=g.substring(g.length-this.Patch_Margin);var d=this.diff_text1(f.diffs).substring(0,this.Patch_Margin);if(d!==""){e.length1+=d.length;e.length2+=d.length;if(e.diffs.length!==0&&e.diffs[e.diffs.length-1][0]===DIFF_EQUAL){e.diffs[e.diffs.length-1][1]+=d}else{e.diffs.push([DIFF_EQUAL,d])}}if(!j){a.splice(++l,0,e)}}}}};diff_match_patch.prototype.patch_toText=function(b){var c=[];for(var a=0;a<b.length;a++){c[a]=b[a]}return c.join("")};diff_match_patch.prototype.patch_fromText=function(f){var a=[];if(!f){return a}f=f.replace(/%00/g,"\0");var g=f.split("\n");var h=0;while(h<g.length){var d=g[h].match(/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/);if(!d){throw new Error("Invalid patch string: "+g[h])}var b=new patch_obj();a.push(b);b.start1=parseInt(d[1],10);if(d[2]===""){b.start1--;b.length1=1}else{if(d[2]=="0"){b.length1=0}else{b.start1--;b.length1=parseInt(d[2],10)}}b.start2=parseInt(d[3],10);if(d[4]===""){b.start2--;b.length2=1}else{if(d[4]=="0"){b.length2=0}else{b.start2--;b.length2=parseInt(d[4],10)}}h++;while(h<g.length){var c=g[h].charAt(0);try{var i=decodeURI(g[h].substring(1))}catch(e){throw new Error("Illegal escape in patch_fromText: "+i)}if(c=="-"){b.diffs.push([DIFF_DELETE,i])}else{if(c=="+"){b.diffs.push([DIFF_INSERT,i])}else{if(c==" "){b.diffs.push([DIFF_EQUAL,i])}else{if(c=="@"){break}else{if(c===""){}else{throw new Error('Invalid patch mode "'+c+'" in: '+i)}}}}}h++}}return a};function patch_obj(){this.diffs=[];this.start1=null;this.start2=null;this.length1=0;this.length2=0}patch_obj.prototype.toString=function(){var b,e;if(this.length1===0){b=this.start1+",0"}else{if(this.length1==1){b=this.start1+1}else{b=(this.start1+1)+","+this.length1}}if(this.length2===0){e=this.start2+",0"}else{if(this.length2==1){e=this.start2+1}else{e=(this.start2+1)+","+this.length2}}var c=["@@ -"+b+" +"+e+" @@\n"];var d;for(var a=0;a<this.diffs.length;a++){switch(this.diffs[a][0]){case DIFF_INSERT:d="+";break;case DIFF_DELETE:d="-";break;case DIFF_EQUAL:d=" ";break}c[a+1]=d+encodeURI(this.diffs[a][1])+"\n"}return c.join("").replace(/\x00/g,"%00").replace(/%20/g," ")};
