Revision 95550a13

b/programs/nativeQtClient/odfview.cpp
22 22
        htmlfile = "qrc:/embedodf.html";
23 23
    }
24 24
    setPage(new OdfPage(this));
25
    nativeio = new NativeIO(this, QDir(prefix));
25
    nativeio = new NativeIO(this, QDir(prefix), QDir::current());
26 26
    connect(page(), SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished(bool)));
27 27
    page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
28 28

  
b/webodf/lib/xmldom/RelaxNGParser.js
59 59
     * @param {Node=} context
60 60
     */
61 61
    function RelaxNGParseError(error, context) {
62
        /**
63
         * return {!string}
64
         */
62 65
        this.message = function () {
63 66
            if (context) {
64 67
                error += (context.nodeType === 1) ? " Element " : " Node ";
......
81 84
            e: [ o ].concat(e.e.slice(2))
82 85
        });
83 86
    }
84

  
87
    /**
88
     * @param {!string} name
89
     * @return {!Array.<string>}
90
     */
85 91
    function splitQName(name) {
86 92
        var r = name.split(":", 2),
87 93
            prefix = "", i;
......
109 115
        }
110 116
    }
111 117

  
118
    /**
119
     * @param {!string} str
120
     * @return {!string}
121
     */
112 122
    function trim(str) {
113 123
        str = str.replace(/^\s\s*/, '');
114 124
		var ws = /\s/,
......
119 129
        return str.slice(0, i + 1);
120 130
    }
121 131

  
132
    /**
133
     * @param {!Object.<string,string>} atts
134
     * @param {!string} name
135
     * @param {!Array.<string>} names
136
     * @return {!Object}
137
     */
122 138
    function copyAttributes(atts, name, names) {
123 139
        var a = {}, i, att;
124 140
        for (i = 0; i < atts.length; i += 1) {
......
183 199
    parse = function parse(element, elements, siblings) {
184 200
        // parse all elements from the Relax NG namespace into JavaScript
185 201
        // objects
186
        var e = [], a, ce,
202
        var e = [],
203
            /**@type{Object}*/a,
204
            ce,
187 205
            i, text, name = element.localName, names = [];
188 206
        a = copyAttributes(element.attributes, name, names);
207
        a.combine = a.combine || undefined;
189 208
        text = parseChildren(element.firstChild, e, elements, names);
190 209

  
191 210
        // 4.2 strip leading and trailing whitespace
......
383 402

  
384 403
    function main(dom, callback) {
385 404
        var elements = [],
386
            grammar = parse(dom && dom.documentElement, elements),
405
            grammar = parse(dom && dom.documentElement, elements, undefined),
387 406
            i, e, defines = {};
388 407

  
389 408
        for (i = 0; i < grammar.e.length; i += 1) {
b/webodf/relaxngtests/test23.rng
1
<?xml version="1.0" encoding="UTF-8"?>
2
<grammar 
3
    xmlns="http://relaxng.org/ns/structure/1.0"
4
    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
5
    xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
6
<define name="manifest">
7
    <element name="manifest:manifest">
8
        <oneOrMore>
9
            <ref name="file-entry"/>
10
        </oneOrMore>
11
    </element>
12
</define>
13
<start>
14
    <choice>
15
        <ref name="manifest"/>
16
    </choice>
17
</start>
18
<define name="file-entry">
19
    <element name="manifest:file-entry">
20
        <ref name="file-entry-attlist"/>
21
    </element>
22
</define>
23
<define name="file-entry-attlist" combine="interleave">
24
    <attribute name="manifest:full-path">
25
        <data type="string"/>
26
    </attribute>
27
</define>
28
<define name="file-entry-attlist" combine="interleave">
29
    <attribute name="manifest:media-type">
30
        <data type="string"/>
31
    </attribute>
32
</define>
33
</grammar>
b/webodf/relaxngtests/test23.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
3
 <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="settings.xml"/>
4
</manifest:manifest>
b/webodf/webodf.js
35 35
// Input 1
36 36
function Runtime(){}Runtime.ByteArray=function(){};Runtime.ByteArray.prototype.slice=function(){};Runtime.prototype.byteArrayFromArray=function(){};Runtime.prototype.byteArrayFromString=function(){};Runtime.prototype.byteArrayToString=function(){};Runtime.prototype.concatByteArrays=function(){};Runtime.prototype.read=function(){};Runtime.prototype.readFile=function(){};Runtime.prototype.readFileSync=function(){};Runtime.prototype.loadXML=function(){};Runtime.prototype.writeFile=function(){};
37 37
Runtime.prototype.isFile=function(){};Runtime.prototype.getFileSize=function(){};Runtime.prototype.deleteFile=function(){};Runtime.prototype.log=function(){};Runtime.prototype.setTimeout=function(){};Runtime.prototype.libraryPaths=function(){};Runtime.prototype.type=function(){};Runtime.prototype.getDOMImplementation=function(){};Runtime.prototype.getWindow=function(){};var IS_COMPILED_CODE=true;
38
Runtime.byteArrayToString=function(g,n){function e(e){var a="",c,h=e.length,b,f,d;for(c=0;c<h;c+=1)b=e[c],b<128?a+=String.fromCharCode(b):(c+=1,f=e[c],b<224?a+=String.fromCharCode((b&31)<<6|f&63):(c+=1,d=e[c],a+=String.fromCharCode((b&15)<<12|(f&63)<<6|d&63)));return a}if(n==="utf8")return e(g);else n!=="binary"&&this.log("Unsupported encoding: "+n);return function(e){var a="",c,h=e.length;for(c=0;c<h;c+=1)a+=String.fromCharCode(e[c]&255);return a}(g)};
38
Runtime.byteArrayToString=function(g,m){function f(f){var a="",d,h=f.length,b,c,e;for(d=0;d<h;d+=1)b=f[d],b<128?a+=String.fromCharCode(b):(d+=1,c=f[d],b<224?a+=String.fromCharCode((b&31)<<6|c&63):(d+=1,e=f[d],a+=String.fromCharCode((b&15)<<12|(c&63)<<6|e&63)));return a}if(m==="utf8")return f(g);else m!=="binary"&&this.log("Unsupported encoding: "+m);return function(f){var a="",d,h=f.length;for(d=0;d<h;d+=1)a+=String.fromCharCode(f[d]&255);return a}(g)};
39 39
Runtime.getFunctionName=function(g){return g.name===void 0?(g=/function\s+(\w+)/.exec(g))&&g[1]:g.name};
40
function BrowserRuntime(g){function n(c,h){var b,f,d;h?d=c:h=c;if(g){f=g.ownerDocument;if(d)b=f.createElement("span"),b.className=d,b.appendChild(f.createTextNode(d)),g.appendChild(b),g.appendChild(f.createTextNode(" "));b=f.createElement("span");b.appendChild(f.createTextNode(h));g.appendChild(b);g.appendChild(f.createElement("br"))}else console&&console.log(h)}var e=this,l={},a=window.ArrayBuffer&&window.Uint8Array;this.ByteArray=a?function(c){Uint8Array.prototype.slice=function(c,b){if(b===void 0)c===
41
void 0&&(c=0),b=this.length;var f=this.subarray(c,b),d,a;b-=c;d=new Uint8Array(new ArrayBuffer(b));for(a=0;a<b;a+=1)d[a]=f[a];return d};return new Uint8Array(new ArrayBuffer(c))}:function(c){var a=[];a.length=c;return a};this.concatByteArrays=a?function(c,a){var b,f=c.length,d=a.length,j=new this.ByteArray(f+d);for(b=0;b<f;b+=1)j[b]=c[b];for(b=0;b<d;b+=1)j[b+f]=a[b];return j}:function(c,a){return c.concat(a)};this.byteArrayFromArray=function(c){return c.slice()};this.byteArrayFromString=function(c,
42
a){if(a==="utf8"){var b=c.length,f,d,j,k=0;for(d=0;d<b;d+=1)j=c.charCodeAt(d),k+=1+(j>128)+(j>2048);f=new e.ByteArray(k);for(d=k=0;d<b;d+=1)j=c.charCodeAt(d),j<128?(f[k]=j,k+=1):j<2048?(f[k]=192|j>>>6,f[k+1]=128|j&63,k+=2):(f[k]=224|j>>>12&15,f[k+1]=128|j>>>6&63,f[k+2]=128|j&63,k+=3);return f}else a!=="binary"&&e.log("unknown encoding: "+a);b=c.length;f=new e.ByteArray(b);for(d=0;d<b;d+=1)f[d]=c.charCodeAt(d)&255;return f};this.byteArrayToString=Runtime.byteArrayToString;this.readFile=function(c,
43
a,b){if(l.hasOwnProperty(c))b(null,l[c]);else{var f=new XMLHttpRequest;f.open("GET",c,true);f.onreadystatechange=function(){var d;f.readyState===4&&(f.status===0&&!f.responseText?b("File "+c+" is empty."):f.status===200||f.status===0?(d=a==="binary"?typeof VBArray!=="undefined"?(new VBArray(f.responseBody)).toArray():e.byteArrayFromString(f.responseText,"binary"):f.responseText,l[c]=d,b(null,d)):b(f.responseText||f.statusText))};f.overrideMimeType&&(a!=="binary"?f.overrideMimeType("text/plain; charset="+
44
a):f.overrideMimeType("text/plain; charset=x-user-defined"));try{f.send(null)}catch(d){b(d.message)}}};this.read=function(c,a,b,f){if(l.hasOwnProperty(c))f(null,l[c].slice(a,a+b));else{var d=new XMLHttpRequest;d.open("GET",c,true);d.onreadystatechange=function(){var j;d.readyState===4&&(d.status===0&&!d.responseText?f("File "+c+" is empty."):d.status===200||d.status===0?(j=typeof VBArray!=="undefined"?(new VBArray(d.responseBody)).toArray():e.byteArrayFromString(d.responseText,"binary"),l[c]=j,f(null,
45
j.slice(a,a+b))):f(d.responseText||d.statusText))};d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined");try{d.send(null)}catch(j){f(j.message)}}};this.readFileSync=function(c,a){var b=new XMLHttpRequest,f;b.open("GET",c,false);b.overrideMimeType&&(a!=="binary"?b.overrideMimeType("text/plain; charset="+a):b.overrideMimeType("text/plain; charset=x-user-defined"));try{if(b.send(null),b.status===200||b.status===0)f=b.responseText}catch(d){}return f};this.writeFile=function(c,a,
46
b){l[c]=a;var f=new XMLHttpRequest;f.open("PUT",c,true);f.onreadystatechange=function(){f.readyState===4&&(f.status===0&&!f.responseText?b("File "+c+" is empty."):f.status>=200&&f.status<300||f.status===0?b(null):b("Status "+String(f.status)+": "+f.responseText||f.statusText))};a=a.buffer&&!f.sendAsBinary?a.buffer:e.byteArrayToString(a,"binary");try{f.sendAsBinary?f.sendAsBinary(a):f.send(a)}catch(d){e.log("HUH? "+d+" "+a),b(d.message)}};this.deleteFile=function(c,a){var b=new XMLHttpRequest;b.open("DELETE",
47
c,true);b.onreadystatechange=function(){b.readyState===4&&(b.status<200&&b.status>=300?a(b.responseText):a(null))};b.send(null)};this.loadXML=function(c,a){var b=new XMLHttpRequest;b.open("GET",c,true);b.overrideMimeType("text/xml");b.onreadystatechange=function(){b.readyState===4&&(b.status===0&&!b.responseText?a("File "+c+" is empty."):b.status===200||b.status===0?a(null,b.responseXML):a(b.responseText))};try{b.send(null)}catch(f){a(f.message)}};this.isFile=function(a,h){e.getFileSize(a,function(a){h(a!==
48
-1)})};this.getFileSize=function(a,h){var b=new XMLHttpRequest;b.open("HEAD",a,true);b.onreadystatechange=function(){if(b.readyState===4){var a=b.getResponseHeader("Content-Length");a?h(parseInt(a,10)):h(-1)}};b.send(null)};this.log=n;this.setTimeout=function(a,h){setTimeout(function(){a()},h)};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(){};this.type=function(){return"BrowserRuntime"};this.getDOMImplementation=function(){return window.document.implementation};this.exit=
49
function(a){n("Calling exit with code "+String(a)+", but exit() is not implemented.")};this.getWindow=function(){return window}}
50
function NodeJSRuntime(){var g=require("fs"),n="";this.ByteArray=function(e){return new Buffer(e)};this.byteArrayFromArray=function(e){var l=new Buffer(e.length),a,c=e.length;for(a=0;a<c;a+=1)l[a]=e[a];return l};this.concatByteArrays=function(e,l){var a=new Buffer(e.length+l.length);e.copy(a,0,0);l.copy(a,e.length,0);return a};this.byteArrayFromString=function(e,l){return new Buffer(e,l)};this.byteArrayToString=function(e,l){return e.toString(l)};this.readFile=function(e,l,a){l!=="binary"?g.readFile(e,
51
l,a):g.readFile(e,null,a)};this.writeFile=function(e,l,a){g.writeFile(e,l,"binary",function(c){a(c||null)})};this.deleteFile=g.unlink;this.read=function(e,l,a,c){n&&(e=n+"/"+e);g.open(e,"r+",666,function(h,b){if(h)c(h);else{var f=new Buffer(a);g.read(b,f,0,a,l,function(a){g.close(b);c(a,f)})}})};this.readFileSync=function(e,l){return!l?"":g.readFileSync(e,l)};this.loadXML=function(){throw"Not implemented.";};this.isFile=function(e,l){n&&(e=n+"/"+e);g.stat(e,function(a,c){l(!a&&c.isFile())})};this.getFileSize=
52
function(e,l){n&&(e=n+"/"+e);g.stat(e,function(a,c){a?l(-1):l(c.size)})};this.log=function(e){process.stderr.write(e+"\n")};this.setTimeout=function(e,l){setTimeout(function(){e()},l)};this.libraryPaths=function(){return[__dirname]};this.setCurrentDirectory=function(e){n=e};this.currentDirectory=function(){return n};this.type=function(){return"NodeJSRuntime"};this.getDOMImplementation=function(){return null};this.exit=process.exit;this.getWindow=function(){return null}}
53
function RhinoRuntime(){var g=this,n=Packages.javax.xml.parsers.DocumentBuilderFactory.newInstance(),e,l,a="";n.setValidating(false);n.setNamespaceAware(true);n.setExpandEntityReferences(false);n.setSchema(null);l=Packages.org.xml.sax.EntityResolver({resolveEntity:function(a,h){var b=new Packages.java.io.FileReader(h);return new Packages.org.xml.sax.InputSource(b)}});e=n.newDocumentBuilder();e.setEntityResolver(l);this.ByteArray=function(a){return[a]};this.byteArrayFromArray=function(a){return a};
54
this.byteArrayFromString=function(a){var h=[],b,f=a.length;for(b=0;b<f;b+=1)h[b]=a.charCodeAt(b)&255;return h};this.byteArrayToString=Runtime.byteArrayToString;this.concatByteArrays=function(a,h){return a.concat(h)};this.loadXML=function(a,h){var b=new Packages.java.io.File(a),f;try{f=e.parse(b)}catch(d){print(d);h(d);return}h(null,f)};this.readFile=function(a,h,b){var f=new Packages.java.io.File(a),d=h==="binary"?"latin1":h;f.isFile()?(a=readFile(a,d),h==="binary"&&(a=g.byteArrayFromString(a,"binary")),
55
b(null,a)):b(a+" is not a file.")};this.writeFile=function(a,h,b){var a=new Packages.java.io.FileOutputStream(a),f,d=h.length;for(f=0;f<d;f+=1)a.write(h[f]);a.close();b(null)};this.deleteFile=function(a,h){(new Packages.java.io.File(a))["delete"]()?h(null):h("Could not delete "+a)};this.read=function(c,h,b,f){a&&(c=a+"/"+c);var d;d=c;var j="binary";(new Packages.java.io.File(d)).isFile()?(j==="binary"&&(j="latin1"),d=readFile(d,j)):d=null;d?f(null,this.byteArrayFromString(d.substring(h,h+b),"binary")):
56
f("Cannot read "+c)};this.readFileSync=function(a,h){return!h?"":readFile(a,h)};this.isFile=function(c,h){a&&(c=a+"/"+c);var b=new Packages.java.io.File(c);h(b.isFile())};this.getFileSize=function(c,h){a&&(c=a+"/"+c);var b=new Packages.java.io.File(c);h(b.length())};this.log=print;this.setTimeout=function(a){a()};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(c){a=c};this.currentDirectory=function(){return a};this.type=function(){return"RhinoRuntime"};this.getDOMImplementation=
57
function(){return e.getDOMImplementation()};this.exit=quit;this.getWindow=function(){return null}}var runtime=function(){return typeof window!=="undefined"?new BrowserRuntime(window.document.getElementById("logoutput")):typeof require!=="undefined"?new NodeJSRuntime:new RhinoRuntime}();
58
(function(){function g(e){var a=e[0],c;c=eval("if (typeof "+a+" === 'undefined') {eval('"+a+" = {};');}"+a);for(a=1;a<e.length-1;a+=1)c.hasOwnProperty(e[a])||(c=c[e[a]]={});return c[e[e.length-1]]}var n={},e={};runtime.loadClass=function(l){if(!IS_COMPILED_CODE&&!n.hasOwnProperty(l)){var a=l.split("."),c;c=g(a);if(!c&&(c=function(a){var b,c,d,j,k;c=a.replace(".","/")+".js";j=runtime.libraryPaths();runtime.currentDirectory&&j.push(runtime.currentDirectory());for(k=0;!b&&k<j.length;k+=1){d=j[k];if(!e.hasOwnProperty(d))if((b=
59
runtime.readFileSync(j[k]+"/manifest.js","utf8"))&&b.length)try{e[d]=eval(b)}catch(g){e[d]=null,runtime.log("Cannot load manifest for "+d+".")}else e[d]=null;b=null;if((d=e[d])&&d.indexOf&&d.indexOf(c)!==-1)try{b=runtime.readFileSync(j[k]+"/"+c,"utf8")}catch(m){throw runtime.log("Error loading "+a+" "+m),m;}}if(b===void 0)throw"Cannot load class "+a;try{b=eval(a+" = eval(code);")}catch(l){throw runtime.log("Error loading "+a+" "+l),l;}return b}(l),!c||Runtime.getFunctionName(c)!==a[a.length-1]))throw runtime.log("Loaded code is not for "+
60
a[a.length-1]),"Loaded code is not for "+a[a.length-1];n[l]=true}}})();
61
(function(g){function n(e){if(e.length){var g=e[0];runtime.readFile(g,"utf8",function(a,c){function h(){var a;(a=eval(c))&&runtime.exit(a)}var b="";runtime.libraryPaths();g.indexOf("/")!==-1&&(b=g.substring(0,g.indexOf("/")));runtime.setCurrentDirectory(b);a?(runtime.log(a),runtime.exit(1)):h.apply(null,e)})}}g=Array.prototype.slice.call(g);runtime.type()==="NodeJSRuntime"?n(process.argv.slice(2)):runtime.type()==="RhinoRuntime"?n(g):n(g.slice(1))})(typeof arguments!=="undefined"&&arguments);
40
function BrowserRuntime(g){function m(d,h){var b,c,e;h?e=d:h=d;if(g){c=g.ownerDocument;if(e)b=c.createElement("span"),b.className=e,b.appendChild(c.createTextNode(e)),g.appendChild(b),g.appendChild(c.createTextNode(" "));b=c.createElement("span");b.appendChild(c.createTextNode(h));g.appendChild(b);g.appendChild(c.createElement("br"))}else console&&console.log(h)}var f=this,j={},a=window.ArrayBuffer&&window.Uint8Array;this.ByteArray=a?function(d){Uint8Array.prototype.slice=function(d,b){if(b===void 0)d===
41
void 0&&(d=0),b=this.length;var c=this.subarray(d,b),e,a;b-=d;e=new Uint8Array(new ArrayBuffer(b));for(a=0;a<b;a+=1)e[a]=c[a];return e};return new Uint8Array(new ArrayBuffer(d))}:function(d){var a=[];a.length=d;return a};this.concatByteArrays=a?function(d,a){var b,c=d.length,e=a.length,i=new this.ByteArray(c+e);for(b=0;b<c;b+=1)i[b]=d[b];for(b=0;b<e;b+=1)i[b+c]=a[b];return i}:function(d,a){return d.concat(a)};this.byteArrayFromArray=function(d){return d.slice()};this.byteArrayFromString=function(d,
42
a){if(a==="utf8"){var b=d.length,c,e,i,o=0;for(e=0;e<b;e+=1)i=d.charCodeAt(e),o+=1+(i>128)+(i>2048);c=new f.ByteArray(o);for(e=o=0;e<b;e+=1)i=d.charCodeAt(e),i<128?(c[o]=i,o+=1):i<2048?(c[o]=192|i>>>6,c[o+1]=128|i&63,o+=2):(c[o]=224|i>>>12&15,c[o+1]=128|i>>>6&63,c[o+2]=128|i&63,o+=3);return c}else a!=="binary"&&f.log("unknown encoding: "+a);b=d.length;c=new f.ByteArray(b);for(e=0;e<b;e+=1)c[e]=d.charCodeAt(e)&255;return c};this.byteArrayToString=Runtime.byteArrayToString;this.readFile=function(d,
43
a,b){if(j.hasOwnProperty(d))b(null,j[d]);else{var c=new XMLHttpRequest;c.open("GET",d,true);c.onreadystatechange=function(){var e;c.readyState===4&&(c.status===0&&!c.responseText?b("File "+d+" is empty."):c.status===200||c.status===0?(e=a==="binary"?typeof VBArray!=="undefined"?(new VBArray(c.responseBody)).toArray():f.byteArrayFromString(c.responseText,"binary"):c.responseText,j[d]=e,b(null,e)):b(c.responseText||c.statusText))};c.overrideMimeType&&(a!=="binary"?c.overrideMimeType("text/plain; charset="+
44
a):c.overrideMimeType("text/plain; charset=x-user-defined"));try{c.send(null)}catch(e){b(e.message)}}};this.read=function(d,a,b,c){if(j.hasOwnProperty(d))c(null,j[d].slice(a,a+b));else{var e=new XMLHttpRequest;e.open("GET",d,true);e.onreadystatechange=function(){var i;e.readyState===4&&(e.status===0&&!e.responseText?c("File "+d+" is empty."):e.status===200||e.status===0?(i=typeof VBArray!=="undefined"?(new VBArray(e.responseBody)).toArray():f.byteArrayFromString(e.responseText,"binary"),j[d]=i,c(null,
45
i.slice(a,a+b))):c(e.responseText||e.statusText))};e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined");try{e.send(null)}catch(i){c(i.message)}}};this.readFileSync=function(d,a){var b=new XMLHttpRequest,c;b.open("GET",d,false);b.overrideMimeType&&(a!=="binary"?b.overrideMimeType("text/plain; charset="+a):b.overrideMimeType("text/plain; charset=x-user-defined"));try{if(b.send(null),b.status===200||b.status===0)c=b.responseText}catch(e){}return c};this.writeFile=function(d,a,
46
b){j[d]=a;var c=new XMLHttpRequest;c.open("PUT",d,true);c.onreadystatechange=function(){c.readyState===4&&(c.status===0&&!c.responseText?b("File "+d+" is empty."):c.status>=200&&c.status<300||c.status===0?b(null):b("Status "+String(c.status)+": "+c.responseText||c.statusText))};a=a.buffer&&!c.sendAsBinary?a.buffer:f.byteArrayToString(a,"binary");try{c.sendAsBinary?c.sendAsBinary(a):c.send(a)}catch(e){f.log("HUH? "+e+" "+a),b(e.message)}};this.deleteFile=function(d,a){var b=new XMLHttpRequest;b.open("DELETE",
47
d,true);b.onreadystatechange=function(){b.readyState===4&&(b.status<200&&b.status>=300?a(b.responseText):a(null))};b.send(null)};this.loadXML=function(d,a){var b=new XMLHttpRequest;b.open("GET",d,true);b.overrideMimeType("text/xml");b.onreadystatechange=function(){b.readyState===4&&(b.status===0&&!b.responseText?a("File "+d+" is empty."):b.status===200||b.status===0?a(null,b.responseXML):a(b.responseText))};try{b.send(null)}catch(c){a(c.message)}};this.isFile=function(a,h){f.getFileSize(a,function(a){h(a!==
48
-1)})};this.getFileSize=function(a,h){var b=new XMLHttpRequest;b.open("HEAD",a,true);b.onreadystatechange=function(){if(b.readyState===4){var a=b.getResponseHeader("Content-Length");a?h(parseInt(a,10)):h(-1)}};b.send(null)};this.log=m;this.setTimeout=function(a,h){setTimeout(function(){a()},h)};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(){};this.type=function(){return"BrowserRuntime"};this.getDOMImplementation=function(){return window.document.implementation};this.exit=
49
function(a){m("Calling exit with code "+String(a)+", but exit() is not implemented.")};this.getWindow=function(){return window}}
50
function NodeJSRuntime(){var g=require("fs"),m="";this.ByteArray=function(f){return new Buffer(f)};this.byteArrayFromArray=function(f){var j=new Buffer(f.length),a,d=f.length;for(a=0;a<d;a+=1)j[a]=f[a];return j};this.concatByteArrays=function(f,j){var a=new Buffer(f.length+j.length);f.copy(a,0,0);j.copy(a,f.length,0);return a};this.byteArrayFromString=function(f,j){return new Buffer(f,j)};this.byteArrayToString=function(f,j){return f.toString(j)};this.readFile=function(f,j,a){j!=="binary"?g.readFile(f,
51
j,a):g.readFile(f,null,a)};this.writeFile=function(f,j,a){g.writeFile(f,j,"binary",function(d){a(d||null)})};this.deleteFile=g.unlink;this.read=function(f,j,a,d){m&&(f=m+"/"+f);g.open(f,"r+",666,function(h,b){if(h)d(h);else{var c=new Buffer(a);g.read(b,c,0,a,j,function(a){g.close(b);d(a,c)})}})};this.readFileSync=function(f,j){return!j?"":g.readFileSync(f,j)};this.loadXML=function(){throw"Not implemented.";};this.isFile=function(f,j){m&&(f=m+"/"+f);g.stat(f,function(a,d){j(!a&&d.isFile())})};this.getFileSize=
52
function(f,j){m&&(f=m+"/"+f);g.stat(f,function(a,d){a?j(-1):j(d.size)})};this.log=function(f){process.stderr.write(f+"\n")};this.setTimeout=function(f,j){setTimeout(function(){f()},j)};this.libraryPaths=function(){return[__dirname]};this.setCurrentDirectory=function(f){m=f};this.currentDirectory=function(){return m};this.type=function(){return"NodeJSRuntime"};this.getDOMImplementation=function(){return null};this.exit=process.exit;this.getWindow=function(){return null}}
53
function RhinoRuntime(){var g=this,m=Packages.javax.xml.parsers.DocumentBuilderFactory.newInstance(),f,j,a="";m.setValidating(false);m.setNamespaceAware(true);m.setExpandEntityReferences(false);m.setSchema(null);j=Packages.org.xml.sax.EntityResolver({resolveEntity:function(a,h){var b=new Packages.java.io.FileReader(h);return new Packages.org.xml.sax.InputSource(b)}});f=m.newDocumentBuilder();f.setEntityResolver(j);this.ByteArray=function(a){return[a]};this.byteArrayFromArray=function(a){return a};
54
this.byteArrayFromString=function(a){var h=[],b,c=a.length;for(b=0;b<c;b+=1)h[b]=a.charCodeAt(b)&255;return h};this.byteArrayToString=Runtime.byteArrayToString;this.concatByteArrays=function(a,h){return a.concat(h)};this.loadXML=function(a,h){var b=new Packages.java.io.File(a),c;try{c=f.parse(b)}catch(e){print(e);h(e);return}h(null,c)};this.readFile=function(a,h,b){var c=new Packages.java.io.File(a),e=h==="binary"?"latin1":h;c.isFile()?(a=readFile(a,e),h==="binary"&&(a=g.byteArrayFromString(a,"binary")),
55
b(null,a)):b(a+" is not a file.")};this.writeFile=function(a,h,b){var a=new Packages.java.io.FileOutputStream(a),c,e=h.length;for(c=0;c<e;c+=1)a.write(h[c]);a.close();b(null)};this.deleteFile=function(a,h){(new Packages.java.io.File(a))["delete"]()?h(null):h("Could not delete "+a)};this.read=function(d,h,b,c){a&&(d=a+"/"+d);var e;e=d;var i="binary";(new Packages.java.io.File(e)).isFile()?(i==="binary"&&(i="latin1"),e=readFile(e,i)):e=null;e?c(null,this.byteArrayFromString(e.substring(h,h+b),"binary")):
56
c("Cannot read "+d)};this.readFileSync=function(a,h){return!h?"":readFile(a,h)};this.isFile=function(d,h){a&&(d=a+"/"+d);var b=new Packages.java.io.File(d);h(b.isFile())};this.getFileSize=function(d,h){a&&(d=a+"/"+d);var b=new Packages.java.io.File(d);h(b.length())};this.log=print;this.setTimeout=function(a){a()};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(d){a=d};this.currentDirectory=function(){return a};this.type=function(){return"RhinoRuntime"};this.getDOMImplementation=
57
function(){return f.getDOMImplementation()};this.exit=quit;this.getWindow=function(){return null}}var runtime=function(){return typeof window!=="undefined"?new BrowserRuntime(window.document.getElementById("logoutput")):typeof require!=="undefined"?new NodeJSRuntime:new RhinoRuntime}();
58
(function(){function g(f){var a=f[0],d;d=eval("if (typeof "+a+" === 'undefined') {eval('"+a+" = {};');}"+a);for(a=1;a<f.length-1;a+=1)d.hasOwnProperty(f[a])||(d=d[f[a]]={});return d[f[f.length-1]]}var m={},f={};runtime.loadClass=function(j){if(!IS_COMPILED_CODE&&!m.hasOwnProperty(j)){var a=j.split("."),d;d=g(a);if(!d&&(d=function(a){var b,d,e,i,o;d=a.replace(".","/")+".js";i=runtime.libraryPaths();runtime.currentDirectory&&i.push(runtime.currentDirectory());for(o=0;!b&&o<i.length;o+=1){e=i[o];if(!f.hasOwnProperty(e))if((b=
59
runtime.readFileSync(i[o]+"/manifest.js","utf8"))&&b.length)try{f[e]=eval(b)}catch(q){f[e]=null,runtime.log("Cannot load manifest for "+e+".")}else f[e]=null;b=null;if((e=f[e])&&e.indexOf&&e.indexOf(d)!==-1)try{b=runtime.readFileSync(i[o]+"/"+d,"utf8")}catch(k){throw runtime.log("Error loading "+a+" "+k),k;}}if(b===void 0)throw"Cannot load class "+a;try{b=eval(a+" = eval(code);")}catch(g){throw runtime.log("Error loading "+a+" "+g),g;}return b}(j),!d||Runtime.getFunctionName(d)!==a[a.length-1]))throw runtime.log("Loaded code is not for "+
60
a[a.length-1]),"Loaded code is not for "+a[a.length-1];m[j]=true}}})();
61
(function(g){function m(f){if(f.length){var g=f[0];runtime.readFile(g,"utf8",function(a,d){function h(){var a;(a=eval(d))&&runtime.exit(a)}var b="";runtime.libraryPaths();g.indexOf("/")!==-1&&(b=g.substring(0,g.indexOf("/")));runtime.setCurrentDirectory(b);a?(runtime.log(a),runtime.exit(1)):h.apply(null,f)})}}g=Array.prototype.slice.call(g);runtime.type()==="NodeJSRuntime"?m(process.argv.slice(2)):runtime.type()==="RhinoRuntime"?m(g):m(g.slice(1))})(typeof arguments!=="undefined"&&arguments);
62 62
// Input 2
63
core.Base64=function(){function g(a){var b=[],d,i=a.length;for(d=0;d<i;d+=1)b[d]=a.charCodeAt(d)&255;return b}function n(a){var b,d="",i,c=a.length-2;for(i=0;i<c;i+=3)b=a[i]<<16|a[i+1]<<8|a[i+2],d+=u[b>>>18],d+=u[b>>>12&63],d+=u[b>>>6&63],d+=u[b&63];i===c+1?(b=a[i]<<4,d+=u[b>>>6],d+=u[b&63],d+="=="):i===c&&(b=a[i]<<10|a[i+1]<<2,d+=u[b>>>12],d+=u[b>>>6&63],d+=u[b&63],d+="=");return d}function e(a){var a=a.replace(/[^A-Za-z0-9+\/]+/g,""),b=[],d=a.length%4,i,c=a.length,f;for(i=0;i<c;i+=4)f=(q[a.charAt(i)]||
64
0)<<18|(q[a.charAt(i+1)]||0)<<12|(q[a.charAt(i+2)]||0)<<6|(q[a.charAt(i+3)]||0),b.push(f>>16,f>>8&255,f&255);b.length-=[0,0,2,1][d];return b}function l(a){var b=[],d,i=a.length,c;for(d=0;d<i;d+=1)c=a[d],c<128?b.push(c):c<2048?b.push(192|c>>>6,128|c&63):b.push(224|c>>>12&15,128|c>>>6&63,128|c&63);return b}function a(a){var b=[],d,i=a.length,c,f,o;for(d=0;d<i;d+=1)c=a[d],c<128?b.push(c):(d+=1,f=a[d],c<224?b.push((c&31)<<6|f&63):(d+=1,o=a[d],b.push((c&15)<<12|(f&63)<<6|o&63)));return b}function c(a){return n(g(a))}
65
function h(a){return String.fromCharCode.apply(String,e(a))}function b(b){return a(g(b))}function f(b){return String.fromCharCode.apply(String,a(b))}function d(a,b,d){for(var i="",c,f,o;b<d;b+=1)c=a.charCodeAt(b)&255,c<128?i+=String.fromCharCode(c):(b+=1,f=a.charCodeAt(b)&255,c<224?i+=String.fromCharCode((c&31)<<6|f&63):(b+=1,o=a.charCodeAt(b)&255,i+=String.fromCharCode((c&15)<<12|(f&63)<<6|o&63)));return i}function j(a,b){function i(){var o=e+c;if(o>a.length)o=a.length;f+=d(a,e,o);e=o;o=e===a.length;
66
b(f,o)&&!o&&runtime.setTimeout(i,0)}var c=1E5,f="",e=0;a.length<c?b(d(a,0,a.length),true):(typeof a!=="string"&&(a=a.slice()),i())}function k(a){return l(g(a))}function s(a){return String.fromCharCode.apply(String,l(a))}function m(a){return String.fromCharCode.apply(String,l(g(a)))}var u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(){var a=[],b,d="A".charCodeAt(0),i="a".charCodeAt(0),c="0".charCodeAt(0);for(b=0;b<26;b+=1)a.push(d+b);for(b=0;b<26;b+=1)a.push(i+b);for(b=
67
0;b<10;b+=1)a.push(c+b);a.push("+".charCodeAt(0));a.push("/".charCodeAt(0));return a})();var q=function(a){var b={},d,i;for(d=0,i=a.length;d<i;d+=1)b[a.charAt(d)]=d;return b}(u),i,t,v,D;(v=runtime.getWindow()&&runtime.getWindow().btoa)?i=function(a){return v(m(a))}:(v=c,i=function(a){return n(k(a))});(D=runtime.getWindow()&&runtime.getWindow().atob)?t=function(a){a=D(a);return d(a,0,a.length)}:(D=h,t=function(a){return f(e(a))});return function(){this.convertByteArrayToBase64=this.convertUTF8ArrayToBase64=
68
n;this.convertBase64ToByteArray=this.convertBase64ToUTF8Array=e;this.convertUTF16ArrayToByteArray=this.convertUTF16ArrayToUTF8Array=l;this.convertByteArrayToUTF16Array=this.convertUTF8ArrayToUTF16Array=a;this.convertUTF8StringToBase64=c;this.convertBase64ToUTF8String=h;this.convertUTF8StringToUTF16Array=b;this.convertByteArrayToUTF16String=this.convertUTF8ArrayToUTF16String=f;this.convertUTF8StringToUTF16String=j;this.convertUTF16StringToByteArray=this.convertUTF16StringToUTF8Array=k;this.convertUTF16ArrayToUTF8String=
69
s;this.convertUTF16StringToUTF8String=m;this.convertUTF16StringToBase64=i;this.convertBase64ToUTF16String=t;this.fromBase64=h;this.toBase64=c;this.atob=D;this.btoa=v;this.utob=m;this.btou=j;this.encode=i;this.encodeURI=function(a){return i(a).replace(/[+\/]/g,function(a){return a==="+"?"-":"_"}).replace(/\\=+$/,"")};this.decode=function(a){return t(a.replace(/[\-_]/g,function(a){return a==="-"?"+":"/"}))}}}();
63
core.Base64=function(){function g(a){var e=[],b,d=a.length;for(b=0;b<d;b+=1)e[b]=a.charCodeAt(b)&255;return e}function m(a){var e,b="",d,c=a.length-2;for(d=0;d<c;d+=3)e=a[d]<<16|a[d+1]<<8|a[d+2],b+=v[e>>>18],b+=v[e>>>12&63],b+=v[e>>>6&63],b+=v[e&63];d===c+1?(e=a[d]<<4,b+=v[e>>>6],b+=v[e&63],b+="=="):d===c&&(e=a[d]<<10|a[d+1]<<2,b+=v[e>>>12],b+=v[e>>>6&63],b+=v[e&63],b+="=");return b}function f(a){var a=a.replace(/[^A-Za-z0-9+\/]+/g,""),e=[],b=a.length%4,d,c=a.length,n;for(d=0;d<c;d+=4)n=(l[a.charAt(d)]||
64
0)<<18|(l[a.charAt(d+1)]||0)<<12|(l[a.charAt(d+2)]||0)<<6|(l[a.charAt(d+3)]||0),e.push(n>>16,n>>8&255,n&255);e.length-=[0,0,2,1][b];return e}function j(a){var e=[],b,d=a.length,c;for(b=0;b<d;b+=1)c=a[b],c<128?e.push(c):c<2048?e.push(192|c>>>6,128|c&63):e.push(224|c>>>12&15,128|c>>>6&63,128|c&63);return e}function a(a){var e=[],b,d=a.length,c,n,p;for(b=0;b<d;b+=1)c=a[b],c<128?e.push(c):(b+=1,n=a[b],c<224?e.push((c&31)<<6|n&63):(b+=1,p=a[b],e.push((c&15)<<12|(n&63)<<6|p&63)));return e}function d(a){return m(g(a))}
65
function h(a){return String.fromCharCode.apply(String,f(a))}function b(e){return a(g(e))}function c(e){return String.fromCharCode.apply(String,a(e))}function e(a,e,b){for(var d="",c,n,p;e<b;e+=1)c=a.charCodeAt(e)&255,c<128?d+=String.fromCharCode(c):(e+=1,n=a.charCodeAt(e)&255,c<224?d+=String.fromCharCode((c&31)<<6|n&63):(e+=1,p=a.charCodeAt(e)&255,d+=String.fromCharCode((c&15)<<12|(n&63)<<6|p&63)));return d}function i(a,b){function d(){var p=f+c;if(p>a.length)p=a.length;n+=e(a,f,p);f=p;p=f===a.length;
66
b(n,p)&&!p&&runtime.setTimeout(d,0)}var c=1E5,n="",f=0;a.length<c?b(e(a,0,a.length),true):(typeof a!=="string"&&(a=a.slice()),d())}function o(a){return j(g(a))}function q(a){return String.fromCharCode.apply(String,j(a))}function k(a){return String.fromCharCode.apply(String,j(g(a)))}var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(){var a=[],e,b="A".charCodeAt(0),d="a".charCodeAt(0),c="0".charCodeAt(0);for(e=0;e<26;e+=1)a.push(b+e);for(e=0;e<26;e+=1)a.push(d+e);for(e=
67
0;e<10;e+=1)a.push(c+e);a.push("+".charCodeAt(0));a.push("/".charCodeAt(0));return a})();var l=function(a){var e={},b,d;for(b=0,d=a.length;b<d;b+=1)e[a.charAt(b)]=b;return e}(v),n,x,w,D;(w=runtime.getWindow()&&runtime.getWindow().btoa)?n=function(a){return w(k(a))}:(w=d,n=function(a){return m(o(a))});(D=runtime.getWindow()&&runtime.getWindow().atob)?x=function(a){a=D(a);return e(a,0,a.length)}:(D=h,x=function(a){return c(f(a))});return function(){this.convertByteArrayToBase64=this.convertUTF8ArrayToBase64=
68
m;this.convertBase64ToByteArray=this.convertBase64ToUTF8Array=f;this.convertUTF16ArrayToByteArray=this.convertUTF16ArrayToUTF8Array=j;this.convertByteArrayToUTF16Array=this.convertUTF8ArrayToUTF16Array=a;this.convertUTF8StringToBase64=d;this.convertBase64ToUTF8String=h;this.convertUTF8StringToUTF16Array=b;this.convertByteArrayToUTF16String=this.convertUTF8ArrayToUTF16String=c;this.convertUTF8StringToUTF16String=i;this.convertUTF16StringToByteArray=this.convertUTF16StringToUTF8Array=o;this.convertUTF16ArrayToUTF8String=
69
q;this.convertUTF16StringToUTF8String=k;this.convertUTF16StringToBase64=n;this.convertBase64ToUTF16String=x;this.fromBase64=h;this.toBase64=d;this.atob=D;this.btoa=w;this.utob=k;this.btou=i;this.encode=n;this.encodeURI=function(a){return n(a).replace(/[+\/]/g,function(a){return a==="+"?"-":"_"}).replace(/\\=+$/,"")};this.decode=function(a){return x(a.replace(/[\-_]/g,function(a){return a==="-"?"+":"/"}))}}}();
70 70
// Input 3
71
core.RawDeflate=function(){function g(){this.dl=this.fc=0}function n(){this.extra_bits=this.static_tree=this.dyn_tree=null;this.max_code=this.max_length=this.elems=this.extra_base=0}function e(a,b,d,i){this.good_length=a;this.max_lazy=b;this.nice_length=d;this.max_chain=i}function l(){this.next=null;this.len=0;this.ptr=Array(a);this.off=0}var a=8192,c,h,b,f,d=null,j,k,s,m,u,q,i,t,v,D,p,B,E,C,z,G,o,r,w,y,x,I,R,K,P,S,T,O,J,F,A,U,L,H,M,Y,Q,$,X,oa,da,ea,V,fa,pa,aa,ga,Z,ha,ia,qa,ra=[0,0,0,0,0,0,0,0,1,
72
1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],va=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ja;ja=[new e(0,0,0,0),new e(4,4,8,4),new e(4,5,16,8),new e(4,6,32,32),new e(4,4,16,16),new e(8,16,32,32),new e(8,16,128,128),new e(8,32,128,256),new e(32,128,258,1024),new e(32,258,258,4096)];var ka=function(i){d[k+j++]=i;if(k+j==a&&j!=0){var f;c!=null?(i=c,c=c.next):i=new l;i.next=null;i.len=
73
i.off=0;h==null?h=b=i:b=b.next=i;i.len=j-k;for(f=0;f<i.len;f++)i.ptr[f]=d[k+f];j=k=0}},la=function(b){b&=65535;k+j<a-2?(d[k+j++]=b&255,d[k+j++]=b>>>8):(ka(b&255),ka(b>>>8))},ma=function(){p=(p<<5^m[o+3-1]&255)&8191;B=i[32768+p];i[o&32767]=B;i[32768+p]=o},W=function(a,b){N(b[a].fc,b[a].dl)},wa=function(a,b,d){return a[b].fc<a[d].fc||a[b].fc==a[d].fc&&Q[b]<=Q[d]},xa=function(a,b,d){var i;for(i=0;i<d&&qa<ia.length;i++)a[b+i]=ia.charCodeAt(qa++)&255;return i},ya=function(a){var b=x,d=o,c,f=G,e=o>32506?
74
o-32506:0,h=o+258,j=m[d+f-1],k=m[d+f];G>=K&&(b>>=2);do if(c=a,!(m[c+f]!=k||m[c+f-1]!=j||m[c]!=m[d]||m[++c]!=m[d+1])){d+=2;c++;do;while(m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&m[++d]==m[++c]&&d<h);c=258-(h-d);d=h-258;if(c>f){r=a;f=c;if(c>=258)break;j=m[d+f-1];k=m[d+f]}}while((a=i[a&32767])>e&&--b!=0);return f},sa=function(){var a,b,d=65536-y-o;if(d==-1)d--;else if(o>=65274){for(a=0;a<32768;a++)m[a]=m[a+32768];r-=32768;o-=32768;
75
D-=32768;for(a=0;a<8192;a++)b=i[32768+a],i[32768+a]=b>=32768?b-32768:0;for(a=0;a<32768;a++)b=i[a],i[a]=b>=32768?b-32768:0;d+=32768}w||(a=xa(m,o+y,d),a<=0?w=true:y+=a)},Ia=function(a,b,d){var c;if(!f){if(!w){v=t=0;var e,g;if(O[0].dl==0){F.dyn_tree=P;F.static_tree=T;F.extra_bits=ra;F.extra_base=257;F.elems=286;F.max_length=15;F.max_code=0;A.dyn_tree=S;A.static_tree=O;A.extra_bits=ba;A.extra_base=0;A.elems=30;A.max_length=15;A.max_code=0;U.dyn_tree=J;U.static_tree=null;U.extra_bits=Ha;U.extra_base=0;
76
U.elems=19;U.max_length=7;for(g=e=U.max_code=0;g<28;g++){oa[g]=e;for(c=0;c<1<<ra[g];c++)$[e++]=g}$[e-1]=g;for(g=e=0;g<16;g++){da[g]=e;for(c=0;c<1<<ba[g];c++)X[e++]=g}for(e>>=7;g<30;g++){da[g]=e<<7;for(c=0;c<1<<ba[g]-7;c++)X[256+e++]=g}for(c=0;c<=15;c++)L[c]=0;for(c=0;c<=143;)T[c++].dl=8,L[8]++;for(;c<=255;)T[c++].dl=9,L[9]++;for(;c<=279;)T[c++].dl=7,L[7]++;for(;c<=287;)T[c++].dl=8,L[8]++;za(T,287);for(c=0;c<30;c++)O[c].dl=5,O[c].fc=Aa(c,5);Ba()}for(c=0;c<8192;c++)i[32768+c]=0;I=ja[R].max_lazy;K=ja[R].good_length;
77
x=ja[R].max_chain;D=o=0;y=xa(m,0,65536);if(y<=0)w=true,y=0;else{for(w=false;y<262&&!w;)sa();for(c=p=0;c<2;c++)p=(p<<5^m[c]&255)&8191}h=null;k=j=0;R<=3?(G=2,z=0):(z=2,C=0);s=false}f=true;if(y==0)return s=true,0}if((c=Ca(a,b,d))==d)return d;if(s)return c;if(R<=3)for(;y!=0&&h==null;){ma();B!=0&&o-B<=32506&&(z=ya(B),z>y&&(z=y));if(z>=3)if(g=ca(o-r,z-3),y-=z,z<=I){z--;do o++,ma();while(--z!=0);o++}else o+=z,z=0,p=m[o]&255,p=(p<<5^m[o+1]&255)&8191;else g=ca(0,m[o]&255),y--,o++;g&&(na(0),D=o);for(;y<262&&
78
!w;)sa()}else for(;y!=0&&h==null;){ma();G=z;E=r;z=2;B!=0&&G<I&&o-B<=32506&&(z=ya(B),z>y&&(z=y),z==3&&o-r>4096&&z--);if(G>=3&&z<=G){g=ca(o-1-E,G-3);y-=G-1;G-=2;do o++,ma();while(--G!=0);C=0;z=2;o++;g&&(na(0),D=o)}else C!=0?ca(0,m[o-1]&255)&&(na(0),D=o):C=1,o++,y--;for(;y<262&&!w;)sa()}y==0&&(C!=0&&ca(0,m[o-1]&255),na(1),s=true);return c+Ca(a,c+b,d-c)},Ca=function(a,b,i){var f,e,o;for(f=0;h!=null&&f<i;){e=i-f;if(e>h.len)e=h.len;for(o=0;o<e;o++)a[b+f+o]=h.ptr[h.off+o];h.off+=e;h.len-=e;f+=e;if(h.len==
79
0)e=h,h=h.next,e.next=c,c=e}if(f==i)return f;if(k<j){e=i-f;e>j-k&&(e=j-k);for(o=0;o<e;o++)a[b+f+o]=d[k+o];k+=e;f+=e;j==k&&(j=k=0)}return f},Ba=function(){var a;for(a=0;a<286;a++)P[a].fc=0;for(a=0;a<30;a++)S[a].fc=0;for(a=0;a<19;a++)J[a].fc=0;P[256].fc=1;aa=V=fa=pa=Z=ha=0;ga=1},ta=function(a,b){for(var d=H[b],c=b<<1;c<=M;){c<M&&wa(a,H[c+1],H[c])&&c++;if(wa(a,d,H[c]))break;H[b]=H[c];b=c;c<<=1}H[b]=d},za=function(a,b){var d=Array(16),c=0,i;for(i=1;i<=15;i++)c=c+L[i-1]<<1,d[i]=c;for(c=0;c<=b;c++)if(i=
80
a[c].dl,i!=0)a[c].fc=Aa(d[i]++,i)},ua=function(a){var b=a.dyn_tree,c=a.static_tree,d=a.elems,i,f=-1,e=d;M=0;Y=573;for(i=0;i<d;i++)b[i].fc!=0?(H[++M]=f=i,Q[i]=0):b[i].dl=0;for(;M<2;)i=H[++M]=f<2?++f:0,b[i].fc=1,Q[i]=0,Z--,c!=null&&(ha-=c[i].dl);a.max_code=f;for(i=M>>1;i>=1;i--)ta(b,i);do i=H[1],H[1]=H[M--],ta(b,1),c=H[1],H[--Y]=i,H[--Y]=c,b[e].fc=b[i].fc+b[c].fc,Q[e]=Q[i]>Q[c]+1?Q[i]:Q[c]+1,b[i].dl=b[c].dl=e,H[1]=e++,ta(b,1);while(M>=2);H[--Y]=H[1];e=a.dyn_tree;i=a.extra_bits;var d=a.extra_base,c=
81
a.max_code,o=a.max_length,h=a.static_tree,j,g,k,w,r=0;for(g=0;g<=15;g++)L[g]=0;e[H[Y]].dl=0;for(a=Y+1;a<573;a++)if(j=H[a],g=e[e[j].dl].dl+1,g>o&&(g=o,r++),e[j].dl=g,!(j>c))L[g]++,k=0,j>=d&&(k=i[j-d]),w=e[j].fc,Z+=w*(g+k),h!=null&&(ha+=w*(h[j].dl+k));if(r!=0){do{for(g=o-1;L[g]==0;)g--;L[g]--;L[g+1]+=2;L[o]--;r-=2}while(r>0);for(g=o;g!=0;g--)for(j=L[g];j!=0;)if(i=H[--a],!(i>c)){if(e[i].dl!=g)Z+=(g-e[i].dl)*e[i].fc,e[i].fc=g;j--}}za(b,f)},Da=function(a,b){var c,d=-1,i,f=a[0].dl,e=0,o=7,g=4;f==0&&(o=
82
138,g=3);a[b+1].dl=65535;for(c=0;c<=b;c++)i=f,f=a[c+1].dl,++e<o&&i==f||(e<g?J[i].fc+=e:i!=0?(i!=d&&J[i].fc++,J[16].fc++):e<=10?J[17].fc++:J[18].fc++,e=0,d=i,f==0?(o=138,g=3):i==f?(o=6,g=3):(o=7,g=4))},Ea=function(a,b){var c,d=-1,i,f=a[0].dl,e=0,o=7,g=4;f==0&&(o=138,g=3);for(c=0;c<=b;c++)if(i=f,f=a[c+1].dl,!(++e<o&&i==f)){if(e<g){do W(i,J);while(--e!=0)}else i!=0?(i!=d&&(W(i,J),e--),W(16,J),N(e-3,2)):e<=10?(W(17,J),N(e-3,3)):(W(18,J),N(e-11,7));e=0;d=i;f==0?(o=138,g=3):i==f?(o=6,g=3):(o=7,g=4)}},na=
83
function(a){var b,c,i,d;d=o-D;ea[pa]=aa;ua(F);ua(A);Da(P,F.max_code);Da(S,A.max_code);ua(U);for(i=18;i>=3;i--)if(J[va[i]].dl!=0)break;Z+=3*(i+1)+14;b=Z+3+7>>3;c=ha+3+7>>3;c<=b&&(b=c);if(d+4<=b&&D>=0){N(0+a,3);Fa();la(d);la(~d);for(i=0;i<d;i++)ka(m[D+i])}else if(c==b)N(2+a,3),Ga(T,O);else{N(4+a,3);d=F.max_code+1;b=A.max_code+1;i+=1;N(d-257,5);N(b-1,5);N(i-4,4);for(c=0;c<i;c++)N(J[va[c]].dl,3);Ea(P,d-1);Ea(S,b-1);Ga(P,S)}Ba();a!=0&&Fa()},ca=function(a,b){q[V++]=b;a==0?P[b].fc++:(a--,P[$[b]+256+1].fc++,
84
S[(a<256?X[a]:X[256+(a>>7)])&255].fc++,u[fa++]=a,aa|=ga);ga<<=1;(V&7)==0&&(ea[pa++]=aa,aa=0,ga=1);if(R>2&&(V&4095)==0){var c=V*8,i=o-D,d;for(d=0;d<30;d++)c+=S[d].fc*(5+ba[d]);c>>=3;if(fa<parseInt(V/2,10)&&c<parseInt(i/2,10))return true}return V==8191||fa==8192},Ga=function(a,b){var c,i=0,d=0,f=0,e=0,o,g;if(V!=0){do(i&7)==0&&(e=ea[f++]),c=q[i++]&255,(e&1)==0?W(c,a):(o=$[c],W(o+256+1,a),g=ra[o],g!=0&&(c-=oa[o],N(c,g)),c=u[d++],o=(c<256?X[c]:X[256+(c>>7)])&255,W(o,b),g=ba[o],g!=0&&(c-=da[o],N(c,g))),
85
e>>=1;while(i<V)}W(256,a)},N=function(a,b){v>16-b?(t|=a<<v,la(t),t=a>>16-v,v+=b-16):(t|=a<<v,v+=b)},Aa=function(a,b){var c=0;do c|=a&1,a>>=1,c<<=1;while(--b>0);return c>>1},Fa=function(){v>8?la(t):v>0&&ka(t);v=t=0};this.deflate=function(e,o){var j,k;ia=e;qa=0;typeof o=="undefined"&&(o=6);(j=o)?j<1?j=1:j>9&&(j=9):j=6;R=j;w=f=false;if(d==null){c=h=b=null;d=Array(a);m=Array(65536);u=Array(8192);q=Array(32832);i=Array(65536);P=Array(573);for(j=0;j<573;j++)P[j]=new g;S=Array(61);for(j=0;j<61;j++)S[j]=
86
new g;T=Array(288);for(j=0;j<288;j++)T[j]=new g;O=Array(30);for(j=0;j<30;j++)O[j]=new g;J=Array(39);for(j=0;j<39;j++)J[j]=new g;F=new n;A=new n;U=new n;L=Array(16);H=Array(573);Q=Array(573);$=Array(256);X=Array(512);oa=Array(29);da=Array(30);ea=Array(1024)}for(var r=Array(1024),y=[];(j=Ia(r,0,r.length))>0;){var s=Array(j);for(k=0;k<j;k++)s[k]=String.fromCharCode(r[k]);y[y.length]=s.join("")}ia=null;return y.join("")}};
71
core.RawDeflate=function(){function g(){this.dl=this.fc=0}function m(){this.extra_bits=this.static_tree=this.dyn_tree=null;this.max_code=this.max_length=this.elems=this.extra_base=0}function f(a,e,b,d){this.good_length=a;this.max_lazy=e;this.nice_length=b;this.max_chain=d}function j(){this.next=null;this.len=0;this.ptr=Array(a);this.off=0}var a=8192,d,h,b,c,e=null,i,o,q,k,v,l,n,x,w,D,s,u,E,z,A,F,p,r,t,y,B,I,R,L,P,S,T,O,J,G,C,U,K,H,M,Y,Q,$,X,oa,da,ea,V,fa,pa,aa,ga,Z,ha,ia,qa,ra=[0,0,0,0,0,0,0,0,1,
72
1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],va=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ja;ja=[new f(0,0,0,0),new f(4,4,8,4),new f(4,5,16,8),new f(4,6,32,32),new f(4,4,16,16),new f(8,16,32,32),new f(8,16,128,128),new f(8,32,128,256),new f(32,128,258,1024),new f(32,258,258,4096)];var ka=function(c){e[o+i++]=c;if(o+i==a&&i!=0){var n;d!=null?(c=d,d=d.next):c=new j;c.next=null;c.len=
73
c.off=0;h==null?h=b=c:b=b.next=c;c.len=i-o;for(n=0;n<c.len;n++)c.ptr[n]=e[o+n];i=o=0}},la=function(b){b&=65535;o+i<a-2?(e[o+i++]=b&255,e[o+i++]=b>>>8):(ka(b&255),ka(b>>>8))},ma=function(){s=(s<<5^k[p+3-1]&255)&8191;u=n[32768+s];n[p&32767]=u;n[32768+s]=p},W=function(a,e){N(e[a].fc,e[a].dl)},wa=function(a,e,b){return a[e].fc<a[b].fc||a[e].fc==a[b].fc&&Q[e]<=Q[b]},xa=function(a,e,b){var d;for(d=0;d<b&&qa<ia.length;d++)a[e+d]=ia.charCodeAt(qa++)&255;return d},ya=function(a){var e=B,b=p,d,c=F,f=p>32506?
74
p-32506:0,h=p+258,i=k[b+c-1],t=k[b+c];F>=L&&(e>>=2);do if(d=a,!(k[d+c]!=t||k[d+c-1]!=i||k[d]!=k[b]||k[++d]!=k[b+1])){b+=2;d++;do;while(k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&k[++b]==k[++d]&&b<h);d=258-(h-b);b=h-258;if(d>c){r=a;c=d;if(d>=258)break;i=k[b+c-1];t=k[b+c]}}while((a=n[a&32767])>f&&--e!=0);return c},sa=function(){var a,e,b=65536-y-p;if(b==-1)b--;else if(p>=65274){for(a=0;a<32768;a++)k[a]=k[a+32768];r-=32768;p-=32768;
75
D-=32768;for(a=0;a<8192;a++)e=n[32768+a],n[32768+a]=e>=32768?e-32768:0;for(a=0;a<32768;a++)e=n[a],n[a]=e>=32768?e-32768:0;b+=32768}t||(a=xa(k,p+y,b),a<=0?t=true:y+=a)},Ia=function(a,e,b){var d;if(!c){if(!t){w=x=0;var f,g;if(O[0].dl==0){G.dyn_tree=P;G.static_tree=T;G.extra_bits=ra;G.extra_base=257;G.elems=286;G.max_length=15;G.max_code=0;C.dyn_tree=S;C.static_tree=O;C.extra_bits=ba;C.extra_base=0;C.elems=30;C.max_length=15;C.max_code=0;U.dyn_tree=J;U.static_tree=null;U.extra_bits=Ha;U.extra_base=0;
76
U.elems=19;U.max_length=7;for(g=f=U.max_code=0;g<28;g++){oa[g]=f;for(d=0;d<1<<ra[g];d++)$[f++]=g}$[f-1]=g;for(g=f=0;g<16;g++){da[g]=f;for(d=0;d<1<<ba[g];d++)X[f++]=g}for(f>>=7;g<30;g++){da[g]=f<<7;for(d=0;d<1<<ba[g]-7;d++)X[256+f++]=g}for(d=0;d<=15;d++)K[d]=0;for(d=0;d<=143;)T[d++].dl=8,K[8]++;for(;d<=255;)T[d++].dl=9,K[9]++;for(;d<=279;)T[d++].dl=7,K[7]++;for(;d<=287;)T[d++].dl=8,K[8]++;za(T,287);for(d=0;d<30;d++)O[d].dl=5,O[d].fc=Aa(d,5);Ba()}for(d=0;d<8192;d++)n[32768+d]=0;I=ja[R].max_lazy;L=ja[R].good_length;
77
B=ja[R].max_chain;D=p=0;y=xa(k,0,65536);if(y<=0)t=true,y=0;else{for(t=false;y<262&&!t;)sa();for(d=s=0;d<2;d++)s=(s<<5^k[d]&255)&8191}h=null;o=i=0;R<=3?(F=2,A=0):(A=2,z=0);q=false}c=true;if(y==0)return q=true,0}if((d=Ca(a,e,b))==b)return b;if(q)return d;if(R<=3)for(;y!=0&&h==null;){ma();u!=0&&p-u<=32506&&(A=ya(u),A>y&&(A=y));if(A>=3)if(g=ca(p-r,A-3),y-=A,A<=I){A--;do p++,ma();while(--A!=0);p++}else p+=A,A=0,s=k[p]&255,s=(s<<5^k[p+1]&255)&8191;else g=ca(0,k[p]&255),y--,p++;g&&(na(0),D=p);for(;y<262&&
78
!t;)sa()}else for(;y!=0&&h==null;){ma();F=A;E=r;A=2;u!=0&&F<I&&p-u<=32506&&(A=ya(u),A>y&&(A=y),A==3&&p-r>4096&&A--);if(F>=3&&A<=F){g=ca(p-1-E,F-3);y-=F-1;F-=2;do p++,ma();while(--F!=0);z=0;A=2;p++;g&&(na(0),D=p)}else z!=0?ca(0,k[p-1]&255)&&(na(0),D=p):z=1,p++,y--;for(;y<262&&!t;)sa()}y==0&&(z!=0&&ca(0,k[p-1]&255),na(1),q=true);return d+Ca(a,d+e,b-d)},Ca=function(a,b,c){var n,f,p;for(n=0;h!=null&&n<c;){f=c-n;if(f>h.len)f=h.len;for(p=0;p<f;p++)a[b+n+p]=h.ptr[h.off+p];h.off+=f;h.len-=f;n+=f;if(h.len==
79
0)f=h,h=h.next,f.next=d,d=f}if(n==c)return n;if(o<i){f=c-n;f>i-o&&(f=i-o);for(p=0;p<f;p++)a[b+n+p]=e[o+p];o+=f;n+=f;i==o&&(i=o=0)}return n},Ba=function(){var a;for(a=0;a<286;a++)P[a].fc=0;for(a=0;a<30;a++)S[a].fc=0;for(a=0;a<19;a++)J[a].fc=0;P[256].fc=1;aa=V=fa=pa=Z=ha=0;ga=1},ta=function(a,b){for(var e=H[b],d=b<<1;d<=M;){d<M&&wa(a,H[d+1],H[d])&&d++;if(wa(a,e,H[d]))break;H[b]=H[d];b=d;d<<=1}H[b]=e},za=function(a,b){var e=Array(16),d=0,c;for(c=1;c<=15;c++)d=d+K[c-1]<<1,e[c]=d;for(d=0;d<=b;d++)if(c=
80
a[d].dl,c!=0)a[d].fc=Aa(e[c]++,c)},ua=function(a){var b=a.dyn_tree,e=a.static_tree,d=a.elems,c,n=-1,f=d;M=0;Y=573;for(c=0;c<d;c++)b[c].fc!=0?(H[++M]=n=c,Q[c]=0):b[c].dl=0;for(;M<2;)c=H[++M]=n<2?++n:0,b[c].fc=1,Q[c]=0,Z--,e!=null&&(ha-=e[c].dl);a.max_code=n;for(c=M>>1;c>=1;c--)ta(b,c);do c=H[1],H[1]=H[M--],ta(b,1),e=H[1],H[--Y]=c,H[--Y]=e,b[f].fc=b[c].fc+b[e].fc,Q[f]=Q[c]>Q[e]+1?Q[c]:Q[e]+1,b[c].dl=b[e].dl=f,H[1]=f++,ta(b,1);while(M>=2);H[--Y]=H[1];f=a.dyn_tree;c=a.extra_bits;var d=a.extra_base,e=
81
a.max_code,p=a.max_length,h=a.static_tree,i,g,t,k,r=0;for(g=0;g<=15;g++)K[g]=0;f[H[Y]].dl=0;for(a=Y+1;a<573;a++)if(i=H[a],g=f[f[i].dl].dl+1,g>p&&(g=p,r++),f[i].dl=g,!(i>e))K[g]++,t=0,i>=d&&(t=c[i-d]),k=f[i].fc,Z+=k*(g+t),h!=null&&(ha+=k*(h[i].dl+t));if(r!=0){do{for(g=p-1;K[g]==0;)g--;K[g]--;K[g+1]+=2;K[p]--;r-=2}while(r>0);for(g=p;g!=0;g--)for(i=K[g];i!=0;)if(c=H[--a],!(c>e)){if(f[c].dl!=g)Z+=(g-f[c].dl)*f[c].fc,f[c].fc=g;i--}}za(b,n)},Da=function(a,b){var e,d=-1,c,n=a[0].dl,f=0,p=7,g=4;n==0&&(p=
82
138,g=3);a[b+1].dl=65535;for(e=0;e<=b;e++)c=n,n=a[e+1].dl,++f<p&&c==n||(f<g?J[c].fc+=f:c!=0?(c!=d&&J[c].fc++,J[16].fc++):f<=10?J[17].fc++:J[18].fc++,f=0,d=c,n==0?(p=138,g=3):c==n?(p=6,g=3):(p=7,g=4))},Ea=function(a,b){var e,d=-1,c,n=a[0].dl,f=0,p=7,g=4;n==0&&(p=138,g=3);for(e=0;e<=b;e++)if(c=n,n=a[e+1].dl,!(++f<p&&c==n)){if(f<g){do W(c,J);while(--f!=0)}else c!=0?(c!=d&&(W(c,J),f--),W(16,J),N(f-3,2)):f<=10?(W(17,J),N(f-3,3)):(W(18,J),N(f-11,7));f=0;d=c;n==0?(p=138,g=3):c==n?(p=6,g=3):(p=7,g=4)}},na=
83
function(a){var e,b,d,c;c=p-D;ea[pa]=aa;ua(G);ua(C);Da(P,G.max_code);Da(S,C.max_code);ua(U);for(d=18;d>=3;d--)if(J[va[d]].dl!=0)break;Z+=3*(d+1)+14;e=Z+3+7>>3;b=ha+3+7>>3;b<=e&&(e=b);if(c+4<=e&&D>=0){N(0+a,3);Fa();la(c);la(~c);for(d=0;d<c;d++)ka(k[D+d])}else if(b==e)N(2+a,3),Ga(T,O);else{N(4+a,3);c=G.max_code+1;e=C.max_code+1;d+=1;N(c-257,5);N(e-1,5);N(d-4,4);for(b=0;b<d;b++)N(J[va[b]].dl,3);Ea(P,c-1);Ea(S,e-1);Ga(P,S)}Ba();a!=0&&Fa()},ca=function(a,e){l[V++]=e;a==0?P[e].fc++:(a--,P[$[e]+256+1].fc++,
84
S[(a<256?X[a]:X[256+(a>>7)])&255].fc++,v[fa++]=a,aa|=ga);ga<<=1;(V&7)==0&&(ea[pa++]=aa,aa=0,ga=1);if(R>2&&(V&4095)==0){var b=V*8,d=p-D,c;for(c=0;c<30;c++)b+=S[c].fc*(5+ba[c]);b>>=3;if(fa<parseInt(V/2,10)&&b<parseInt(d/2,10))return true}return V==8191||fa==8192},Ga=function(a,e){var b,d=0,c=0,n=0,f=0,p,g;if(V!=0){do(d&7)==0&&(f=ea[n++]),b=l[d++]&255,(f&1)==0?W(b,a):(p=$[b],W(p+256+1,a),g=ra[p],g!=0&&(b-=oa[p],N(b,g)),b=v[c++],p=(b<256?X[b]:X[256+(b>>7)])&255,W(p,e),g=ba[p],g!=0&&(b-=da[p],N(b,g))),
85
f>>=1;while(d<V)}W(256,a)},N=function(a,b){w>16-b?(x|=a<<w,la(x),x=a>>16-w,w+=b-16):(x|=a<<w,w+=b)},Aa=function(a,b){var e=0;do e|=a&1,a>>=1,e<<=1;while(--b>0);return e>>1},Fa=function(){w>8?la(x):w>0&&ka(x);w=x=0};this.deflate=function(f,p){var i,r;ia=f;qa=0;typeof p=="undefined"&&(p=6);(i=p)?i<1?i=1:i>9&&(i=9):i=6;R=i;t=c=false;if(e==null){d=h=b=null;e=Array(a);k=Array(65536);v=Array(8192);l=Array(32832);n=Array(65536);P=Array(573);for(i=0;i<573;i++)P[i]=new g;S=Array(61);for(i=0;i<61;i++)S[i]=
86
new g;T=Array(288);for(i=0;i<288;i++)T[i]=new g;O=Array(30);for(i=0;i<30;i++)O[i]=new g;J=Array(39);for(i=0;i<39;i++)J[i]=new g;G=new m;C=new m;U=new m;K=Array(16);H=Array(573);Q=Array(573);$=Array(256);X=Array(512);oa=Array(29);da=Array(30);ea=Array(1024)}for(var q=Array(1024),o=[];(i=Ia(q,0,q.length))>0;){var y=Array(i);for(r=0;r<i;r++)y[r]=String.fromCharCode(q[r]);o[o.length]=y.join("")}ia=null;return o.join("")}};
87 87
// Input 4
88
core.ByteArray=function(g){this.pos=0;this.data=g;this.readUInt32LE=function(){var g=this.data,e=this.pos+=4;return g[--e]<<24|g[--e]<<16|g[--e]<<8|g[--e]};this.readUInt16LE=function(){var g=this.data,e=this.pos+=2;return g[--e]<<8|g[--e]}};
88
core.ByteArray=function(g){this.pos=0;this.data=g;this.readUInt32LE=function(){var g=this.data,f=this.pos+=4;return g[--f]<<24|g[--f]<<16|g[--f]<<8|g[--f]};this.readUInt16LE=function(){var g=this.data,f=this.pos+=2;return g[--f]<<8|g[--f]}};
89 89
// Input 5
90
core.ByteArrayWriter=function(g){var n=this,e=new runtime.ByteArray(0);this.appendByteArrayWriter=function(g){e=runtime.concatByteArrays(e,g.getByteArray())};this.appendByteArray=function(g){e=runtime.concatByteArrays(e,g)};this.appendArray=function(g){e=runtime.concatByteArrays(e,runtime.byteArrayFromArray(g))};this.appendUInt16LE=function(e){n.appendArray([e&255,e>>8&255])};this.appendUInt32LE=function(e){n.appendArray([e&255,e>>8&255,e>>16&255,e>>24&255])};this.appendString=function(l){e=runtime.concatByteArrays(e,
91
runtime.byteArrayFromString(l,g))};this.getLength=function(){return e.length};this.getByteArray=function(){return e}};
90
core.ByteArrayWriter=function(g){var m=this,f=new runtime.ByteArray(0);this.appendByteArrayWriter=function(g){f=runtime.concatByteArrays(f,g.getByteArray())};this.appendByteArray=function(g){f=runtime.concatByteArrays(f,g)};this.appendArray=function(g){f=runtime.concatByteArrays(f,runtime.byteArrayFromArray(g))};this.appendUInt16LE=function(f){m.appendArray([f&255,f>>8&255])};this.appendUInt32LE=function(f){m.appendArray([f&255,f>>8&255,f>>16&255,f>>24&255])};this.appendString=function(j){f=runtime.concatByteArrays(f,
91
runtime.byteArrayFromString(j,g))};this.getLength=function(){return f.length};this.getByteArray=function(){return f}};
92 92
// Input 6
93
core.RawInflate=function(){var g,n,e=null,l,a,c,h,b,f,d,j,k,s,m,u,q,i,t=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],v=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],D=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],p=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],B=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],E=[16,17,18,
94
0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],C=function(){this.list=this.next=null},z=function(){this.n=this.b=this.e=0;this.t=null},G=function(a,b,c,i,d,f){this.BMAX=16;this.N_MAX=288;this.status=0;this.root=null;this.m=0;var e=Array(this.BMAX+1),o,g,j,h,k,r,w,m=Array(this.BMAX+1),y,s,t,l=new z,q=Array(this.BMAX);h=Array(this.N_MAX);var p,v=Array(this.BMAX+1),n,x,B;B=this.root=null;for(k=0;k<e.length;k++)e[k]=0;for(k=0;k<m.length;k++)m[k]=0;for(k=0;k<q.length;k++)q[k]=null;for(k=0;k<h.length;k++)h[k]=
95
0;for(k=0;k<v.length;k++)v[k]=0;o=b>256?a[256]:this.BMAX;y=a;s=0;k=b;do e[y[s]]++,s++;while(--k>0);if(e[0]==b)this.root=null,this.status=this.m=0;else{for(r=1;r<=this.BMAX;r++)if(e[r]!=0)break;w=r;f<r&&(f=r);for(k=this.BMAX;k!=0;k--)if(e[k]!=0)break;j=k;f>k&&(f=k);for(n=1<<r;r<k;r++,n<<=1)if((n-=e[r])<0){this.status=2;this.m=f;return}if((n-=e[k])<0)this.status=2,this.m=f;else{e[k]+=n;v[1]=r=0;y=e;s=1;for(t=2;--k>0;)v[t++]=r+=y[s++];y=a;k=s=0;do if((r=y[s++])!=0)h[v[r]++]=k;while(++k<b);b=v[j];v[0]=
96
k=0;y=h;s=0;h=-1;p=m[0]=0;t=null;for(x=0;w<=j;w++)for(a=e[w];a-- >0;){for(;w>p+m[1+h];){p+=m[1+h];h++;x=(x=j-p)>f?f:x;if((g=1<<(r=w-p))>a+1){g-=a+1;for(t=w;++r<x;){if((g<<=1)<=e[++t])break;g-=e[t]}}p+r>o&&p<o&&(r=o-p);x=1<<r;m[1+h]=r;t=Array(x);for(g=0;g<x;g++)t[g]=new z;B=B==null?this.root=new C:B.next=new C;B.next=null;B.list=t;q[h]=t;if(h>0)v[h]=k,l.b=m[h],l.e=16+r,l.t=t,r=(k&(1<<p)-1)>>p-m[h],q[h-1][r].e=l.e,q[h-1][r].b=l.b,q[h-1][r].n=l.n,q[h-1][r].t=l.t}l.b=w-p;s>=b?l.e=99:y[s]<c?(l.e=y[s]<
97
256?16:15,l.n=y[s++]):(l.e=d[y[s]-c],l.n=i[y[s++]-c]);g=1<<w-p;for(r=k>>p;r<x;r+=g)t[r].e=l.e,t[r].b=l.b,t[r].n=l.n,t[r].t=l.t;for(r=1<<w-1;(k&r)!=0;r>>=1)k^=r;for(k^=r;(k&(1<<p)-1)!=v[h];)p-=m[h],h--}this.m=m[1];this.status=n!=0&&j!=1?1:0}}},o=function(a){for(;h<a;)c|=(q.length==i?-1:q[i++])<<h,h+=8},r=function(a){return c&t[a]},w=function(a){c>>=a;h-=a},y=function(a,c,i){var f,e,h;if(i==0)return 0;for(h=0;;){o(m);e=k.list[r(m)];for(f=e.e;f>16;){if(f==99)return-1;w(e.b);f-=16;o(f);e=e.t[r(f)];f=
98
e.e}w(e.b);if(f==16)n&=32767,a[c+h++]=g[n++]=e.n;else{if(f==15)break;o(f);d=e.n+r(f);w(f);o(u);e=s.list[r(u)];for(f=e.e;f>16;){if(f==99)return-1;w(e.b);f-=16;o(f);e=e.t[r(f)];f=e.e}w(e.b);o(f);j=n-e.n-r(f);for(w(f);d>0&&h<i;)d--,j&=32767,n&=32767,a[c+h++]=g[n++]=g[j++]}if(h==i)return i}b=-1;return h},x,I=function(a,b,c){var i,d,f,e,g,j,h,t=Array(316);for(i=0;i<t.length;i++)t[i]=0;o(5);j=257+r(5);w(5);o(5);h=1+r(5);w(5);o(4);i=4+r(4);w(4);if(j>286||h>30)return-1;for(d=0;d<i;d++)o(3),t[E[d]]=r(3),w(3);
99
for(;d<19;d++)t[E[d]]=0;m=7;d=new G(t,19,19,null,null,m);if(d.status!=0)return-1;k=d.root;m=d.m;e=j+h;for(i=f=0;i<e;)if(o(m),g=k.list[r(m)],d=g.b,w(d),d=g.n,d<16)t[i++]=f=d;else if(d==16){o(2);d=3+r(2);w(2);if(i+d>e)return-1;for(;d-- >0;)t[i++]=f}else{d==17?(o(3),d=3+r(3),w(3)):(o(7),d=11+r(7),w(7));if(i+d>e)return-1;for(;d-- >0;)t[i++]=0;f=0}m=9;d=new G(t,j,257,v,D,m);if(m==0)d.status=1;if(d.status!=0)return-1;k=d.root;m=d.m;for(i=0;i<h;i++)t[i]=t[i+j];u=6;d=new G(t,h,0,p,B,u);s=d.root;u=d.m;return u==
100
0&&j>257?-1:d.status!=0?-1:y(a,b,c)};this.inflate=function(t,K){g==null&&(g=Array(65536));h=c=n=0;b=-1;f=false;d=j=0;k=null;q=t;i=0;var z=new runtime.ByteArray(K);a:{var C,E;for(C=0;C<K;){if(f&&b==-1)break;if(d>0){if(b!=0)for(;d>0&&C<K;)d--,j&=32767,n&=32767,z[0+C++]=g[n++]=g[j++];else{for(;d>0&&C<K;)d--,n&=32767,o(8),z[0+C++]=g[n++]=r(8),w(8);d==0&&(b=-1)}if(C==K)break}if(b==-1){if(f)break;o(1);r(1)!=0&&(f=true);w(1);o(2);b=r(2);w(2);k=null;d=0}switch(b){case 0:E=z;var O=0+C,J=K-C,F=void 0,F=h&7;
101
w(F);o(16);F=r(16);w(16);o(16);if(F!=(~c&65535))E=-1;else{w(16);d=F;for(F=0;d>0&&F<J;)d--,n&=32767,o(8),E[O+F++]=g[n++]=r(8),w(8);d==0&&(b=-1);E=F}break;case 1:if(k!=null)E=y(z,0+C,K-C);else b:{E=z;O=0+C;J=K-C;if(e==null){for(var A=void 0,F=Array(288),A=void 0,A=0;A<144;A++)F[A]=8;for(;A<256;A++)F[A]=9;for(;A<280;A++)F[A]=7;for(;A<288;A++)F[A]=8;a=7;A=new G(F,288,257,v,D,a);if(A.status!=0){alert("HufBuild error: "+A.status);E=-1;break b}e=A.root;a=A.m;for(A=0;A<30;A++)F[A]=5;x=5;A=new G(F,30,0,p,
102
B,x);if(A.status>1){e=null;alert("HufBuild error: "+A.status);E=-1;break b}l=A.root;x=A.m}k=e;s=l;m=a;u=x;E=y(E,O,J)}break;case 2:E=k!=null?y(z,0+C,K-C):I(z,0+C,K-C);break;default:E=-1}if(E==-1)break a;C+=E}}q=null;return z}};
93
core.RawInflate=function(){var g,m,f=null,j,a,d,h,b,c,e,i,o,q,k,v,l,n,x=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],w=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],D=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],u=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],E=[16,17,18,
94
0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=function(){this.list=this.next=null},A=function(){this.n=this.b=this.e=0;this.t=null},F=function(a,b,e,d,c,f){this.BMAX=16;this.N_MAX=288;this.status=0;this.root=null;this.m=0;var n=Array(this.BMAX+1),p,g,i,h,r,t,k,q=Array(this.BMAX+1),o,y,l,x=new A,j=Array(this.BMAX);h=Array(this.N_MAX);var u,s=Array(this.BMAX+1),w,m,B;B=this.root=null;for(r=0;r<n.length;r++)n[r]=0;for(r=0;r<q.length;r++)q[r]=0;for(r=0;r<j.length;r++)j[r]=null;for(r=0;r<h.length;r++)h[r]=
95
0;for(r=0;r<s.length;r++)s[r]=0;p=b>256?a[256]:this.BMAX;o=a;y=0;r=b;do n[o[y]]++,y++;while(--r>0);if(n[0]==b)this.root=null,this.status=this.m=0;else{for(t=1;t<=this.BMAX;t++)if(n[t]!=0)break;k=t;f<t&&(f=t);for(r=this.BMAX;r!=0;r--)if(n[r]!=0)break;i=r;f>r&&(f=r);for(w=1<<t;t<r;t++,w<<=1)if((w-=n[t])<0){this.status=2;this.m=f;return}if((w-=n[r])<0)this.status=2,this.m=f;else{n[r]+=w;s[1]=t=0;o=n;y=1;for(l=2;--r>0;)s[l++]=t+=o[y++];o=a;r=y=0;do if((t=o[y++])!=0)h[s[t]++]=r;while(++r<b);b=s[i];s[0]=
96
r=0;o=h;y=0;h=-1;u=q[0]=0;l=null;for(m=0;k<=i;k++)for(a=n[k];a-- >0;){for(;k>u+q[1+h];){u+=q[1+h];h++;m=(m=i-u)>f?f:m;if((g=1<<(t=k-u))>a+1){g-=a+1;for(l=k;++t<m;){if((g<<=1)<=n[++l])break;g-=n[l]}}u+t>p&&u<p&&(t=p-u);m=1<<t;q[1+h]=t;l=Array(m);for(g=0;g<m;g++)l[g]=new A;B=B==null?this.root=new z:B.next=new z;B.next=null;B.list=l;j[h]=l;if(h>0)s[h]=r,x.b=q[h],x.e=16+t,x.t=l,t=(r&(1<<u)-1)>>u-q[h],j[h-1][t].e=x.e,j[h-1][t].b=x.b,j[h-1][t].n=x.n,j[h-1][t].t=x.t}x.b=k-u;y>=b?x.e=99:o[y]<e?(x.e=o[y]<
97
256?16:15,x.n=o[y++]):(x.e=c[o[y]-e],x.n=d[o[y++]-e]);g=1<<k-u;for(t=r>>u;t<m;t+=g)l[t].e=x.e,l[t].b=x.b,l[t].n=x.n,l[t].t=x.t;for(t=1<<k-1;(r&t)!=0;t>>=1)r^=t;for(r^=t;(r&(1<<u)-1)!=s[h];)u-=q[h],h--}this.m=q[1];this.status=w!=0&&i!=1?1:0}}},p=function(a){for(;h<a;)d|=(l.length==n?-1:l[n++])<<h,h+=8},r=function(a){return d&x[a]},t=function(a){d>>=a;h-=a},y=function(a,d,c){var n,f,h;if(c==0)return 0;for(h=0;;){p(k);f=o.list[r(k)];for(n=f.e;n>16;){if(n==99)return-1;t(f.b);n-=16;p(n);f=f.t[r(n)];n=
98
f.e}t(f.b);if(n==16)m&=32767,a[d+h++]=g[m++]=f.n;else{if(n==15)break;p(n);e=f.n+r(n);t(n);p(v);f=q.list[r(v)];for(n=f.e;n>16;){if(n==99)return-1;t(f.b);n-=16;p(n);f=f.t[r(n)];n=f.e}t(f.b);p(n);i=m-f.n-r(n);for(t(n);e>0&&h<c;)e--,i&=32767,m&=32767,a[d+h++]=g[m++]=g[i++]}if(h==c)return c}b=-1;return h},B,I=function(a,b,e){var d,c,n,f,g,i,h,l=Array(316);for(d=0;d<l.length;d++)l[d]=0;p(5);i=257+r(5);t(5);p(5);h=1+r(5);t(5);p(4);d=4+r(4);t(4);if(i>286||h>30)return-1;for(c=0;c<d;c++)p(3),l[E[c]]=r(3),t(3);
99
for(;c<19;c++)l[E[c]]=0;k=7;c=new F(l,19,19,null,null,k);if(c.status!=0)return-1;o=c.root;k=c.m;f=i+h;for(d=n=0;d<f;)if(p(k),g=o.list[r(k)],c=g.b,t(c),c=g.n,c<16)l[d++]=n=c;else if(c==16){p(2);c=3+r(2);t(2);if(d+c>f)return-1;for(;c-- >0;)l[d++]=n}else{c==17?(p(3),c=3+r(3),t(3)):(p(7),c=11+r(7),t(7));if(d+c>f)return-1;for(;c-- >0;)l[d++]=0;n=0}k=9;c=new F(l,i,257,w,D,k);if(k==0)c.status=1;if(c.status!=0)return-1;o=c.root;k=c.m;for(d=0;d<h;d++)l[d]=l[d+i];v=6;c=new F(l,h,0,s,u,v);q=c.root;v=c.m;return v==
100
0&&i>257?-1:c.status!=0?-1:y(a,b,e)};this.inflate=function(x,L){g==null&&(g=Array(65536));h=d=m=0;b=-1;c=false;e=i=0;o=null;l=x;n=0;var A=new runtime.ByteArray(L);a:{var z,E;for(z=0;z<L;){if(c&&b==-1)break;if(e>0){if(b!=0)for(;e>0&&z<L;)e--,i&=32767,m&=32767,A[0+z++]=g[m++]=g[i++];else{for(;e>0&&z<L;)e--,m&=32767,p(8),A[0+z++]=g[m++]=r(8),t(8);e==0&&(b=-1)}if(z==L)break}if(b==-1){if(c)break;p(1);r(1)!=0&&(c=true);t(1);p(2);b=r(2);t(2);o=null;e=0}switch(b){case 0:E=A;var O=0+z,J=L-z,G=void 0,G=h&7;
101
t(G);p(16);G=r(16);t(16);p(16);if(G!=(~d&65535))E=-1;else{t(16);e=G;for(G=0;e>0&&G<J;)e--,m&=32767,p(8),E[O+G++]=g[m++]=r(8),t(8);e==0&&(b=-1);E=G}break;case 1:if(o!=null)E=y(A,0+z,L-z);else b:{E=A;O=0+z;J=L-z;if(f==null){for(var C=void 0,G=Array(288),C=void 0,C=0;C<144;C++)G[C]=8;for(;C<256;C++)G[C]=9;for(;C<280;C++)G[C]=7;for(;C<288;C++)G[C]=8;a=7;C=new F(G,288,257,w,D,a);if(C.status!=0){alert("HufBuild error: "+C.status);E=-1;break b}f=C.root;a=C.m;for(C=0;C<30;C++)G[C]=5;B=5;C=new F(G,30,0,s,
102
u,B);if(C.status>1){f=null;alert("HufBuild error: "+C.status);E=-1;break b}j=C.root;B=C.m}o=f;q=j;k=a;v=B;E=y(E,O,J)}break;case 2:E=o!=null?y(A,0+z,L-z):I(A,0+z,L-z);break;default:E=-1}if(E==-1)break a;z+=E}}l=null;return A}};
103 103
// Input 7
104
core.Cursor=function(g,n){function e(a,e){for(var b=e;b&&b!==a;)b=b.parentNode;return b||e}function l(){var c,h,b;if(a.parentNode){h=0;for(c=a.parentNode.firstChild;c&&c!==a;)h+=1,c=c.nextSibling;if(a.previousSibling&&a.previousSibling.nodeType===3&&a.nextSibling&&a.nextSibling.nodeType===3)b=a.nextSibling,a.previousSibling.appendData(b.nodeValue);for(c=0;c<g.rangeCount;c+=1){var f=g.getRangeAt(c),d=h,j=void 0,k=void 0,j=a.parentNode,k=e(a,f.startContainer);e(a,f.endContainer);k===a?f.setStart(j,
105
d):k===j&&f.startOffset>d&&f.setStart(j,f.startOffset-1);f.endContainer===a?f.setEnd(j,d):f.endContainer===j&&f.endOffset>d&&f.setEnd(j,f.endOffset-1)}if(b){for(c=0;c<g.rangeCount;c+=1){var f=g.getRangeAt(c),d=a.previousSibling,j=b,k=h,s=d.length-j.length;f.startContainer===j?f.setStart(d,s+f.startOffset):f.startContainer===d.parentNode&&f.startOffset===k&&f.setStart(d,s);f.endContainer===j?f.setEnd(d,s+f.endOffset):f.endContainer===d.parentNode&&f.endOffset===k&&f.setEnd(d,s)}b.parentNode.removeChild(b)}a.parentNode.removeChild(a)}}
106
var a;a=n.createElementNS("urn:webodf:names:cursor","cursor");this.getNode=function(){return a};this.updateToSelection=function(){l();if(g.focusNode){var c=g.focusNode,e=g.focusOffset;if(c.nodeType===3){var b,f,d,j;j=c.parentNode;e===0?j.insertBefore(a,c):e===c.length?j.appendChild(a):(b=c.length,f=c.nextSibling,d=n.createTextNode(c.substringData(e,b)),c.deleteData(e,b),f?j.insertBefore(d,f):j.appendChild(d),j.insertBefore(a,d))}else if(c.nodeType!==9){for(b=c.firstChild;b&&e;)b=b.nextSibling,e-=
107
1;c.insertBefore(a,b)}}};this.remove=function(){l()}};
104
core.Cursor=function(g,m){function f(a,f){for(var b=f;b&&b!==a;)b=b.parentNode;return b||f}function j(){var d,h,b;if(a.parentNode){h=0;for(d=a.parentNode.firstChild;d&&d!==a;)h+=1,d=d.nextSibling;if(a.previousSibling&&a.previousSibling.nodeType===3&&a.nextSibling&&a.nextSibling.nodeType===3)b=a.nextSibling,a.previousSibling.appendData(b.nodeValue);for(d=0;d<g.rangeCount;d+=1){var c=g.getRangeAt(d),e=h,i=void 0,o=void 0,i=a.parentNode,o=f(a,c.startContainer);f(a,c.endContainer);o===a?c.setStart(i,
105
e):o===i&&c.startOffset>e&&c.setStart(i,c.startOffset-1);c.endContainer===a?c.setEnd(i,e):c.endContainer===i&&c.endOffset>e&&c.setEnd(i,c.endOffset-1)}if(b){for(d=0;d<g.rangeCount;d+=1){var c=g.getRangeAt(d),e=a.previousSibling,i=b,o=h,q=e.length-i.length;c.startContainer===i?c.setStart(e,q+c.startOffset):c.startContainer===e.parentNode&&c.startOffset===o&&c.setStart(e,q);c.endContainer===i?c.setEnd(e,q+c.endOffset):c.endContainer===e.parentNode&&c.endOffset===o&&c.setEnd(e,q)}b.parentNode.removeChild(b)}a.parentNode.removeChild(a)}}
106
var a;a=m.createElementNS("urn:webodf:names:cursor","cursor");this.getNode=function(){return a};this.updateToSelection=function(){j();if(g.focusNode){var d=g.focusNode,f=g.focusOffset;if(d.nodeType===3){var b,c,e,i;i=d.parentNode;f===0?i.insertBefore(a,d):f===d.length?i.appendChild(a):(b=d.length,c=d.nextSibling,e=m.createTextNode(d.substringData(f,b)),d.deleteData(f,b),c?i.insertBefore(e,c):i.appendChild(e),i.insertBefore(a,e))}else if(d.nodeType!==9){for(b=d.firstChild;b&&f;)b=b.nextSibling,f-=
107
1;d.insertBefore(a,b)}}};this.remove=function(){j()}};
108 108
// Input 8
109 109
core.UnitTest=function(){};core.UnitTest.prototype.setUp=function(){};core.UnitTest.prototype.tearDown=function(){};core.UnitTest.prototype.description=function(){};core.UnitTest.prototype.tests=function(){};core.UnitTest.prototype.asyncTests=function(){};
110
core.UnitTestRunner=function(){function g(a){l+=1;runtime.log("fail",a)}function n(a,c){var e;try{if(a.length!==c.length)return false;for(e=0;e<a.length;e+=1)if(a[e]!==c[e])return false}catch(b){return false}return true}function e(a,c,e){(typeof c!=="string"||typeof e!=="string")&&runtime.log("WARN: shouldBe() expects string arguments");var b,f;try{f=eval(c)}catch(d){b=d}a=eval(e);b?g(c+" should be "+a+". Threw exception "+b):(a===0?f===a&&1/f===1/a:f===a||(typeof a==="number"&&isNaN(a)?typeof f===
111
"number"&&isNaN(f):Object.prototype.toString.call(a)===Object.prototype.toString.call([])&&n(f,a)))?runtime.log("pass",c+" is "+e):typeof f===typeof a?g(c+" should be "+a+". Was "+(f===0&&1/f<0?"-0":String(f))+"."):g(c+" should be "+a+" (of type "+typeof a+"). Was "+f+" (of type "+typeof f+").")}var l=0;this.shouldBeNull=function(a,c){e(a,c,"null")};this.shouldBeNonNull=function(a,c){var e,b;try{b=eval(c)}catch(f){e=f}e?g(c+" should be non-null. Threw exception "+e):b!==null?runtime.log("pass",c+
112
" is non-null."):g(c+" should be non-null. Was "+b)};this.shouldBe=e;this.countFailedTests=function(){return l}};
113
core.UnitTester=function(){var g=0,n={};this.runTests=function(e,l){function a(e){if(e.length===0)n[c]=d,g+=b.countFailedTests(),l();else{k=e[0];var j=Runtime.getFunctionName(k);runtime.log("Running "+j);m=b.countFailedTests();f.setUp();k(function(){f.tearDown();d[j]=m===b.countFailedTests();a(e.slice(1))})}}var c=Runtime.getFunctionName(e),h,b=new core.UnitTestRunner,f=new e(b),d={},j,k,s,m;if(c.hasOwnProperty(n))runtime.log("Test "+c+" has already run.");else{runtime.log("Running "+c+": "+f.description());
114
s=f.tests();for(j=0;j<s.length;j+=1)k=s[j],h=Runtime.getFunctionName(k),runtime.log("Running "+h),m=b.countFailedTests(),f.setUp(),k(),f.tearDown(),d[h]=m===b.countFailedTests();a(f.asyncTests())}};this.countFailedTests=function(){return g};this.results=function(){return n}};
110
core.UnitTestRunner=function(){function g(a){j+=1;runtime.log("fail",a)}function m(a,d){var f;try{if(a.length!==d.length)return false;for(f=0;f<a.length;f+=1)if(a[f]!==d[f])return false}catch(b){return false}return true}function f(a,d,f){(typeof d!=="string"||typeof f!=="string")&&runtime.log("WARN: shouldBe() expects string arguments");var b,c;try{c=eval(d)}catch(e){b=e}a=eval(f);b?g(d+" should be "+a+". Threw exception "+b):(a===0?c===a&&1/c===1/a:c===a||(typeof a==="number"&&isNaN(a)?typeof c===
111
"number"&&isNaN(c):Object.prototype.toString.call(a)===Object.prototype.toString.call([])&&m(c,a)))?runtime.log("pass",d+" is "+f):typeof c===typeof a?g(d+" should be "+a+". Was "+(c===0&&1/c<0?"-0":String(c))+"."):g(d+" should be "+a+" (of type "+typeof a+"). Was "+c+" (of type "+typeof c+").")}var j=0;this.shouldBeNull=function(a,d){f(a,d,"null")};this.shouldBeNonNull=function(a,d){var f,b;try{b=eval(d)}catch(c){f=c}f?g(d+" should be non-null. Threw exception "+f):b!==null?runtime.log("pass",d+
112
" is non-null."):g(d+" should be non-null. Was "+b)};this.shouldBe=f;this.countFailedTests=function(){return j}};
113
core.UnitTester=function(){var g=0,m={};this.runTests=function(f,j){function a(f){if(f.length===0)m[d]=e,g+=b.countFailedTests(),j();else{o=f[0];var i=Runtime.getFunctionName(o);runtime.log("Running "+i);k=b.countFailedTests();c.setUp();o(function(){c.tearDown();e[i]=k===b.countFailedTests();a(f.slice(1))})}}var d=Runtime.getFunctionName(f),h,b=new core.UnitTestRunner,c=new f(b),e={},i,o,q,k;if(d.hasOwnProperty(m))runtime.log("Test "+d+" has already run.");else{runtime.log("Running "+d+": "+c.description());
114
q=c.tests();for(i=0;i<q.length;i+=1)o=q[i],h=Runtime.getFunctionName(o),runtime.log("Running "+h),k=b.countFailedTests(),c.setUp(),o(),c.tearDown(),e[h]=k===b.countFailedTests();a(c.asyncTests())}};this.countFailedTests=function(){return g};this.results=function(){return m}};
115 115
// Input 9
116
core.PointWalker=function(g){function n(a){for(var b=-1;a;)a=a.previousSibling,b+=1;return b}var e=g,l=null,a=g&&g.firstChild,c=0;this.setPoint=function(g,b){e=g;c=b;if(e.nodeType===3)l=a=null;else{for(a=e.firstChild;b;)b-=1,a=a.nextSibling;l=a?a.previousSibling:e.lastChild}};this.stepForward=function(){var h;if(e.nodeType===3&&(h=typeof e.nodeValue.length==="number"?e.nodeValue.length:e.nodeValue.length(),c<h))return c+=1,true;if(a)return a.nodeType===1?(e=a,l=null,a=e.firstChild,c=0):a.nodeType===
117
3?(e=a,a=l=null,c=0):(l=a,a=a.nextSibling,c+=1),true;return e!==g?(l=e,a=l.nextSibling,e=e.parentNode,c=n(l)+1,true):false};this.stepBackward=function(){if(e.nodeType===3&&c>0)return c-=1,true;if(l)return l.nodeType===1?(e=l,l=e.lastChild,a=null,c=n(l)+1):l.nodeType===3?(e=l,a=l=null,c=typeof e.nodeValue.length==="number"?e.nodeValue.length:e.nodeValue.length()):(a=l,l=l.previousSibling,c-=1),true;return e!==g?(a=e,l=a.previousSibling,e=e.parentNode,c=n(a),true):false};this.node=function(){return e};
118
this.position=function(){return c};this.precedingSibling=function(){return l};this.followingSibling=function(){return a}};
116
core.PointWalker=function(g){function m(a){for(var b=-1;a;)a=a.previousSibling,b+=1;return b}var f=g,j=null,a=g&&g.firstChild,d=0;this.setPoint=function(g,b){f=g;d=b;if(f.nodeType===3)j=a=null;else{for(a=f.firstChild;b;)b-=1,a=a.nextSibling;j=a?a.previousSibling:f.lastChild}};this.stepForward=function(){var h;if(f.nodeType===3&&(h=typeof f.nodeValue.length==="number"?f.nodeValue.length:f.nodeValue.length(),d<h))return d+=1,true;if(a)return a.nodeType===1?(f=a,j=null,a=f.firstChild,d=0):a.nodeType===
117
3?(f=a,a=j=null,d=0):(j=a,a=a.nextSibling,d+=1),true;return f!==g?(j=f,a=j.nextSibling,f=f.parentNode,d=m(j)+1,true):false};this.stepBackward=function(){if(f.nodeType===3&&d>0)return d-=1,true;if(j)return j.nodeType===1?(f=j,j=f.lastChild,a=null,d=m(j)+1):j.nodeType===3?(f=j,a=j=null,d=typeof f.nodeValue.length==="number"?f.nodeValue.length:f.nodeValue.length()):(a=j,j=j.previousSibling,d-=1),true;return f!==g?(a=f,j=a.previousSibling,f=f.parentNode,d=m(a),true):false};this.node=function(){return f};
118
this.position=function(){return d};this.precedingSibling=function(){return j};this.followingSibling=function(){return a}};
119 119
// Input 10
120
core.Async=function(){this.forEach=function(g,n,e){function l(a){h!==c&&(a?(h=c,e(a)):(h+=1,h===c&&e(null)))}var a,c=g.length,h=0;for(a=0;a<c;a+=1)n(g[a],l)}};
120
core.Async=function(){this.forEach=function(g,m,f){function j(a){h!==d&&(a?(h=d,f(a)):(h+=1,h===d&&f(null)))}var a,d=g.length,h=0;for(a=0;a<d;a+=1)m(g[a],j)}};
121 121
// Input 11
122 122
runtime.loadClass("core.RawInflate");runtime.loadClass("core.ByteArray");runtime.loadClass("core.ByteArrayWriter");
123
core.Zip=function(g,n){function e(a){var d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,
123
core.Zip=function(g,m){function f(a){var b=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,
124 124
853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,
125 125
4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,
126 126
225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,
127 127
2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,
128
2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],b=0,c,e=a.length,f=0,f=0;b^=-1;for(c=0;c<e;c+=1)f=(b^a[c])&255,f=d[f],b=b>>>8^f;return b^-1}function l(a){return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&15,a>>5&63,(a&31)<<1)}function a(a){var b=a.getFullYear();return b<1980?0:b-
129
1980<<25|a.getMonth()+1<<21|a.getDate()<<16|a.getHours()<<11|a.getMinutes()<<5|a.getSeconds()>>1}function c(a,b){var d,c,e,f,g,j,h,s=this;this.load=function(b){if(s.data!==void 0)b(null,s.data);else{var i=g+34+d+c+256;i+h>k&&(i=k-h);runtime.read(a,h,i,function(d,c){if(d)b(d,c);else a:{var i=c,e=new core.ByteArray(i),o=e.readUInt32LE(),k;if(o!==67324752)b("File entry signature is wrong."+o.toString()+" "+i.length.toString(),null);else{e.pos+=22;o=e.readUInt16LE();k=e.readUInt16LE();e.pos+=o+k;if(f){i=
130
i.slice(e.pos,e.pos+g);if(g!==i.length){b("The amount of compressed bytes read was "+i.length.toString()+" instead of "+g.toString()+" for "+s.filename+" in "+a+".",null);break a}i=m(i,j)}else i=i.slice(e.pos,e.pos+j);j!==i.length?b("The amount of bytes read was "+i.length.toString()+" instead of "+j.toString()+" for "+s.filename+" in "+a+".",null):(s.data=i,b(null,i))}}})}};this.set=function(a,b,d,c){s.filename=a;s.data=b;s.compressed=d;s.date=c};this.error=null;if(b)b.readUInt32LE()!==33639248?
131
this.error="Central directory entry has wrong signature at position "+(b.pos-4).toString()+' for file "'+a+'": '+b.data.length.toString():(b.pos+=6,f=b.readUInt16LE(),this.date=l(b.readUInt32LE()),b.readUInt32LE(),g=b.readUInt32LE(),j=b.readUInt32LE(),d=b.readUInt16LE(),c=b.readUInt16LE(),e=b.readUInt16LE(),b.pos+=8,h=b.readUInt32LE(),this.filename=runtime.byteArrayToString(b.data.slice(b.pos,b.pos+d),"utf8"),b.pos+=d+c+e)}function h(a,b){if(a.length!==22)b("Central directory length should be 22.",
132
u);else{var d=new core.ByteArray(a),e;e=d.readUInt32LE();e!==101010256?b("Central directory signature is wrong: "+e.toString(),u):d.readUInt16LE()!==0?b("Zip files with non-zero disk numbers are not supported.",u):d.readUInt16LE()!==0?b("Zip files with non-zero disk numbers are not supported.",u):(e=d.readUInt16LE(),s=d.readUInt16LE(),e!==s?b("Number of entries is inconsistent.",u):(e=d.readUInt32LE(),d=d.readUInt16LE(),d=k-22-e,runtime.read(g,d,k-d,function(a,d){a:{var e=new core.ByteArray(d),f,
133
k;j=[];for(f=0;f<s;f+=1){k=new c(g,e);if(k.error){b(k.error,u);break a}j[j.length]=k}b(null,u)}})))}}function b(b){var d=new core.ByteArrayWriter("utf8"),c=0;d.appendArray([80,75,3,4,20,0,0,0,0,0]);if(b.data)c=b.data.length;d.appendUInt32LE(a(b.date));d.appendUInt32LE(e(b.data));d.appendUInt32LE(c);d.appendUInt32LE(c);d.appendUInt16LE(b.filename.length);d.appendUInt16LE(0);d.appendString(b.filename);b.data&&d.appendByteArray(b.data);return d}function f(b,d){var c=new core.ByteArrayWriter("utf8"),
134
f=0;c.appendArray([80,75,1,2,20,0,20,0,0,0,0,0]);if(b.data)f=b.data.length;c.appendUInt32LE(a(b.date));c.appendUInt32LE(e(b.data));c.appendUInt32LE(f);c.appendUInt32LE(f);c.appendUInt16LE(b.filename.length);c.appendArray([0,0,0,0,0,0,0,0,0,0,0,0]);c.appendUInt32LE(d);c.appendString(b.filename);return c}function d(a,b){if(a===j.length)b(null);else{var c=j[a];c.data!==void 0?d(a+1,b):c.load(function(c){c?b(c):d(a+1,b)})}}var j,k,s,m=(new core.RawInflate).inflate,u=this;this.load=function(a,b){var d=
135
null,c,e;for(e=0;e<j.length;e+=1)if(c=j[e],c.filename===a){d=c;break}d?d.data?b(null,d.data):d.load(b):b(a+" not found.",null)};this.save=function(a,b,d,e){var f,k;for(f=0;f<j.length;f+=1)if(k=j[f],k.filename===a){k.set(a,b,d,e);return}k=new c(g);k.set(a,b,d,e);j.push(k)};this.write=function(a){d(0,function(d){if(d)a(d);else{var d=new core.ByteArrayWriter("utf8"),c,e,k,h=[0];for(c=0;c<j.length;c+=1)d.appendByteArrayWriter(b(j[c])),h.push(d.getLength());k=d.getLength();for(c=0;c<j.length;c+=1)e=j[c],
136
d.appendByteArrayWriter(f(e,h[c]));c=d.getLength()-k;d.appendArray([80,75,5,6,0,0,0,0]);d.appendUInt16LE(j.length);d.appendUInt16LE(j.length);d.appendUInt32LE(c);d.appendUInt32LE(k);d.appendArray([0,0]);runtime.writeFile(g,d.getByteArray(),a)}})};this.getEntries=function(){return j.slice()};k=-1;n===null?j=[]:runtime.getFileSize(g,function(a){k=a;k<0?n("File '"+g+"' cannot be read.",u):runtime.read(g,k-22,22,function(a,b){a||n===null?n(a,u):h(b,n)})})};
128
2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],d=0,e,c=a.length,f=0,f=0;d^=-1;for(e=0;e<c;e+=1)f=(d^a[e])&255,f=b[f],d=d>>>8^f;return d^-1}function j(a){return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&15,a>>5&63,(a&31)<<1)}function a(a){var b=a.getFullYear();return b<1980?0:b-
129
1980<<25|a.getMonth()+1<<21|a.getDate()<<16|a.getHours()<<11|a.getMinutes()<<5|a.getSeconds()>>1}function d(a,b){var d,e,c,f,g,i,h,q=this;this.load=function(b){if(q.data!==void 0)b(null,q.data);else{var c=g+34+d+e+256;c+h>o&&(c=o-h);runtime.read(a,h,c,function(d,e){if(d)b(d,e);else a:{var c=e,n=new core.ByteArray(c),p=n.readUInt32LE(),h;if(p!==67324752)b("File entry signature is wrong."+p.toString()+" "+c.length.toString(),null);else{n.pos+=22;p=n.readUInt16LE();h=n.readUInt16LE();n.pos+=p+h;if(f){c=
130
c.slice(n.pos,n.pos+g);if(g!==c.length){b("The amount of compressed bytes read was "+c.length.toString()+" instead of "+g.toString()+" for "+q.filename+" in "+a+".",null);break a}c=k(c,i)}else c=c.slice(n.pos,n.pos+i);i!==c.length?b("The amount of bytes read was "+c.length.toString()+" instead of "+i.toString()+" for "+q.filename+" in "+a+".",null):(q.data=c,b(null,c))}}})}};this.set=function(a,b,d,e){q.filename=a;q.data=b;q.compressed=d;q.date=e};this.error=null;if(b)b.readUInt32LE()!==33639248?
131
this.error="Central directory entry has wrong signature at position "+(b.pos-4).toString()+' for file "'+a+'": '+b.data.length.toString():(b.pos+=6,f=b.readUInt16LE(),this.date=j(b.readUInt32LE()),b.readUInt32LE(),g=b.readUInt32LE(),i=b.readUInt32LE(),d=b.readUInt16LE(),e=b.readUInt16LE(),c=b.readUInt16LE(),b.pos+=8,h=b.readUInt32LE(),this.filename=runtime.byteArrayToString(b.data.slice(b.pos,b.pos+d),"utf8"),b.pos+=d+e+c)}function h(a,b){if(a.length!==22)b("Central directory length should be 22.",
132
v);else{var e=new core.ByteArray(a),c;c=e.readUInt32LE();c!==101010256?b("Central directory signature is wrong: "+c.toString(),v):e.readUInt16LE()!==0?b("Zip files with non-zero disk numbers are not supported.",v):e.readUInt16LE()!==0?b("Zip files with non-zero disk numbers are not supported.",v):(c=e.readUInt16LE(),q=e.readUInt16LE(),c!==q?b("Number of entries is inconsistent.",v):(c=e.readUInt32LE(),e=e.readUInt16LE(),e=o-22-c,runtime.read(g,e,o-e,function(a,e){a:{var c=new core.ByteArray(e),f,
133
h;i=[];for(f=0;f<q;f+=1){h=new d(g,c);if(h.error){b(h.error,v);break a}i[i.length]=h}b(null,v)}})))}}function b(b){var e=new core.ByteArrayWriter("utf8"),c=0;e.appendArray([80,75,3,4,20,0,0,0,0,0]);if(b.data)c=b.data.length;e.appendUInt32LE(a(b.date));e.appendUInt32LE(f(b.data));e.appendUInt32LE(c);e.appendUInt32LE(c);e.appendUInt16LE(b.filename.length);e.appendUInt16LE(0);e.appendString(b.filename);b.data&&e.appendByteArray(b.data);return e}function c(b,e){var c=new core.ByteArrayWriter("utf8"),
134
d=0;c.appendArray([80,75,1,2,20,0,20,0,0,0,0,0]);if(b.data)d=b.data.length;c.appendUInt32LE(a(b.date));c.appendUInt32LE(f(b.data));c.appendUInt32LE(d);c.appendUInt32LE(d);c.appendUInt16LE(b.filename.length);c.appendArray([0,0,0,0,0,0,0,0,0,0,0,0]);c.appendUInt32LE(e);c.appendString(b.filename);return c}function e(a,b){if(a===i.length)b(null);else{var c=i[a];c.data!==void 0?e(a+1,b):c.load(function(c){c?b(c):e(a+1,b)})}}var i,o,q,k=(new core.RawInflate).inflate,v=this;this.load=function(a,b){var c=
135
null,e,d;for(d=0;d<i.length;d+=1)if(e=i[d],e.filename===a){c=e;break}c?c.data?b(null,c.data):c.load(b):b(a+" not found.",null)};this.save=function(a,b,c,e){var f,h;for(f=0;f<i.length;f+=1)if(h=i[f],h.filename===a){h.set(a,b,c,e);return}h=new d(g);h.set(a,b,c,e);i.push(h)};this.write=function(a){e(0,function(e){if(e)a(e);else{var e=new core.ByteArrayWriter("utf8"),d,f,h,q=[0];for(d=0;d<i.length;d+=1)e.appendByteArrayWriter(b(i[d])),q.push(e.getLength());h=e.getLength();for(d=0;d<i.length;d+=1)f=i[d],
136
e.appendByteArrayWriter(c(f,q[d]));d=e.getLength()-h;e.appendArray([80,75,5,6,0,0,0,0]);e.appendUInt16LE(i.length);e.appendUInt16LE(i.length);e.appendUInt32LE(d);e.appendUInt32LE(h);e.appendArray([0,0]);runtime.writeFile(g,e.getByteArray(),a)}})};this.getEntries=function(){return i.slice()};o=-1;m===null?i=[]:runtime.getFileSize(g,function(a){o=a;o<0?m("File '"+g+"' cannot be read.",v):runtime.read(g,o-22,22,function(a,b){a||m===null?m(a,v):h(b,m)})})};
137 137
// Input 12
138
gui.Caret=function(g,n){n.ownerDocument.createElementNS("urn:webodf:names:cursor","cursor");this.updateToSelection=function(){g.rangeCount===1&&g.getRangeAt(0)}};
138
gui.Caret=function(g,m){m.ownerDocument.createElementNS("urn:webodf:names:cursor","cursor");this.updateToSelection=function(){g.rangeCount===1&&g.getRangeAt(0)}};
139 139
// Input 13
140 140
runtime.loadClass("core.Cursor");
141
gui.SelectionMover=function(g,n){function e(a,b){if(g.rangeCount!==0){var c=g.getRangeAt(0);if(c.startContainer&&c.startContainer.nodeType===1){n.setPoint(c.startContainer,c.startOffset);b();c=n.node();n.position();var d=[],e;for(e=0;e<g.rangeCount;e+=1)d[e]=g.getRangeAt(e);g.removeAllRanges();d.length===0&&(d[0]=c.ownerDocument.createRange());d[d.length-1].setStart(n.node(),n.position());for(e=0;e<d.length;e+=1)g.addRange(d[e])}}}function l(){c.updateToSelection();for(var a=c.getNode().getBoundingClientRect(),
142
b=a.left,e=a.top,a=false,d=200;!a;){d-=1;c.remove();if(g.focusNode&&g.focusNode.nodeType===1){n.setPoint(g.focusNode,g.focusOffset);n.stepForward();var a=n.node(),j=n.position();g.collapse(a,j);c.updateToSelection()}a=c.getNode().getBoundingClientRect();a=a.top!==e&&a.left>b}}var a=n.node().ownerDocument,c=new core.Cursor(g,a);this.movePointForward=function(a){e(a,n.stepForward)};this.movePointBackward=function(a){e(a,n.stepBackward)};this.moveLineForward=function(a){g.modify?g.modify(a?"extend":
143
"move","forward","line"):e(a,l)};this.moveLineBackward=function(a){g.modify?g.modify(a?"extend":"move","backward","line"):e(a,function(){})};return this};
141
gui.SelectionMover=function(g,m){function f(a,b){if(g.rangeCount!==0){var c=g.getRangeAt(0);if(c.startContainer&&c.startContainer.nodeType===1){m.setPoint(c.startContainer,c.startOffset);b();c=m.node();m.position();var e=[],d;for(d=0;d<g.rangeCount;d+=1)e[d]=g.getRangeAt(d);g.removeAllRanges();e.length===0&&(e[0]=c.ownerDocument.createRange());e[e.length-1].setStart(m.node(),m.position());for(d=0;d<e.length;d+=1)g.addRange(e[d])}}}function j(){d.updateToSelection();for(var a=d.getNode().getBoundingClientRect(),
142
b=a.left,c=a.top,a=false,e=200;!a;){e-=1;d.remove();if(g.focusNode&&g.focusNode.nodeType===1){m.setPoint(g.focusNode,g.focusOffset);m.stepForward();var a=m.node(),f=m.position();g.collapse(a,f);d.updateToSelection()}a=d.getNode().getBoundingClientRect();a=a.top!==c&&a.left>b}}var a=m.node().ownerDocument,d=new core.Cursor(g,a);this.movePointForward=function(a){f(a,m.stepForward)};this.movePointBackward=function(a){f(a,m.stepBackward)};this.moveLineForward=function(a){g.modify?g.modify(a?"extend":
143
"move","forward","line"):f(a,j)};this.moveLineBackward=function(a){g.modify?g.modify(a?"extend":"move","backward","line"):f(a,function(){})};return this};
144 144
// Input 14
145 145
runtime.loadClass("core.PointWalker");runtime.loadClass("core.Cursor");
146
gui.XMLEdit=function(g,n){function e(a,b,d){a.addEventListener?a.addEventListener(b,d,false):a.attachEvent?a.attachEvent("on"+b,d):a["on"+b]=d}function l(a){a.preventDefault?a.preventDefault():a.returnValue=false}function a(){var a=g.ownerDocument.defaultView.getSelection();a&&!(a.rangeCount<=0)&&q&&(a=a.getRangeAt(0),q.setPoint(a.startContainer,a.startOffset))}function c(){var a=g.ownerDocument.defaultView.getSelection(),b,d;a.removeAllRanges();q&&q.node()&&(b=q.node(),d=b.ownerDocument.createRange(),
147
d.setStart(b,q.position()),d.collapse(true),a.addRange(d))}function h(b){var d=b.charCode||b.keyCode;if(q=null,q&&d===37)a(),q.stepBackward(),c();else if(d>=16&&d<=20||d>=33&&d<=40)return;l(b)}function b(){}function f(a){g.ownerDocument.defaultView.getSelection().getRangeAt(0);l(a)}function d(a){for(var b=a.firstChild;b&&b!==a;)b.nodeType===1&&d(b),b=b.nextSibling||b.parentNode;var c,e,f,b=a.attributes;c="";for(f=b.length-1;f>=0;f-=1)e=b.item(f),c=c+" "+e.nodeName+'="'+e.nodeValue+'"';a.setAttribute("customns_name",
148
a.nodeName);a.setAttribute("customns_atts",c);b=a.firstChild;for(e=/^\s*$/;b&&b!==a;)c=b,b=b.nextSibling||b.parentNode,c.nodeType===3&&e.test(c.nodeValue)&&c.parentNode.removeChild(c)}function j(a,b){for(var d=a.firstChild,c,e,f;d&&d!==a;){if(d.nodeType===1){j(d,b);c=d.attributes;for(f=c.length-1;f>=0;f-=1)if(e=c.item(f),e.namespaceURI==="http://www.w3.org/2000/xmlns/"&&!b[e.nodeValue])b[e.nodeValue]=e.localName}d=d.nextSibling||d.parentNode}}function k(){var a=g.ownerDocument.createElement("style"),
149
b;b={};j(g,b);var d={},c,e,f=0;for(c in b)if(b.hasOwnProperty(c)&&c){e=b[c];if(!e||d.hasOwnProperty(e)||e==="xmlns"){do e="ns"+f,f+=1;while(d.hasOwnProperty(e));b[c]=e}d[e]=true}b="@namespace customns url(customns);\n";a.type="text/css";b+=s;a.appendChild(g.ownerDocument.createTextNode(b));n=n.parentNode.replaceChild(a,n)}var s,m,u,q=null;if(!g.id)g.id="xml"+String(Math.random()).substring(2);m="#"+g.id+" ";s=m+"*,"+m+":visited, "+m+":link {display:block; margin: 0px; margin-left: 10px; font-size: medium; color: black; background: white; font-variant: normal; font-weight: normal; font-style: normal; font-family: sans-serif; text-decoration: none; white-space: pre-wrap; height: auto; width: auto}\n"+
150
m+":before {color: blue; content: '<' attr(customns_name) attr(customns_atts) '>';}\n"+m+":after {color: blue; content: '</' attr(customns_name) '>';}\n"+m+"{overflow: auto;}\n";(function(a){e(a,"click",f);e(a,"keydown",h);e(a,"keypress",b);e(a,"drop",l);e(a,"dragend",l);e(a,"beforepaste",l);e(a,"paste",l)})(g);this.updateCSS=k;this.setXML=function(a){a=a.documentElement||a;u=a=g.ownerDocument.importNode(a,true);for(d(a);g.lastChild;)g.removeChild(g.lastChild);g.appendChild(a);k();q=new core.PointWalker(a)};
151
this.getXML=function(){return u}};
146
gui.XMLEdit=function(g,m){function f(a,b,e){a.addEventListener?a.addEventListener(b,e,false):a.attachEvent?a.attachEvent("on"+b,e):a["on"+b]=e}function j(a){a.preventDefault?a.preventDefault():a.returnValue=false}function a(){var a=g.ownerDocument.defaultView.getSelection();a&&!(a.rangeCount<=0)&&l&&(a=a.getRangeAt(0),l.setPoint(a.startContainer,a.startOffset))}function d(){var a=g.ownerDocument.defaultView.getSelection(),b,e;a.removeAllRanges();l&&l.node()&&(b=l.node(),e=b.ownerDocument.createRange(),
147
e.setStart(b,l.position()),e.collapse(true),a.addRange(e))}function h(b){var e=b.charCode||b.keyCode;if(l=null,l&&e===37)a(),l.stepBackward(),d();else if(e>=16&&e<=20||e>=33&&e<=40)return;j(b)}function b(){}function c(a){g.ownerDocument.defaultView.getSelection().getRangeAt(0);j(a)}function e(a){for(var b=a.firstChild;b&&b!==a;)b.nodeType===1&&e(b),b=b.nextSibling||b.parentNode;var c,d,f,b=a.attributes;c="";for(f=b.length-1;f>=0;f-=1)d=b.item(f),c=c+" "+d.nodeName+'="'+d.nodeValue+'"';a.setAttribute("customns_name",
148
a.nodeName);a.setAttribute("customns_atts",c);b=a.firstChild;for(d=/^\s*$/;b&&b!==a;)c=b,b=b.nextSibling||b.parentNode,c.nodeType===3&&d.test(c.nodeValue)&&c.parentNode.removeChild(c)}function i(a,b){for(var e=a.firstChild,c,d,f;e&&e!==a;){if(e.nodeType===1){i(e,b);c=e.attributes;for(f=c.length-1;f>=0;f-=1)if(d=c.item(f),d.namespaceURI==="http://www.w3.org/2000/xmlns/"&&!b[d.nodeValue])b[d.nodeValue]=d.localName}e=e.nextSibling||e.parentNode}}function o(){var a=g.ownerDocument.createElement("style"),
149
b;b={};i(g,b);var e={},c,d,f=0;for(c in b)if(b.hasOwnProperty(c)&&c){d=b[c];if(!d||e.hasOwnProperty(d)||d==="xmlns"){do d="ns"+f,f+=1;while(e.hasOwnProperty(d));b[c]=d}e[d]=true}b="@namespace customns url(customns);\n";a.type="text/css";b+=q;a.appendChild(g.ownerDocument.createTextNode(b));m=m.parentNode.replaceChild(a,m)}var q,k,v,l=null;if(!g.id)g.id="xml"+String(Math.random()).substring(2);k="#"+g.id+" ";q=k+"*,"+k+":visited, "+k+":link {display:block; margin: 0px; margin-left: 10px; font-size: medium; color: black; background: white; font-variant: normal; font-weight: normal; font-style: normal; font-family: sans-serif; text-decoration: none; white-space: pre-wrap; height: auto; width: auto}\n"+
150
k+":before {color: blue; content: '<' attr(customns_name) attr(customns_atts) '>';}\n"+k+":after {color: blue; content: '</' attr(customns_name) '>';}\n"+k+"{overflow: auto;}\n";(function(a){f(a,"click",c);f(a,"keydown",h);f(a,"keypress",b);f(a,"drop",j);f(a,"dragend",j);f(a,"beforepaste",j);f(a,"paste",j)})(g);this.updateCSS=o;this.setXML=function(a){a=a.documentElement||a;v=a=g.ownerDocument.importNode(a,true);for(e(a);g.lastChild;)g.removeChild(g.lastChild);g.appendChild(a);o();l=new core.PointWalker(a)};
151
this.getXML=function(){return v}};
152 152
// Input 15
153 153
xmldom.LSSerializerFilter=function(){};
154 154
// Input 16
155
typeof Object.create!=="function"&&(Object.create=function(g){var n=function(){};n.prototype=g;return new n});
156
xmldom.LSSerializer=function(){function g(e,l){var a="",c=Object.create(e),h=n.filter?n.filter.acceptNode(l):1,b;if(h===1){b="";var f=l.attributes,d,j,k,s="",m;if(f){if(c[l.namespaceURI]!==l.prefix)c[l.namespaceURI]=l.prefix;b+="<"+l.nodeName;d=f.length;for(j=0;j<d;j+=1)if(k=f.item(j),k.namespaceURI!=="http://www.w3.org/2000/xmlns/"&&(m=n.filter?n.filter.acceptNode(k):1,m===1)){if(k.namespaceURI){m=k.prefix;var u=k.namespaceURI;c.hasOwnProperty(u)?m=c[u]+":":(c[u]!==m&&(c[u]=m),m+=":")}else m="";
157
s+=" "+(m+k.localName+'="'+k.nodeValue+'"')}for(j in c)c.hasOwnProperty(j)&&((m=c[j])?m!=="xmlns"&&(b+=" xmlns:"+c[j]+'="'+j+'"'):b+=' xmlns="'+j+'"');b+=s+">"}a+=b}if(h===1||h===3){for(b=l.firstChild;b;)a+=g(c,b),b=b.nextSibling;l.nodeValue&&(a+=l.nodeValue)}h===1&&(c="",l.nodeType===1&&(c+="</"+l.nodeName+">"),a+=c);return a}var n=this;this.filter=null;this.writeToString=function(e,l){if(!e)return"";var a;if(l){a=l;var c={},h;for(h in a)a.hasOwnProperty(h)&&(c[a[h]]=h);a=c}else a={};return g(a,
158
e)}};
155
typeof Object.create!=="function"&&(Object.create=function(g){var m=function(){};m.prototype=g;return new m});
156
xmldom.LSSerializer=function(){function g(f,j){var a="",d=Object.create(f),h=m.filter?m.filter.acceptNode(j):1,b;if(h===1){b="";var c=j.attributes,e,i,o,q="",k;if(c){if(d[j.namespaceURI]!==j.prefix)d[j.namespaceURI]=j.prefix;b+="<"+j.nodeName;e=c.length;for(i=0;i<e;i+=1)if(o=c.item(i),o.namespaceURI!=="http://www.w3.org/2000/xmlns/"&&(k=m.filter?m.filter.acceptNode(o):1,k===1)){if(o.namespaceURI){k=o.prefix;var v=o.namespaceURI;d.hasOwnProperty(v)?k=d[v]+":":(d[v]!==k&&(d[v]=k),k+=":")}else k="";
157
q+=" "+(k+o.localName+'="'+o.nodeValue+'"')}for(i in d)d.hasOwnProperty(i)&&((k=d[i])?k!=="xmlns"&&(b+=" xmlns:"+d[i]+'="'+i+'"'):b+=' xmlns="'+i+'"');b+=q+">"}a+=b}if(h===1||h===3){for(b=j.firstChild;b;)a+=g(d,b),b=b.nextSibling;j.nodeValue&&(a+=j.nodeValue)}h===1&&(d="",j.nodeType===1&&(d+="</"+j.nodeName+">"),a+=d);return a}var m=this;this.filter=null;this.writeToString=function(f,j){if(!f)return"";var a;if(j){a=j;var d={},h;for(h in a)a.hasOwnProperty(h)&&(d[a[h]]=h);a=d}else a={};return g(a,
158
f)}};
159 159
// Input 17
160
xmldom.RelaxNGParser=function(){function g(a,b){this.message=function(){b&&(a+=b.nodeType===1?" Element ":" Node ",a+=b.nodeName,b.nodeValue&&(a+=" with value '"+b.nodeValue+"'"),a+=".");return a}}function n(a){if(a.e.length<=2)return a;var b={name:a.name,e:a.e.slice(0,2)};return n({name:a.name,e:[b].concat(a.e.slice(2))})}function e(a){var a=a.split(":",2),c="",e;a.length===1?a=["",a[0]]:c=a[0];for(e in b)b[e]===c&&(a[0]=e);return a}function l(a,b){var j;var d;for(var c=0,f,g,h=a.name;a.e&&c<a.e.length;)if(f=
161
a.e[c],f.name==="ref"){g=b[f.a.name];if(!g)throw f.a.name+" was not defined.";f=a.e.slice(c+1);a.e=a.e.slice(0,c);a.e=a.e.concat(g.e);a.e=a.e.concat(f)}else c+=1,l(f,b);f=a.e;if(h==="choice"&&(!f||!f[1]||f[1].name==="empty"))!f||!f[0]||f[0].name==="empty"?(delete a.e,a.name="empty"):(f[1]=f[0],f[0]={name:"empty"});if(h==="group"||h==="interleave")if(f[0].name==="empty")f[1].name==="empty"?(delete a.e,a.name="empty"):(h=a.name=f[1].name,a.names=f[1].names,d=a.e=f[1].e,f=d);else if(f[1].name==="empty")h=
162
a.name=f[0].name,a.names=f[0].names,j=a.e=f[0].e,f=j;if(h==="oneOrMore"&&f[0].name==="empty")delete a.e,a.name="empty";if(h==="attribute"){g=a.names?a.names.length:0;for(var n,i=a.localnames=[g],t=a.namespaces=[g],c=0;c<g;c+=1)n=e(a.names[c]),t[c]=n[0],i[c]=n[1]}if(h==="interleave")if(f[0].name==="interleave")f[1].name==="interleave"?a.e=f[0].e.concat(f[1].e):a.e=[f[1]].concat(f[0].e);else if(f[1].name==="interleave")a.e=[f[0]].concat(f[1].e)}function a(b,c){for(var e=0,f;b.e&&e<b.e.length;)f=b.e[e],
163
f.name==="elementref"?(f.id=f.id||0,b.e[e]=c[f.id]):f.name!=="element"&&a(f,c),e+=1}var c=this,h,b={"http://www.w3.org/XML/1998/namespace":"xml"},f;f=function(a,c){var g=[],h,m,l,q,i=a.localName,t=[];h=a.attributes;m=i;q=t;var v={},D,p;for(D=0;D<h.length;D+=1)if(p=h.item(D),p.namespaceURI){if(p.namespaceURI==="http://www.w3.org/2000/xmlns/")b[p.value]=p.localName}else p.localName==="name"&&(m==="element"||m==="attribute")&&q.push(p.value),v[p.localName]=p.value;h=v;m=a.firstChild;q=g;v=t;for(D="";m;)m.nodeType===
164
1&&m.namespaceURI==="http://relaxng.org/ns/structure/1.0"?(p=f(m,c),p.name==="name"?v.push(b[p.a.ns]+":"+p.text):p.name==="choice"&&p.names&&p.names.length&&(v=v.concat(p.names),delete p.names),q.push(p)):m.nodeType===3&&(D+=m.nodeValue),m=m.nextSibling;q=D;i!=="value"&&i!=="param"&&(q=/^\s*([\s\S]*\S)?\s*$/.exec(q)[1]);if(i==="value"&&h.type===void 0)h.type="token",h.datatypeLibrary="";if((i==="attribute"||i==="element")&&h.name!==void 0)l=e(h.name),g=[{name:"name",text:l[1],a:{ns:l[0]}}].concat(g),
165
delete h.name;if(i==="name"||i==="nsName"||i==="value"){if(h.ns===void 0)h.ns=""}else delete h.ns;if(i==="name")l=e(q),h.ns=l[0],q=l[1];if(g.length>1&&(i==="define"||i==="oneOrMore"||i==="zeroOrMore"||i==="optional"||i==="list"||i==="mixed"))g=[{name:"group",e:n({name:"group",e:g}).e}];g.length>2&&i==="element"&&(g=[g[0]].concat({name:"group",e:n({name:"group",e:g.slice(1)}).e}));g.length===1&&i==="attribute"&&g.push({name:"text",text:q});if(g.length===1&&(i==="choice"||i==="group"||i==="interleave"))i=
166
g[0].name,t=g[0].names,h=g[0].a,q=g[0].text,g=g[0].e;else if(g.length>2&&(i==="choice"||i==="group"||i==="interleave"))g=n({name:i,e:g}).e;i==="mixed"&&(i="interleave",g=[g[0],{name:"text"}]);i==="optional"&&(i="choice",g=[g[0],{name:"empty"}]);i==="zeroOrMore"&&(i="choice",g=[{name:"oneOrMore",e:[g[0]]},{name:"empty"}]);m={name:i};if(g&&g.length>0)m.e=g;for(l in h)if(h.hasOwnProperty(l)){m.a=h;break}if(q!==void 0)m.text=q;if(t&&t.length>0)m.names=t;if(i==="element")m.id=c.length,c.push(m),m={name:"elementref",
167
id:m.id};return m};this.parseRelaxNGDOM=function(d,e){var k=[],s=f(d&&d.documentElement,k),m,n,q={};for(m=0;m<s.e.length;m+=1)n=s.e[m],n.name==="define"?q[n.a.name]=n:n.name==="start"&&(h=n);if(!h)return[new g("No Relax NG start element was found.")];l(h,q);for(m in q)q.hasOwnProperty(m)&&l(q[m],q);for(m=0;m<k.length;m+=1)l(k[m],q);if(e)c.rootPattern=e(h.e[0],k);a(h,k);for(m=0;m<k.length;m+=1)a(k[m],k);c.start=h;c.elements=k;c.nsmap=b;return null}};
160
xmldom.RelaxNGParser=function(){function g(a,b){this.message=function(){b&&(a+=b.nodeType===1?" Element ":" Node ",a+=b.nodeName,b.nodeValue&&(a+=" with value '"+b.nodeValue+"'"),a+=".");return a}}function m(a){if(a.e.length<=2)return a;var b={name:a.name,e:a.e.slice(0,2)};return m({name:a.name,e:[b].concat(a.e.slice(2))})}function f(a){var a=a.split(":",2),c="",d;a.length===1?a=["",a[0]]:c=a[0];for(d in b)b[d]===c&&(a[0]=d);return a}function j(a,b){var i;var e;for(var d=0,c,g,h=a.name;a.e&&d<a.e.length;)if(c=
161
a.e[d],c.name==="ref"){g=b[c.a.name];if(!g)throw c.a.name+" was not defined.";c=a.e.slice(d+1);a.e=a.e.slice(0,d);a.e=a.e.concat(g.e);a.e=a.e.concat(c)}else d+=1,j(c,b);c=a.e;if(h==="choice"&&(!c||!c[1]||c[1].name==="empty"))!c||!c[0]||c[0].name==="empty"?(delete a.e,a.name="empty"):(c[1]=c[0],c[0]={name:"empty"});if(h==="group"||h==="interleave")if(c[0].name==="empty")c[1].name==="empty"?(delete a.e,a.name="empty"):(h=a.name=c[1].name,a.names=c[1].names,e=a.e=c[1].e,c=e);else if(c[1].name==="empty")h=
162
a.name=c[0].name,a.names=c[0].names,i=a.e=c[0].e,c=i;if(h==="oneOrMore"&&c[0].name==="empty")delete a.e,a.name="empty";if(h==="attribute"){g=a.names?a.names.length:0;for(var l,n=a.localnames=[g],m=a.namespaces=[g],d=0;d<g;d+=1)l=f(a.names[d]),m[d]=l[0],n[d]=l[1]}if(h==="interleave")if(c[0].name==="interleave")c[1].name==="interleave"?a.e=c[0].e.concat(c[1].e):a.e=[c[1]].concat(c[0].e);else if(c[1].name==="interleave")a.e=[c[0]].concat(c[1].e)}function a(b,c){for(var d=0,f;b.e&&d<b.e.length;)f=b.e[d],
163
f.name==="elementref"?(f.id=f.id||0,b.e[d]=c[f.id]):f.name!=="element"&&a(f,c),d+=1}var d=this,h,b={"http://www.w3.org/XML/1998/namespace":"xml"},c;c=function(a,d,g){var h=[],k,j,l=a.localName,n=[];k=a.attributes;var x=l,w=n,D={},s,u;for(s=0;s<k.length;s+=1)if(u=k.item(s),u.namespaceURI){if(u.namespaceURI==="http://www.w3.org/2000/xmlns/")b[u.value]=u.localName}else{u.localName==="name"&&(x==="element"||x==="attribute")&&w.push(u.value);if(u.localName==="name"||u.localName==="combine"||u.localName===
164
"type"){var E=u,z;z=u.value;z=z.replace(/^\s\s*/,"");for(var A=/\s/,F=z.length-1;A.test(z.charAt(F));)F-=1;z=z.slice(0,F+1);E.value=z}D[u.localName]=u.value}k=D;k.combine=k.combine||void 0;a=a.firstChild;x=h;w=n;for(D="";a;){if(a.nodeType===1&&a.namespaceURI==="http://relaxng.org/ns/structure/1.0"){if(s=c(a,d,x))s.name==="name"?w.push(b[s.a.ns]+":"+s.text):s.name==="choice"&&s.names&&s.names.length&&(w=w.concat(s.names),delete s.names),x.push(s)}else a.nodeType===3&&(D+=a.nodeValue);a=a.nextSibling}a=
165
D;l!=="value"&&l!=="param"&&(a=/^\s*([\s\S]*\S)?\s*$/.exec(a)[1]);if(l==="value"&&k.type===void 0)k.type="token",k.datatypeLibrary="";if((l==="attribute"||l==="element")&&k.name!==void 0)j=f(k.name),h=[{name:"name",text:j[1],a:{ns:j[0]}}].concat(h),delete k.name;if(l==="name"||l==="nsName"||l==="value"){if(k.ns===void 0)k.ns=""}else delete k.ns;if(l==="name")j=f(a),k.ns=j[0],a=j[1];if(h.length>1&&(l==="define"||l==="oneOrMore"||l==="zeroOrMore"||l==="optional"||l==="list"||l==="mixed"))h=[{name:"group",
166
e:m({name:"group",e:h}).e}];h.length>2&&l==="element"&&(h=[h[0]].concat({name:"group",e:m({name:"group",e:h.slice(1)}).e}));h.length===1&&l==="attribute"&&h.push({name:"text",text:a});if(h.length===1&&(l==="choice"||l==="group"||l==="interleave"))l=h[0].name,n=h[0].names,k=h[0].a,a=h[0].text,h=h[0].e;else if(h.length>2&&(l==="choice"||l==="group"||l==="interleave"))h=m({name:l,e:h}).e;l==="mixed"&&(l="interleave",h=[h[0],{name:"text"}]);l==="optional"&&(l="choice",h=[h[0],{name:"empty"}]);l==="zeroOrMore"&&
167
(l="choice",h=[{name:"oneOrMore",e:[h[0]]},{name:"empty"}]);if(l==="define"&&k.combine){a:{x=k.combine;w=k.name;D=h;for(s=0;g&&s<g.length;s+=1)if(u=g[s],u.name==="define"&&u.a&&u.a.name===w){u.e=[{name:x,e:u.e.concat(D)}];g=u;break a}g=null}if(g)return}g={name:l};if(h&&h.length>0)g.e=h;for(j in k)if(k.hasOwnProperty(j)){g.a=k;break}if(a!==void 0)g.text=a;if(n&&n.length>0)g.names=n;if(l==="element")g.id=d.length,d.push(g),g={name:"elementref",id:g.id};return g};this.parseRelaxNGDOM=function(e,f){var o=
168
[],q=c(e&&e.documentElement,o,void 0),k,m,l={};for(k=0;k<q.e.length;k+=1)m=q.e[k],m.name==="define"?l[m.a.name]=m:m.name==="start"&&(h=m);if(!h)return[new g("No Relax NG start element was found.")];j(h,l);for(k in l)l.hasOwnProperty(k)&&j(l[k],l);for(k=0;k<o.length;k+=1)j(o[k],l);if(f)d.rootPattern=f(h.e[0],o);a(h,o);for(k=0;k<o.length;k+=1)a(o[k],o);d.start=h;d.elements=o;d.nsmap=b;return null}};
168 169
// Input 18
169 170
runtime.loadClass("xmldom.RelaxNGParser");
170
xmldom.RelaxNG=function(){function g(a){return function(){var b;return function(){b===void 0&&(b=a());return b}}()}function n(a,b){return function(){var c={},d=0;return function(e){var f=e.hash||e.toString(),g;g=c[f];if(g!==void 0)return g;c[f]=g=b(e);g.hash=a+d.toString();d+=1;return g}}()}function e(a){return function(){var b={};return function(c){var d,e;e=b[c.localName];if(e===void 0)b[c.localName]=e={};else if(d=e[c.namespaceURI],d!==void 0)return d;return e[c.namespaceURI]=d=a(c)}}()}function l(a,
171
b,c){return function(){var d={},e=0;return function(f,g){var i=b&&b(f,g),j,h;if(i!==void 0)return i;i=f.hash||f.toString();j=g.hash||g.toString();h=d[i];if(h===void 0)d[i]=h={};else if(i=h[j],i!==void 0)return i;h[j]=i=c(f,g);i.hash=a+e.toString();e+=1;return i}}()}function a(b,c){c.p1.type==="choice"?a(b,c.p1):b[c.p1.hash]=c.p1;c.p2.type==="choice"?a(b,c.p2):b[c.p2.hash]=c.p2}function c(a,b){return{type:"element",nc:a,nullable:false,textDeriv:function(){return p},startTagOpenDeriv:function(c){return a.contains(c)?
172
m(b,B):p},attDeriv:function(){return p},startTagCloseDeriv:function(){return this}}}function h(){return{type:"list",nullable:false,hash:"list",textDeriv:function(){return B}}}function b(a,c,e,f){if(c===p)return p;if(f>=e.length)return c;f===0&&(f=0);for(var g=e.item(f);g.namespaceURI===d;){f+=1;if(f>=e.length)return c;g=e.item(f)}return g=b(a,c.attDeriv(a,e.item(f)),e,f+1)}function f(a,b,c){c.e[0].a?(a.push(c.e[0].text),b.push(c.e[0].a.ns)):f(a,b,c.e[0]);c.e[1].a?(a.push(c.e[1].text),b.push(c.e[1].a.ns)):
173
f(a,b,c.e[1])}var d="http://www.w3.org/2000/xmlns/",j,k,s,m,u,q,i,t,v,D,p={type:"notAllowed",nullable:false,hash:"notAllowed",textDeriv:function(){return p},startTagOpenDeriv:function(){return p},attDeriv:function(){return p},startTagCloseDeriv:function(){return p},endTagDeriv:function(){return p}},B={type:"empty",nullable:true,hash:"empty",textDeriv:function(){return p},startTagOpenDeriv:function(){return p},attDeriv:function(){return p},startTagCloseDeriv:function(){return B},endTagDeriv:function(){return p}},
174
E={type:"text",nullable:true,hash:"text",textDeriv:function(){return E},startTagOpenDeriv:function(){return p},attDeriv:function(){return p},startTagCloseDeriv:function(){return E},endTagDeriv:function(){return p}},C,z,G;j=l("choice",function(a,b){if(a===p)return b;if(b===p)return a;if(a===b)return a},function(b,c){var d={},f;a(d,{p1:b,p2:c});c=b=void 0;for(f in d)d.hasOwnProperty(f)&&(b===void 0?b=d[f]:c=c===void 0?d[f]:j(c,d[f]));return function(a,b){return{type:"choice",p1:a,p2:b,nullable:a.nullable||
175
b.nullable,textDeriv:function(c,d){return j(a.textDeriv(c,d),b.textDeriv(c,d))},startTagOpenDeriv:e(function(c){return j(a.startTagOpenDeriv(c),b.startTagOpenDeriv(c))}),attDeriv:function(c,d){return j(a.attDeriv(c,d),b.attDeriv(c,d))},startTagCloseDeriv:g(function(){return j(a.startTagCloseDeriv(),b.startTagCloseDeriv())}),endTagDeriv:g(function(){return j(a.endTagDeriv(),b.endTagDeriv())})}}(b,c)});k=function(a,b,c){return function(){var d={},e=0;return function(f,g){var i=b&&b(f,g),j,h;if(i!==
176
void 0)return i;i=f.hash||f.toString();j=g.hash||g.toString();i<j&&(h=i,i=j,j=h,h=f,f=g,g=h);h=d[i];if(h===void 0)d[i]=h={};else if(i=h[j],i!==void 0)return i;h[j]=i=c(f,g);i.hash=a+e.toString();e+=1;return i}}()}("interleave",function(a,b){if(a===p||b===p)return p;if(a===B)return b;if(b===B)return a},function(a,b){return{type:"interleave",p1:a,p2:b,nullable:a.nullable&&b.nullable,textDeriv:function(c,d){return j(k(a.textDeriv(c,d),b),k(a,b.textDeriv(c,d)))},startTagOpenDeriv:e(function(c){return j(C(function(a){return k(a,
177
b)},a.startTagOpenDeriv(c)),C(function(b){return k(a,b)},b.startTagOpenDeriv(c)))}),attDeriv:function(c,d){return j(k(a.attDeriv(c,d),b),k(a,b.attDeriv(c,d)))},startTagCloseDeriv:g(function(){return k(a.startTagCloseDeriv(),b.startTagCloseDeriv())})}});s=l("group",function(a,b){if(a===p||b===p)return p;if(a===B)return b;if(b===B)return a},function(a,b){return{type:"group",p1:a,p2:b,nullable:a.nullable&&b.nullable,textDeriv:function(c,d){var e=s(a.textDeriv(c,d),b);return a.nullable?j(e,b.textDeriv(c,
178
d)):e},startTagOpenDeriv:function(c){var d=C(function(a){return s(a,b)},a.startTagOpenDeriv(c));return a.nullable?j(d,b.startTagOpenDeriv(c)):d},attDeriv:function(c,d){return j(s(a.attDeriv(c,d),b),s(a,b.attDeriv(c,d)))},startTagCloseDeriv:g(function(){return s(a.startTagCloseDeriv(),b.startTagCloseDeriv())})}});m=l("after",function(a,b){if(a===p||b===p)return p},function(a,b){return{type:"after",p1:a,p2:b,nullable:false,textDeriv:function(c,d){return m(a.textDeriv(c,d),b)},startTagOpenDeriv:e(function(c){return C(function(a){return m(a,
179
b)},a.startTagOpenDeriv(c))}),attDeriv:function(c,d){return m(a.attDeriv(c,d),b)},startTagCloseDeriv:g(function(){return m(a.startTagCloseDeriv(),b)}),endTagDeriv:g(function(){return a.nullable?b:p})}});u=n("oneormore",function(a){return a===p?p:{type:"oneOrMore",p:a,nullable:a.nullable,textDeriv:function(b,c){return s(a.textDeriv(b,c),j(this,B))},startTagOpenDeriv:function(b){var c=this;return C(function(a){return s(a,j(c,B))},a.startTagOpenDeriv(b))},attDeriv:function(b,c){return s(a.attDeriv(b,
180
c),j(this,B))},startTagCloseDeriv:g(function(){return u(a.startTagCloseDeriv())})}});i=l("attribute",void 0,function(a,b){return{type:"attribute",nullable:false,nc:a,p:b,attDeriv:function(c,d){return a.contains(d)&&(b.nullable&&/^\s+$/.test(d.nodeValue)||b.textDeriv(c,d.nodeValue).nullable)?B:p},startTagCloseDeriv:function(){return p}}});q=n("value",function(a){return{type:"value",nullable:false,value:a,textDeriv:function(b,c){return c===a?B:p},attDeriv:function(){return p},startTagCloseDeriv:function(){return this}}});
181
v=n("data",function(a){return{type:"data",nullable:false,dataType:a,textDeriv:function(){return B},attDeriv:function(){return p},startTagCloseDeriv:function(){return this}}});C=function r(a,b){if(b.type==="after")return m(b.p1,a(b.p2));else if(b.type==="choice")return j(r(a,b.p1),r(a,b.p2));return b};z=function(a,c,d){for(var e=d.currentNode,c=c.startTagOpenDeriv(e),c=b(a,c,e.attributes,0),f=c=c.startTagCloseDeriv(),e=d.currentNode,c=d.firstChild(),g=0,i=[];c;)c.nodeType===1?i.push(c):c.nodeType===
182
3&&!/^\s*$/.test(c.nodeValue)&&(i.push(c.nodeValue),g+=1),c=d.nextSibling();i.length===0&&(i=[""]);g=f;for(f=0;g!==p&&f<i.length;f+=1)c=i[f],typeof c==="string"?g=/^\s*$/.test(c)?j(g,g.textDeriv(a,c)):g.textDeriv(a,c):(d.currentNode=c,g=z(a,g,d));d.currentNode=e;return c=g.endTagDeriv()};t=function(a){var b,c,d;if(a.name==="name")return b=a.text,c=a.a.ns,{name:b,ns:c,hash:"{"+c+"}"+b,contains:function(a){return a.namespaceURI===c&&a.localName===b}};else if(a.name==="choice"){b=[];c=[];f(b,c,a);a=
183
"";for(d=0;d<b.length;d+=1)a+="{"+c[d]+"}"+b[d]+",";return{hash:a,contains:function(a){var d;for(d=0;d<b.length;d+=1)if(b[d]===a.localName&&c[d]===a.namespaceURI)return true;return false}}}return{hash:"anyName",contains:function(){return true}}};D=function w(a,b){var d,e;if(a.name==="elementref"){d=a.id||0;a=b[d];if(a.name!==void 0){var f=a;d=b[f.id]={hash:"element"+f.id.toString()};f=c(t(f.e[0]),D(f.e[1],b));for(e in f)f.hasOwnProperty(e)&&(d[e]=f[e]);e=d}else e=a;return e}switch(a.name){case "empty":return B;
184
case "notAllowed":return p;case "text":return E;case "choice":return j(w(a.e[0],b),w(a.e[1],b));case "interleave":d=w(a.e[0],b);for(e=1;e<a.e.length;e+=1)d=k(d,w(a.e[e],b));return d;case "group":return s(w(a.e[0],b),w(a.e[1],b));case "oneOrMore":return u(w(a.e[0],b));case "attribute":return i(t(a.e[0]),w(a.e[1],b));case "value":return q(a.text);case "data":return d=a.a&&a.a.type,d===void 0&&(d=""),v(d);case "list":return h()}throw"No support for "+a.name;};this.makePattern=function(a,b){var c={},
185
d;for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return d=D(a,c)};this.validate=function(a,b){var c;a.currentNode=a.root;c=z(null,G,a);c.nullable?b(null):(runtime.log("Error in Relax NG validation: "+c),b(["Error in Relax NG validation: "+c]))};this.init=function(a){G=a}};
171
xmldom.RelaxNG=function(){function g(a){return function(){var b;return function(){b===void 0&&(b=a());return b}}()}function m(a,b){return function(){var c={},d=0;return function(e){var f=e.hash||e.toString(),g;g=c[f];if(g!==void 0)return g;c[f]=g=b(e);g.hash=a+d.toString();d+=1;return g}}()}function f(a){return function(){var b={};return function(c){var d,e;e=b[c.localName];if(e===void 0)b[c.localName]=e={};else if(d=e[c.namespaceURI],d!==void 0)return d;return e[c.namespaceURI]=d=a(c)}}()}function j(a,
172
b,c){return function(){var d={},e=0;return function(f,g){var h=b&&b(f,g),i,n;if(h!==void 0)return h;h=f.hash||f.toString();i=g.hash||g.toString();n=d[h];if(n===void 0)d[h]=n={};else if(h=n[i],h!==void 0)return h;n[i]=h=c(f,g);h.hash=a+e.toString();e+=1;return h}}()}function a(b,c){c.p1.type==="choice"?a(b,c.p1):b[c.p1.hash]=c.p1;c.p2.type==="choice"?a(b,c.p2):b[c.p2.hash]=c.p2}function d(a,b){return{type:"element",nc:a,nullable:false,textDeriv:function(){return s},startTagOpenDeriv:function(c){return a.contains(c)?
173
k(b,u):s},attDeriv:function(){return s},startTagCloseDeriv:function(){return this}}}function h(){return{type:"list",nullable:false,hash:"list",textDeriv:function(){return u}}}function b(a,c,d,f){if(c===s)return s;if(f>=d.length)return c;f===0&&(f=0);for(var g=d.item(f);g.namespaceURI===e;){f+=1;if(f>=d.length)return c;g=d.item(f)}return g=b(a,c.attDeriv(a,d.item(f)),d,f+1)}function c(a,b,d){d.e[0].a?(a.push(d.e[0].text),b.push(d.e[0].a.ns)):c(a,b,d.e[0]);d.e[1].a?(a.push(d.e[1].text),b.push(d.e[1].a.ns)):
174
c(a,b,d.e[1])}var e="http://www.w3.org/2000/xmlns/",i,o,q,k,v,l,n,x,w,D,s={type:"notAllowed",nullable:false,hash:"notAllowed",textDeriv:function(){return s},startTagOpenDeriv:function(){return s},attDeriv:function(){return s},startTagCloseDeriv:function(){return s},endTagDeriv:function(){return s}},u={type:"empty",nullable:true,hash:"empty",textDeriv:function(){return s},startTagOpenDeriv:function(){return s},attDeriv:function(){return s},startTagCloseDeriv:function(){return u},endTagDeriv:function(){return s}},
175
E={type:"text",nullable:true,hash:"text",textDeriv:function(){return E},startTagOpenDeriv:function(){return s},attDeriv:function(){return s},startTagCloseDeriv:function(){return E},endTagDeriv:function(){return s}},z,A,F;i=j("choice",function(a,b){if(a===s)return b;if(b===s)return a;if(a===b)return a},function(b,c){var d={},e;a(d,{p1:b,p2:c});c=b=void 0;for(e in d)d.hasOwnProperty(e)&&(b===void 0?b=d[e]:c=c===void 0?d[e]:i(c,d[e]));return function(a,b){return{type:"choice",p1:a,p2:b,nullable:a.nullable||
176
b.nullable,textDeriv:function(c,d){return i(a.textDeriv(c,d),b.textDeriv(c,d))},startTagOpenDeriv:f(function(c){return i(a.startTagOpenDeriv(c),b.startTagOpenDeriv(c))}),attDeriv:function(c,d){return i(a.attDeriv(c,d),b.attDeriv(c,d))},startTagCloseDeriv:g(function(){return i(a.startTagCloseDeriv(),b.startTagCloseDeriv())}),endTagDeriv:g(function(){return i(a.endTagDeriv(),b.endTagDeriv())})}}(b,c)});o=function(a,b,c){return function(){var d={},e=0;return function(f,g){var h=b&&b(f,g),i,n;if(h!==
177
void 0)return h;h=f.hash||f.toString();i=g.hash||g.toString();h<i&&(n=h,h=i,i=n,n=f,f=g,g=n);n=d[h];if(n===void 0)d[h]=n={};else if(h=n[i],h!==void 0)return h;n[i]=h=c(f,g);h.hash=a+e.toString();e+=1;return h}}()}("interleave",function(a,b){if(a===s||b===s)return s;if(a===u)return b;if(b===u)return a},function(a,b){return{type:"interleave",p1:a,p2:b,nullable:a.nullable&&b.nullable,textDeriv:function(c,d){return i(o(a.textDeriv(c,d),b),o(a,b.textDeriv(c,d)))},startTagOpenDeriv:f(function(c){return i(z(function(a){return o(a,
178
b)},a.startTagOpenDeriv(c)),z(function(b){return o(a,b)},b.startTagOpenDeriv(c)))}),attDeriv:function(c,d){return i(o(a.attDeriv(c,d),b),o(a,b.attDeriv(c,d)))},startTagCloseDeriv:g(function(){return o(a.startTagCloseDeriv(),b.startTagCloseDeriv())})}});q=j("group",function(a,b){if(a===s||b===s)return s;if(a===u)return b;if(b===u)return a},function(a,b){return{type:"group",p1:a,p2:b,nullable:a.nullable&&b.nullable,textDeriv:function(c,d){var e=q(a.textDeriv(c,d),b);return a.nullable?i(e,b.textDeriv(c,
179
d)):e},startTagOpenDeriv:function(c){var d=z(function(a){return q(a,b)},a.startTagOpenDeriv(c));return a.nullable?i(d,b.startTagOpenDeriv(c)):d},attDeriv:function(c,d){return i(q(a.attDeriv(c,d),b),q(a,b.attDeriv(c,d)))},startTagCloseDeriv:g(function(){return q(a.startTagCloseDeriv(),b.startTagCloseDeriv())})}});k=j("after",function(a,b){if(a===s||b===s)return s},function(a,b){return{type:"after",p1:a,p2:b,nullable:false,textDeriv:function(c,d){return k(a.textDeriv(c,d),b)},startTagOpenDeriv:f(function(c){return z(function(a){return k(a,
180
b)},a.startTagOpenDeriv(c))}),attDeriv:function(c,d){return k(a.attDeriv(c,d),b)},startTagCloseDeriv:g(function(){return k(a.startTagCloseDeriv(),b)}),endTagDeriv:g(function(){return a.nullable?b:s})}});v=m("oneormore",function(a){return a===s?s:{type:"oneOrMore",p:a,nullable:a.nullable,textDeriv:function(b,c){return q(a.textDeriv(b,c),i(this,u))},startTagOpenDeriv:function(b){var c=this;return z(function(a){return q(a,i(c,u))},a.startTagOpenDeriv(b))},attDeriv:function(b,c){return q(a.attDeriv(b,
181
c),i(this,u))},startTagCloseDeriv:g(function(){return v(a.startTagCloseDeriv())})}});n=j("attribute",void 0,function(a,b){return{type:"attribute",nullable:false,nc:a,p:b,attDeriv:function(c,d){return a.contains(d)&&(b.nullable&&/^\s+$/.test(d.nodeValue)||b.textDeriv(c,d.nodeValue).nullable)?u:s},startTagCloseDeriv:function(){return s}}});l=m("value",function(a){return{type:"value",nullable:false,value:a,textDeriv:function(b,c){return c===a?u:s},attDeriv:function(){return s},startTagCloseDeriv:function(){return this}}});
182
w=m("data",function(a){return{type:"data",nullable:false,dataType:a,textDeriv:function(){return u},attDeriv:function(){return s},startTagCloseDeriv:function(){return this}}});z=function r(a,b){if(b.type==="after")return k(b.p1,a(b.p2));else if(b.type==="choice")return i(r(a,b.p1),r(a,b.p2));return b};A=function(a,c,d){for(var e=d.currentNode,c=c.startTagOpenDeriv(e),c=b(a,c,e.attributes,0),f=c=c.startTagCloseDeriv(),e=d.currentNode,c=d.firstChild(),g=0,h=[];c;)c.nodeType===1?h.push(c):c.nodeType===
183
3&&!/^\s*$/.test(c.nodeValue)&&(h.push(c.nodeValue),g+=1),c=d.nextSibling();h.length===0&&(h=[""]);g=f;for(f=0;g!==s&&f<h.length;f+=1)c=h[f],typeof c==="string"?g=/^\s*$/.test(c)?i(g,g.textDeriv(a,c)):g.textDeriv(a,c):(d.currentNode=c,g=A(a,g,d));d.currentNode=e;return c=g.endTagDeriv()};x=function(a){var b,d,e;if(a.name==="name")return b=a.text,d=a.a.ns,{name:b,ns:d,hash:"{"+d+"}"+b,contains:function(a){return a.namespaceURI===d&&a.localName===b}};else if(a.name==="choice"){b=[];d=[];c(b,d,a);a=
184
"";for(e=0;e<b.length;e+=1)a+="{"+d[e]+"}"+b[e]+",";return{hash:a,contains:function(a){var c;for(c=0;c<b.length;c+=1)if(b[c]===a.localName&&d[c]===a.namespaceURI)return true;return false}}}return{hash:"anyName",contains:function(){return true}}};D=function t(a,b){var c,e;if(a.name==="elementref"){c=a.id||0;a=b[c];if(a.name!==void 0){var f=a;c=b[f.id]={hash:"element"+f.id.toString()};f=d(x(f.e[0]),D(f.e[1],b));for(e in f)f.hasOwnProperty(e)&&(c[e]=f[e]);e=c}else e=a;return e}switch(a.name){case "empty":return u;
185
case "notAllowed":return s;case "text":return E;case "choice":return i(t(a.e[0],b),t(a.e[1],b));case "interleave":c=t(a.e[0],b);for(e=1;e<a.e.length;e+=1)c=o(c,t(a.e[e],b));return c;case "group":return q(t(a.e[0],b),t(a.e[1],b));case "oneOrMore":return v(t(a.e[0],b));case "attribute":return n(x(a.e[0]),t(a.e[1],b));case "value":return l(a.text);case "data":return c=a.a&&a.a.type,c===void 0&&(c=""),w(c);case "list":return h()}throw"No support for "+a.name;};this.makePattern=function(a,b){var c={},
186
d;for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return d=D(a,c)};this.validate=function(a,b){var c;a.currentNode=a.root;c=A(null,F,a);c.nullable?b(null):(runtime.log("Error in Relax NG validation: "+c),b(["Error in Relax NG validation: "+c]))};this.init=function(a){F=a}};
186 187
// Input 19
187 188
runtime.loadClass("xmldom.RelaxNGParser");
188
xmldom.RelaxNG2=function(){function g(a,c){this.message=function(){c&&(a+=c.nodeType===1?" Element ":" Node ",a+=c.nodeName,c.nodeValue&&(a+=" with value '"+c.nodeValue+"'"),a+=".");return a}}function n(b,c,d,e){return b.name==="empty"?null:a(b,c,d,e)}function e(a,e){if(a.e.length!==2)throw"Element with wrong # of elements: "+a.e.length;h+=1;for(var d=e.currentNode,j=d?d.nodeType:0,k=null;j>1;){if(j!==8&&(j!==3||!/^\s+$/.test(e.currentNode.nodeValue)))return h-=1,[new g("Not allowed node of type "+
189
j+".")];j=(d=e.nextSibling())?d.nodeType:0}if(!d)return h-=1,[new g("Missing element "+a.names)];if(a.names&&a.names.indexOf(c[d.namespaceURI]+":"+d.localName)===-1)return h-=1,[new g("Found "+d.nodeName+" instead of "+a.names+".",d)];if(e.firstChild()){for(k=n(a.e[1],e,d);e.nextSibling();)if(j=e.currentNode.nodeType,(!e.currentNode||!(e.currentNode.nodeType===3&&/^\s+$/.test(e.currentNode.nodeValue)))&&j!==8)return h-=1,[new g("Spurious content.",e.currentNode)];if(e.parentNode()!==d)return h-=1,
190
[new g("Implementation error.")]}else k=n(a.e[1],e,d);h-=1;e.nextSibling();return k}var l,a,c,h=0;a=function(b,c,d,h){var k=b.name,l=null;if(k==="text")a:{for(var m=(b=c.currentNode)?b.nodeType:0;b!==d&&m!==3;){if(m===1){l=[new g("Element not allowed here.",b)];break a}m=(b=c.nextSibling())?b.nodeType:0}c.nextSibling();l=null}else if(k==="data")l=null;else if(k==="value")h!==b.text&&(l=[new g("Wrong value, should be '"+b.text+"', not '"+h+"'",d)]);else if(k==="list")l=null;else if(k==="attribute")a:{if(b.e.length!==
191
2)throw"Attribute with wrong # of elements: "+b.e.length;k=b.localnames.length;for(l=0;l<k;l+=1){h=d.getAttributeNS(b.namespaces[l],b.localnames[l]);h===""&&!d.hasAttributeNS(b.namespaces[l],b.localnames[l])&&(h=void 0);if(m!==void 0&&h!==void 0){l=[new g("Attribute defined too often.",d)];break a}m=h}l=m===void 0?[new g("Attribute not found: "+b.names,d)]:n(b.e[1],c,d,m)}else if(k==="element")l=e(b,c,d);else if(k==="oneOrMore"){h=0;do m=c.currentNode,k=a(b.e[0],c,d),h+=1;while(!k&&m!==c.currentNode);
192
h>1?(c.currentNode=m,l=null):l=k}else if(k==="choice"){if(b.e.length!==2)throw"Choice with wrong # of options: "+b.e.length;m=c.currentNode;if(b.e[0].name==="empty"){if(k=a(b.e[1],c,d,h))c.currentNode=m;l=null}else{if(k=n(b.e[0],c,d,h))c.currentNode=m,k=a(b.e[1],c,d,h);l=k}}else if(k==="group"){if(b.e.length!==2)throw"Group with wrong # of members: "+b.e.length;l=a(b.e[0],c,d)||a(b.e[1],c,d)}else if(k==="interleave")a:{for(var m=b.e.length,h=[m],u=m,q,i,t,v;u>0;){q=0;i=c.currentNode;for(l=0;l<m;l+=
193
1)if(t=c.currentNode,h[l]!==true&&h[l]!==t)v=b.e[l],(k=a(v,c,d))?(c.currentNode=t,h[l]===void 0&&(h[l]=false)):t===c.currentNode||v.name==="oneOrMore"||v.name==="choice"&&(v.e[0].name==="oneOrMore"||v.e[1].name==="oneOrMore")?(q+=1,h[l]=t):(q+=1,h[l]=true);if(i===c.currentNode&&q===u)break;if(q===0){for(l=0;l<m;l+=1)if(h[l]===false){l=[new g("Interleave does not match.",d)];break a}break}for(l=u=0;l<m;l+=1)h[l]!==true&&(u+=1)}l=null}else throw k+" not allowed in nonEmptyPattern.";return l};this.validate=
194
function(a,c){a.currentNode=a.root;var d=n(l.e[0],a,a.root);c(d)};this.init=function(a,e){l=a;c=e}};
189
xmldom.RelaxNG2=function(){function g(a,c){this.message=function(){c&&(a+=c.nodeType===1?" Element ":" Node ",a+=c.nodeName,c.nodeValue&&(a+=" with value '"+c.nodeValue+"'"),a+=".");return a}}function m(b,c,d,f){return b.name==="empty"?null:a(b,c,d,f)}function f(a,c){if(a.e.length!==2)throw"Element with wrong # of elements: "+a.e.length;h+=1;for(var e=c.currentNode,f=e?e.nodeType:0,j=null;f>1;){if(f!==8&&(f!==3||!/^\s+$/.test(c.currentNode.nodeValue)))return h-=1,[new g("Not allowed node of type "+
190
f+".")];f=(e=c.nextSibling())?e.nodeType:0}if(!e)return h-=1,[new g("Missing element "+a.names)];if(a.names&&a.names.indexOf(d[e.namespaceURI]+":"+e.localName)===-1)return h-=1,[new g("Found "+e.nodeName+" instead of "+a.names+".",e)];if(c.firstChild()){for(j=m(a.e[1],c,e);c.nextSibling();)if(f=c.currentNode.nodeType,(!c.currentNode||!(c.currentNode.nodeType===3&&/^\s+$/.test(c.currentNode.nodeValue)))&&f!==8)return h-=1,[new g("Spurious content.",c.currentNode)];if(c.parentNode()!==e)return h-=1,
191
[new g("Implementation error.")]}else j=m(a.e[1],c,e);h-=1;c.nextSibling();return j}var j,a,d,h=0;a=function(b,c,d,h){var j=b.name,q=null;if(j==="text")a:{for(var k=(b=c.currentNode)?b.nodeType:0;b!==d&&k!==3;){if(k===1){q=[new g("Element not allowed here.",b)];break a}k=(b=c.nextSibling())?b.nodeType:0}c.nextSibling();q=null}else if(j==="data")q=null;else if(j==="value")h!==b.text&&(q=[new g("Wrong value, should be '"+b.text+"', not '"+h+"'",d)]);else if(j==="list")q=null;else if(j==="attribute")a:{if(b.e.length!==
192
2)throw"Attribute with wrong # of elements: "+b.e.length;j=b.localnames.length;for(q=0;q<j;q+=1){h=d.getAttributeNS(b.namespaces[q],b.localnames[q]);h===""&&!d.hasAttributeNS(b.namespaces[q],b.localnames[q])&&(h=void 0);if(k!==void 0&&h!==void 0){q=[new g("Attribute defined too often.",d)];break a}k=h}q=k===void 0?[new g("Attribute not found: "+b.names,d)]:m(b.e[1],c,d,k)}else if(j==="element")q=f(b,c,d);else if(j==="oneOrMore"){h=0;do k=c.currentNode,j=a(b.e[0],c,d),h+=1;while(!j&&k!==c.currentNode);
193
h>1?(c.currentNode=k,q=null):q=j}else if(j==="choice"){if(b.e.length!==2)throw"Choice with wrong # of options: "+b.e.length;k=c.currentNode;if(b.e[0].name==="empty"){if(j=a(b.e[1],c,d,h))c.currentNode=k;q=null}else{if(j=m(b.e[0],c,d,h))c.currentNode=k,j=a(b.e[1],c,d,h);q=j}}else if(j==="group"){if(b.e.length!==2)throw"Group with wrong # of members: "+b.e.length;q=a(b.e[0],c,d)||a(b.e[1],c,d)}else if(j==="interleave")a:{for(var k=b.e.length,h=[k],v=k,l,n,x,w;v>0;){l=0;n=c.currentNode;for(q=0;q<k;q+=
194
1)if(x=c.currentNode,h[q]!==true&&h[q]!==x)w=b.e[q],(j=a(w,c,d))?(c.currentNode=x,h[q]===void 0&&(h[q]=false)):x===c.currentNode||w.name==="oneOrMore"||w.name==="choice"&&(w.e[0].name==="oneOrMore"||w.e[1].name==="oneOrMore")?(l+=1,h[q]=x):(l+=1,h[q]=true);if(n===c.currentNode&&l===v)break;if(l===0){for(q=0;q<k;q+=1)if(h[q]===false){q=[new g("Interleave does not match.",d)];break a}break}for(q=v=0;q<k;q+=1)h[q]!==true&&(v+=1)}q=null}else throw j+" not allowed in nonEmptyPattern.";return q};this.validate=
195
function(a,c){a.currentNode=a.root;var d=m(j.e[0],a,a.root);c(d)};this.init=function(a,c){j=a;d=c}};
195 196
// Input 20
196 197
xmldom.OperationalTransformInterface=function(){};xmldom.OperationalTransformInterface.prototype.retain=function(){};xmldom.OperationalTransformInterface.prototype.insertCharacters=function(){};xmldom.OperationalTransformInterface.prototype.insertElementStart=function(){};xmldom.OperationalTransformInterface.prototype.insertElementEnd=function(){};xmldom.OperationalTransformInterface.prototype.deleteCharacters=function(){};xmldom.OperationalTransformInterface.prototype.deleteElementStart=function(){};
197 198
xmldom.OperationalTransformInterface.prototype.deleteElementEnd=function(){};xmldom.OperationalTransformInterface.prototype.replaceAttributes=function(){};xmldom.OperationalTransformInterface.prototype.updateAttributes=function(){};
198 199
// Input 21
199 200
xmldom.OperationalTransformDOM=function(){this.retain=function(){};this.insertCharacters=function(){};this.insertElementStart=function(){};this.insertElementEnd=function(){};this.deleteCharacters=function(){};this.deleteElementStart=function(){};this.deleteElementEnd=function(){};this.replaceAttributes=function(){};this.updateAttributes=function(){};this.atEnd=function(){return true}};
200 201
// Input 22
201
odf.StyleInfo=function(){function g(e,l){for(var a=n[e.localName],c=a&&a[e.namespaceURI],h=c?c.length:0,b,f,d,a=0;a<h;a+=1)if(b=e.getAttributeNS(c[a].ns,c[a].localname))f=c[a].keygroup,(d=l[f])||(d=l[f]={}),d[b]=1;for(a=e.firstChild;a;)a.nodeType===1&&(c=a,g(c,l)),a=a.nextSibling}var n;this.UsedKeysList=function(e){var l={};this.uses=function(a){var c=a.localName,e=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","name")||a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0",
202
"name"),a=c==="style"?a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0","family"):a.namespaceURI==="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"?"data":c;return(a=l[a])?a[e]>0:false};g(e,l)};this.canElementHaveStyle=function(e,g){var a=n[g.localName];return(a=a&&a[g.namespaceURI])&&a.length>0};n=function(e){var i;var g,a,c,h,b,f={},d;for(g in e)if(e.hasOwnProperty(g)){c=e[g];b=c.length;for(a=0;a<b;a+=1)h=c[a],d=f[h.en]=f[h.en]||{},i=d[h.ens]=d[h.ens]||[],d=i,d.push({ns:h.ans,
203
localname:h.a,keygroup:g})}return f}({text:[{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"tab-stop",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"leader-text-style"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"drop-cap",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"citation-body-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
202
odf.StyleInfo=function(){function g(f,j){for(var a=m[f.localName],d=a&&a[f.namespaceURI],h=d?d.length:0,b,c,e,a=0;a<h;a+=1)if(b=f.getAttributeNS(d[a].ns,d[a].localname))c=d[a].keygroup,(e=j[c])||(e=j[c]={}),e[b]=1;for(a=f.firstChild;a;)a.nodeType===1&&(d=a,g(d,j)),a=a.nextSibling}var m;this.UsedKeysList=function(f){var j={};this.uses=function(a){var d=a.localName,f=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","name")||a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0",
203
"name"),a=d==="style"?a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0","family"):a.namespaceURI==="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"?"data":d;return(a=j[a])?a[f]>0:false};g(f,j)};this.canElementHaveStyle=function(f,g){var a=m[g.localName];return(a=a&&a[g.namespaceURI])&&a.length>0};m=function(f){var i;var g,a,d,h,b,c={},e;for(g in f)if(f.hasOwnProperty(g)){d=f[g];b=d.length;for(a=0;a<b;a+=1)h=d[a],e=c[h.en]=c[h.en]||{},i=e[h.ens]=e[h.ens]||[],e=i,e.push({ns:h.ans,
204
localname:h.a,keygroup:g})}return c}({text:[{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"tab-stop",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"leader-text-style"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"drop-cap",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"citation-body-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
204 205
en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"citation-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"a",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"linenumbering-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
205 206
a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"list-level-style-number",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"ruby-text",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"span",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"a",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
206 207
a:"visited-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"text-properties",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"text-line-through-text-style"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index-source",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"main-entry-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-bibliography",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},
......
263 264
a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-set",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"}],"page-layout":[{ens:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",en:"notes",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"handout-master",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
264 265
en:"master-page",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"}]})};
265 266
// Input 23
266
odf.Style2CSS=function(){function g(a,c){var b={},d,e,f;if(!c)return b;for(d=c.firstChild;d;){d.namespaceURI===k&&d.localName==="style"?f=d.getAttributeNS(k,"family"):d.namespaceURI===s&&d.localName==="list-style"&&(f="list");if(e=f&&d.getAttributeNS&&d.getAttributeNS(k,"name"))b[f]||(b[f]={}),b[f][e]=d;d=d.nextSibling}return b}function n(a,c){if(!c||!a)return null;if(a[c])return a[c];var b,d;for(b in a)if(a.hasOwnProperty(b)&&(d=n(a[b].derivedStyles,c)))return d;return null}function e(a,c,b){var d=
267
c[a],f,g;if(d)if(f=d.getAttributeNS(k,"parent-style-name"),g=null,f&&(g=n(b,f),!g&&c[f]&&(e(f,c,b),g=c[f],c[f]=null)),g){if(!g.derivedStyles)g.derivedStyles={};g.derivedStyles[a]=d}else b[a]=d}function l(a,c){for(var b in a)a.hasOwnProperty(b)&&(e(b,a,c),a[b]=null)}function a(a,c){var b=u[a],d;if(b===null)return null;d="["+b+'|style-name="'+c+'"]';b==="presentation"&&(b="draw",d='[presentation|style-name="'+c+'"]');return b+"|"+q[a].join(d+","+b+"|")+d}function c(b,d,e){var f=[],g,i;f.push(a(b,d));
268
for(g in e.derivedStyles)if(e.derivedStyles.hasOwnProperty(g))for(i in d=c(b,g,e.derivedStyles[g]),d)d.hasOwnProperty(i)&&f.push(d[i]);return f}function h(a,c,b){if(!a)return null;for(a=a.firstChild;a;){if(a.namespaceURI===c&&a.localName===b)return c=a;a=a.nextSibling}return null}function b(a,c){var b="",d,e;for(d in c)c.hasOwnProperty(d)&&(d=c[d],(e=a.getAttributeNS(d[0],d[1]))&&(b+=d[2]+":"+e+";"));return b}function f(a,c,b,d){for(var c='text|list[text|style-name="'+c+'"]',b=b.getAttributeNS(s,
269
"level"),e="",b=b&&parseInt(b,10);b>1;)c+=" > text|list-item > text|list",b-=1;c+=" > list-item:before";try{a.insertRule(c+"{"+d+"}",a.cssRules.length)}catch(f){throw f;}}function d(a,e,g,l){if(e==="list")for(var m=l.firstChild,o,n;m;){if(m.namespaceURI===s)if(o=m,m.localName==="list-level-style-number"){n=o;var q=n.getAttributeNS(k,"num-format"),y=n.getAttributeNS(k,"num-suffix"),u="",u={1:"decimal",a:"lower-latin",A:"upper-latin",i:"lower-roman",I:"upper-roman"},I="",I=n.getAttributeNS(k,"num-prefix")||
270
"";I+=u.hasOwnProperty(q)?" counter(list, "+u[q]+")":q?"'"+q+"';":" ''";y&&(I+=" '"+y+"'");n=u="content: "+I+";";f(a,g,o,n)}else m.localName==="list-level-style-image"?(n="content: none;",f(a,g,o,n)):m.localName==="list-level-style-bullet"&&(n="content: '"+o.getAttributeNS(s,"bullet-char")+"';",f(a,g,o,n));m=m.nextSibling}else{g=c(e,g,l).join(",");o="";if(m=h(l,k,"text-properties")){n="";n+=b(m,i);q=m.getAttributeNS(k,"text-underline-style");q==="solid"&&(n+="text-decoration: underline;");if(q=m.getAttributeNS(k,
271
"font-name"))(q='"'+q+'"')&&(n+="font-family: "+q+";");o+=n}if(m=h(l,k,"paragraph-properties")){n=m;m="";m+=b(n,v);n=n.getElementsByTagNameNS(k,"background-image");if(n.length>0&&(q=n.item(0).getAttributeNS(j,"href")))m+="background-image: url('odfkit:"+q+"');",n=n.item(0),m+=b(n,t);o+=m}if(m=h(l,k,"graphic-properties"))n="",n+=b(m,D),o+=n;if(m=h(l,k,"table-cell-properties"))n="",n+=b(m,p),o+=n;if(o.length!==0)try{a.insertRule(g+"{"+o+"}",a.cssRules.length)}catch(R){throw R;}}for(var K in l.derivedStyles)l.derivedStyles.hasOwnProperty(K)&&
272
d(a,e,K,l.derivedStyles[K])}var j="http://www.w3.org/1999/xlink",k="urn:oasis:names:tc:opendocument:xmlns:style:1.0",s="urn:oasis:names:tc:opendocument:xmlns:text:1.0",m={draw:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",fo:"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",office:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",presentation:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",style:k,svg:"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",table:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
273
text:s,xlink:j},u={graphic:"draw",paragraph:"text",presentation:"presentation",ruby:"text",section:"text",table:"table","table-cell":"table","table-column":"table","table-row":"table",text:"text",list:"text"},q={graphic:"circle,connected,control,custom-shape,ellipse,frame,g,line,measure,page,page-thumbnail,path,polygon,polyline,rect,regular-polygon".split(","),paragraph:"alphabetical-index-entry-template,h,illustration-index-entry-template,index-source-style,object-index-entry-template,p,table-index-entry-template,table-of-content-entry-template,user-index-entry-template".split(","),
267
odf.Style2CSS=function(){function g(a,b){var c={},d,e,f;if(!b)return c;for(d=b.firstChild;d;){d.namespaceURI===o&&d.localName==="style"?f=d.getAttributeNS(o,"family"):d.namespaceURI===q&&d.localName==="list-style"&&(f="list");if(e=f&&d.getAttributeNS&&d.getAttributeNS(o,"name"))c[f]||(c[f]={}),c[f][e]=d;d=d.nextSibling}return c}function m(a,b){if(!b||!a)return null;if(a[b])return a[b];var c,d;for(c in a)if(a.hasOwnProperty(c)&&(d=m(a[c].derivedStyles,b)))return d;return null}function f(a,b,c){var d=
268
b[a],e,g;if(d)if(e=d.getAttributeNS(o,"parent-style-name"),g=null,e&&(g=m(c,e),!g&&b[e]&&(f(e,b,c),g=b[e],b[e]=null)),g){if(!g.derivedStyles)g.derivedStyles={};g.derivedStyles[a]=d}else c[a]=d}function j(a,b){for(var c in a)a.hasOwnProperty(c)&&(f(c,a,b),a[c]=null)}function a(a,b){var c=v[a],d;if(c===null)return null;d="["+c+'|style-name="'+b+'"]';c==="presentation"&&(c="draw",d='[presentation|style-name="'+b+'"]');return c+"|"+l[a].join(d+","+c+"|")+d}function d(b,c,e){var f=[],g,h;f.push(a(b,c));
269
for(g in e.derivedStyles)if(e.derivedStyles.hasOwnProperty(g))for(h in c=d(b,g,e.derivedStyles[g]),c)c.hasOwnProperty(h)&&f.push(c[h]);return f}function h(a,c,b){if(!a)return null;for(a=a.firstChild;a;){if(a.namespaceURI===c&&a.localName===b)return c=a;a=a.nextSibling}return null}function b(a,c){var b="",d,e;for(d in c)c.hasOwnProperty(d)&&(d=c[d],(e=a.getAttributeNS(d[0],d[1]))&&(b+=d[2]+":"+e+";"));return b}function c(a,c,b,d){for(var c='text|list[text|style-name="'+c+'"]',b=b.getAttributeNS(q,
270
"level"),e="",b=b&&parseInt(b,10);b>1;)c+=" > text|list-item > text|list",b-=1;c+=" > list-item:before";try{a.insertRule(c+"{"+d+"}",a.cssRules.length)}catch(f){throw f;}}function e(a,f,g,k){if(f==="list")for(var j=k.firstChild,p,l;j;){if(j.namespaceURI===q)if(p=j,j.localName==="list-level-style-number"){l=p;var m=l.getAttributeNS(o,"num-format"),y=l.getAttributeNS(o,"num-suffix"),v="",v={1:"decimal",a:"lower-latin",A:"upper-latin",i:"lower-roman",I:"upper-roman"},I="",I=l.getAttributeNS(o,"num-prefix")||
271
"";I+=v.hasOwnProperty(m)?" counter(list, "+v[m]+")":m?"'"+m+"';":" ''";y&&(I+=" '"+y+"'");l=v="content: "+I+";";c(a,g,p,l)}else j.localName==="list-level-style-image"?(l="content: none;",c(a,g,p,l)):j.localName==="list-level-style-bullet"&&(l="content: '"+p.getAttributeNS(q,"bullet-char")+"';",c(a,g,p,l));j=j.nextSibling}else{g=d(f,g,k).join(",");p="";if(j=h(k,o,"text-properties")){l="";l+=b(j,n);m=j.getAttributeNS(o,"text-underline-style");m==="solid"&&(l+="text-decoration: underline;");if(m=j.getAttributeNS(o,
272
"font-name"))(m='"'+m+'"')&&(l+="font-family: "+m+";");p+=l}if(j=h(k,o,"paragraph-properties")){l=j;j="";j+=b(l,w);l=l.getElementsByTagNameNS(o,"background-image");if(l.length>0&&(m=l.item(0).getAttributeNS(i,"href")))j+="background-image: url('odfkit:"+m+"');",l=l.item(0),j+=b(l,x);p+=j}if(j=h(k,o,"graphic-properties"))l="",l+=b(j,D),p+=l;if(j=h(k,o,"table-cell-properties"))l="",l+=b(j,s),p+=l;if(p.length!==0)try{a.insertRule(g+"{"+p+"}",a.cssRules.length)}catch(R){throw R;}}for(var L in k.derivedStyles)k.derivedStyles.hasOwnProperty(L)&&
273
e(a,f,L,k.derivedStyles[L])}var i="http://www.w3.org/1999/xlink",o="urn:oasis:names:tc:opendocument:xmlns:style:1.0",q="urn:oasis:names:tc:opendocument:xmlns:text:1.0",k={draw:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",fo:"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",office:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",presentation:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",style:o,svg:"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",table:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
274
text:q,xlink:i},v={graphic:"draw",paragraph:"text",presentation:"presentation",ruby:"text",section:"text",table:"table","table-cell":"table","table-column":"table","table-row":"table",text:"text",list:"text"},l={graphic:"circle,connected,control,custom-shape,ellipse,frame,g,line,measure,page,page-thumbnail,path,polygon,polyline,rect,regular-polygon".split(","),paragraph:"alphabetical-index-entry-template,h,illustration-index-entry-template,index-source-style,object-index-entry-template,p,table-index-entry-template,table-of-content-entry-template,user-index-entry-template".split(","),
274 275
presentation:"caption,circle,connector,control,custom-shape,ellipse,frame,g,line,measure,page-thumbnail,path,polygon,polyline,rect,regular-polygon".split(","),ruby:["ruby","ruby-text"],section:"alphabetical-index,bibliography,illustration-index,index-title,object-index,section,table-of-content,table-index,user-index".split(","),table:["background","table"],"table-cell":"body,covered-table-cell,even-columns,even-rows,first-column,first-row,last-column,last-row,odd-columns,odd-rows,table-cell".split(","),
275
"table-column":["table-column"],"table-row":["table-row"],text:"a,index-entry-chapter,index-entry-link-end,index-entry-link-start,index-entry-page-number,index-entry-span,index-entry-tab-stop,index-entry-text,index-title-template,linenumbering-configuration,list-level-style-number,list-level-style-bullet,outline-level-style,span".split(","),list:["list-item"]},i=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","color","color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
276
"background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-weight","font-weight"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-style","font-style"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-size","font-size"]],t=[[k,"repeat","background-repeat"]],v=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
276
"table-column":["table-column"],"table-row":["table-row"],text:"a,index-entry-chapter,index-entry-link-end,index-entry-link-start,index-entry-page-number,index-entry-span,index-entry-tab-stop,index-entry-text,index-title-template,linenumbering-configuration,list-level-style-number,list-level-style-bullet,outline-level-style,span".split(","),list:["list-item"]},n=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","color","color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
277
"background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-weight","font-weight"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-style","font-style"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-size","font-size"]],x=[[o,"repeat","background-repeat"]],w=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
277 278
"text-align","text-align"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-left","padding-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-right","padding-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-top","padding-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-bottom","padding-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-left","border-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
278 279
"border-right","border-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-top","border-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-bottom","border-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-left","margin-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-right","margin-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-top","margin-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
279 280
"margin-bottom","margin-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border","border"]],D=[["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","fill-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","fill","background"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","min-height","min-height"],["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","stroke","border"],["urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
280
"stroke-color","border-color"]],p=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-left","border-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-right","border-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-top","border-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-bottom","border-bottom"]];
281
this.namespaces=m;this.namespaceResolver=function(a){return m[a]||null};this.namespaceResolver.lookupNamespaceURI=this.namespaceResolver;this.style2css=function(a,c,b){for(var e,f,i,h,j;a.cssRules.length;)a.deleteRule(a.cssRules.length-1);e=null;if(c)e=c.ownerDocument;if(b)e=b.ownerDocument;if(e){for(f in m)if(m.hasOwnProperty(f)){h="@namespace "+f+" url("+m[f]+");";try{a.insertRule(h,a.cssRules.length)}catch(k){}}c=g(e,c);e=g(e,b);for(j in u)if(u.hasOwnProperty(j))for(i in b={},l(c[j],b),l(e[j],
282
b),b)b.hasOwnProperty(i)&&d(a,j,i,b[i])}}};
281
"stroke-color","border-color"]],s=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-left","border-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-right","border-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-top","border-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-bottom","border-bottom"]];
282
this.namespaces=k;this.namespaceResolver=function(a){return k[a]||null};this.namespaceResolver.lookupNamespaceURI=this.namespaceResolver;this.style2css=function(a,c,b){for(var d,f,h,n,i;a.cssRules.length;)a.deleteRule(a.cssRules.length-1);d=null;if(c)d=c.ownerDocument;if(b)d=b.ownerDocument;if(d){for(f in k)if(k.hasOwnProperty(f)){n="@namespace "+f+" url("+k[f]+");";try{a.insertRule(n,a.cssRules.length)}catch(l){}}c=g(d,c);d=g(d,b);for(i in v)if(v.hasOwnProperty(i))for(h in b={},j(c[i],b),j(d[i],
283
b),b)b.hasOwnProperty(h)&&e(a,i,h,b[h])}}};
283 284
// Input 24
284 285
runtime.loadClass("core.Base64");runtime.loadClass("core.Zip");runtime.loadClass("xmldom.LSSerializer");runtime.loadClass("odf.StyleInfo");runtime.loadClass("odf.Style2CSS");
285
odf.OdfContainer=function(){function g(a,b,c){for(a=a?a.firstChild:null;a;){if(a.localName===c&&a.namespaceURI===b)return a;a=a.nextSibling}return null}function n(a){var b,c=j.length;for(b=0;b<c;b+=1)if(a.namespaceURI===d&&a.localName===j[b])return b;return-1}function e(a,c){var d=a.automaticStyles,e;c&&(e=new b.UsedKeysList(c));this.acceptNode=function(a){if(a.namespaceURI==="http://www.w3.org/1999/xhtml")return 3;else if(e&&a.parentNode===d&&a.nodeType===1)return e.uses(a)?1:2;return 1}}function l(a,
286
b){if(b){var c=n(b),d,e=a.firstChild;if(c!==-1){for(;e;){d=n(e);if(d!==-1&&d>c)break;e=e.nextSibling}a.insertBefore(b,e)}}}function a(a){this.OdfContainer=a}function c(a,b,c){var d=this,e;this.size=0;this.type=null;this.name=a;this.container=b;this.onchange=this.onreadystatechange=this.document=this.url=null;this.EMPTY=0;this.LOADING=1;this.DONE=2;this.state=this.EMPTY;this.load=function(){c.load(a,function(a,b){e=b;d.url=null;if(e){var c=0;for(d.url=e[1]===80&&e[2]===78&&e[3]===71?"data:image/png;base64,":
287
e[0]===255&&e[1]===216&&e[2]===255?"data:image/jpeg;base64,":e[0]===71&&e[1]===73&&e[2]===70?"data:image/gif;base64,":"data:;base64,";c<e.length;)d.url+=k.convertUTF8ArrayToBase64(e.slice(c,Math.min(c+45E3,e.length))),c+=45E3}if(d.onchange)d.onchange(d);if(d.onstatereadychange)d.onstatereadychange(d)})};this.abort=function(){}}function h(){this.length=0;this.item=function(){}}var b=new odf.StyleInfo,f=new odf.Style2CSS,d="urn:oasis:names:tc:opendocument:xmlns:office:1.0",j="meta,settings,scripts,font-face-decls,styles,automatic-styles,master-styles,body".split(","),
288
k=new core.Base64;a.prototype=new function(){};a.prototype.constructor=a;a.namespaceURI=d;a.localName="document";c.prototype.load=function(){};c.prototype.getUrl=function(){return this.data?"data:;base64,"+k.toBase64(this.data):null};odf.OdfContainer=function m(b,j){function i(a){for(var b=a.firstChild,c;b;)c=b.nextSibling,b.nodeType===1?i(b):b.nodeType===7&&a.removeChild(b),b=c}function k(a){var b=x.rootElement.ownerDocument,c;i(a.documentElement);try{c=b.importNode(a.documentElement,true)}catch(d){}return c}
289
function n(a){x.state=a;if(x.onchange)x.onchange(x);if(x.onstatereadychange)x.onstatereadychange(x)}function D(a){var a=k(a),b=x.rootElement;!a||a.localName!=="document-styles"||a.namespaceURI!==d?n(m.INVALID):(b.fontFaceDecls=g(a,d,"font-face-decls"),l(b,b.fontFaceDecls),b.styles=g(a,d,"styles"),l(b,b.styles),b.automaticStyles=g(a,d,"automatic-styles"),l(b,b.automaticStyles),b.masterStyles=g(a,d,"master-styles"),l(b,b.masterStyles))}function p(a){var a=k(a),b,c,e;if(!a||a.localName!=="document-content"||
290
a.namespaceURI!==d)n(m.INVALID);else{b=x.rootElement;c=g(a,d,"font-face-decls");if(b.fontFaceDecls&&c)for(e=c.firstChild;e;)b.fontFaceDecls.appendChild(e),e=c.firstChild;else if(c)b.fontFaceDecls=c,l(b,c);c=g(a,d,"automatic-styles");if(b.automaticStyles&&c)for(e=c.firstChild;e;)b.automaticStyles.appendChild(e),e=c.firstChild;else if(c)b.automaticStyles=c,l(b,c);b.body=g(a,d,"body");l(b,b.body)}}function B(a){var a=k(a),b;if(a&&!(a.localName!=="document-meta"||a.namespaceURI!==d))b=x.rootElement,b.meta=
291
g(a,d,"meta"),l(b,b.meta)}function E(a,b){I.load(a,function(a,c){if(a)b(a,null);else{var d=runtime.byteArrayToString(c,"utf8"),d=(new DOMParser).parseFromString(d,"text/xml");b(null,d)}})}function C(){E("styles.xml",function(a,b){D(b);x.state!==m.INVALID&&E("content.xml",function(a,b){p(b);x.state!==m.INVALID&&E("meta.xml",function(a,b){B(b);x.state!==m.INVALID&&E("settings.xml",function(a,b){if(b){var c=k(b),e;if(c&&!(c.localName!=="document-settings"||c.namespaceURI!==d))e=x.rootElement,e.settings=
292
g(c,d,"settings"),l(e,e.settings)}x.state!==m.INVALID&&n(m.DONE)})})})})}function z(a,b){var c="",d;for(d in b)b.hasOwnProperty(d)&&(c+=" xmlns:"+d+'="'+b[d]+'"');return'<?xml version="1.0" encoding="UTF-8"?><office:'+a+" "+c+' office:version="1.2">'}function G(){var a=f.namespaces,b=new xmldom.LSSerializer,c=z("document-meta",a);b.filter=new e(x.rootElement);c+=b.writeToString(x.rootElement.meta,a);c+="</office:document-meta>";return c}function o(){var a=f.namespaces,b=new xmldom.LSSerializer,c=
293
z("document-settings",a);b.filter=new e(x.rootElement);c+=b.writeToString(x.rootElement.settings,a);c+="</office:document-settings>";return c}function r(){var a=f.namespaces,b=new xmldom.LSSerializer,c=z("document-styles",a);b.filter=new e(x.rootElement,x.rootElement.masterStyles);c+=b.writeToString(x.rootElement.fontFaceDecls,a);c+=b.writeToString(x.rootElement.styles,a);c+=b.writeToString(x.rootElement.automaticStyles,a);c+=b.writeToString(x.rootElement.masterStyles,a);c+="</office:document-styles>";
294
return c}function w(){var a=f.namespaces,b=new xmldom.LSSerializer,c=z("document-content",a);b.filter=new e(x.rootElement,x.rootElement.body);c+=b.writeToString(x.rootElement.automaticStyles,a);c+=b.writeToString(x.rootElement.body,a);c+="</office:document-content>";return c}function y(a,b){runtime.loadXML(a,function(a,c){if(a)b(a);else{var e=k(c);!e||e.localName!=="document"||e.namespaceURI!==d?n(m.INVALID):(x.rootElement=e,e.fontFaceDecls=g(e,d,"font-face-decls"),e.styles=g(e,d,"styles"),e.automaticStyles=
295
g(e,d,"automatic-styles"),e.masterStyles=g(e,d,"master-styles"),e.body=g(e,d,"body"),e.meta=g(e,d,"meta"),n(m.DONE))}})}var x=this,I=null;this.onstatereadychange=j;this.parts=this.rootElement=this.state=this.onchange=null;this.getPart=function(a){return new c(a,x,I)};this.save=function(a){var b;b=runtime.byteArrayFromString(o(),"utf8");I.save("settings.xml",b,true,new Date);b=runtime.byteArrayFromString(G(),"utf8");I.save("meta.xml",b,true,new Date);b=runtime.byteArrayFromString(r(),"utf8");I.save("styles.xml",
296
b,true,new Date);b=runtime.byteArrayFromString(w(),"utf8");I.save("content.xml",b,true,new Date);I.write(function(b){a(b)})};this.state=m.LOADING;this.rootElement=function(a){var b=document.createElementNS(a.namespaceURI,a.localName),c,a=new a;for(c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}(a);this.parts=new h(this);I=new core.Zip(b,function(a,c){I=c;a?y(b,function(b){if(a)I.error=a+"\n"+b,n(m.INVALID)}):C()})};odf.OdfContainer.EMPTY=0;odf.OdfContainer.LOADING=1;odf.OdfContainer.DONE=2;odf.OdfContainer.INVALID=
286
odf.OdfContainer=function(){function g(a,b,c){for(a=a?a.firstChild:null;a;){if(a.localName===c&&a.namespaceURI===b)return a;a=a.nextSibling}return null}function m(a){var b,c=i.length;for(b=0;b<c;b+=1)if(a.namespaceURI===e&&a.localName===i[b])return b;return-1}function f(a,c){var d=a.automaticStyles,e;c&&(e=new b.UsedKeysList(c));this.acceptNode=function(a){if(a.namespaceURI==="http://www.w3.org/1999/xhtml")return 3;else if(e&&a.parentNode===d&&a.nodeType===1)return e.uses(a)?1:2;return 1}}function j(a,
287
b){if(b){var c=m(b),d,e=a.firstChild;if(c!==-1){for(;e;){d=m(e);if(d!==-1&&d>c)break;e=e.nextSibling}a.insertBefore(b,e)}}}function a(a){this.OdfContainer=a}function d(a,b,c){var d=this,e;this.size=0;this.type=null;this.name=a;this.container=b;this.onchange=this.onreadystatechange=this.document=this.url=null;this.EMPTY=0;this.LOADING=1;this.DONE=2;this.state=this.EMPTY;this.load=function(){c.load(a,function(a,b){e=b;d.url=null;if(e){var c=0;for(d.url=e[1]===80&&e[2]===78&&e[3]===71?"data:image/png;base64,":
288
e[0]===255&&e[1]===216&&e[2]===255?"data:image/jpeg;base64,":e[0]===71&&e[1]===73&&e[2]===70?"data:image/gif;base64,":"data:;base64,";c<e.length;)d.url+=o.convertUTF8ArrayToBase64(e.slice(c,Math.min(c+45E3,e.length))),c+=45E3}if(d.onchange)d.onchange(d);if(d.onstatereadychange)d.onstatereadychange(d)})};this.abort=function(){}}function h(){this.length=0;this.item=function(){}}var b=new odf.StyleInfo,c=new odf.Style2CSS,e="urn:oasis:names:tc:opendocument:xmlns:office:1.0",i="meta,settings,scripts,font-face-decls,styles,automatic-styles,master-styles,body".split(","),
289
o=new core.Base64;a.prototype=new function(){};a.prototype.constructor=a;a.namespaceURI=e;a.localName="document";d.prototype.load=function(){};d.prototype.getUrl=function(){return this.data?"data:;base64,"+o.toBase64(this.data):null};odf.OdfContainer=function k(b,i){function n(a){for(var b=a.firstChild,c;b;)c=b.nextSibling,b.nodeType===1?n(b):b.nodeType===7&&a.removeChild(b),b=c}function m(a){var b=B.rootElement.ownerDocument,c;n(a.documentElement);try{c=b.importNode(a.documentElement,true)}catch(d){}return c}
290
function o(a){B.state=a;if(B.onchange)B.onchange(B);if(B.onstatereadychange)B.onstatereadychange(B)}function D(a){var a=m(a),b=B.rootElement;!a||a.localName!=="document-styles"||a.namespaceURI!==e?o(k.INVALID):(b.fontFaceDecls=g(a,e,"font-face-decls"),j(b,b.fontFaceDecls),b.styles=g(a,e,"styles"),j(b,b.styles),b.automaticStyles=g(a,e,"automatic-styles"),j(b,b.automaticStyles),b.masterStyles=g(a,e,"master-styles"),j(b,b.masterStyles))}function s(a){var a=m(a),b,c,d;if(!a||a.localName!=="document-content"||
291
a.namespaceURI!==e)o(k.INVALID);else{b=B.rootElement;c=g(a,e,"font-face-decls");if(b.fontFaceDecls&&c)for(d=c.firstChild;d;)b.fontFaceDecls.appendChild(d),d=c.firstChild;else if(c)b.fontFaceDecls=c,j(b,c);c=g(a,e,"automatic-styles");if(b.automaticStyles&&c)for(d=c.firstChild;d;)b.automaticStyles.appendChild(d),d=c.firstChild;else if(c)b.automaticStyles=c,j(b,c);b.body=g(a,e,"body");j(b,b.body)}}function u(a){var a=m(a),b;if(a&&!(a.localName!=="document-meta"||a.namespaceURI!==e))b=B.rootElement,b.meta=
292
g(a,e,"meta"),j(b,b.meta)}function E(a,b){I.load(a,function(a,c){if(a)b(a,null);else{var d=runtime.byteArrayToString(c,"utf8"),d=(new DOMParser).parseFromString(d,"text/xml");b(null,d)}})}function z(){E("styles.xml",function(a,b){D(b);B.state!==k.INVALID&&E("content.xml",function(a,b){s(b);B.state!==k.INVALID&&E("meta.xml",function(a,b){u(b);B.state!==k.INVALID&&E("settings.xml",function(a,b){if(b){var c=m(b),d;if(c&&!(c.localName!=="document-settings"||c.namespaceURI!==e))d=B.rootElement,d.settings=
293
g(c,e,"settings"),j(d,d.settings)}B.state!==k.INVALID&&o(k.DONE)})})})})}function A(a,b){var c="",d;for(d in b)b.hasOwnProperty(d)&&(c+=" xmlns:"+d+'="'+b[d]+'"');return'<?xml version="1.0" encoding="UTF-8"?><office:'+a+" "+c+' office:version="1.2">'}function F(){var a=c.namespaces,b=new xmldom.LSSerializer,d=A("document-meta",a);b.filter=new f(B.rootElement);d+=b.writeToString(B.rootElement.meta,a);d+="</office:document-meta>";return d}function p(){var a=c.namespaces,b=new xmldom.LSSerializer,d=
294
A("document-settings",a);b.filter=new f(B.rootElement);d+=b.writeToString(B.rootElement.settings,a);d+="</office:document-settings>";return d}function r(){var a=c.namespaces,b=new xmldom.LSSerializer,d=A("document-styles",a);b.filter=new f(B.rootElement,B.rootElement.masterStyles);d+=b.writeToString(B.rootElement.fontFaceDecls,a);d+=b.writeToString(B.rootElement.styles,a);d+=b.writeToString(B.rootElement.automaticStyles,a);d+=b.writeToString(B.rootElement.masterStyles,a);d+="</office:document-styles>";
295
return d}function t(){var a=c.namespaces,b=new xmldom.LSSerializer,d=A("document-content",a);b.filter=new f(B.rootElement,B.rootElement.body);d+=b.writeToString(B.rootElement.automaticStyles,a);d+=b.writeToString(B.rootElement.body,a);d+="</office:document-content>";return d}function y(a,b){runtime.loadXML(a,function(a,c){if(a)b(a);else{var d=m(c);!d||d.localName!=="document"||d.namespaceURI!==e?o(k.INVALID):(B.rootElement=d,d.fontFaceDecls=g(d,e,"font-face-decls"),d.styles=g(d,e,"styles"),d.automaticStyles=
296
g(d,e,"automatic-styles"),d.masterStyles=g(d,e,"master-styles"),d.body=g(d,e,"body"),d.meta=g(d,e,"meta"),o(k.DONE))}})}var B=this,I=null;this.onstatereadychange=i;this.parts=this.rootElement=this.state=this.onchange=null;this.getPart=function(a){return new d(a,B,I)};this.save=function(a){var b;b=runtime.byteArrayFromString(p(),"utf8");I.save("settings.xml",b,true,new Date);b=runtime.byteArrayFromString(F(),"utf8");I.save("meta.xml",b,true,new Date);b=runtime.byteArrayFromString(r(),"utf8");I.save("styles.xml",
297
b,true,new Date);b=runtime.byteArrayFromString(t(),"utf8");I.save("content.xml",b,true,new Date);I.write(function(b){a(b)})};this.state=k.LOADING;this.rootElement=function(a){var b=document.createElementNS(a.namespaceURI,a.localName),c,a=new a;for(c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}(a);this.parts=new h(this);I=new core.Zip(b,function(a,c){I=c;a?y(b,function(b){if(a)I.error=a+"\n"+b,o(k.INVALID)}):z()})};odf.OdfContainer.EMPTY=0;odf.OdfContainer.LOADING=1;odf.OdfContainer.DONE=2;odf.OdfContainer.INVALID=
297 298
3;odf.OdfContainer.SAVING=4;odf.OdfContainer.MODIFIED=5;odf.OdfContainer.getContainer=function(a){return new odf.OdfContainer(a,null)};return odf.OdfContainer}();
298 299
// Input 25
299
odf.Formatting=function(){function g(e){function g(a,e){for(var b=a&&a.firstChild;b&&e;)b=b.nextSibling,e-=1;return b}var a=g(e.startContainer,e.startOffset);g(e.endContainer,e.endOffset);this.next=function(){return a===null?a:null}}var n=new odf.StyleInfo;this.setOdfContainer=function(){};this.isCompletelyBold=function(){return false};this.getAlignment=function(e){this.getParagraphStyles(e)};this.getParagraphStyles=function(e){var l,a,c,h=[];for(l=0;l<e.length;l+=0){a=void 0;c=[];for(a=(new g(e[l])).next();a;)n.canElementHaveStyle("paragraph",
300
a)&&c.push(a);for(a=0;a<c.length;a+=1)h.indexOf(c[a])===-1&&h.push(c[a])}return h};this.getTextStyles=function(){return[]}};
300
odf.Formatting=function(){function g(f){function g(a,f){for(var b=a&&a.firstChild;b&&f;)b=b.nextSibling,f-=1;return b}var a=g(f.startContainer,f.startOffset);g(f.endContainer,f.endOffset);this.next=function(){return a===null?a:null}}var m=new odf.StyleInfo;this.setOdfContainer=function(){};this.isCompletelyBold=function(){return false};this.getAlignment=function(f){this.getParagraphStyles(f)};this.getParagraphStyles=function(f){var j,a,d,h=[];for(j=0;j<f.length;j+=0){a=void 0;d=[];for(a=(new g(f[j])).next();a;)m.canElementHaveStyle("paragraph",
301
a)&&d.push(a);for(a=0;a<d.length;a+=1)h.indexOf(d[a])===-1&&h.push(d[a])}return h};this.getTextStyles=function(){return[]}};
301 302
// Input 26
302 303
runtime.loadClass("odf.OdfContainer");runtime.loadClass("odf.Formatting");
303
odf.OdfCanvas=function(){function g(a,b,c){a.addEventListener?a.addEventListener(b,c,false):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}function n(a){function b(a,c){for(;c;){if(c===a)return true;c=c.parentNode}return false}function c(){var f=[],g=runtime.getWindow().getSelection(),h,j;for(h=0;h<g.rangeCount;h+=1)j=g.getRangeAt(h),j!==null&&b(a,j.startContainer)&&b(a,j.endContainer)&&f.push(j);if(f.length===d.length){for(g=0;g<f.length;g+=1)if(h=f[g],j=d[g],h=h===j?false:h===null||j===null?
304
true:h.startContainer!==j.startContainer||h.startOffset!==j.startOffset||h.endContainer!==j.endContainer||h.endOffset!==j.endOffset,h)break;if(g===f.length)return}d=f;var g=Array(f.length),k,l=a.ownerDocument;for(h=0;h<f.length;h+=1)j=f[h],k=l.createRange(),k.setStart(j.startContainer,j.startOffset),k.setEnd(j.endContainer,j.endOffset),g[h]=k;d=g;g=e.length;for(f=0;f<g;f+=1)e[f](a,d)}var d=[],e=[];this.addListener=function(a,b){var c,d=e.length;for(c=0;c<d;c+=1)if(e[c]===b)return;e.push(b)};g(a,"mouseup",
305
c);g(a,"keyup",c);g(a,"keydown",c)}function e(a){for(a=a.firstChild;a;){if(a.namespaceURI===d&&a.localName==="binary-data")return"data:image/png;base64,"+a.textContent;a=a.nextSibling}return""}function l(a,b,c,d){function f(b){b='draw|image[styleid="'+a+'"] {'+("background-image: url("+b+");")+"}";d.insertRule(b,d.cssRules.length)}c.setAttribute("styleid",a);var g=c.getAttributeNS(s,"href"),h;if(g)try{b.getPartUrl?(g=b.getPartUrl(g),f(g)):(h=b.getPart(g),h.onchange=function(a){f(a.url)},h.load())}catch(j){runtime.log("slight problem: "+
306
j)}else g=e(c),f(g)}function a(a){var b=a.getElementsByTagName("style"),c=a.getElementsByTagName("head")[0],d="",e,b=b&&b.length>0?b[0].cloneNode(false):a.createElement("style");for(e in h)h.hasOwnProperty(e)&&e&&(d+="@namespace "+e+" url("+h[e]+");\n");b.appendChild(a.createTextNode(d));c.appendChild(b);return b}var c=new odf.Style2CSS,h=c.namespaces,b=h.draw,f=h.fo,d=h.office,j=h.svg,k=h.text,s=h.xlink,m=runtime.getWindow(),u={},q;odf.OdfCanvas=function(d){function e(a){function g(){for(var e=d;e.firstChild;)e.removeChild(e.firstChild);
307
d.style.display="inline-block";d.style.background="white";e=a.rootElement;d.ownerDocument.importNode(e,true);B.setOdfContainer(a);var h=C;(new odf.Style2CSS).style2css(h.sheet,e.styles,e.automaticStyles);var h=z.sheet,m=a,n=e.body,p,r,q;r=[];for(p=n.firstChild;p&&p!==n;)if(p.namespaceURI===b&&(r[r.length]=p),p.firstChild)p=p.firstChild;else{for(;p&&p!==n&&!p.nextSibling;)p=p.parentNode;if(p&&p.nextSibling)p=p.nextSibling}for(q=0;q<r.length;q+=1){p=r[q];var s="frame"+String(q),t=h;p.setAttribute("styleid",
308
s);var v=void 0,D=p.getAttributeNS(k,"anchor-type"),F=p.getAttributeNS(j,"x"),A=p.getAttributeNS(j,"y"),E=p.getAttributeNS(j,"width"),G=p.getAttributeNS(j,"height"),H=p.getAttributeNS(f,"min-height"),M=p.getAttributeNS(f,"min-width");if(D==="as-char")v="display: inline-block;";else if(D||F||A)v="position: absolute;";else if(E||G||H||M)v="display: block;";F&&(v+="left: "+F+";");A&&(v+="top: "+A+";");E&&(v+="width: "+E+";");G&&(v+="height: "+G+";");H&&(v+="min-height: "+H+";");M&&(v+="min-width: "+
309
M+";");v&&(v="draw|"+p.localName+'[styleid="'+s+'"] {'+v+"}",t.insertRule(v,t.cssRules.length))}r=n.getElementsByTagNameNS(b,"image");for(q=0;q<r.length;q+=1)p=r.item(q),l("image"+String(q),m,p,h);n=n.ownerDocument.evaluate(".//*[*[@text:anchor-type='paragraph']]",n,c.namespaceResolver,XPathResult.UNORDERED_NODE_ITERATOR_TYPE,null);m=[];for(q=n.iterateNext();q!==null;)q.nodeType===1&&m.push(q),q=n.iterateNext();for(q=0;q<m.length;q+=1)n=m[q],n.setAttributeNS&&n.setAttributeNS("urn:webodf","containsparagraphanchor",
310
true);h.insertRule("office|presentation draw|page:nth-child(1n) { display:block; }",h.cssRules.length);for(h=d;h.firstChild;)h.removeChild(h.firstChild);d.appendChild(e);if(u.hasOwnProperty("statereadychange")){e=u.statereadychange;for(h=0;h<e.length;h+=1)e[h](void 0)}}if(p===a)p.state===odf.OdfContainer.DONE?g():p.onchange=g}function h(){if(q){for(var a=q.ownerDocument.createDocumentFragment();q.firstChild;)a.insertBefore(q.firstChild,null);q.parentNode.replaceChild(a,q)}}var s=d.ownerDocument,p,
311
B=new odf.Formatting,E=new n(d),C=a(s),z=a(s),G=false;this.odfContainer=function(){return p};this.load=this.load=function(a){d.innerHTML="loading "+a;p=new odf.OdfContainer(a,function(a){p=a;e(a)});p.onstatereadychange=e};this.save=function(a){h();p.save(a)};this.setEditable=function(a){(G=a)||h()};this.addListener=function(a,b){if(a==="selectionchange")E.addListener(a,b);else{var c=u[a];c===void 0&&(c=u[a]=[]);c.push(b)}};this.getFormatting=function(){return B};g(d,"click",function(a){for(var a=
312
a||m.event,b=a.target,c=m.getSelection(),d=c.getRangeAt(0),e=d&&d.startContainer,f=d&&d.startOffset,g=d&&d.endContainer,i=d&&d.endOffset;b&&!((b.localName==="p"||b.localName==="h")&&b.namespaceURI===k);)b=b.parentNode;if(G&&b&&b.parentNode!==q)q?q.parentNode&&h():(q=b.ownerDocument.createElement("p"),q.style||(q=b.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml","p")),q.style.margin="0px",q.style.padding="0px",q.style.border="0px",q.setAttribute("contenteditable",true)),b.parentNode.replaceChild(q,
313
b),q.appendChild(b),q.focus(),d&&(c.removeAllRanges(),d=b.ownerDocument.createRange(),d.setStart(e,f),d.setEnd(g,i),c.addRange(d)),a.preventDefault?(a.preventDefault(),a.stopPropagation()):(a.returnValue=false,a.cancelBubble=true)})};return odf.OdfCanvas}();
304
odf.OdfCanvas=function(){function g(a,b,c){a.addEventListener?a.addEventListener(b,c,false):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}function m(a){function b(a,c){for(;c;){if(c===a)return true;c=c.parentNode}return false}function c(){var f=[],g=runtime.getWindow().getSelection(),h,i;for(h=0;h<g.rangeCount;h+=1)i=g.getRangeAt(h),i!==null&&b(a,i.startContainer)&&b(a,i.endContainer)&&f.push(i);if(f.length===d.length){for(g=0;g<f.length;g+=1)if(h=f[g],i=d[g],h=h===i?false:h===null||i===null?
305
true:h.startContainer!==i.startContainer||h.startOffset!==i.startOffset||h.endContainer!==i.endContainer||h.endOffset!==i.endOffset,h)break;if(g===f.length)return}d=f;var g=Array(f.length),j,k=a.ownerDocument;for(h=0;h<f.length;h+=1)i=f[h],j=k.createRange(),j.setStart(i.startContainer,i.startOffset),j.setEnd(i.endContainer,i.endOffset),g[h]=j;d=g;g=e.length;for(f=0;f<g;f+=1)e[f](a,d)}var d=[],e=[];this.addListener=function(a,b){var c,d=e.length;for(c=0;c<d;c+=1)if(e[c]===b)return;e.push(b)};g(a,"mouseup",
306
c);g(a,"keyup",c);g(a,"keydown",c)}function f(a){for(a=a.firstChild;a;){if(a.namespaceURI===e&&a.localName==="binary-data")return"data:image/png;base64,"+a.textContent;a=a.nextSibling}return""}function j(a,b,c,d){function e(b){b='draw|image[styleid="'+a+'"] {'+("background-image: url("+b+");")+"}";d.insertRule(b,d.cssRules.length)}c.setAttribute("styleid",a);var g=c.getAttributeNS(q,"href"),h;if(g)try{b.getPartUrl?(g=b.getPartUrl(g),e(g)):(h=b.getPart(g),h.onchange=function(a){e(a.url)},h.load())}catch(i){runtime.log("slight problem: "+
307
i)}else g=f(c),e(g)}function a(a){var b=a.getElementsByTagName("style"),c=a.getElementsByTagName("head")[0],d="",e,b=b&&b.length>0?b[0].cloneNode(false):a.createElement("style");for(e in h)h.hasOwnProperty(e)&&e&&(d+="@namespace "+e+" url("+h[e]+");\n");b.appendChild(a.createTextNode(d));c.appendChild(b);return b}var d=new odf.Style2CSS,h=d.namespaces,b=h.draw,c=h.fo,e=h.office,i=h.svg,o=h.text,q=h.xlink,k=runtime.getWindow(),v={},l;odf.OdfCanvas=function(e){function f(a){function g(){for(var f=e;f.firstChild;)f.removeChild(f.firstChild);
308
e.style.display="inline-block";e.style.background="white";f=a.rootElement;e.ownerDocument.importNode(f,true);u.setOdfContainer(a);var h=z;(new odf.Style2CSS).style2css(h.sheet,f.styles,f.automaticStyles);var h=A.sheet,k=a,m=f.body,l,q,r;q=[];for(l=m.firstChild;l&&l!==m;)if(l.namespaceURI===b&&(q[q.length]=l),l.firstChild)l=l.firstChild;else{for(;l&&l!==m&&!l.nextSibling;)l=l.parentNode;if(l&&l.nextSibling)l=l.nextSibling}for(r=0;r<q.length;r+=1){l=q[r];var s="frame"+String(r),x=h;l.setAttribute("styleid",
309
s);var w=void 0,E=l.getAttributeNS(o,"anchor-type"),D=l.getAttributeNS(i,"x"),C=l.getAttributeNS(i,"y"),F=l.getAttributeNS(i,"width"),K=l.getAttributeNS(i,"height"),H=l.getAttributeNS(c,"min-height"),M=l.getAttributeNS(c,"min-width");if(E==="as-char")w="display: inline-block;";else if(E||D||C)w="position: absolute;";else if(F||K||H||M)w="display: block;";D&&(w+="left: "+D+";");C&&(w+="top: "+C+";");F&&(w+="width: "+F+";");K&&(w+="height: "+K+";");H&&(w+="min-height: "+H+";");M&&(w+="min-width: "+
310
M+";");w&&(w="draw|"+l.localName+'[styleid="'+s+'"] {'+w+"}",x.insertRule(w,x.cssRules.length))}q=m.getElementsByTagNameNS(b,"image");for(r=0;r<q.length;r+=1)l=q.item(r),j("image"+String(r),k,l,h);m=m.ownerDocument.evaluate(".//*[*[@text:anchor-type='paragraph']]",m,d.namespaceResolver,XPathResult.UNORDERED_NODE_ITERATOR_TYPE,null);k=[];for(r=m.iterateNext();r!==null;)r.nodeType===1&&k.push(r),r=m.iterateNext();for(r=0;r<k.length;r+=1)m=k[r],m.setAttributeNS&&m.setAttributeNS("urn:webodf","containsparagraphanchor",
311
true);h.insertRule("office|presentation draw|page:nth-child(1n) { display:block; }",h.cssRules.length);for(h=e;h.firstChild;)h.removeChild(h.firstChild);e.appendChild(f);if(v.hasOwnProperty("statereadychange")){f=v.statereadychange;for(h=0;h<f.length;h+=1)f[h](void 0)}}if(s===a)s.state===odf.OdfContainer.DONE?g():s.onchange=g}function h(){if(l){for(var a=l.ownerDocument.createDocumentFragment();l.firstChild;)a.insertBefore(l.firstChild,null);l.parentNode.replaceChild(a,l)}}var q=e.ownerDocument,s,
312
u=new odf.Formatting,E=new m(e),z=a(q),A=a(q),F=false;this.odfContainer=function(){return s};this.load=this.load=function(a){e.innerHTML="loading "+a;s=new odf.OdfContainer(a,function(a){s=a;f(a)});s.onstatereadychange=f};this.save=function(a){h();s.save(a)};this.setEditable=function(a){(F=a)||h()};this.addListener=function(a,b){if(a==="selectionchange")E.addListener(a,b);else{var c=v[a];c===void 0&&(c=v[a]=[]);c.push(b)}};this.getFormatting=function(){return u};g(e,"click",function(a){for(var a=
313
a||k.event,b=a.target,c=k.getSelection(),d=c.getRangeAt(0),e=d&&d.startContainer,f=d&&d.startOffset,g=d&&d.endContainer,i=d&&d.endOffset;b&&!((b.localName==="p"||b.localName==="h")&&b.namespaceURI===o);)b=b.parentNode;if(F&&b&&b.parentNode!==l)l?l.parentNode&&h():(l=b.ownerDocument.createElement("p"),l.style||(l=b.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml","p")),l.style.margin="0px",l.style.padding="0px",l.style.border="0px",l.setAttribute("contenteditable",true)),b.parentNode.replaceChild(l,
314
b),l.appendChild(b),l.focus(),d&&(c.removeAllRanges(),d=b.ownerDocument.createRange(),d.setStart(e,f),d.setEnd(g,i),c.addRange(d)),a.preventDefault?(a.preventDefault(),a.stopPropagation()):(a.returnValue=false,a.cancelBubble=true)})};return odf.OdfCanvas}();

Also available in: Unified diff