// This program was compiled from OCaml by js_of_ocaml 1.0 function caml_raise_with_arg (tag, arg) { throw [0, tag, arg]; } function caml_raise_with_string (tag, msg) { caml_raise_with_arg (tag, new MlWrappedString (msg)); } function caml_invalid_argument (msg) { caml_raise_with_string(caml_global_data[4], msg); } function caml_array_bound_error () { caml_invalid_argument("index out of bounds"); } function caml_str_repeat(n, s) { if (!n) { return ""; } if (n & 1) { return caml_str_repeat(n - 1, s) + s; } var r = caml_str_repeat(n >> 1, s); return r + r; } function MlString(param) { if (param != null) { this.bytes = this.fullBytes = param; this.last = this.len = param.length; } } MlString.prototype = { string:null, bytes:null, fullBytes:null, array:null, len:null, last:0, toJsString:function() { return this.string = decodeURIComponent (escape(this.getFullBytes())); }, toBytes:function() { if (this.string != null) var b = unescape (encodeURIComponent (this.string)); else { var b = "", a = this.array, l = a.length; for (var i = 0; i < l; i ++) b += String.fromCharCode (a[i]); } this.bytes = this.fullBytes = b; this.last = this.len = b.length; return b; }, getBytes:function() { var b = this.bytes; if (b == null) b = this.toBytes(); return b; }, getFullBytes:function() { var b = this.fullBytes; if (b !== null) return b; b = this.bytes; if (b == null) b = this.toBytes (); if (this.last < this.len) { this.bytes = (b += caml_str_repeat(this.len - this.last, '\0')); this.last = this.len; } this.fullBytes = b; return b; }, toArray:function() { var b = this.bytes; if (b == null) b = this.toBytes (); var a = [], l = this.last; for (var i = 0; i < l; i++) a[i] = b.charCodeAt(i); for (l = this.len; i < l; i++) a[i] = 0; this.string = this.bytes = this.fullBytes = null; this.last = this.len; this.array = a; return a; }, getArray:function() { var a = this.array; if (!a) a = this.toArray(); return a; }, getLen:function() { var len = this.len; if (len !== null) return len; this.toBytes(); return this.len; }, toString:function() { var s = this.string; return s?s:this.toJsString(); }, valueOf:function() { var s = this.string; return s?s:this.toJsString(); }, blitToArray:function(i1, a2, i2, l) { var a1 = this.array; if (a1) for (var i = 0; i < l; i++) a2 [i2 + i] = a1 [i1 + i]; else { var b = this.bytes; if (b == null) b = this.toBytes(); var l1 = this.last - i1; if (l <= l1) for (var i = 0; i < l; i++) a2 [i2 + i] = b.charCodeAt(i1 + i); else { for (var i = 0; i < l1; i++) a2 [i2 + i] = b.charCodeAt(i1 + i); for (; i < l; i++) a2 [i2 + i] = 0; } } }, get:function (i) { var a = this.array; if (a) return a[i]; var b = this.bytes; if (b == null) b = this.toBytes(); return (i<this.last)?b.charCodeAt(i):0; }, safeGet:function (i) { if (!this.len) this.toBytes(); if ((i < 0) || (i >= this.len)) caml_array_bound_error (); return this.get(i); }, set:function (i, c) { var a = this.array; if (!a) { if (this.last == i) { this.bytes += String.fromCharCode (c & 0xff); this.last ++; return 0; } a = this.toArray(); } else if (this.bytes != null) { this.bytes = this.fullBytes = this.string = null; } a[i] = c & 0xff; return 0; }, safeSet:function (i, c) { if (this.len == null) this.toBytes (); if ((i < 0) || (i >= this.len)) caml_array_bound_error (); this.set(i, c); }, fill:function (ofs, len, c) { if (ofs >= this.last && this.last && c == 0) return; var a = this.array; if (!a) a = this.toArray(); else if (this.bytes != null) { this.bytes = this.fullBytes = this.string = null; } var l = ofs + len; for (var i = ofs; i < l; i++) a[i] = c; }, compare:function (s2) { if (this.string != null && s2.string != null) { if (this.string < s2.string) return -1; if (this.string > s2.string) return 1; return 0; } var b1 = this.getFullBytes (); var b2 = s2.getFullBytes (); if (b1 < b2) return -1; if (b1 > b2) return 1; return 0; }, equal:function (s2) { if (this.string != null && s2.string != null) return this.string == s2.string; return this.getFullBytes () == s2.getFullBytes (); }, lessThan:function (s2) { if (this.string != null && s2.string != null) return this.string < s2.string; return this.getFullBytes () < s2.getFullBytes (); }, lessEqual:function (s2) { if (this.string != null && s2.string != null) return this.string <= s2.string; return this.getFullBytes () <= s2.getFullBytes (); } } function MlWrappedString (s) { this.string = s; } MlWrappedString.prototype = new MlString(); function MlMakeString (l) { this.bytes = ""; this.len = l; } MlMakeString.prototype = new MlString (); function caml_array_get (array, index) { if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error(); return array[index+1]; } function caml_array_set (array, index, newval) { if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error(); array[index+1]=newval; return 0; } function caml_blit_string(s1, i1, s2, i2, len) { if (len === 0) return; if (i2 === s2.last && s2.bytes != null) { var b = s1.bytes; if (b == null) b = s1.toBytes (); if (i1 > 0 || s1.last > len) b = b.slice(i1, i1 + len); s2.bytes += b; s2.last += b.length; return; } var a = s2.array; if (!a) a = s2.toArray(); else { s2.bytes = s2.string = null; } s1.blitToArray (i1, a, i2, len); } function caml_call_gen(f, args) { if(f.fun) return caml_call_gen(f.fun, args); var n = f.length; var d = n - args.length; if (d == 0) return f.apply(null, args); else if (d < 0) return caml_call_gen(f.apply(null, args.slice(0,n)), args.slice(n)); else return function (x){ return caml_call_gen(f, args.concat([x])); }; } function caml_classify_float (x) { if (isFinite (x)) { if (Math.abs(x) >= 2.2250738585072014e-308) return 0; if (x != 0) return 1; return 2; } return isNaN(x)?4:3; } function caml_int64_compare(x,y) { var x3 = x[3] << 16; var y3 = y[3] << 16; if (x3 > y3) return 1; if (x3 < y3) return -1; if (x[2] > y[2]) return 1; if (x[2] < y[2]) return -1; if (x[1] > y[1]) return 1; if (x[1] < y[1]) return -1; return 0; } function caml_int_compare (a, b) { if (a < b) return (-1); if (a == b) return 0; return 1; } function caml_compare_val (a, b, total) { var stack = []; for(;;) { if (!(total && a === b)) { if (a instanceof MlString) { if (b instanceof MlString) { if (a != b) { var x = a.compare(b); if (x != 0) return x; } } else return 1; } else if (a instanceof Array && a[0] === (a[0]|0)) { var ta = a[0]; if (ta === 250) { a = a[1]; continue; } else if (b instanceof Array && b[0] === (b[0]|0)) { var tb = b[0]; if (tb === 250) { b = b[1]; continue; } else if (ta != tb) { return (ta < tb)?-1:1; } else { switch (ta) { case 248: { var x = caml_int_compare(a[2], b[2]); if (x != 0) return x; break; } case 255: { var x = caml_int64_compare(a, b); if (x != 0) return x; break; } default: if (a.length != b.length) return (a.length < b.length)?-1:1; if (a.length > 1) stack.push(a, b, 1); } } } else return 1; } else if (b instanceof MlString || (b instanceof Array && b[0] === (b[0]|0))) { return -1; } else { if (a < b) return -1; if (a > b) return 1; if (total && a != b) { if (a == a) return 1; if (b == b) return -1; } } } if (stack.length == 0) return 0; var i = stack.pop(); b = stack.pop(); a = stack.pop(); if (i + 1 < a.length) stack.push(a, b, i + 1); a = a[i]; b = b[i]; } } function caml_compare (a, b) { return caml_compare_val (a, b, true); } function caml_create_string(len) { if (len < 0) caml_invalid_argument("String.create"); return new MlMakeString(len); } function caml_equal (x, y) { return +(caml_compare_val(x,y,false) == 0); } function caml_fill_string(s, i, l, c) { s.fill (i, l, c); } function caml_parse_format (fmt) { fmt = fmt.toString (); var len = fmt.length; if (len > 31) caml_invalid_argument("format_int: format too long"); var f = { justify:'+', signstyle:'-', filler:' ', alternate:false, base:0, signedconv:false, width:0, uppercase:false, sign:1, prec:-1, conv:'f' }; for (var i = 0; i < len; i++) { var c = fmt.charAt(i); switch (c) { case '-': f.justify = '-'; break; case '+': case ' ': f.signstyle = c; break; case '0': f.filler = '0'; break; case '#': f.alternate = true; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': f.width = 0; while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) { f.width = f.width * 10 + c; i++ } i--; break; case '.': f.prec = 0; i++; while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) { f.prec = f.prec * 10 + c; i++ } i--; case 'd': case 'i': f.signedconv = true; /* fallthrough */ case 'u': f.base = 10; break; case 'x': f.base = 16; break; case 'X': f.base = 16; f.uppercase = true; break; case 'o': f.base = 8; break; case 'e': case 'f': case 'g': f.signedconv = true; f.conv = c; break; case 'E': case 'F': case 'G': f.signedconv = true; f.uppercase = true; f.conv = c.toLowerCase (); break; } } return f; } function caml_finish_formatting(f, rawbuffer) { if (f.uppercase) rawbuffer = rawbuffer.toUpperCase(); var len = rawbuffer.length; if (f.signedconv && (f.sign < 0 || f.signstyle != '-')) len++; if (f.alternate) { if (f.base == 8) len += 1; if (f.base == 16) len += 2; } var buffer = ""; if (f.justify == '+' && f.filler == ' ') for (var i = len; i < f.width; i++) buffer += ' '; if (f.signedconv) { if (f.sign < 0) buffer += '-'; else if (f.signstyle != '-') buffer += f.signstyle; } if (f.alternate && f.base == 8) buffer += '0'; if (f.alternate && f.base == 16) buffer += "0x"; if (f.justify == '+' && f.filler == '0') for (var i = len; i < f.width; i++) buffer += '0'; buffer += rawbuffer; if (f.justify == '-') for (var i = len; i < f.width; i++) buffer += ' '; return new MlWrappedString (buffer); } function caml_format_float (fmt, x) { var s, f = caml_parse_format(fmt); var prec = (f.prec < 0)?6:f.prec; if (x < 0) { f.sign = -1; x = -x; } if (isNaN(x)) { s = "nan"; f.filler = ' '; } else if (!isFinite(x)) { s = "inf"; f.filler = ' '; } else switch (f.conv) { case 'e': var s = x.toExponential(prec); var i = s.length; if (s.charAt(i - 3) == 'e') s = s.slice (0, i - 1) + '0' + s.slice (i - 1); break; case 'f': s = x.toFixed(prec); break; case 'g': prec = prec?prec:1; s = x.toExponential(prec - 1); var j = s.indexOf('e'); var exp = +s.slice(j + 1); if (exp < -4 || x.toFixed(0).length > prec) { var i = j - 1; while (s.charAt(i) == '0') i--; if (s.charAt(i) == '.') i--; s = s.slice(0, i + 1) + s.slice(j); i = s.length; if (s.charAt(i - 3) == 'e') s = s.slice (0, i - 1) + '0' + s.slice (i - 1); break; } else { var p = prec; if (exp < 0) { p -= exp + 1; s = x.toFixed(p); } else while (s = x.toFixed(p), s.length > prec + 1) p--; if (p) { var i = s.length - 1; while (s.charAt(i) == '0') i--; if (s.charAt(i) == '.') i--; s = s.slice(0, i + 1); } } break; } return caml_finish_formatting(f, s); } function caml_format_int(fmt, i) { if (fmt.toString() == "%d") return new MlWrappedString(""+i); var f = caml_parse_format(fmt); if (i < 0) { if (f.signedconv) { f.sign = -1; i = -i; } else i >>>= 0; } var s = i.toString(f.base); if (f.prec >= 0) { f.filler = ' '; var n = f.prec - s.length; if (n > 0) s = caml_str_repeat (n, '0') + s; } return caml_finish_formatting(f, s); } function caml_get_exception_backtrace () { caml_invalid_argument ("Primitive 'caml_get_exception_backtrace' not implemented"); } function caml_greaterequal (x, y) { return +(caml_compare(x,y,false) >= 0); } function caml_int64_to_bytes(x) { return [x[3] >> 8, x[3] & 0xff, x[2] >> 16, (x[2] >> 8) & 0xff, x[2] & 0xff, x[1] >> 16, (x[1] >> 8) & 0xff, x[1] & 0xff]; } function caml_int64_bits_of_float (x) { if (!isFinite(x)) { if (isNaN(x)) return [255, 1, 0, 0xfff0]; return (x > 0)?[255,0,0,0x7ff0]:[255,0,0,0xfff0]; } var sign = (x>=0)?0:0x8000; if (sign) x = -x; var exp = Math.floor(Math.LOG2E*Math.log(x)) + 1023; if (exp <= 0) { exp = 0; x /= Math.pow(2,-1026); } else { x /= Math.pow(2,exp-1027); if (x < 16) { x *= 2; exp -=1; } if (exp == 0) { x /= 2; } } var k = Math.pow(2,24); var r3 = x|0; x = (x - r3) * k; var r2 = x|0; x = (x - r2) * k; var r1 = x|0; r3 = (r3 &0xf) | sign | exp << 4; return [255, r1, r2, r3]; } function caml_hash_univ_param (count, limit, obj) { var hash_accu = 0; function hash_aux (obj) { limit --; if (count < 0 || limit < 0) return; if (obj instanceof Array && obj[0] === (obj[0]|0)) { switch (obj[0]) { case 248: count --; hash_accu = (hash_accu * 65599 + obj[2]) | 0; break case 250: limit++; hash_aux(obj); break; case 255: count --; hash_accu = (hash_accu * 65599 + obj[1] + (obj[2] << 24)) | 0; break; default: count --; hash_accu = (hash_accu * 19 + obj[0]) | 0; for (var i = obj.length - 1; i > 0; i--) hash_aux (obj[i]); } } else if (obj instanceof MlString) { count --; var a = obj.array, l = obj.getLen (); if (a) { for (var i = 0; i < l; i++) hash_accu = (hash_accu * 19 + a[i]) | 0; } else { var b = obj.getFullBytes (); for (var i = 0; i < l; i++) hash_accu = (hash_accu * 19 + b.charCodeAt(i)) | 0; } } else if (obj === (obj|0)) { count --; hash_accu = (hash_accu * 65599 + obj) | 0; } else if (obj === +obj) { count--; var p = caml_int64_to_bytes (caml_int64_bits_of_float (obj)); for (var i = 7; i >= 0; i--) hash_accu = (hash_accu * 19 + p[i]) | 0; } } hash_aux (obj); return hash_accu & 0x3FFFFFFF; } function caml_int64_is_negative(x) { return (x[3] << 16) < 0; } function caml_int64_neg (x) { var y1 = - x[1]; var y2 = - x[2] + (y1 >> 24); var y3 = - x[3] + (y2 >> 24); return [255, y1 & 0xffffff, y2 & 0xffffff, y3 & 0xffff]; } function caml_int64_of_int32 (x) { return [255, x & 0xffffff, (x >> 24) & 0xffffff, (x >> 31) & 0xffff] } function caml_int64_ucompare(x,y) { if (x[3] > y[3]) return 1; if (x[3] < y[3]) return -1; if (x[2] > y[2]) return 1; if (x[2] < y[2]) return -1; if (x[1] > y[1]) return 1; if (x[1] < y[1]) return -1; return 0; } function caml_int64_lsl1 (x) { x[3] = (x[3] << 1) | (x[2] >> 23); x[2] = ((x[2] << 1) | (x[1] >> 23)) & 0xffffff; x[1] = (x[1] << 1) & 0xffffff; } function caml_int64_lsr1 (x) { x[1] = ((x[1] >>> 1) | (x[2] << 23)) & 0xffffff; x[2] = ((x[2] >>> 1) | (x[3] << 23)) & 0xffffff; x[3] = x[3] >>> 1; } function caml_int64_sub (x, y) { var z1 = x[1] - y[1]; var z2 = x[2] - y[2] + (z1 >> 24); var z3 = x[3] - y[3] + (z2 >> 24); return [255, z1 & 0xffffff, z2 & 0xffffff, z3 & 0xffff]; } function caml_int64_udivmod (x, y) { var offset = 0; var modulus = x.slice (); var divisor = y.slice (); var quotient = [255, 0, 0, 0]; while (caml_int64_ucompare (modulus, divisor) > 0) { offset++; caml_int64_lsl1 (divisor); } while (offset >= 0) { offset --; caml_int64_lsl1 (quotient); if (caml_int64_ucompare (modulus, divisor) >= 0) { quotient[1] ++; modulus = caml_int64_sub (modulus, divisor); } caml_int64_lsr1 (divisor); } return [0,quotient, modulus]; } function caml_int64_to_int32 (x) { return x[1] | (x[2] << 24); } function caml_int64_is_zero(x) { return (x[3]|x[2]|x[1]) == 0; } function caml_int64_format (fmt, x) { var f = caml_parse_format(fmt); if (f.signedconv && caml_int64_is_negative(x)) { f.sign = -1; x = caml_int64_neg(x); } var buffer = ""; var wbase = caml_int64_of_int32(f.base); var cvtbl = "0123456789abcdef"; do { var p = caml_int64_udivmod(x, wbase); x = p[1]; buffer = cvtbl.charAt(caml_int64_to_int32(p[2])) + buffer; } while (! caml_int64_is_zero(x)); if (f.prec >= 0) { f.filler = ' '; var n = f.prec - buffer.length; if (n > 0) buffer = caml_str_repeat (n, '0') + buffer; } return caml_finish_formatting(f, buffer); } function caml_parse_sign_and_base (s) { var i = 0, base = 10, sign = s.get(0) == 45?(i++,-1):1; if (s.get(i) == 48) switch (s.get(i + 1)) { case 120: case 88: base = 16; i += 2; break; case 111: case 79: base = 8; i += 2; break; case 98: case 66: base = 2; i += 2; break; } return [i, sign, base]; } function caml_parse_digit(c) { if (c >= 48 && c <= 57) return c - 48; if (c >= 65 && c <= 90) return c - 55; if (c >= 97 && c <= 122) return c - 87; return -1; } var caml_global_data = [0]; function caml_failwith (msg) { caml_raise_with_string(caml_global_data[3], msg); } function caml_int_of_string (s) { var r = caml_parse_sign_and_base (s); var i = r[0], sign = r[1], base = r[2]; var threshold = -1 >>> 0; var c = s.get(i); var d = caml_parse_digit(c); if (d < 0 || d >= base) caml_failwith("int_of_string"); var res = d; for (;;) { i++; c = s.get(i); if (c == 95) continue; d = caml_parse_digit(c); if (d < 0 || d >= base) break; res = base * res + d; if (res > threshold) caml_failwith("int_of_string"); } if (i != s.getLen()) caml_failwith("int_of_string"); res = sign * res; if ((res | 0) != res) caml_failwith("int_of_string"); return res; } function caml_is_printable(c) { return +(c > 31 && c < 127); } function caml_js_call(f, o, args) { return f.apply(o, args.slice(1)); } function caml_js_from_byte_string (s) {return s.getFullBytes();} function caml_js_get_console () { var c = window.console?window.console:{}; var m = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "trace", "group", "groupCollapsed", "groupEnd", "time", "timeEnd"]; function f () {} for (var i = 0; i < m.length; i++) if (!c[m[i]]) c[m[i]]=f; return c; } var caml_js_regexps = { amp:/&/g, lt:/</g, quot:/\"/g, all:/[&<\"]/ }; function caml_js_html_escape (s) { if (!caml_js_regexps.all.test(s)) return s; return s.replace(caml_js_regexps.amp, "&") .replace(caml_js_regexps.lt, "<") .replace(caml_js_regexps.quot, """); } function caml_js_on_ie () { var ua = window.navigator?window.navigator.userAgent:""; return ua.indexOf("MSIE") != -1 && ua.indexOf("Opera") != 0; } function caml_js_pure_expr (f) { return f(); } function caml_js_to_byte_string (s) {return new MlString (s);} function caml_js_wrap_callback(f) { var toArray = Array.prototype.slice; return function () { var args = (arguments.length > 0)?toArray.call (arguments):[undefined]; return caml_call_gen(f, args); } } function caml_lessequal (x, y) { return +(caml_compare(x,y,false) <= 0); } function caml_lessthan (x, y) { return +(caml_compare(x,y,false) < 0); } function caml_make_vect (len, init) { var b = [0]; for (var i = 1; i <= len; i++) b[i] = init; return b; } function MlStringFromArray (a) { var len = a.length; this.array = a; this.len = this.last = len; } MlStringFromArray.prototype = new MlString (); var caml_md5_string = function () { function add (x, y) { return (x + y) | 0; } function xx(q,a,b,x,s,t) { a = add(add(a, q), add(x, t)); return add((a << s) | (a >>> (32 - s)), b); } function ff(a,b,c,d,x,s,t) { return xx((b & c) | ((~b) & d), a, b, x, s, t); } function gg(a,b,c,d,x,s,t) { return xx((b & d) | (c & (~d)), a, b, x, s, t); } function hh(a,b,c,d,x,s,t) { return xx(b ^ c ^ d, a, b, x, s, t); } function ii(a,b,c,d,x,s,t) { return xx(c ^ (b | (~d)), a, b, x, s, t); } function md5(buffer, length) { var i = length; buffer[i >> 2] |= 0x80 << (8 * (i & 3)); for (i = (i & ~0x3) + 4;(i & 0x3F) < 56 ;i += 4) buffer[i >> 2] = 0; buffer[i >> 2] = length << 3; i += 4; buffer[i >> 2] = (length >> 29) & 0x1FFFFFFF; var w = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]; for(i = 0; i < buffer.length; i += 16) { var a = w[0], b = w[1], c = w[2], d = w[3]; a = ff(a, b, c, d, buffer[i+ 0], 7, 0xD76AA478); d = ff(d, a, b, c, buffer[i+ 1], 12, 0xE8C7B756); c = ff(c, d, a, b, buffer[i+ 2], 17, 0x242070DB); b = ff(b, c, d, a, buffer[i+ 3], 22, 0xC1BDCEEE); a = ff(a, b, c, d, buffer[i+ 4], 7, 0xF57C0FAF); d = ff(d, a, b, c, buffer[i+ 5], 12, 0x4787C62A); c = ff(c, d, a, b, buffer[i+ 6], 17, 0xA8304613); b = ff(b, c, d, a, buffer[i+ 7], 22, 0xFD469501); a = ff(a, b, c, d, buffer[i+ 8], 7, 0x698098D8); d = ff(d, a, b, c, buffer[i+ 9], 12, 0x8B44F7AF); c = ff(c, d, a, b, buffer[i+10], 17, 0xFFFF5BB1); b = ff(b, c, d, a, buffer[i+11], 22, 0x895CD7BE); a = ff(a, b, c, d, buffer[i+12], 7, 0x6B901122); d = ff(d, a, b, c, buffer[i+13], 12, 0xFD987193); c = ff(c, d, a, b, buffer[i+14], 17, 0xA679438E); b = ff(b, c, d, a, buffer[i+15], 22, 0x49B40821); a = gg(a, b, c, d, buffer[i+ 1], 5, 0xF61E2562); d = gg(d, a, b, c, buffer[i+ 6], 9, 0xC040B340); c = gg(c, d, a, b, buffer[i+11], 14, 0x265E5A51); b = gg(b, c, d, a, buffer[i+ 0], 20, 0xE9B6C7AA); a = gg(a, b, c, d, buffer[i+ 5], 5, 0xD62F105D); d = gg(d, a, b, c, buffer[i+10], 9, 0x02441453); c = gg(c, d, a, b, buffer[i+15], 14, 0xD8A1E681); b = gg(b, c, d, a, buffer[i+ 4], 20, 0xE7D3FBC8); a = gg(a, b, c, d, buffer[i+ 9], 5, 0x21E1CDE6); d = gg(d, a, b, c, buffer[i+14], 9, 0xC33707D6); c = gg(c, d, a, b, buffer[i+ 3], 14, 0xF4D50D87); b = gg(b, c, d, a, buffer[i+ 8], 20, 0x455A14ED); a = gg(a, b, c, d, buffer[i+13], 5, 0xA9E3E905); d = gg(d, a, b, c, buffer[i+ 2], 9, 0xFCEFA3F8); c = gg(c, d, a, b, buffer[i+ 7], 14, 0x676F02D9); b = gg(b, c, d, a, buffer[i+12], 20, 0x8D2A4C8A); a = hh(a, b, c, d, buffer[i+ 5], 4, 0xFFFA3942); d = hh(d, a, b, c, buffer[i+ 8], 11, 0x8771F681); c = hh(c, d, a, b, buffer[i+11], 16, 0x6D9D6122); b = hh(b, c, d, a, buffer[i+14], 23, 0xFDE5380C); a = hh(a, b, c, d, buffer[i+ 1], 4, 0xA4BEEA44); d = hh(d, a, b, c, buffer[i+ 4], 11, 0x4BDECFA9); c = hh(c, d, a, b, buffer[i+ 7], 16, 0xF6BB4B60); b = hh(b, c, d, a, buffer[i+10], 23, 0xBEBFBC70); a = hh(a, b, c, d, buffer[i+13], 4, 0x289B7EC6); d = hh(d, a, b, c, buffer[i+ 0], 11, 0xEAA127FA); c = hh(c, d, a, b, buffer[i+ 3], 16, 0xD4EF3085); b = hh(b, c, d, a, buffer[i+ 6], 23, 0x04881D05); a = hh(a, b, c, d, buffer[i+ 9], 4, 0xD9D4D039); d = hh(d, a, b, c, buffer[i+12], 11, 0xE6DB99E5); c = hh(c, d, a, b, buffer[i+15], 16, 0x1FA27CF8); b = hh(b, c, d, a, buffer[i+ 2], 23, 0xC4AC5665); a = ii(a, b, c, d, buffer[i+ 0], 6, 0xF4292244); d = ii(d, a, b, c, buffer[i+ 7], 10, 0x432AFF97); c = ii(c, d, a, b, buffer[i+14], 15, 0xAB9423A7); b = ii(b, c, d, a, buffer[i+ 5], 21, 0xFC93A039); a = ii(a, b, c, d, buffer[i+12], 6, 0x655B59C3); d = ii(d, a, b, c, buffer[i+ 3], 10, 0x8F0CCC92); c = ii(c, d, a, b, buffer[i+10], 15, 0xFFEFF47D); b = ii(b, c, d, a, buffer[i+ 1], 21, 0x85845DD1); a = ii(a, b, c, d, buffer[i+ 8], 6, 0x6FA87E4F); d = ii(d, a, b, c, buffer[i+15], 10, 0xFE2CE6E0); c = ii(c, d, a, b, buffer[i+ 6], 15, 0xA3014314); b = ii(b, c, d, a, buffer[i+13], 21, 0x4E0811A1); a = ii(a, b, c, d, buffer[i+ 4], 6, 0xF7537E82); d = ii(d, a, b, c, buffer[i+11], 10, 0xBD3AF235); c = ii(c, d, a, b, buffer[i+ 2], 15, 0x2AD7D2BB); b = ii(b, c, d, a, buffer[i+ 9], 21, 0xEB86D391); w[0] = add(a, w[0]); w[1] = add(b, w[1]); w[2] = add(c, w[2]); w[3] = add(d, w[3]); } var t = []; for (var i = 0; i < 4; i++) for (var j = 0; j < 4; j++) t[i * 4 + j] = (w[i] >> (8 * j)) & 0xFF; return t; } return function (s, ofs, len) { var buf = []; if (s.array) { var a = s.array; for (var i = 0; i < len; i+=4) { var j = i + ofs; buf[i>>2] = a[j] | (a[j+1] << 8) | (a[j+2] << 16) | (a[j+3] << 24); } for (; i < len; i++) buf[i>>2] |= a[i + ofs] << (8 * (i & 3)); } else { var b = s.getFullBytes(); for (var i = 0; i < len; i+=4) { var j = i + ofs; buf[i>>2] = b.charCodeAt(j) | (b.charCodeAt(j+1) << 8) | (b.charCodeAt(j+2) << 16) | (b.charCodeAt(j+3) << 24); } for (; i < len; i++) buf[i>>2] |= b.charCodeAt(i + ofs) << (8 * (i & 3)); } return new MlStringFromArray(md5(buf, len)); } } (); function caml_ml_flush () { return 0; } function caml_ml_open_descriptor_out () { return 0; } function caml_ml_out_channels_list () { return 0; } function caml_ml_output () { return 0; } function caml_raise_constant (tag) { throw [0, tag]; } function caml_raise_zero_divide () { caml_raise_constant(caml_global_data[6]); } function caml_mod(x,y) { if (y == 0) caml_raise_zero_divide (); return x%y; } function caml_mul(x,y) { return ((((x >> 16) * y) << 16) + (x & 0xffff) * y)|0; } function caml_notequal (x, y) { return +(caml_compare_val(x,y,false) != 0); } function caml_obj_is_block (x) { return +(x instanceof Array); } function caml_obj_set_tag (x, tag) { x[0] = tag; return 0; } function caml_obj_tag (x) { return (x instanceof Array)?x[0]:1000; } function caml_register_global (n, v) { caml_global_data[n + 1] = v; } var caml_named_values = {}; function caml_register_named_value(nm,v) { caml_named_values[nm] = v; return 0; } function caml_string_equal(s1, s2) { var b1 = s1.fullBytes; var b2 = s2.fullBytes; if (b1 != null && b2 != null) return (b1 == b2)?1:0; return (s1.getFullBytes () == s2.getFullBytes ())?1:0; } function caml_string_notequal(s1, s2) { return 1-caml_string_equal(s1, s2); } function caml_sys_get_config () { return [0, new MlWrappedString("Unix"), 32]; } function caml_sys_random_seed () { return new Date()^0xffffffff*Math.random(); } function caml_update_dummy (x, y) { if( typeof y==="function" ) { x.fun = y; return 0; } if( y.fun ) { x.fun = y.fun; return 0; } var i = y.length; while (i--) x[i] = y[i]; return 0; } (function() {function _oS_(_Si_,_Sj_,_Sk_,_Sl_,_Sm_,_Sn_,_So_) {return _Si_.length==6 ?_Si_(_Sj_,_Sk_,_Sl_,_Sm_,_Sn_,_So_) :caml_call_gen(_Si_,[_Sj_,_Sk_,_Sl_,_Sm_,_Sn_,_So_]);} function _to_(_Sc_,_Sd_,_Se_,_Sf_,_Sg_,_Sh_) {return _Sc_.length==5 ?_Sc_(_Sd_,_Se_,_Sf_,_Sg_,_Sh_) :caml_call_gen(_Sc_,[_Sd_,_Se_,_Sf_,_Sg_,_Sh_]);} function _nZ_(_R9_,_R__,_R$_,_Sa_,_Sb_) {return _R9_.length==4 ?_R9_(_R__,_R$_,_Sa_,_Sb_) :caml_call_gen(_R9_,[_R__,_R$_,_Sa_,_Sb_]);} function _kq_(_R5_,_R6_,_R7_,_R8_) {return _R5_.length==3 ?_R5_(_R6_,_R7_,_R8_) :caml_call_gen(_R5_,[_R6_,_R7_,_R8_]);} function _hI_(_R2_,_R3_,_R4_) {return _R2_.length==2?_R2_(_R3_,_R4_):caml_call_gen(_R2_,[_R3_,_R4_]);} function _g$_(_R0_,_R1_) {return _R0_.length==1?_R0_(_R1_):caml_call_gen(_R0_,[_R1_]);} var _a_=[0,new MlString("Failure")], _b_=[0,new MlString("Invalid_argument")], _c_=[0,new MlString("Not_found")], _d_=[0,new MlString("Assert_failure")], _e_=new MlString("File \"%s\", line %d, characters %d-%d: %s"), _f_=new MlString("button"), a_g_=[254,0.25,0], one_h_=[254,1,0], zero_i_=[254,0,0]; caml_register_global(5,[0,new MlString("Division_by_zero")]); caml_register_global(3,_b_); caml_register_global(2,_a_); var _gv_=[0,new MlString("Out_of_memory")], _gu_=[0,new MlString("Match_failure")], _gt_=[0,new MlString("Stack_overflow")], _gs_=[0,new MlString("Undefined_recursive_module")], _gr_=new MlString("output"), _gq_=new MlString("%.12g"), _gp_=new MlString("."), _go_=new MlString("%d"), _gn_=new MlString("true"), _gm_=new MlString("false"), _gl_=new MlString("Pervasives.do_at_exit"), _gk_=new MlString("\\b"), _gj_=new MlString("\\t"), _gi_=new MlString("\\n"), _gh_=new MlString("\\r"), _gg_=new MlString("\\\\"), _gf_=new MlString("\\'"), _ge_=new MlString("String.contains_from"), _gd_=new MlString(""), _gc_=new MlString("String.blit"), _gb_=new MlString("String.sub"), _ga_=new MlString("Queue.Empty"), _f$_=new MlString("CamlinternalLazy.Undefined"), _f__=new MlString("Buffer.add_substring"), _f9_=new MlString("Buffer.add: cannot grow buffer"), _f8_=new MlString(""), _f7_=new MlString(""), _f6_=new MlString("\""), _f5_=new MlString("\""), _f4_=new MlString("'"), _f3_=new MlString("'"), _f2_=new MlString("."), _f1_=new MlString("printf: bad positional specification (0)."), _f0_=new MlString("%_"), _fZ_=[0,new MlString("printf.ml"),144,8], _fY_=new MlString("''"), _fX_=new MlString("Printf: premature end of format string ``"), _fW_=new MlString("''"), _fV_=new MlString(" in format string ``"), _fU_=new MlString(", at char number "), _fT_=new MlString("Printf: bad conversion %"), _fS_=new MlString("Sformat.index_of_int: negative argument "), _fR_=new MlString(""), _fQ_=new MlString(", %s%s"), _fP_=[1,1], _fO_=new MlString("%s\n"), _fN_= new MlString ("(Program not linked with -g, cannot print stack backtrace)\n"), _fM_=new MlString("Raised at"), _fL_=new MlString("Re-raised at"), _fK_=new MlString("Raised by primitive operation at"), _fJ_=new MlString("Called from"), _fI_=new MlString("%s file \"%s\", line %d, characters %d-%d"), _fH_=new MlString("%s unknown location"), _fG_=new MlString("Pattern matching failed"), _fF_=new MlString("Assertion failed"), _fE_=new MlString("Undefined recursive module"), _fD_=new MlString("(%s%s)"), _fC_=new MlString(""), _fB_=new MlString(""), _fA_=new MlString("(%s)"), _fz_=new MlString("%d"), _fy_=new MlString("%S"), _fx_=new MlString("_"), _fw_=new MlString("Random.int"), _fv_=new MlString("x"), _fu_= [0, 2061652523, 1569539636, 364182224, 414272206, 318284740, 2064149575, 383018966, 1344115143, 840823159, 1098301843, 536292337, 1586008329, 189156120, 1803991420, 1217518152, 51606627, 1213908385, 366354223, 2077152089, 1774305586, 2055632494, 913149062, 526082594, 2095166879, 784300257, 1741495174, 1703886275, 2023391636, 1122288716, 1489256317, 258888527, 511570777, 1163725694, 283659902, 308386020, 1316430539, 1556012584, 1938930020, 2101405994, 1280938813, 193777847, 1693450012, 671350186, 149669678, 1330785842, 1161400028, 558145612, 1257192637, 1101874969, 1975074006, 710253903, 1584387944, 1726119734, 409934019, 801085050], _ft_=new MlString("OCAMLRUNPARAM"), _fs_=new MlString("CAMLRUNPARAM"), _fr_=new MlString(""), _fq_=new MlString("bad box format"), _fp_=new MlString("bad box name ho"), _fo_=new MlString("bad tag name specification"), _fn_=new MlString("bad tag name specification"), _fm_=new MlString(""), _fl_=new MlString(""), _fk_=new MlString(""), _fj_=new MlString("bad integer specification"), _fi_=new MlString("bad format"), _fh_=new MlString(" (%c)."), _fg_=new MlString("%c"), _ff_= new MlString ("Format.fprintf: %s ``%s'', giving up at character number %d%s"), _fe_=[3,0,3], _fd_=new MlString("."), _fc_=new MlString(">"), _fb_=new MlString("</"), _fa_=new MlString(">"), _e$_=new MlString("<"), _e__=new MlString("\n"), _e9_=new MlString("Format.Empty_queue"), _e8_=[0,new MlString("")], _e7_=[0,new MlString("src/core/lwt.ml"),814,20], _e6_=[0,new MlString("src/core/lwt.ml"),816,8], _e5_=[0,new MlString("src/core/lwt.ml"),785,16], _e4_=[0,new MlString("src/core/lwt.ml"),670,20], _e3_=[0,new MlString("src/core/lwt.ml"),673,8], _e2_=[0,new MlString("src/core/lwt.ml"),648,20], _e1_=[0,new MlString("src/core/lwt.ml"),651,8], _e0_=[0,new MlString("src/core/lwt.ml"),498,8], _eZ_=[0,new MlString("src/core/lwt.ml"),487,9], _eY_=new MlString("Lwt.wakeup_result"), _eX_=new MlString("Lwt.Canceled"), state_return_unit_eW_=[0,0], _eV_=new MlString("on"), _eU_=new MlString("canvas"), _eT_=new MlString("dt"), _eS_=new MlString("dd"), _eR_=new MlString("img"), _eQ_=new MlString("a"), _eP_=new MlString("div"), _eO_=new MlString("li"), _eN_=new MlString("dl"), _eM_=new MlString("ul"), _eL_=new MlString("\""), _eK_=new MlString(" name=\""), _eJ_=new MlString("\""), _eI_=new MlString(" type=\""), _eH_=new MlString("<"), _eG_=new MlString(">"), _eF_=new MlString(""), _eE_=new MlString("click"), _eD_=new MlString("mouseup"), _eC_=new MlString("mousemove"), _eB_=new MlString("keydown"), _eA_=new MlString("touchstart"), _ez_=new MlString("touchmove"), _ey_=new MlString("touchend"), _ex_=new MlString("2d"), _ew_=new MlString("Dom_html.Canvas_not_available"), _ev_=new MlString("browser can't read file: unimplemented"), _eu_=new MlString("utf8"), _et_=[0,new MlString("file.ml"),132,15], _es_=new MlString("string"), _er_=new MlString("can't retrieve file name: not implemented"), _eq_=new MlString("\\$&"), _ep_=new MlString("$$$$"), _eo_=new MlString("g"), _en_=new MlString("g"), _em_=new MlString("[$]"), _el_=new MlString("[\\][()\\\\|+*.?{}^$]"), _ek_=[0,new MlString(""),0], _ej_=new MlString(""), _ei_=new MlString(""), _eh_=new MlString("#"), _eg_=new MlString(""), _ef_=new MlString("?"), _ee_=new MlString(""), _ed_=new MlString("/"), _ec_=new MlString("/"), _eb_=new MlString(":"), _ea_=new MlString(""), _d$_=new MlString("http://"), _d__=new MlString(""), _d9_=new MlString("#"), _d8_=new MlString(""), _d7_=new MlString("?"), _d6_=new MlString(""), _d5_=new MlString("/"), _d4_=new MlString("/"), _d3_=new MlString(":"), _d2_=new MlString(""), _d1_=new MlString("https://"), _d0_=new MlString(""), _dZ_=new MlString("#"), _dY_=new MlString(""), _dX_=new MlString("?"), _dW_=new MlString(""), _dV_=new MlString("/"), _dU_=new MlString("file://"), _dT_=new MlString(""), _dS_=new MlString(""), _dR_=new MlString(""), _dQ_=new MlString(""), _dP_=new MlString(""), _dO_=new MlString(""), _dN_=new MlString("="), _dM_=new MlString("&"), _dL_=new MlString("file"), _dK_=new MlString("file:"), _dJ_=new MlString("http"), _dI_=new MlString("http:"), _dH_=new MlString("https"), _dG_=new MlString("https:"), _dF_=new MlString("%2B"), _dE_=new MlString("Url.Local_exn"), _dD_=new MlString("+"), _dC_=new MlString("Url.Not_an_http_protocol"), _dB_= new MlString ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?/([^\\?#]*)(\\?([^#]*))?(#(.*))?$"), _dA_= new MlString("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#])*)?(#(.*))?$"), _dz_=new MlString(""), _dy_=new MlString("POST"), _dx_=new MlString("multipart/form-data; boundary="), _dw_=new MlString("POST"), _dv_= [0, new MlString("POST"), [0,new MlString("application/x-www-form-urlencoded")], 126925477], _du_=[0,new MlString("POST"),0,126925477], _dt_=new MlString("GET"), _ds_=new MlString("?"), _dr_=new MlString("Content-type"), _dq_=new MlString("="), _dp_=new MlString("="), _do_=new MlString("&"), _dn_=new MlString("Content-Type: application/octet-stream\r\n"), _dm_=new MlString("\"\r\n"), _dl_=new MlString("\"; filename=\""), _dk_=new MlString("Content-Disposition: form-data; name=\""), _dj_=new MlString("\r\n"), _di_=new MlString("\r\n"), _dh_=new MlString("\r\n"), _dg_=new MlString("--"), _df_=new MlString("\r\n"), _de_=new MlString("\"\r\n\r\n"), _dd_=new MlString("Content-Disposition: form-data; name=\""), _dc_=new MlString("--\r\n"), _db_=new MlString("--"), _da_=new MlString("js_of_ocaml-------------------"), _c$_=new MlString("Msxml2.XMLHTTP"), _c__=new MlString("Msxml3.XMLHTTP"), _c9_=new MlString("Microsoft.XMLHTTP"), _c8_=[0,new MlString("xmlHttpRequest.ml"),79,2], _c7_=new MlString("XmlHttpRequest.Wrong_headers"), _c6_=new MlString("#"), _c5_=new MlString("absolute"), _c4_=new MlString("0"), _c3_=new MlString("0"), _c2_=new MlString("info-38.png"), _c1_=new MlString("absolute"), _c0_=new MlString("2px"), _cZ_=new MlString("0"), _cY_=new MlString("pointer"), _cX_=new MlString("Information"), _cW_=new MlString("36px"), _cV_=new MlString("36px"), _cU_=new MlString("globe-38.png"), _cT_=new MlString("absolute"), _cS_=new MlString("2px"), _cR_=new MlString("48px"), _cQ_=new MlString("pointer"), languages_cP_= [0, [0,new MlString("Fran\xc3\xa7ais"),new MlString("fr")], [0,[0,new MlString("English"),new MlString("en")],0]], _cO_=new MlString("Languages"), _cN_=new MlString("text on"), _cM_=new MlString("absolute"), _cL_=new MlString("0px"), _cK_=new MlString("46px"), _cJ_=new MlString("nowrap"), _cI_=new MlString("meeting-point-38.png"), _cH_=new MlString("absolute"), _cG_=new MlString("2px"), _cF_=new MlString("96px"), _cE_=new MlString("pointer"), _cD_=new MlString("Recenter"), _cC_=new MlString("36px"), _cB_=new MlString("36px"), z0_cA_=[254,0,0], z1_cz_=[254,0.1,0], z0_cy_=[254,0,0], z1_cx_=[254,0,0.1], z0_cw_=[254,0,0], z1_cv_=[254,-0.1,0], z0_cu_=[254,0,0], z1_ct_=[254,0,-0.1], _cs_=new MlString("transform"), _cr_=new MlString("pointer"), _cq_=new MlString(""), _cp_=new MlString("Resize %d %d"), _co_=new MlString("transform"), _cn_=new MlString("transform"), _cm_=new MlString("hidden"), _cl_=new MlString("100%"), _ck_=new MlString("hidden"), _cj_=new MlString("0px"), _ci_=new MlString("100%"), _ch_=new MlString("text"), _cg_=new MlString("80%"), _cf_=new MlString("auto"), _ce_= new MlString ("Unfortunately, this browser is not supported. Please try again with another browser, such as <a href=\"http://www.mozilla.org/firefox/\">Firefox</a>, <a href=\"http://www.google.com/chrome/\">Chrome</a> or <a href=\"http://www.opera.com/\">Opera</a>."), _cd_=new MlString("table-cell"), _cc_=new MlString("middle"), _cb_=new MlString("100%"), _ca_=new MlString("100%"), _b$_=new MlString("table"), _b__=new MlString("overlay"), _b9_=new MlString("en"), _b8_=new MlString("text"), _b7_=new MlString("80%"), _b6_=new MlString("auto"), _b5_=new MlString("table-cell"), _b4_=new MlString("middle"), _b3_=new MlString("100%"), _b2_=new MlString("100%"), _b1_=new MlString("table"), _b0_=new MlString("overlay translucent"), _bZ_=new MlString("OK"), _bY_=new MlString("center"), _bX_=new MlString("2em auto"), _bW_=new MlString("_blank"), _bV_=new MlString(".wikipedia.org/wiki/"), _bU_=new MlString("http://"), _bT_=new MlString("absolute"), _bS_=new MlString("0"), _bR_=new MlString("0"), _bQ_=new MlString("0"), _bP_=new MlString("0"), _bO_=new MlString("auto"), _bN_=new MlString("px"), _bM_=new MlString("10px"), _bL_=new MlString("absolute"), _bK_=new MlString("0"), _bJ_=new MlString("0"), _bI_=new MlString("0"), _bH_=new MlString("0"), _bG_=new MlString("absolute"), _bF_=new MlString("0"), _bE_=new MlString("4em"), _bD_=new MlString("38px"), _bC_=new MlString("38px"), _bB_=new MlString("block"), _bA_=new MlString("auto"), _bz_=new MlString("auto"), _by_=new MlString("100%"), _bx_=new MlString("100%"), _bw_=new MlString("auto"), _bv_=new MlString("auto"), _bu_=new MlString(".jpg"), _bt_=new MlString("images/"), _bs_=new MlString("block"), _br_=new MlString("auto"), _bq_=new MlString("auto"), _bp_=new MlString("100%"), _bo_=new MlString("100%"), _bn_=new MlString("auto"), _bm_=new MlString("auto"), _bl_=new MlString("text"), _bk_=new MlString("absolute"), _bj_=new MlString("0"), _bi_=new MlString("auto"), _bh_=new MlString("auto"), _bg_=new MlString("overlay"), _bf_=new MlString("100%"), _be_=new MlString("100%"), _bd_=new MlString("absolute"), _bc_=new MlString("0"), _bb_=new MlString("0"), _ba_=new MlString("1"), _a$_=new MlString("button"), _a__=new MlString("absolute"), _a9_=new MlString("0"), _a8_=new MlString("0"), _a7_=new MlString("pointer"), _a6_=new MlString("Click anywhere to return to the tree"), _a5_=new MlString("32px"), _a4_=new MlString("20px"), _a3_=new MlString("absolute"), _a2_=new MlString("0"), _a1_=new MlString("0"), _a0_=new MlString("en"), _aZ_=new MlString(""), _aY_=new MlString("?uselang="), _aX_=new MlString("http://commons.wikimedia.org/wiki/File:"), _aW_=new MlString("commons-38.png"), _aV_=new MlString("See image description on Wikimedia Commons"), _aU_=new MlString("48px"), _aT_=new MlString("12px"), _aS_=new MlString("wikipedia-38.png"), _aR_=new MlString("In English"), _aQ_=new MlString("en"), _aP_=new MlString("en"), _aO_=new MlString("In English"), _aN_=new MlString("No reference found."), _aM_=new MlString("text on"), _aL_=new MlString("absolute"), _aK_=new MlString("48px"), _aJ_=new MlString("62px"), _aI_=new MlString("nowrap"), _aH_=new MlString("text on"), _aG_=new MlString("text"), _aF_=new MlString("absolute"), _aE_=new MlString("tooltip on"), _aD_=new MlString("absolute"), _aC_=new MlString("38px"), _aB_=new MlString("px"), _aA_=new MlString("2px"), _az_=new MlString("2px"), _ay_=new MlString("%dpx 3px %dpx 3px"), _ax_=new MlString("on"), _aw_=new MlString("off"), _av_=new MlString("filled_button "), _au_=new MlString("button"), _at_=new MlString("48px"), _as_=new MlString("px"), _ar_=new MlString("_blank"), _aq_=new MlString("#888888"), _ap_=new MlString("on"), _ao_=new MlString("off"), _an_=new MlString("absolute"), _am_=new MlString("0"), _al_=new MlString("0"), _ak_=new MlString("image_info.json"), _aj_=[0,0,0,0], _ai_=[254,-1,0], _ah_=[0,new MlString("hypertree.ml"),916,2], _ag_=new MlString("en"), _af_=new MlString("<TITLE>"), _ae_=new MlString(""), _ad_=new MlString("20px sans-serif"), _ac_=new MlString("black"), _ab_=new MlString("center"), _aa_=new MlString("middle"), _$_=new MlString(".jpg"), ___=new MlString("thumbnails/"), _Z_=new MlString("draw"), _Y_=new MlString("round"), _X_=new MlString("black"), _W_=new MlString("draw"), _V_=new MlString("messages.json"), _U_=new MlString("hyp_lang"), _T_=new MlString("hyp_lang"), _S_=new MlString("en"), _R_=new MlString("hidden"), _Q_=new MlString("absolute"), _P_=new MlString("nowrap"), _O_=new MlString("Touch cancel %d %d %d %d"), _N_=new MlString(""), _M_=new MlString("Touch end %d %d %d %d"), _L_=new MlString(""), _K_=new MlString("Touch move %d %d %d %d"), _J_=new MlString("move"), _I_=new MlString("Touch start %d %d"), _H_=new MlString("Mouse up %d %d %d %d"), _G_=new MlString(""), _F_=new MlString("Mouse move %d %d %d %d"), _E_=new MlString("move"), _D_=new MlString("Mouse down %d %d"), _C_=new MlString("icons/"), icons_B_= [0, new MlString("commons-38.png"), [0, new MlString("wikipedia-38.png"), [0, new MlString("info-38.png"), [0, new MlString("meeting-point-38.png"), [0,new MlString("globe-38.png"),0]]]]], _A_=new MlString("#794c0d"), _z_=new MlString("absolute"), _y_=new MlString("0"), _x_=new MlString("0"), _w_=new MlString("0.9em"), tree_url_v_=new MlString("tree.json"), _u_=new MlString("\n"), _t_=new MlString("[^ ]"), _s_=new MlString("[|]"), _r_= new MlString ("<h1>A tree of animals</h1> This <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/Phylogenetic_tree\"><em>phylogenetic</em> tree</a> displays the relationships among animals.<h2>Usage</h2>Browse the tree by dragging it with the mouse. Click on any image to display a larger version.<h2>Credits</h2>This software and the images it uses are under free licenses. Images are from <a target=\"_blank\" href=\"http://commons.wikimedia.org/wiki/Main_Page\">Wikimedia Commons</a>. You can click on each image for details. The software has been written by J\xc3\xa9r\xc3\xb4me Vouillon (CNRS)."); function _q_(s_j_){throw [0,_a_,s_j_];} function _gw_(s_k_){throw [0,_b_,s_k_];} function _gx_(x_m_,y_l_){return caml_lessequal(x_m_,y_l_)?x_m_:y_l_;} function _gy_(x_o_,y_n_){return caml_greaterequal(x_o_,y_n_)?x_o_:y_n_;} function _gz_(x_p_){return 0<=x_p_?x_p_:-x_p_|0;} var max_int_gT_=(1<<31)-1|0; function _gK_(s1_gA_,s2_gC_) {var l1_gB_=s1_gA_.getLen(), l2_gD_=s2_gC_.getLen(), s_gE_=caml_create_string(l1_gB_+l2_gD_|0); caml_blit_string(s1_gA_,0,s_gE_,0,l1_gB_); caml_blit_string(s2_gC_,0,s_gE_,l1_gB_,l2_gD_); return s_gE_;} function string_of_int_gU_(n_gF_){return caml_format_int(_go_,n_gF_);} function string_of_float_gV_(f_gG_) {var _gH_=caml_format_float(_gq_,f_gG_),i_gI_=0,l_gJ_=_gH_.getLen(); for(;;) {if(l_gJ_<=i_gI_) var _gL_=_gK_(_gH_,_gp_); else {var _gM_=_gH_.safeGet(i_gI_), _gN_=48<=_gM_?58<=_gM_?0:1:45===_gM_?1:0; if(_gN_){var _gO_=i_gI_+1|0,i_gI_=_gO_;continue;} var _gL_=_gH_;} return _gL_;}} function _gQ_(l1_gP_,l2_gR_) {if(l1_gP_) {var hd_gS_=l1_gP_[1];return [0,hd_gS_,_gQ_(l1_gP_[2],l2_gR_)];} return l2_gR_;} var stderr_gW_=caml_ml_open_descriptor_out(2), stdout_g7_=caml_ml_open_descriptor_out(1); function flush_all_g8_(param_g0_) {var param_gX_=caml_ml_out_channels_list(0); for(;;) {if(param_gX_) {var l_gY_=param_gX_[2]; try {}catch(_gZ_){} var param_gX_=l_gY_; continue;} return 0;}} function output_string_g9_(oc_g2_,s_g1_) {return caml_ml_output(oc_g2_,s_g1_,0,s_g1_.getLen());} var exit_function_g__=[0,flush_all_g8_]; function output_hc_(oc_g6_,s_g5_,ofs_g3_,len_g4_) {if(0<=ofs_g3_&&0<=len_g4_&&!((s_g5_.getLen()-len_g4_|0)<ofs_g3_)) return caml_ml_output(oc_g6_,s_g5_,ofs_g3_,len_g4_); return _gw_(_gr_);} function do_at_exit_hb_(param_ha_){return _g$_(exit_function_g__[1],0);} caml_register_named_value(_gl_,do_at_exit_hb_); function _hh_(_he_,_hd_){return caml_ml_output_char(_he_,_hd_);} function _hg_(_hf_){return caml_ml_flush(_hf_);} function _hK_(f_hm_,a_hj_) {var _hi_=0,_hk_=a_hj_.length-1-1|0; if(!(_hk_<_hi_)) {var i_hl_=_hi_; for(;;) {_g$_(f_hm_,a_hj_[i_hl_+1]); var _hn_=i_hl_+1|0; if(_hk_!==i_hl_){var i_hl_=_hn_;continue;} break;}} return 0;} function _hL_(f_hq_,a_ho_) {var l_hp_=a_ho_.length-1; if(0===l_hp_)return [0]; var r_hr_=caml_make_vect(l_hp_,_g$_(f_hq_,a_ho_[0+1])), _hs_=1, _ht_=l_hp_-1|0; if(!(_ht_<_hs_)) {var i_hu_=_hs_; for(;;) {r_hr_[i_hu_+1]=_g$_(f_hq_,a_ho_[i_hu_+1]); var _hv_=i_hu_+1|0; if(_ht_!==i_hu_){var i_hu_=_hv_;continue;} break;}} return r_hr_;} function _hN_(a_hw_) {var i_hx_=a_hw_.length-1-1|0,res_hy_=0; for(;;) {if(0<=i_hx_) {var _hA_=[0,a_hw_[i_hx_+1],res_hy_], _hz_=i_hx_-1|0, i_hx_=_hz_, res_hy_=_hA_; continue;} return res_hy_;}} function _hM_(f_hH_,x_hB_,a_hE_) {var r_hC_=[0,x_hB_],_hD_=0,_hF_=a_hE_.length-1-1|0; if(!(_hF_<_hD_)) {var i_hG_=_hD_; for(;;) {r_hC_[1]=_hI_(f_hH_,r_hC_[1],a_hE_[i_hG_+1]); var _hJ_=i_hG_+1|0; if(_hF_!==i_hG_){var i_hG_=_hJ_;continue;} break;}} return r_hC_[1];} function _h8_(l_hO_) {var l1_hP_=l_hO_,l2_hQ_=0; for(;;) {if(l1_hP_) {var l_hR_=l1_hP_[2], _hS_=[0,l1_hP_[1],l2_hQ_], l1_hP_=l_hR_, l2_hQ_=_hS_; continue;} return l2_hQ_;}} function _hW_(f_hU_,param_hT_) {if(param_hT_) {var l_hV_=param_hT_[2],r_hX_=_g$_(f_hU_,param_hT_[1]); return [0,r_hX_,_hW_(f_hU_,l_hV_)];} return 0;} function _h9_(f_h0_,param_hY_) {var param_hZ_=param_hY_; for(;;) {if(param_hZ_) {var l_h1_=param_hZ_[2]; _g$_(f_h0_,param_hZ_[1]); var param_hZ_=l_h1_; continue;} return 0;}} function _h__(x_h5_,param_h2_) {var param_h3_=param_h2_; for(;;) {if(param_h3_) {var match_h4_=param_h3_[1],l_h7_=param_h3_[2],b_h6_=match_h4_[2]; if(match_h4_[1]===x_h5_)return b_h6_; var param_h3_=l_h7_; continue;} throw [0,_c_];}} function _iB_(n_h$_,c_ib_) {var s_ia_=caml_create_string(n_h$_); caml_fill_string(s_ia_,0,n_h$_,c_ib_); return s_ia_;} function _iC_(s_ie_,ofs_ic_,len_id_) {if(0<=ofs_ic_&&0<=len_id_&&!((s_ie_.getLen()-len_id_|0)<ofs_ic_)) {var r_if_=caml_create_string(len_id_); caml_blit_string(s_ie_,ofs_ic_,r_if_,0,len_id_); return r_if_;} return _gw_(_gb_);} function _iD_(s1_ii_,ofs1_ih_,s2_ik_,ofs2_ij_,len_ig_) {if (0<= len_ig_&& 0<= ofs1_ih_&& !((s1_ii_.getLen()-len_ig_|0)<ofs1_ih_)&& 0<= ofs2_ij_&& !((s2_ik_.getLen()-len_ig_|0)<ofs2_ij_)) return caml_blit_string(s1_ii_,ofs1_ih_,s2_ik_,ofs2_ij_,len_ig_); return _gw_(_gc_);} function _iE_(sep_ir_,l_il_) {if(l_il_) {var hd_im_=l_il_[1],num_in_=[0,0],len_io_=[0,0],tl_iq_=l_il_[2]; _h9_ (function(s_ip_) {num_in_[1]+=1;len_io_[1]=len_io_[1]+s_ip_.getLen()|0;return 0;}, l_il_); var r_is_= caml_create_string (len_io_[1]+caml_mul(sep_ir_.getLen(),num_in_[1]-1|0)|0); caml_blit_string(hd_im_,0,r_is_,0,hd_im_.getLen()); var pos_it_=[0,hd_im_.getLen()]; _h9_ (function(s_iu_) {caml_blit_string(sep_ir_,0,r_is_,pos_it_[1],sep_ir_.getLen()); pos_it_[1]=pos_it_[1]+sep_ir_.getLen()|0; caml_blit_string(s_iu_,0,r_is_,pos_it_[1],s_iu_.getLen()); pos_it_[1]=pos_it_[1]+s_iu_.getLen()|0; return 0;}, tl_iq_); return r_is_;} return _gd_;} function _iF_(s_iy_,lim_ix_,i_iv_,c_iz_) {var i_iw_=i_iv_; for(;;) {if(lim_ix_<=i_iw_)throw [0,_c_]; if(s_iy_.safeGet(i_iw_)===c_iz_)return i_iw_; var _iA_=i_iw_+1|0,i_iw_=_iA_; continue;}} var _iG_=caml_sys_get_config(0)[2], _iH_=(1<<(_iG_-10|0))-1|0, _iI_=caml_mul(_iG_/8|0,_iH_)-1|0, _iV_=246, _iP_=250, _iU_=252, _iT_=253, _iS_=[0,_ga_], _iJ_=[0,_f$_]; function _iM_(param_iK_){throw [0,_iJ_];} function _iW_(blk_iL_) {var closure_iN_=blk_iL_[0+1]; blk_iL_[0+1]=_iM_; try {var result_iO_=_g$_(closure_iN_,0); blk_iL_[0+1]=result_iO_; caml_obj_set_tag(blk_iL_,_iP_);} catch(_iQ_){blk_iL_[0+1]=function(param_iR_){throw _iQ_;};throw _iQ_;} return result_iO_;} function _jk_(n_iX_) {var n_iY_=1<=n_iX_?n_iX_:1, n_iZ_=_iI_<n_iY_?_iI_:n_iY_, s_i0_=caml_create_string(n_iZ_); return [0,s_i0_,0,n_iZ_,s_i0_];} function _jl_(b_i1_){return _iC_(b_i1_[1],0,b_i1_[2]);} function _i8_(b_i2_,more_i4_) {var new_len_i3_=[0,b_i2_[3]]; for(;;) {if(new_len_i3_[1]<(b_i2_[2]+more_i4_|0)) {new_len_i3_[1]=2*new_len_i3_[1]|0;continue;} if(_iI_<new_len_i3_[1]) if((b_i2_[2]+more_i4_|0)<=_iI_)new_len_i3_[1]=_iI_;else _q_(_f9_); var new_buffer_i5_=caml_create_string(new_len_i3_[1]); _iD_(b_i2_[1],0,new_buffer_i5_,0,b_i2_[2]); b_i2_[1]=new_buffer_i5_; b_i2_[3]=new_len_i3_[1]; return 0;}} function _jm_(b_i6_,c_i9_) {var pos_i7_=b_i6_[2]; if(b_i6_[3]<=pos_i7_)_i8_(b_i6_,1); b_i6_[1].safeSet(pos_i7_,c_i9_); b_i6_[2]=pos_i7_+1|0; return 0;} function _jo_(b_je_,s_jd_,offset_i__,len_jb_) {var _i$_=offset_i__<0?1:0; if(_i$_) var _ja_=_i$_; else {var _jc_=len_jb_<0?1:0, _ja_=_jc_?_jc_:(s_jd_.getLen()-len_jb_|0)<offset_i__?1:0;} if(_ja_)_gw_(_f__); var new_position_jf_=b_je_[2]+len_jb_|0; if(b_je_[3]<new_position_jf_)_i8_(b_je_,len_jb_); _iD_(s_jd_,offset_i__,b_je_[1],b_je_[2],len_jb_); b_je_[2]=new_position_jf_; return 0;} function _jn_(b_ji_,s_jg_) {var len_jh_=s_jg_.getLen(),new_position_jj_=b_ji_[2]+len_jh_|0; if(b_ji_[3]<new_position_jj_)_i8_(b_ji_,len_jh_); _iD_(s_jg_,0,b_ji_[1],b_ji_[2],len_jh_); b_ji_[2]=new_position_jj_; return 0;} function index_of_int_js_(i_jp_) {return 0<=i_jp_?i_jp_:_q_(_gK_(_fS_,string_of_int_gU_(i_jp_)));} function add_int_index_jt_(i_jq_,idx_jr_) {return index_of_int_js_(i_jq_+idx_jr_|0);} var _ju_=_g$_(add_int_index_jt_,1); function _jz_(fmt_jx_,idx_jw_,len_jv_) {return _iC_(fmt_jx_,idx_jw_,len_jv_);} function _jF_(fmt_jy_){return _jz_(fmt_jy_,0,fmt_jy_.getLen());} function bad_conversion_jH_(sfmt_jA_,i_jB_,c_jD_) {var _jC_=_gK_(_fV_,_gK_(sfmt_jA_,_fW_)), _jE_=_gK_(_fU_,_gK_(string_of_int_gU_(i_jB_),_jC_)); return _gw_(_gK_(_fT_,_gK_(_iB_(1,c_jD_),_jE_)));} function bad_conversion_format_kw_(fmt_jG_,i_jJ_,c_jI_) {return bad_conversion_jH_(_jF_(fmt_jG_),i_jJ_,c_jI_);} function incomplete_format_kx_(fmt_jK_) {return _gw_(_gK_(_fX_,_gK_(_jF_(fmt_jK_),_fY_)));} function extract_format_j4_(fmt_jL_,start_jT_,stop_jV_,widths_jX_) {function skip_positional_spec_jS_(start_jM_) {if ((fmt_jL_.safeGet(start_jM_)-48|0)< 0|| 9< (fmt_jL_.safeGet(start_jM_)-48|0)) return start_jM_; var i_jN_=start_jM_+1|0; for(;;) {var _jO_=fmt_jL_.safeGet(i_jN_); if(48<=_jO_) {if(!(58<=_jO_)){var _jQ_=i_jN_+1|0,i_jN_=_jQ_;continue;} var _jP_=0;} else if(36===_jO_){var _jR_=i_jN_+1|0,_jP_=1;}else var _jP_=0; if(!_jP_)var _jR_=start_jM_; return _jR_;}} var start_jU_=skip_positional_spec_jS_(start_jT_+1|0), b_jW_=_jk_((stop_jV_-start_jU_|0)+10|0); _jm_(b_jW_,37); var i_jY_=start_jU_,widths_jZ_=_h8_(widths_jX_); for(;;) {if(i_jY_<=stop_jV_) {var _j0_=fmt_jL_.safeGet(i_jY_); if(42===_j0_) {if(widths_jZ_) {var t_j1_=widths_jZ_[2]; _jn_(b_jW_,string_of_int_gU_(widths_jZ_[1])); var i_j2_=skip_positional_spec_jS_(i_jY_+1|0), i_jY_=i_j2_, widths_jZ_=t_j1_; continue;} throw [0,_d_,_fZ_];} _jm_(b_jW_,_j0_); var _j3_=i_jY_+1|0,i_jY_=_j3_; continue;} return _jl_(b_jW_);}} function extract_format_int_mt_ (conv_j__,fmt_j8_,start_j7_,stop_j6_,widths_j5_) {var sfmt_j9_=extract_format_j4_(fmt_j8_,start_j7_,stop_j6_,widths_j5_); if(78!==conv_j__&&110!==conv_j__)return sfmt_j9_; sfmt_j9_.safeSet(sfmt_j9_.getLen()-1|0,117); return sfmt_j9_;} function sub_format_ky_ (incomplete_format_kf_,bad_conversion_format_kp_,conv_ku_,fmt_j$_,i_kt_) {var len_ka_=fmt_j$_.getLen(); function sub_fmt_kr_(c_kb_,i_ko_) {var close_kc_=40===c_kb_?41:125; function sub_kn_(j_kd_) {var j_ke_=j_kd_; for(;;) {if(len_ka_<=j_ke_)return _g$_(incomplete_format_kf_,fmt_j$_); if(37===fmt_j$_.safeGet(j_ke_)) {var _kg_=j_ke_+1|0; if(len_ka_<=_kg_) var _kh_=_g$_(incomplete_format_kf_,fmt_j$_); else {var _ki_=fmt_j$_.safeGet(_kg_),_kj_=_ki_-40|0; if(_kj_<0||1<_kj_) {var _kk_=_kj_-83|0; if(_kk_<0||2<_kk_) var _kl_=1; else switch(_kk_) {case 1:var _kl_=1;break; case 2:var _km_=1,_kl_=0;break; default:var _km_=0,_kl_=0;} if(_kl_){var _kh_=sub_kn_(_kg_+1|0),_km_=2;}} else var _km_=0===_kj_?0:1; switch(_km_) {case 1: var _kh_= _ki_===close_kc_ ?_kg_+1|0 :_kq_(bad_conversion_format_kp_,fmt_j$_,i_ko_,_ki_); break; case 2:break; default:var _kh_=sub_kn_(sub_fmt_kr_(_ki_,_kg_+1|0)+1|0);}} return _kh_;} var _ks_=j_ke_+1|0,j_ke_=_ks_; continue;}} return sub_kn_(i_ko_);} return sub_fmt_kr_(conv_ku_,i_kt_);} function sub_format_for_printf_kX_(conv_kv_) {return _kq_ (sub_format_ky_, incomplete_format_kx_, bad_conversion_format_kw_, conv_kv_);} function iter_on_format_args_lb_(fmt_kz_,add_conv_kK_,add_char_kU_) {var lim_kA_=fmt_kz_.getLen()-1|0; function scan_fmt_kV_(i_kB_) {var i_kC_=i_kB_; a: for(;;) {if(i_kC_<lim_kA_) {if(37===fmt_kz_.safeGet(i_kC_)) {var skip_kD_=0,i_kE_=i_kC_+1|0; for(;;) {if(lim_kA_<i_kE_) var _kF_=incomplete_format_kx_(fmt_kz_); else {var _kG_=fmt_kz_.safeGet(i_kE_); if(58<=_kG_) {if(95===_kG_) {var _kI_=i_kE_+1|0,_kH_=1,skip_kD_=_kH_,i_kE_=_kI_; continue;}} else if(32<=_kG_) switch(_kG_-32|0) {case 1: case 2: case 4: case 5: case 6: case 7: case 8: case 9: case 12: case 15:break; case 0: case 3: case 11: case 13:var _kJ_=i_kE_+1|0,i_kE_=_kJ_;continue; case 10: var _kL_=_kq_(add_conv_kK_,skip_kD_,i_kE_,105),i_kE_=_kL_; continue; default:var _kM_=i_kE_+1|0,i_kE_=_kM_;continue;} var i_kN_=i_kE_; c: for(;;) {if(lim_kA_<i_kN_) var _kO_=incomplete_format_kx_(fmt_kz_); else {var _kP_=fmt_kz_.safeGet(i_kN_); if(126<=_kP_) var _kQ_=0; else switch(_kP_) {case 78: case 88: case 100: case 105: case 111: case 117: case 120: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,105),_kQ_=1;break; case 69: case 70: case 71: case 101: case 102: case 103: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,102),_kQ_=1;break; case 33: case 37: case 44: case 64:var _kO_=i_kN_+1|0,_kQ_=1;break; case 83: case 91: case 115: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,115),_kQ_=1;break; case 97: case 114: case 116: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,_kP_),_kQ_=1; break; case 76: case 108: case 110: var j_kR_=i_kN_+1|0; if(lim_kA_<j_kR_) {var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,105),_kQ_=1;} else {var _kS_=fmt_kz_.safeGet(j_kR_)-88|0; if(_kS_<0||32<_kS_) var _kT_=1; else switch(_kS_) {case 0: case 12: case 17: case 23: case 29: case 32: var _kO_= _hI_ (add_char_kU_,_kq_(add_conv_kK_,skip_kD_,i_kN_,_kP_),105), _kQ_=1, _kT_=0; break; default:var _kT_=1;} if(_kT_) {var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,105),_kQ_=1;}} break; case 67: case 99: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,99),_kQ_=1;break; case 66: case 98: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,66),_kQ_=1;break; case 41: case 125: var _kO_=_kq_(add_conv_kK_,skip_kD_,i_kN_,_kP_),_kQ_=1; break; case 40: var _kO_=scan_fmt_kV_(_kq_(add_conv_kK_,skip_kD_,i_kN_,_kP_)), _kQ_=1; break; case 123: var i_kW_=_kq_(add_conv_kK_,skip_kD_,i_kN_,_kP_), j_kY_=_kq_(sub_format_for_printf_kX_,_kP_,fmt_kz_,i_kW_), i_kZ_=i_kW_; for(;;) {if(i_kZ_<(j_kY_-2|0)) {var _k0_=_hI_(add_char_kU_,i_kZ_,fmt_kz_.safeGet(i_kZ_)), i_kZ_=_k0_; continue;} var _k1_=j_kY_-1|0,i_kN_=_k1_; continue c;} default:var _kQ_=0;} if(!_kQ_) var _kO_=bad_conversion_format_kw_(fmt_kz_,i_kN_,_kP_);} var _kF_=_kO_; break;}} var i_kC_=_kF_; continue a;}} var _k2_=i_kC_+1|0,i_kC_=_k2_; continue;} return i_kC_;}} scan_fmt_kV_(0); return 0;} function count_arguments_of_format_ld_(fmt_lc_) {var ac_k3_=[0,0,0,0]; function add_conv_la_(skip_k8_,i_k9_,c_k4_) {var _k5_=41!==c_k4_?1:0,_k6_=_k5_?125!==c_k4_?1:0:_k5_; if(_k6_) {var inc_k7_=97===c_k4_?2:1; if(114===c_k4_)ac_k3_[3]=ac_k3_[3]+1|0; if(skip_k8_) ac_k3_[2]=ac_k3_[2]+inc_k7_|0; else ac_k3_[1]=ac_k3_[1]+inc_k7_|0;} return i_k9_+1|0;} iter_on_format_args_lb_ (fmt_lc_,add_conv_la_,function(i_k__,param_k$_){return i_k__+1|0;}); return ac_k3_[1];} function kapr_oM_(kpr_lr_,fmt_le_) {var _lf_=count_arguments_of_format_ld_(fmt_le_); if(_lf_<0||6<_lf_) {var loop_lt_= function(i_lg_,args_lm_) {if(_lf_<=i_lg_) {var a_lh_=caml_make_vect(_lf_,0), _lk_= function(i_li_,arg_lj_) {return caml_array_set(a_lh_,(_lf_-i_li_|0)-1|0,arg_lj_);}, i_ll_=0, param_ln_=args_lm_; for(;;) {if(param_ln_) {var _lo_=param_ln_[2],_lp_=param_ln_[1]; if(_lo_) {_lk_(i_ll_,_lp_); var _lq_=i_ll_+1|0,i_ll_=_lq_,param_ln_=_lo_; continue;} _lk_(i_ll_,_lp_);} return _hI_(kpr_lr_,fmt_le_,a_lh_);}} return function(x_ls_) {return loop_lt_(i_lg_+1|0,[0,x_ls_,args_lm_]);};}; return loop_lt_(0,0);} switch(_lf_) {case 1: return function(x_lv_) {var a_lu_=caml_make_vect(1,0); caml_array_set(a_lu_,0,x_lv_); return _hI_(kpr_lr_,fmt_le_,a_lu_);}; case 2: return function(x_lx_,y_ly_) {var a_lw_=caml_make_vect(2,0); caml_array_set(a_lw_,0,x_lx_); caml_array_set(a_lw_,1,y_ly_); return _hI_(kpr_lr_,fmt_le_,a_lw_);}; case 3: return function(x_lA_,y_lB_,z_lC_) {var a_lz_=caml_make_vect(3,0); caml_array_set(a_lz_,0,x_lA_); caml_array_set(a_lz_,1,y_lB_); caml_array_set(a_lz_,2,z_lC_); return _hI_(kpr_lr_,fmt_le_,a_lz_);}; case 4: return function(x_lE_,y_lF_,z_lG_,t_lH_) {var a_lD_=caml_make_vect(4,0); caml_array_set(a_lD_,0,x_lE_); caml_array_set(a_lD_,1,y_lF_); caml_array_set(a_lD_,2,z_lG_); caml_array_set(a_lD_,3,t_lH_); return _hI_(kpr_lr_,fmt_le_,a_lD_);}; case 5: return function(x_lJ_,y_lK_,z_lL_,t_lM_,u_lN_) {var a_lI_=caml_make_vect(5,0); caml_array_set(a_lI_,0,x_lJ_); caml_array_set(a_lI_,1,y_lK_); caml_array_set(a_lI_,2,z_lL_); caml_array_set(a_lI_,3,t_lM_); caml_array_set(a_lI_,4,u_lN_); return _hI_(kpr_lr_,fmt_le_,a_lI_);}; case 6: return function(x_lP_,y_lQ_,z_lR_,t_lS_,u_lT_,v_lU_) {var a_lO_=caml_make_vect(6,0); caml_array_set(a_lO_,0,x_lP_); caml_array_set(a_lO_,1,y_lQ_); caml_array_set(a_lO_,2,z_lR_); caml_array_set(a_lO_,3,t_lS_); caml_array_set(a_lO_,4,u_lT_); caml_array_set(a_lO_,5,v_lU_); return _hI_(kpr_lr_,fmt_le_,a_lO_);}; default:return _hI_(kpr_lr_,fmt_le_,[0]);}} function scan_positional_spec_mp_(fmt_lV_,got_spec_lY_,i_lW_) {var _lX_=fmt_lV_.safeGet(i_lW_); if((_lX_-48|0)<0||9<(_lX_-48|0))return _hI_(got_spec_lY_,0,i_lW_); var accu_lZ_=_lX_-48|0,j_l0_=i_lW_+1|0; for(;;) {var _l1_=fmt_lV_.safeGet(j_l0_); if(48<=_l1_) {if(!(58<=_l1_)) {var _l4_=j_l0_+1|0, _l3_=(10*accu_lZ_|0)+(_l1_-48|0)|0, accu_lZ_=_l3_, j_l0_=_l4_; continue;} var _l2_=0;} else if(36===_l1_) if(0===accu_lZ_) {var _l5_=_q_(_f1_),_l2_=1;} else {var _l5_= _hI_(got_spec_lY_,[0,index_of_int_js_(accu_lZ_-1|0)],j_l0_+1|0), _l2_=1;} else var _l2_=0; if(!_l2_)var _l5_=_hI_(got_spec_lY_,0,i_lW_); return _l5_;}} function next_index_mk_(spec_l6_,n_l7_) {return spec_l6_?n_l7_:_g$_(_ju_,n_l7_);} function get_index_l__(spec_l8_,n_l9_){return spec_l8_?spec_l8_[1]:n_l9_;} function _oe_ (fmt_me_, args_mb_, n_n4_, pos_mu_, cont_s_mx_, cont_a_nY_, cont_t_n1_, cont_f_nJ_, cont_m_nI_) {function get_arg_mg_(spec_ma_,n_l$_) {return caml_array_get(args_mb_,get_index_l__(spec_ma_,n_l$_));} function scan_flags_mm_(spec_mo_,n_mh_,widths_mj_,i_mc_) {var i_md_=i_mc_; for(;;) {var _mf_=fmt_me_.safeGet(i_md_)-32|0; if(!(_mf_<0||25<_mf_)) switch(_mf_) {case 1: case 2: case 4: case 5: case 6: case 7: case 8: case 9: case 12: case 15:break; case 10: return scan_positional_spec_mp_ (fmt_me_, function(wspec_mi_,i_mn_) {var _ml_=[0,get_arg_mg_(wspec_mi_,n_mh_),widths_mj_]; return scan_flags_mm_ (spec_mo_,next_index_mk_(wspec_mi_,n_mh_),_ml_,i_mn_);}, i_md_+1|0); default:var _mq_=i_md_+1|0,i_md_=_mq_;continue;} var _mr_=fmt_me_.safeGet(i_md_); if(124<=_mr_) var _ms_=0; else switch(_mr_) {case 78: case 88: case 100: case 105: case 111: case 117: case 120: var x_mv_=get_arg_mg_(spec_mo_,n_mh_), s_mw_= caml_format_int (extract_format_int_mt_ (_mr_,fmt_me_,pos_mu_,i_md_,widths_mj_), x_mv_), _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_mw_,i_md_+1|0), _ms_=1; break; case 69: case 71: case 101: case 102: case 103: var x_mz_=get_arg_mg_(spec_mo_,n_mh_), s_mA_= caml_format_float (extract_format_j4_(fmt_me_,pos_mu_,i_md_,widths_mj_),x_mz_), _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_mA_,i_md_+1|0), _ms_=1; break; case 76: case 108: case 110: var _mB_=fmt_me_.safeGet(i_md_+1|0)-88|0; if(_mB_<0||32<_mB_) var _mC_=1; else switch(_mB_) {case 0: case 12: case 17: case 23: case 29: case 32: var i_mD_=i_md_+1|0,_mE_=_mr_-108|0; if(_mE_<0||2<_mE_) var _mF_=0; else {switch(_mE_) {case 1:var _mF_=0,_mG_=0;break; case 2: var x_mH_=get_arg_mg_(spec_mo_,n_mh_), _mI_= caml_format_int (extract_format_j4_(fmt_me_,pos_mu_,i_mD_,widths_mj_),x_mH_), _mG_=1; break; default: var x_mJ_=get_arg_mg_(spec_mo_,n_mh_), _mI_= caml_format_int (extract_format_j4_(fmt_me_,pos_mu_,i_mD_,widths_mj_),x_mJ_), _mG_=1;} if(_mG_){var s_mK_=_mI_,_mF_=1;}} if(!_mF_) {var x_mL_=get_arg_mg_(spec_mo_,n_mh_), s_mK_= caml_int64_format (extract_format_j4_(fmt_me_,pos_mu_,i_mD_,widths_mj_),x_mL_);} var _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_mK_,i_mD_+1|0), _ms_=1, _mC_=0; break; default:var _mC_=1;} if(_mC_) {var x_mM_=get_arg_mg_(spec_mo_,n_mh_), s_mN_= caml_format_int (extract_format_int_mt_ (110,fmt_me_,pos_mu_,i_md_,widths_mj_), x_mM_), _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_mN_,i_md_+1|0), _ms_=1;} break; case 37: case 64: var _my_=_kq_(cont_s_mx_,n_mh_,_iB_(1,_mr_),i_md_+1|0),_ms_=1; break; case 83: case 115: var x_mO_=get_arg_mg_(spec_mo_,n_mh_); if(115===_mr_) var x_mP_=x_mO_; else {var n_mQ_=[0,0],_mR_=0,_mS_=x_mO_.getLen()-1|0; if(!(_mS_<_mR_)) {var i_mT_=_mR_; for(;;) {var _mU_=x_mO_.safeGet(i_mT_), _mV_= 14<=_mU_ ?34===_mU_?1:92===_mU_?1:0 :11<=_mU_?13<=_mU_?1:0:8<=_mU_?1:0, _mW_=_mV_?2:caml_is_printable(_mU_)?1:4; n_mQ_[1]=n_mQ_[1]+_mW_|0; var _mX_=i_mT_+1|0; if(_mS_!==i_mT_){var i_mT_=_mX_;continue;} break;}} if(n_mQ_[1]===x_mO_.getLen()) var _mY_=x_mO_; else {var s__mZ_=caml_create_string(n_mQ_[1]); n_mQ_[1]=0; var _m0_=0,_m1_=x_mO_.getLen()-1|0; if(!(_m1_<_m0_)) {var i_m2_=_m0_; for(;;) {var _m3_=x_mO_.safeGet(i_m2_),_m4_=_m3_-34|0; if(_m4_<0||58<_m4_) if(-20<=_m4_) var _m5_=1; else {switch(_m4_+34|0) {case 8: s__mZ_.safeSet(n_mQ_[1],92); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],98); var _m6_=1; break; case 9: s__mZ_.safeSet(n_mQ_[1],92); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],116); var _m6_=1; break; case 10: s__mZ_.safeSet(n_mQ_[1],92); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],110); var _m6_=1; break; case 13: s__mZ_.safeSet(n_mQ_[1],92); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],114); var _m6_=1; break; default:var _m5_=1,_m6_=0;} if(_m6_)var _m5_=0;} else var _m5_= (_m4_-1|0)<0||56<(_m4_-1|0) ?(s__mZ_.safeSet(n_mQ_[1],92), n_mQ_[1]+= 1, s__mZ_.safeSet(n_mQ_[1],_m3_), 0) :1; if(_m5_) if(caml_is_printable(_m3_)) s__mZ_.safeSet(n_mQ_[1],_m3_); else {s__mZ_.safeSet(n_mQ_[1],92); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],48+(_m3_/100|0)|0); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],48+((_m3_/10|0)%10|0)|0); n_mQ_[1]+=1; s__mZ_.safeSet(n_mQ_[1],48+(_m3_%10|0)|0);} n_mQ_[1]+=1; var _m7_=i_m2_+1|0; if(_m1_!==i_m2_){var i_m2_=_m7_;continue;} break;}} var _mY_=s__mZ_;} var x_mP_=_gK_(_f5_,_gK_(_mY_,_f6_));} if(i_md_===(pos_mu_+1|0)) var s_m8_=x_mP_; else {var _m9_=extract_format_j4_(fmt_me_,pos_mu_,i_md_,widths_mj_); try {var neg_m__=0,i_m$_=1; for(;;) {if(_m9_.getLen()<=i_m$_) var _na_=[0,0,neg_m__]; else {var _nb_=_m9_.safeGet(i_m$_); if(49<=_nb_) if(58<=_nb_) var _nc_=0; else {var _na_= [0, caml_int_of_string (_iC_(_m9_,i_m$_,(_m9_.getLen()-i_m$_|0)-1|0)), neg_m__], _nc_=1;} else {if(45===_nb_) {var _ne_=i_m$_+1|0,_nd_=1,neg_m__=_nd_,i_m$_=_ne_; continue;} var _nc_=0;} if(!_nc_){var _nf_=i_m$_+1|0,i_m$_=_nf_;continue;}} var match_ng_=_na_; break;}} catch(_nh_) {if(_nh_[1]!==_a_)throw _nh_; var match_ng_=bad_conversion_jH_(_m9_,0,115);} var p_ni_=match_ng_[1], _nj_=x_mP_.getLen(), _nk_=0, neg_no_=match_ng_[2], _nn_=32; if(p_ni_===_nj_&&0===_nk_) {var _nl_=x_mP_,_nm_=1;} else var _nm_=0; if(!_nm_) if(p_ni_<=_nj_) var _nl_=_iC_(x_mP_,_nk_,_nj_); else {var res_np_=_iB_(p_ni_,_nn_); if(neg_no_) _iD_(x_mP_,_nk_,res_np_,0,_nj_); else _iD_(x_mP_,_nk_,res_np_,p_ni_-_nj_|0,_nj_); var _nl_=res_np_;} var s_m8_=_nl_;} var _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_m8_,i_md_+1|0), _ms_=1; break; case 67: case 99: var x_nq_=get_arg_mg_(spec_mo_,n_mh_); if(99===_mr_) var s_nr_=_iB_(1,x_nq_); else {if(39===x_nq_) var _ns_=_gf_; else if(92===x_nq_) var _ns_=_gg_; else {if(14<=x_nq_) var _nt_=0; else switch(x_nq_) {case 8:var _ns_=_gk_,_nt_=1;break; case 9:var _ns_=_gj_,_nt_=1;break; case 10:var _ns_=_gi_,_nt_=1;break; case 13:var _ns_=_gh_,_nt_=1;break; default:var _nt_=0;} if(!_nt_) if(caml_is_printable(x_nq_)) {var s_nu_=caml_create_string(1); s_nu_.safeSet(0,x_nq_); var _ns_=s_nu_;} else {var s_nv_=caml_create_string(4); s_nv_.safeSet(0,92); s_nv_.safeSet(1,48+(x_nq_/100|0)|0); s_nv_.safeSet(2,48+((x_nq_/10|0)%10|0)|0); s_nv_.safeSet(3,48+(x_nq_%10|0)|0); var _ns_=s_nv_;}} var s_nr_=_gK_(_f3_,_gK_(_ns_,_f4_));} var _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_nr_,i_md_+1|0), _ms_=1; break; case 66: case 98: var _nx_=i_md_+1|0, _nw_=get_arg_mg_(spec_mo_,n_mh_)?_gn_:_gm_, _my_=_kq_(cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),_nw_,_nx_), _ms_=1; break; case 40: case 123: var xf_ny_=get_arg_mg_(spec_mo_,n_mh_), j_nz_=_kq_(sub_format_for_printf_kX_,_mr_,fmt_me_,i_md_+1|0); if(123===_mr_) {var b_nA_=_jk_(xf_ny_.getLen()), add_char_nE_= function(i_nC_,c_nB_){_jm_(b_nA_,c_nB_);return i_nC_+1|0;}; iter_on_format_args_lb_ (xf_ny_, function(skip_nD_,i_nG_,c_nF_) {if(skip_nD_)_jn_(b_nA_,_f0_);else _jm_(b_nA_,37); return add_char_nE_(i_nG_,c_nF_);}, add_char_nE_); var _nH_=_jl_(b_nA_), _my_= _kq_(cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),_nH_,j_nz_), _ms_=1;} else {var _my_= _kq_(cont_m_nI_,next_index_mk_(spec_mo_,n_mh_),xf_ny_,j_nz_), _ms_=1;} break; case 33:var _my_=_hI_(cont_f_nJ_,n_mh_,i_md_+1|0),_ms_=1;break; case 41: var _my_=_kq_(cont_s_mx_,n_mh_,_f8_,i_md_+1|0),_ms_=1;break; case 44: var _my_=_kq_(cont_s_mx_,n_mh_,_f7_,i_md_+1|0),_ms_=1;break; case 70: var x_nK_=get_arg_mg_(spec_mo_,n_mh_); if(0===widths_mj_) var s_nL_=string_of_float_gV_(x_nK_); else {var sfmt_nM_= extract_format_j4_(fmt_me_,pos_mu_,i_md_,widths_mj_); if(70===_mr_)sfmt_nM_.safeSet(sfmt_nM_.getLen()-1|0,103); var s_nN_=caml_format_float(sfmt_nM_,x_nK_); if(3<=caml_classify_float(x_nK_)) var _nO_=s_nN_; else {var i_nP_=0,l_nQ_=s_nN_.getLen(); for(;;) {if(l_nQ_<=i_nP_) var _nR_=_gK_(s_nN_,_f2_); else {var _nS_=s_nN_.safeGet(i_nP_)-46|0, _nT_= _nS_<0||23<_nS_ ?55===_nS_?1:0 :(_nS_-1|0)<0||21<(_nS_-1|0)?1:0; if(!_nT_){var _nU_=i_nP_+1|0,i_nP_=_nU_;continue;} var _nR_=s_nN_;} var _nO_=_nR_; break;}} var s_nL_=_nO_;} var _my_= _kq_ (cont_s_mx_,next_index_mk_(spec_mo_,n_mh_),s_nL_,i_md_+1|0), _ms_=1; break; case 91: var _my_=bad_conversion_format_kw_(fmt_me_,i_md_,_mr_),_ms_=1; break; case 97: var printer_nV_=get_arg_mg_(spec_mo_,n_mh_), n_nW_=_g$_(_ju_,get_index_l__(spec_mo_,n_mh_)), arg_nX_=get_arg_mg_(0,n_nW_), _my_= _nZ_ (cont_a_nY_, next_index_mk_(spec_mo_,n_nW_), printer_nV_, arg_nX_, i_md_+1|0), _ms_=1; break; case 114: var _my_=bad_conversion_format_kw_(fmt_me_,i_md_,_mr_),_ms_=1; break; case 116: var printer_n0_=get_arg_mg_(spec_mo_,n_mh_), _my_= _kq_ (cont_t_n1_, next_index_mk_(spec_mo_,n_mh_), printer_n0_, i_md_+1|0), _ms_=1; break; default:var _ms_=0;} if(!_ms_)var _my_=bad_conversion_format_kw_(fmt_me_,i_md_,_mr_); return _my_;}} var _n6_=pos_mu_+1|0,_n3_=0; return scan_positional_spec_mp_ (fmt_me_, function(spec_n5_,i_n2_) {return scan_flags_mm_(spec_n5_,n_n4_,_n3_,i_n2_);}, _n6_);} function _oR_ (to_s_ot_,get_out_n8_,outc_om_,outs_op_,flush_oB_,k_oL_,fmt_n7_) {var out_n9_=_g$_(get_out_n8_,fmt_n7_); function pr_oJ_(k_oc_,n_oK_,fmt_n__,v_ol_) {var len_ob_=fmt_n__.getLen(); function doprn_oq_(n_ok_,i_n$_) {var i_oa_=i_n$_; for(;;) {if(len_ob_<=i_oa_)return _g$_(k_oc_,out_n9_); var _od_=fmt_n__.safeGet(i_oa_); if(37===_od_) return _oe_ (fmt_n__, v_ol_, n_ok_, i_oa_, cont_s_oj_, cont_a_oi_, cont_t_oh_, cont_f_og_, cont_m_of_); _hI_(outc_om_,out_n9_,_od_); var _on_=i_oa_+1|0,i_oa_=_on_; continue;}} function cont_s_oj_(n_os_,s_oo_,i_or_) {_hI_(outs_op_,out_n9_,s_oo_);return doprn_oq_(n_os_,i_or_);} function cont_a_oi_(n_ox_,printer_ov_,arg_ou_,i_ow_) {if(to_s_ot_) _hI_(outs_op_,out_n9_,_hI_(printer_ov_,0,arg_ou_)); else _hI_(printer_ov_,out_n9_,arg_ou_); return doprn_oq_(n_ox_,i_ow_);} function cont_t_oh_(n_oA_,printer_oy_,i_oz_) {if(to_s_ot_) _hI_(outs_op_,out_n9_,_g$_(printer_oy_,0)); else _g$_(printer_oy_,out_n9_); return doprn_oq_(n_oA_,i_oz_);} function cont_f_og_(n_oD_,i_oC_) {_g$_(flush_oB_,out_n9_);return doprn_oq_(n_oD_,i_oC_);} function cont_m_of_(n_oF_,xf_oE_,i_oG_) {var m_oH_= add_int_index_jt_(count_arguments_of_format_ld_(xf_oE_),n_oF_); return pr_oJ_ (function(param_oI_){return doprn_oq_(m_oH_,i_oG_);}, n_oF_, xf_oE_, v_ol_);} return doprn_oq_(n_oK_,0);} return kapr_oM_(_hI_(pr_oJ_,k_oL_,index_of_int_js_(0)),fmt_n7_);} function _o5_(oc_oO_) {function _oQ_(_oN_){return 0;} return _oS_ (_oR_, 0, function(param_oP_){return oc_oO_;}, _hh_, output_string_g9_, _hg_, _oQ_);} function _o1_(fmt_oT_){return _jk_(2*fmt_oT_.getLen()|0);} function _oY_(k_oW_,b_oU_) {var s_oV_=_jl_(b_oU_);b_oU_[2]=0;return _g$_(k_oW_,s_oV_);} function _o4_(k_oX_) {var _o0_=_g$_(_oY_,k_oX_); return _oS_(_oR_,1,_o1_,_jm_,_jn_,function(_oZ_){return 0;},_o0_);} function _o6_(fmt_o3_) {return _hI_(_o4_,function(s_o2_){return s_o2_;},fmt_o3_);} var _o7_=[0,0]; function _pc_(x_o8_,i_o9_) {var f_o__=x_o8_[i_o9_+1]; return caml_obj_is_block(f_o__) ?caml_obj_tag(f_o__)===_iU_ ?_hI_(_o6_,_fy_,f_o__) :caml_obj_tag(f_o__)===_iT_?string_of_float_gV_(f_o__):_fx_ :_hI_(_o6_,_fz_,f_o__);} function _pb_(x_o$_,i_pa_) {if(x_o$_.length-1<=i_pa_)return _fR_; var _pd_=_pb_(x_o$_,i_pa_+1|0); return _kq_(_o6_,_fQ_,_pc_(x_o$_,i_pa_),_pd_);} function _py_(s_pk_,seed_pe_) {var seed_pf_=0===seed_pe_.length-1?[0,0]:seed_pe_, l_pg_=seed_pf_.length-1, _ph_=0, _pi_=54; if(!(_pi_<_ph_)) {var i_pj_=_ph_; for(;;) {caml_array_set(s_pk_[1],i_pj_,i_pj_); var _pl_=i_pj_+1|0; if(_pi_!==i_pj_){var i_pj_=_pl_;continue;} break;}} var accu_pm_=[0,_fv_],_pn_=0,_po_=54+_gy_(55,l_pg_)|0; if(!(_po_<_pn_)) {var i_pp_=_pn_; for(;;) {var j_pq_=i_pp_%55|0, _pr_=accu_pm_[1], _ps_= _gK_ (_pr_, string_of_int_gU_ (caml_array_get(seed_pf_,caml_mod(i_pp_,l_pg_)))); accu_pm_[1]=caml_md5_string(_ps_,0,_ps_.getLen()); var _pt_=accu_pm_[1]; caml_array_set (s_pk_[1], j_pq_, (caml_array_get(s_pk_[1],j_pq_)^ (((_pt_.safeGet(0)+(_pt_.safeGet(1)<<8)|0)+ (_pt_.safeGet(2)<<16)| 0)+ (_pt_.safeGet(3)<<24)| 0))& 1073741823); var _pu_=i_pp_+1|0; if(_po_!==i_pp_){var i_pp_=_pu_;continue;} break;}} s_pk_[2]=0; return 0;} function _pz_(s_pv_) {s_pv_[2]=(s_pv_[2]+1|0)%55|0; var curval_pw_=caml_array_get(s_pv_[1],s_pv_[2]), newval30_px_= (caml_array_get(s_pv_[1],(s_pv_[2]+24|0)%55|0)+ (curval_pw_^curval_pw_>>>25&31)| 0)& 1073741823; caml_array_set(s_pv_[1],s_pv_[2],newval30_px_); return newval30_px_;} 32===_iG_; var _pA_=[0,_fu_.slice(),0]; try {var _pB_=caml_sys_getenv(_ft_),params_pC_=_pB_;} catch(_pD_) {if(_pD_[1]!==_c_)throw _pD_; try {var _pE_=caml_sys_getenv(_fs_),_pF_=_pE_;} catch(_pG_){if(_pG_[1]!==_c_)throw _pG_;var _pF_=_fr_;} var params_pC_=_pF_;} var _pH_=0,l_pI_=params_pC_.getLen(),_pK_=82; if(0<=_pH_&&!(l_pI_<_pH_)) try {_iF_(params_pC_,l_pI_,_pH_,_pK_);var _pL_=1,_pM_=_pL_,_pJ_=1;} catch(_pN_){if(_pN_[1]!==_c_)throw _pN_;var _pM_=0,_pJ_=1;} else var _pJ_=0; if(!_pJ_)var _pM_=_gw_(_ge_); var _pQ_= [246, function(_pP_) {var _pO_=[0,caml_make_vect(55,0),0]; _py_(_pO_,caml_sys_random_seed(0)); return _pO_;}]; function _qe_(_opt__pR_,initial_size_pU_) {var random_pS_=_opt__pR_?_opt__pR_[1]:_pM_,x_pT_=16; for(;;) {if(!(initial_size_pU_<=x_pT_)&&!(_iH_<(x_pT_*2|0))) {var _pV_=x_pT_*2|0,x_pT_=_pV_;continue;} if(random_pS_) {var _pW_=caml_obj_tag(_pQ_), _pX_=250===_pW_?_pQ_[1]:246===_pW_?_iW_(_pQ_):_pQ_, seed_pY_=_pz_(_pX_);} else var seed_pY_=0; return [0,0,caml_make_vect(x_pT_,0),seed_pY_,x_pT_];}} function _p2_(h_pZ_,key_p0_) {if(3<=h_pZ_.length-1) {var _p1_=h_pZ_[2].length-1-1|0; return caml_hash(10,100,h_pZ_[3],key_p0_)&_p1_;} return caml_mod(caml_hash_univ_param(10,100,key_p0_),h_pZ_[2].length-1);} function _qf_(h_p4_,key_p3_) {var _p5_=_p2_(h_p4_,key_p3_),_p6_=caml_array_get(h_p4_[2],_p5_); if(_p6_) {var rest1_p7_=_p6_[3],d1_p8_=_p6_[2]; if(0===caml_compare(key_p3_,_p6_[1]))return d1_p8_; if(rest1_p7_) {var rest2_p9_=rest1_p7_[3],d2_p__=rest1_p7_[2]; if(0===caml_compare(key_p3_,rest1_p7_[1]))return d2_p__; if(rest2_p9_) {var rest3_qa_=rest2_p9_[3],d3_p$_=rest2_p9_[2]; if(0===caml_compare(key_p3_,rest2_p9_[1]))return d3_p$_; var param_qb_=rest3_qa_; for(;;) {if(param_qb_) {var rest_qd_=param_qb_[3],d_qc_=param_qb_[2]; if(0===caml_compare(key_p3_,param_qb_[1]))return d_qc_; var param_qb_=rest_qd_; continue;} throw [0,_c_];}} throw [0,_c_];} throw [0,_c_];} throw [0,_c_];} function add_queue_ql_(x_qg_,q_qi_) {var c_qh_=[0,[0,x_qg_,0]],_qj_=q_qi_[1]; if(_qj_) {var cell_qk_=_qj_[1];q_qi_[1]=c_qh_;cell_qk_[2]=c_qh_;return 0;} q_qi_[1]=c_qh_; q_qi_[2]=c_qh_; return 0;} var Empty_queue_qm_=[0,_e9_]; function take_queue_qu_(q_qn_) {var _qo_=q_qn_[2]; if(_qo_) {var match_qp_=_qo_[1],tl_qq_=match_qp_[2],x_qr_=match_qp_[1]; q_qn_[2]=tl_qq_; if(0===tl_qq_)q_qn_[1]=0; return x_qr_;} throw [0,Empty_queue_qm_];} function pp_enqueue_qv_(state_qt_,token_qs_) {state_qt_[13]=state_qt_[13]+token_qs_[3]|0; return add_queue_ql_(token_qs_,state_qt_[27]);} var pp_infinity_qw_=1000000010; function pp_output_string_rp_(state_qy_,s_qx_) {return _kq_(state_qy_[17],s_qx_,0,s_qx_.getLen());} function pp_output_newline_qC_(state_qz_){return _g$_(state_qz_[19],0);} function pp_display_blanks_qG_(state_qA_,n_qB_) {return _g$_(state_qA_[20],n_qB_);} function break_new_line_qH_(state_qD_,offset_qF_,width_qE_) {pp_output_newline_qC_(state_qD_); state_qD_[11]=1; state_qD_[10]= _gx_(state_qD_[8],(state_qD_[6]-width_qE_|0)+offset_qF_|0); state_qD_[9]=state_qD_[6]-state_qD_[10]|0; return pp_display_blanks_qG_(state_qD_,state_qD_[10]);} function break_line_rk_(state_qJ_,width_qI_) {return break_new_line_qH_(state_qJ_,0,width_qI_);} function break_same_line_q1_(state_qK_,width_qL_) {state_qK_[9]=state_qK_[9]-width_qL_|0; return pp_display_blanks_qG_(state_qK_,width_qL_);} function advance_left_rI_(state_qM_) {try {for(;;) {var _qN_=state_qM_[27][2]; if(!_qN_)throw [0,Empty_queue_qm_]; var x_qO_=_qN_[1][1], size_qP_=x_qO_[1], tok_qQ_=x_qO_[2], _qR_=size_qP_<0?1:0, len_qT_=x_qO_[3], _qS_=_qR_?(state_qM_[13]-state_qM_[12]|0)<state_qM_[9]?1:0:_qR_, _qU_=1-_qS_; if(_qU_) {take_queue_qu_(state_qM_[27]); var _qV_=0<=size_qP_?size_qP_:pp_infinity_qw_; if(typeof tok_qQ_==="number") switch(tok_qQ_) {case 1: var _rr_=state_qM_[2];if(_rr_)state_qM_[2]=_rr_[2];break; case 2: var _rs_=state_qM_[3];if(_rs_)state_qM_[3]=_rs_[2];break; case 3: var _rt_=state_qM_[2]; if(_rt_) break_line_rk_(state_qM_,_rt_[1][2]); else pp_output_newline_qC_(state_qM_); break; case 4: if(state_qM_[10]!==(state_qM_[6]-state_qM_[9]|0)) {var match_ru_=take_queue_qu_(state_qM_[27]), size_rv_=match_ru_[1]; state_qM_[12]=state_qM_[12]-match_ru_[3]|0; state_qM_[9]=state_qM_[9]+size_rv_|0;} break; case 5: var _rw_=state_qM_[5]; if(_rw_) {var tags_rx_=_rw_[2]; pp_output_string_rp_(state_qM_,_g$_(state_qM_[24],_rw_[1])); state_qM_[5]=tags_rx_;} break; default: var _ry_=state_qM_[3]; if(_ry_) {var tabs_rz_=_ry_[1][1], add_tab_rD_= function(n_rC_,ls_rA_) {if(ls_rA_) {var x_rB_=ls_rA_[1],l_rE_=ls_rA_[2]; return caml_lessthan(n_rC_,x_rB_) ?[0,n_rC_,ls_rA_] :[0,x_rB_,add_tab_rD_(n_rC_,l_rE_)];} return [0,n_rC_,0];}; tabs_rz_[1]= add_tab_rD_(state_qM_[6]-state_qM_[9]|0,tabs_rz_[1]);}} else switch(tok_qQ_[0]) {case 1: var off_qW_=tok_qQ_[2],n_qX_=tok_qQ_[1],_qY_=state_qM_[2]; if(_qY_) {var match_qZ_=_qY_[1],width_q0_=match_qZ_[2]; switch(match_qZ_[1]) {case 1: break_new_line_qH_(state_qM_,off_qW_,width_q0_);break; case 2: break_new_line_qH_(state_qM_,off_qW_,width_q0_);break; case 3: if(state_qM_[9]<_qV_) break_new_line_qH_(state_qM_,off_qW_,width_q0_); else break_same_line_q1_(state_qM_,n_qX_); break; case 4: if (state_qM_[11]|| !(state_qM_[9]< _qV_|| ((state_qM_[6]-width_q0_|0)+off_qW_|0)< state_qM_[10])) break_same_line_q1_(state_qM_,n_qX_); else break_new_line_qH_(state_qM_,off_qW_,width_q0_); break; case 5:break_same_line_q1_(state_qM_,n_qX_);break; default:break_same_line_q1_(state_qM_,n_qX_);}} break; case 2: var insertion_point_q2_=state_qM_[6]-state_qM_[9]|0, _q3_=state_qM_[3], off_rd_=tok_qQ_[2], n_rc_=tok_qQ_[1]; if(_q3_) {var tabs_q4_=_q3_[1][1],_q5_=tabs_q4_[1]; if(_q5_) {var x_q$_=_q5_[1]; try {var param_q6_=tabs_q4_[1]; for(;;) {if(!param_q6_)throw [0,_c_]; var x_q7_=param_q6_[1],l_q9_=param_q6_[2]; if(!caml_greaterequal(x_q7_,insertion_point_q2_)) {var param_q6_=l_q9_;continue;} var _q8_=x_q7_; break;}} catch(_q__){if(_q__[1]!==_c_)throw _q__;var _q8_=x_q$_;} var tab_ra_=_q8_;} else var tab_ra_=insertion_point_q2_; var offset_rb_=tab_ra_-insertion_point_q2_|0; if(0<=offset_rb_) break_same_line_q1_(state_qM_,offset_rb_+n_rc_|0); else break_new_line_qH_(state_qM_,tab_ra_+off_rd_|0,state_qM_[6]);} break; case 3: var ty_re_=tok_qQ_[2],off_rl_=tok_qQ_[1]; if(state_qM_[8]<(state_qM_[6]-state_qM_[9]|0)) {var _rf_=state_qM_[2]; if(_rf_) {var match_rg_=_rf_[1], width_rh_=match_rg_[2], bl_ty_ri_=match_rg_[1], _rj_= state_qM_[9]<width_rh_ ?0===bl_ty_ri_ ?0 :5<=bl_ty_ri_?1:(break_line_rk_(state_qM_,width_rh_),1) :0; _rj_;} else pp_output_newline_qC_(state_qM_);} var offset_rn_=state_qM_[9]-off_rl_|0, bl_type_rm_=1===ty_re_?1:state_qM_[9]<_qV_?ty_re_:5; state_qM_[2]=[0,[0,bl_type_rm_,offset_rn_],state_qM_[2]]; break; case 4:state_qM_[3]=[0,tok_qQ_[1],state_qM_[3]];break; case 5: var tag_name_ro_=tok_qQ_[1]; pp_output_string_rp_ (state_qM_,_g$_(state_qM_[23],tag_name_ro_)); state_qM_[5]=[0,tag_name_ro_,state_qM_[5]]; break; default: var s_rq_=tok_qQ_[1]; state_qM_[9]=state_qM_[9]-_qV_|0; pp_output_string_rp_(state_qM_,s_rq_); state_qM_[11]=0;} state_qM_[12]=len_qT_+state_qM_[12]|0; continue;} break;}} catch(_rF_){if(_rF_[1]===Empty_queue_qm_)return 0;throw _rF_;} return _qU_;} function enqueue_advance_rP_(state_rH_,tok_rG_) {pp_enqueue_qv_(state_rH_,tok_rG_);return advance_left_rI_(state_rH_);} function make_queue_elem_rN_(size_rL_,tok_rK_,len_rJ_) {return [0,size_rL_,tok_rK_,len_rJ_];} function enqueue_string_as_rR_(state_rQ_,size_rO_,s_rM_) {return enqueue_advance_rP_ (state_rQ_,make_queue_elem_rN_(size_rO_,[0,s_rM_],size_rO_));} var scan_stack_bottom_rS_=[0,[0,-1,make_queue_elem_rN_(-1,_e8_,0)],0]; function clear_scan_stack_r0_(state_rT_) {state_rT_[1]=scan_stack_bottom_rS_;return 0;} function set_size_r9_(state_rU_,ty_r2_) {var _rV_=state_rU_[1]; if(_rV_) {var match_rW_=_rV_[1], queue_elem_rX_=match_rW_[2], size_rY_=queue_elem_rX_[1], t_rZ_=_rV_[2], tok_r1_=queue_elem_rX_[2]; if(match_rW_[1]<state_rU_[12])return clear_scan_stack_r0_(state_rU_); if(typeof tok_r1_!=="number") switch(tok_r1_[0]) {case 1: case 2: var _r3_= ty_r2_ ?(queue_elem_rX_[1]= state_rU_[13]+ size_rY_| 0, state_rU_[1]= t_rZ_, 0) :ty_r2_; return _r3_; case 3: var _r4_=1-ty_r2_, _r5_= _r4_ ?(queue_elem_rX_[1]= state_rU_[13]+ size_rY_| 0, state_rU_[1]= t_rZ_, 0) :_r4_; return _r5_; default:} return 0;} return 0;} function scan_push_sb_(state_r7_,b_r8_,tok_r6_) {pp_enqueue_qv_(state_r7_,tok_r6_); if(b_r8_)set_size_r9_(state_r7_,1); state_r7_[1]=[0,[0,state_r7_[13],tok_r6_],state_r7_[1]]; return 0;} function pp_open_box_gen_sp_(state_r__,indent_sa_,br_ty_r$_) {state_r__[14]=state_r__[14]+1|0; if(state_r__[14]<state_r__[15]) return scan_push_sb_ (state_r__, 0, make_queue_elem_rN_ (-state_r__[13]|0,[3,indent_sa_,br_ty_r$_],0)); var _sc_=state_r__[14]===state_r__[15]?1:0; if(_sc_) {var _sd_=state_r__[16]; return enqueue_string_as_rR_(state_r__,_sd_.getLen(),_sd_);} return _sc_;} function pp_close_box_sm_(state_se_,param_sh_) {var _sf_=1<state_se_[14]?1:0; if(_sf_) {if(state_se_[14]<state_se_[15]) {pp_enqueue_qv_(state_se_,[0,0,1,0]); set_size_r9_(state_se_,1); set_size_r9_(state_se_,0);} state_se_[14]=state_se_[14]-1|0; var _sg_=0;} else var _sg_=_sf_; return _sg_;} function pp_open_tag_sK_(state_si_,tag_name_sj_) {if(state_si_[21]) {state_si_[4]=[0,tag_name_sj_,state_si_[4]]; _g$_(state_si_[25],tag_name_sj_);} var _sk_=state_si_[22]; return _sk_?pp_enqueue_qv_(state_si_,[0,0,[5,tag_name_sj_],0]):_sk_;} function pp_flush_queue_sy_(state_sl_,b_sn_) {for(;;) {if(1<state_sl_[14]){pp_close_box_sm_(state_sl_,0);continue;} state_sl_[13]=pp_infinity_qw_; advance_left_rI_(state_sl_); if(b_sn_)pp_output_newline_qC_(state_sl_); state_sl_[12]=1; state_sl_[13]=1; var _so_=state_sl_[27]; _so_[1]=0; _so_[2]=0; clear_scan_stack_r0_(state_sl_); state_sl_[2]=0; state_sl_[3]=0; state_sl_[4]=0; state_sl_[5]=0; state_sl_[10]=0; state_sl_[14]=0; state_sl_[9]=state_sl_[6]; return pp_open_box_gen_sp_(state_sl_,0,3);}} function pp_print_as_size_su_(state_sq_,size_st_,s_ss_) {var _sr_=state_sq_[14]<state_sq_[15]?1:0; return _sr_?enqueue_string_as_rR_(state_sq_,size_st_,s_ss_):_sr_;} function pp_print_as_sL_(state_sx_,isize_sw_,s_sv_) {return pp_print_as_size_su_(state_sx_,isize_sw_,s_sv_);} function pp_print_flush_sM_(state_sz_,param_sA_) {pp_flush_queue_sy_(state_sz_,0);return _g$_(state_sz_[18],0);} function pp_print_break_sF_(state_sB_,width_sE_,offset_sD_) {var _sC_=state_sB_[14]<state_sB_[15]?1:0; return _sC_ ?scan_push_sb_ (state_sB_, 1, make_queue_elem_rN_ (-state_sB_[13]|0,[1,width_sE_,offset_sD_],width_sE_)) :_sC_;} function pp_print_space_sN_(state_sG_,param_sH_) {return pp_print_break_sF_(state_sG_,1,0);} function display_newline_sP_(state_sI_,param_sJ_) {return _kq_(state_sI_[17],_e__,0,1);} var blank_line_sO_=_iB_(80,32); function display_blanks_s__(state_sT_,n_sQ_) {var n_sR_=n_sQ_; for(;;) {var _sS_=0<n_sR_?1:0; if(_sS_) {if(80<n_sR_) {_kq_(state_sT_[17],blank_line_sO_,0,80); var _sU_=n_sR_-80|0,n_sR_=_sU_; continue;} return _kq_(state_sT_[17],blank_line_sO_,0,n_sR_);} return _sS_;}} function default_pp_mark_open_tag_s6_(s_sV_) {return _gK_(_e$_,_gK_(s_sV_,_fa_));} function default_pp_mark_close_tag_s5_(s_sW_) {return _gK_(_fb_,_gK_(s_sW_,_fc_));} function default_pp_print_open_tag_s4_(param_sX_){return 0;} function make_formatter_tc_(output_s8_,flush_s7_) {function _s0_(_sY_){return 0;} var _s1_=[0,0,0]; function _s3_(_sZ_){return 0;} var sys_tok_s2_=make_queue_elem_rN_(-1,_fe_,0); add_queue_ql_(sys_tok_s2_,_s1_); var _s9_= [0, [0,[0,1,sys_tok_s2_],scan_stack_bottom_rS_], 0, 0, 0, 0, 78, 10, 78-10|0, 78, 0, 1, 1, 1, 1, max_int_gT_, _fd_, output_s8_, flush_s7_, _s3_, _s0_, 0, 0, default_pp_mark_open_tag_s6_, default_pp_mark_close_tag_s5_, default_pp_print_open_tag_s4_, default_pp_print_open_tag_s4_, _s1_]; _s9_[19]=_g$_(display_newline_sP_,_s9_); _s9_[20]=_g$_(display_blanks_s__,_s9_); return _s9_;} function formatter_of_out_channel_tg_(oc_s$_) {function _tb_(param_ta_){return _hg_(oc_s$_);} return make_formatter_tc_(_g$_(output_hc_,oc_s$_),_tb_);} function formatter_of_buffer_th_(b_te_) {function _tf_(_td_){return 0;} return make_formatter_tc_(_g$_(_jo_,b_te_),_tf_);} var stdbuf_ti_=_jk_(512), std_formatter_tj_=formatter_of_out_channel_tg_(stdout_g7_); formatter_of_out_channel_tg_(stderr_gW_); formatter_of_buffer_th_(stdbuf_ti_); var print_flush_wA_=_g$_(pp_print_flush_sM_,std_formatter_tj_); function giving_up_tp_(mess_tn_,fmt_tk_,i_tl_) {var _tm_= i_tl_<fmt_tk_.getLen() ?_hI_(_o6_,_fh_,fmt_tk_.safeGet(i_tl_)) :_hI_(_o6_,_fg_,46); return _to_(_o6_,_ff_,mess_tn_,_jF_(fmt_tk_),i_tl_,_tm_);} function format_invalid_arg_tt_(mess_ts_,fmt_tr_,i_tq_) {return _gw_(giving_up_tp_(mess_ts_,fmt_tr_,i_tq_));} function invalid_format_ub_(fmt_tv_,i_tu_) {return format_invalid_arg_tt_(_fi_,fmt_tv_,i_tu_);} function invalid_integer_tC_(fmt_tx_,i_tw_) {return _gw_(giving_up_tp_(_fj_,fmt_tx_,i_tw_));} function format_int_of_string_vX_(fmt_tE_,i_tD_,s_ty_) {try {var _tz_=caml_int_of_string(s_ty_),sz_tA_=_tz_;} catch(_tB_) {if(_tB_[1]!==_a_)throw _tB_; var sz_tA_=invalid_integer_tC_(fmt_tE_,i_tD_);} return sz_tA_;} function string_out_tM_(b_tG_,ppf_tF_) {pp_flush_queue_sy_(ppf_tF_,0); var s_tH_=_jl_(b_tG_); b_tG_[2]=0; b_tG_[1]=b_tG_[4]; b_tG_[3]=b_tG_[1].getLen(); return s_tH_;} function exstring_uH_(printer_tL_,arg_tK_) {var b_tI_=_jk_(512),ppf_tJ_=formatter_of_buffer_th_(b_tI_); _hI_(printer_tL_,ppf_tJ_,arg_tK_); return string_out_tM_(b_tI_,ppf_tJ_);} function implode_rev_uu_(s0_tO_,l_tN_) {return l_tN_?_iE_(_fk_,_h8_([0,s0_tO_,l_tN_])):s0_tO_;} function mkprintf_ww_(to_s_uD_,get_out_tS_) {function kprintf_vR_(k_t3_,fmt_tP_) {var len_tQ_=fmt_tP_.getLen(); return kapr_oM_ (function(fmt_tR_,v_t$_) {var ppf_tT_=_g$_(get_out_tS_,fmt_tR_),print_as_tU_=[0,0]; function pp_print_as_char_vg_(c_tW_) {var _tV_=print_as_tU_[1]; if(_tV_) {var size_tX_=_tV_[1]; pp_print_as_size_su_(ppf_tT_,size_tX_,_iB_(1,c_tW_)); print_as_tU_[1]=0; return 0;} var s_tY_=caml_create_string(1); s_tY_.safeSet(0,c_tW_); return pp_print_as_sL_(ppf_tT_,1,s_tY_);} function pp_print_as_string_vB_(s_t0_) {var _tZ_=print_as_tU_[1]; return _tZ_ ?(pp_print_as_size_su_(ppf_tT_,_tZ_[1],s_t0_), print_as_tU_[1]= 0, 0) :pp_print_as_sL_(ppf_tT_,s_t0_.getLen(),s_t0_);} function doprn_uj_(n_t__,i_t1_) {var i_t2_=i_t1_; for(;;) {if(len_tQ_<=i_t2_)return _g$_(k_t3_,ppf_tT_); var _t4_=fmt_tR_.safeGet(i_t2_); if(37===_t4_) return _oe_ (fmt_tR_, v_t$_, n_t__, i_t2_, cont_s_t9_, cont_a_t8_, cont_t_t7_, cont_f_t6_, cont_m_t5_); if(64===_t4_) {var i_ua_=i_t2_+1|0; if(len_tQ_<=i_ua_)return invalid_format_ub_(fmt_tR_,i_ua_); var _uc_=fmt_tR_.safeGet(i_ua_); if(65<=_uc_) {if(94<=_uc_) {var _ud_=_uc_-123|0; if(!(_ud_<0||2<_ud_)) switch(_ud_) {case 1:break; case 2: if(ppf_tT_[22])pp_enqueue_qv_(ppf_tT_,[0,0,5,0]); if(ppf_tT_[21]) {var _ue_=ppf_tT_[4]; if(_ue_) {var tags_uf_=_ue_[2]; _g$_(ppf_tT_[26],_ue_[1]); ppf_tT_[4]=tags_uf_; var _ug_=1;} else var _ug_=0;} else var _ug_=0; _ug_; var _uh_=i_ua_+1|0,i_t2_=_uh_; continue; default: var _ui_=i_ua_+1|0; if(len_tQ_<=_ui_) {pp_open_tag_sK_(ppf_tT_,_fm_); var _uk_=doprn_uj_(n_t__,_ui_);} else if(60===fmt_tR_.safeGet(_ui_)) {var got_name_up_= function(tag_name_ul_,n_uo_,i_un_) {pp_open_tag_sK_(ppf_tT_,tag_name_ul_); return doprn_uj_(n_uo_,skip_gt_um_(i_un_));}, _uq_=_ui_+1|0, get_uA_= function(accu_uv_,n_uw_,i_ut_,j_ur_) {var j_us_=j_ur_; for(;;) {if(len_tQ_<=j_us_) return got_name_up_ (implode_rev_uu_ (_jz_(fmt_tR_,index_of_int_js_(i_ut_),j_us_-i_ut_|0), accu_uv_), n_uw_, j_us_); var _ux_=fmt_tR_.safeGet(j_us_); if(37===_ux_) {var s0_uy_=_jz_(fmt_tR_,index_of_int_js_(i_ut_),j_us_-i_ut_|0), cont_s_uW_= function(n_uC_,s_uz_,i_uB_) {return get_uA_ ([0,s_uz_,[0,s0_uy_,accu_uv_]],n_uC_,i_uB_,i_uB_);}, cont_a_uX_= function(n_uJ_,printer_uF_,arg_uE_,i_uI_) {var s_uG_= to_s_uD_ ?_hI_(printer_uF_,0,arg_uE_) :exstring_uH_(printer_uF_,arg_uE_); return get_uA_ ([0,s_uG_,[0,s0_uy_,accu_uv_]],n_uJ_,i_uI_,i_uI_);}, cont_t_uY_= function(n_uQ_,printer_uK_,i_uP_) {if(to_s_uD_) var s_uL_=_g$_(printer_uK_,0); else {var _uO_=0, s_uL_= exstring_uH_ (function(ppf_uM_,param_uN_) {return _g$_(printer_uK_,ppf_uM_);}, _uO_);} return get_uA_ ([0,s_uL_,[0,s0_uy_,accu_uv_]],n_uQ_,i_uP_,i_uP_);}, cont_f_uZ_= function(_n_uS_,i_uR_) {return format_invalid_arg_tt_(_fn_,fmt_tR_,i_uR_);}; return _oe_ (fmt_tR_, v_t$_, n_uw_, j_us_, cont_s_uW_, cont_a_uX_, cont_t_uY_, cont_f_uZ_, function(_n_uU_,_sfmt_uV_,i_uT_) {return format_invalid_arg_tt_(_fo_,fmt_tR_,i_uT_);});} if(62===_ux_) return got_name_up_ (implode_rev_uu_ (_jz_(fmt_tR_,index_of_int_js_(i_ut_),j_us_-i_ut_|0), accu_uv_), n_uw_, j_us_); var _u0_=j_us_+1|0,j_us_=_u0_; continue;}}, _uk_=get_uA_(0,n_t__,_uq_,_uq_);} else {pp_open_tag_sK_(ppf_tT_,_fl_); var _uk_=doprn_uj_(n_t__,_ui_);} return _uk_;}} else if(91<=_uc_) switch(_uc_-91|0) {case 1:break; case 2: pp_close_box_sm_(ppf_tT_,0); var _u1_=i_ua_+1|0,i_t2_=_u1_; continue; default: var _u2_=i_ua_+1|0; if(len_tQ_<=_u2_||!(60===fmt_tR_.safeGet(_u2_))) {pp_open_box_gen_sp_(ppf_tT_,0,4); var _u3_=doprn_uj_(n_t__,_u2_);} else {var _u4_=_u2_+1|0; if(len_tQ_<=_u4_) var match_u5_=[0,4,_u4_]; else {var _u6_=fmt_tR_.safeGet(_u4_); if(98===_u6_) var match_u5_=[0,4,_u4_+1|0]; else if(104===_u6_) {var i_u7_=_u4_+1|0; if(len_tQ_<=i_u7_) var match_u5_=[0,0,i_u7_]; else {var _u8_=fmt_tR_.safeGet(i_u7_); if(111===_u8_) {var i_u9_=i_u7_+1|0; if(len_tQ_<=i_u9_) var match_u5_=format_invalid_arg_tt_(_fq_,fmt_tR_,i_u9_); else {var _u__=fmt_tR_.safeGet(i_u9_), match_u5_= 118===_u__ ?[0,3,i_u9_+1|0] :format_invalid_arg_tt_ (_gK_(_fp_,_iB_(1,_u__)),fmt_tR_,i_u9_);}} else var match_u5_=118===_u8_?[0,2,i_u7_+1|0]:[0,0,i_u7_];}} else var match_u5_=118===_u6_?[0,1,_u4_+1|0]:[0,4,_u4_];} var i_vd_=match_u5_[2], kind_u$_=match_u5_[1], _u3_= get_int_ve_ (n_t__, i_vd_, function(size_va_,n_vc_,i_vb_) {pp_open_box_gen_sp_(ppf_tT_,size_va_,kind_u$_); return doprn_uj_(n_vc_,skip_gt_um_(i_vb_));});} return _u3_;}} else {if(10===_uc_) {if(ppf_tT_[14]<ppf_tT_[15]) enqueue_advance_rP_(ppf_tT_,make_queue_elem_rN_(0,3,0)); var _vf_=i_ua_+1|0,i_t2_=_vf_; continue;} if(32<=_uc_) switch(_uc_-32|0) {case 5: case 32: pp_print_as_char_vg_(_uc_); var _vh_=i_ua_+1|0,i_t2_=_vh_; continue; case 0: pp_print_space_sN_(ppf_tT_,0); var _vi_=i_ua_+1|0,i_t2_=_vi_; continue; case 12: pp_print_break_sF_(ppf_tT_,0,0); var _vj_=i_ua_+1|0,i_t2_=_vj_; continue; case 14: pp_flush_queue_sy_(ppf_tT_,1); _g$_(ppf_tT_[18],0); var _vk_=i_ua_+1|0,i_t2_=_vk_; continue; case 27: var _vl_=i_ua_+1|0; if(len_tQ_<=_vl_||!(60===fmt_tR_.safeGet(_vl_))) {pp_print_space_sN_(ppf_tT_,0); var _vm_=doprn_uj_(n_t__,_vl_);} else {var got_nspaces_vv_= function(nspaces_vn_,n_vq_,i_vp_) {return get_int_ve_ (n_vq_,i_vp_,_g$_(got_offset_vo_,nspaces_vn_));}, got_offset_vo_= function(nspaces_vs_,offset_vr_,n_vu_,i_vt_) {pp_print_break_sF_(ppf_tT_,nspaces_vs_,offset_vr_); return doprn_uj_(n_vu_,skip_gt_um_(i_vt_));}, _vm_=get_int_ve_(n_t__,_vl_+1|0,got_nspaces_vv_);} return _vm_; case 28: return get_int_ve_ (n_t__, i_ua_+1|0, function(size_vw_,n_vy_,i_vx_) {print_as_tU_[1]=[0,size_vw_]; return doprn_uj_(n_vy_,skip_gt_um_(i_vx_));}); case 31: pp_print_flush_sM_(ppf_tT_,0); var _vz_=i_ua_+1|0,i_t2_=_vz_; continue; default:}} return invalid_format_ub_(fmt_tR_,i_ua_);} pp_print_as_char_vg_(_t4_); var _vA_=i_t2_+1|0,i_t2_=_vA_; continue;}} function cont_s_t9_(n_vE_,s_vC_,i_vD_) {pp_print_as_string_vB_(s_vC_); return doprn_uj_(n_vE_,i_vD_);} function cont_a_t8_(n_vI_,printer_vG_,arg_vF_,i_vH_) {if(to_s_uD_) pp_print_as_string_vB_(_hI_(printer_vG_,0,arg_vF_)); else _hI_(printer_vG_,ppf_tT_,arg_vF_); return doprn_uj_(n_vI_,i_vH_);} function cont_t_t7_(n_vL_,printer_vJ_,i_vK_) {if(to_s_uD_) pp_print_as_string_vB_(_g$_(printer_vJ_,0)); else _g$_(printer_vJ_,ppf_tT_); return doprn_uj_(n_vL_,i_vK_);} function cont_f_t6_(n_vN_,i_vM_) {pp_print_flush_sM_(ppf_tT_,0); return doprn_uj_(n_vN_,i_vM_);} function cont_m_t5_(n_vP_,sfmt_vS_,i_vO_) {return kprintf_vR_ (function(param_vQ_){return doprn_uj_(n_vP_,i_vO_);}, sfmt_vS_);} function get_int_ve_(n_wg_,i_vT_,c_v1_) {var i_vU_=i_vT_; for(;;) {if(len_tQ_<=i_vU_) return invalid_integer_tC_(fmt_tR_,i_vU_); var _vV_=fmt_tR_.safeGet(i_vU_); if(32===_vV_){var _vW_=i_vU_+1|0,i_vU_=_vW_;continue;} if(37===_vV_) {var cont_s_wc_= function(n_v0_,s_vY_,i_vZ_) {return _kq_ (c_v1_, format_int_of_string_vX_(fmt_tR_,i_vZ_,s_vY_), n_v0_, i_vZ_);}, cont_a_wd_= function(_n_v3_,_printer_v4_,_arg_v5_,i_v2_) {return invalid_integer_tC_(fmt_tR_,i_v2_);}, cont_t_we_= function(_n_v7_,_printer_v8_,i_v6_) {return invalid_integer_tC_(fmt_tR_,i_v6_);}, cont_f_wf_= function(_n_v__,i_v9_) {return invalid_integer_tC_(fmt_tR_,i_v9_);}; return _oe_ (fmt_tR_, v_t$_, n_wg_, i_vU_, cont_s_wc_, cont_a_wd_, cont_t_we_, cont_f_wf_, function(_n_wa_,_sfmt_wb_,i_v$_) {return invalid_integer_tC_(fmt_tR_,i_v$_);});} var j_wh_=i_vU_; for(;;) {if(len_tQ_<=j_wh_) var _wi_=invalid_integer_tC_(fmt_tR_,j_wh_); else {var _wj_=fmt_tR_.safeGet(j_wh_), _wk_=48<=_wj_?58<=_wj_?0:1:45===_wj_?1:0; if(_wk_){var _wl_=j_wh_+1|0,j_wh_=_wl_;continue;} var size_wm_= j_wh_===i_vU_ ?0 :format_int_of_string_vX_ (fmt_tR_, j_wh_, _jz_(fmt_tR_,index_of_int_js_(i_vU_),j_wh_-i_vU_|0)), _wi_=_kq_(c_v1_,size_wm_,n_wg_,j_wh_);} return _wi_;}}} function skip_gt_um_(i_wn_) {var i_wo_=i_wn_; for(;;) {if(len_tQ_<=i_wo_)return invalid_format_ub_(fmt_tR_,i_wo_); var _wp_=fmt_tR_.safeGet(i_wo_); if(32===_wp_){var _wq_=i_wo_+1|0,i_wo_=_wq_;continue;} return 62===_wp_?i_wo_+1|0:invalid_format_ub_(fmt_tR_,i_wo_);}} return doprn_uj_(index_of_int_js_(0),0);}, fmt_tP_);} return kprintf_vR_;} function ksprintf_wz_(k_wt_) {var b_wr_=_jk_(512); function k_wv_(ppf_ws_) {return _g$_(k_wt_,string_out_tM_(b_wr_,ppf_ws_));} return _kq_ (mkprintf_ww_, 1, function(param_wu_){return formatter_of_buffer_th_(b_wr_);}, k_wv_);} function sprintf_wB_(fmt_wy_) {return _hI_(ksprintf_wz_,function(s_wx_){return s_wx_;},fmt_wy_);} var g_wC_=exit_function_g__[1]; exit_function_g__[1]= function(param_wD_){_g$_(print_flush_wA_,0);return _g$_(g_wC_,0);}; function _wG_(param_wF_) {var seq_wE_=[]; caml_update_dummy(seq_wE_,[0,seq_wE_,seq_wE_]); return seq_wE_;} var Canceled_wH_=[0,_eX_],current_data_wI_=[0,0],max_removed_xK_=42; function repr_rec_wM_(t_wJ_) {var _wK_=t_wJ_[1]; {if(3===_wK_[0]) {var t__wL_=_wK_[1],t___wN_=repr_rec_wM_(t__wL_); if(t___wN_!==t__wL_)t_wJ_[1]=[3,t___wN_]; return t___wN_;} return t_wJ_;}} function repr_xL_(t_wO_){return repr_rec_wM_(t_wO_);} function _xh_(exn_wQ_) {var param_wP_=_o7_[1]; for(;;) {if(param_wP_) {var tl_wU_=param_wP_[2],hd_wR_=param_wP_[1]; try {var _wS_=_g$_(hd_wR_,exn_wQ_),_wT_=_wS_;} catch(_wV_){var _wT_=0;} if(!_wT_){var param_wP_=tl_wU_;continue;}} else if(exn_wQ_[1]!==_gv_&&exn_wQ_[1]!==_gt_) if(exn_wQ_[1]===_gu_) {var match_wW_=exn_wQ_[2],char_wX_=match_wW_[3]; _oS_ (_o6_,_e_,match_wW_[1],match_wW_[2],char_wX_,char_wX_+5|0,_fG_);} else if(exn_wQ_[1]===_d_) {var match_wY_=exn_wQ_[2],char_wZ_=match_wY_[3]; _oS_ (_o6_,_e_,match_wY_[1],match_wY_[2],char_wZ_,char_wZ_+6|0,_fF_);} else if(exn_wQ_[1]===_gs_) {var match_w0_=exn_wQ_[2],char_w1_=match_w0_[3]; _oS_ (_o6_,_e_,match_w0_[1],match_w0_[2],char_w1_,char_w1_+6|0,_fE_);} else {var _w2_=exn_wQ_.length-1,constructor_w5_=exn_wQ_[0+1][0+1]; if(_w2_<0||2<_w2_) {var _w3_=_pb_(exn_wQ_,2), _w4_=_kq_(_o6_,_fD_,_pc_(exn_wQ_,1),_w3_);} else switch(_w2_) {case 1:var _w4_=_fB_;break; case 2:var _w4_=_hI_(_o6_,_fA_,_pc_(exn_wQ_,1));break; default:var _w4_=_fC_;} _gK_(constructor_w5_,_w4_);} caml_ml_output_char(stderr_gW_,10); var _w6_=caml_get_exception_backtrace(0); if(_w6_) {var a_w7_=_w6_[1],_w8_=0,_w9_=a_w7_.length-1-1|0; if(!(_w9_<_w8_)) {var i_w__=_w8_; for(;;) {if(caml_notequal(caml_array_get(a_w7_,i_w__),_fP_)) {var _w$_=caml_array_get(a_w7_,i_w__), is_raise_xa_=0===_w$_[0]?_w$_[1]:_w$_[1], info_xb_=is_raise_xa_?0===i_w__?_fM_:_fL_:0===i_w__?_fK_:_fJ_, _xc_= 0===_w$_[0] ?_oS_(_o6_,_fI_,info_xb_,_w$_[2],_w$_[3],_w$_[4],_w$_[5]) :_hI_(_o6_,_fH_,info_xb_); _kq_(_o5_,stderr_gW_,_fO_,_xc_);} var _xd_=i_w__+1|0; if(_w9_!==i_w__){var i_w__=_xd_;continue;} break;}}} else _hI_(_o5_,stderr_gW_,_fN_); do_at_exit_hb_(0); return caml_sys_exit(2);}} function call_unsafe_xE_(f_xf_,x_xe_) {try {var _xg_=_g$_(f_xf_,x_xe_);}catch(_xi_){return _xh_(_xi_);} return _xg_;} function run_waiters_rec_xt_(state_xn_,ws_xj_,rem_xl_) {var ws_xk_=ws_xj_,rem_xm_=rem_xl_; for(;;) if(typeof ws_xk_==="number") return run_waiters_rec_next_xo_(state_xn_,rem_xm_); else switch(ws_xk_[0]) {case 1: _g$_(ws_xk_[1],state_xn_); return run_waiters_rec_next_xo_(state_xn_,rem_xm_); case 2: var ws1_xp_=ws_xk_[1], _xq_=[0,ws_xk_[2],rem_xm_], ws_xk_=ws1_xp_, rem_xm_=_xq_; continue; default: var _xr_=ws_xk_[1][1]; return _xr_ ?(_g$_(_xr_[1],state_xn_), run_waiters_rec_next_xo_(state_xn_,rem_xm_)) :run_waiters_rec_next_xo_(state_xn_,rem_xm_);}} function run_waiters_rec_next_xo_(state_xu_,rem_xs_) {return rem_xs_?run_waiters_rec_xt_(state_xu_,rem_xs_[1],rem_xs_[2]):0;} function run_cancel_handlers_rec_xG_(chs_xv_,rem_xx_) {var chs_xw_=chs_xv_,rem_xy_=rem_xx_; for(;;) if(typeof chs_xw_==="number") return run_cancel_handlers_rec_next_xA_(rem_xy_); else switch(chs_xw_[0]) {case 1: var n_xz_=chs_xw_[1]; if(n_xz_[4]){n_xz_[4]=0;n_xz_[1][2]=n_xz_[2];n_xz_[2][1]=n_xz_[1];} return run_cancel_handlers_rec_next_xA_(rem_xy_); case 2: var chs1_xB_=chs_xw_[1], _xC_=[0,chs_xw_[2],rem_xy_], chs_xw_=chs1_xB_, rem_xy_=_xC_; continue; default: var f_xD_=chs_xw_[2]; current_data_wI_[1]=chs_xw_[1]; call_unsafe_xE_(f_xD_,0); return run_cancel_handlers_rec_next_xA_(rem_xy_);}} function run_cancel_handlers_rec_next_xA_(rem_xF_) {return rem_xF_?run_cancel_handlers_rec_xG_(rem_xF_[1],rem_xF_[2]):0;} function unsafe_run_waiters_xM_(sleeper_xI_,state_xH_) {var _xJ_= 1===state_xH_[0] ?state_xH_[1][1]===Canceled_wH_ ?(run_cancel_handlers_rec_xG_(sleeper_xI_[4],0),1) :0 :0; _xJ_; return run_waiters_rec_xt_(state_xH_,sleeper_xI_[2],0);} var wakening_xN_=[0,0],_xO_=[0,0,0]; function wakeup_result_x1_(t_xP_,result_xS_) {var t_xQ_=repr_rec_wM_(t_xP_),_xR_=t_xQ_[1]; switch(_xR_[0]) {case 1:if(_xR_[1][1]===Canceled_wH_)return 0;break; case 2: var sleeper_xT_=_xR_[1]; t_xQ_[1]=result_xS_; var snapshot_xU_=current_data_wI_[1], already_wakening_xV_=wakening_xN_[1]?1:(wakening_xN_[1]=1,0); unsafe_run_waiters_xM_(sleeper_xT_,result_xS_); if(already_wakening_xV_) {current_data_wI_[1]=snapshot_xU_;var _xW_=0;} else for(;;) {if(0!==_xO_[1]) {if(0===_xO_[1])throw [0,_iS_]; _xO_[1]=_xO_[1]-1|0; var tail_xX_=_xO_[2],head_xY_=tail_xX_[2]; if(head_xY_===tail_xX_)_xO_[2]=0;else tail_xX_[2]=head_xY_[2]; var _xZ_=head_xY_[1]; unsafe_run_waiters_xM_(_xZ_[1],_xZ_[2]); continue;} wakening_xN_[1]=0; current_data_wI_[1]=snapshot_xU_; var _xW_=0; break;} return _xW_; default:} return _gw_(_eY_);} function wakeup_ye_(t_x2_,v_x0_) {return wakeup_result_x1_(t_x2_,[0,v_x0_]);} function append_x9_(l1_x3_,l2_x4_) {return typeof l1_x3_==="number" ?l2_x4_ :typeof l2_x4_==="number"?l1_x3_:[2,l1_x3_,l2_x4_];} function cleanup_x6_(ws_x5_) {if(typeof ws_x5_!=="number") switch(ws_x5_[0]) {case 2: var l1_x7_=ws_x5_[1],_x8_=cleanup_x6_(ws_x5_[2]); return append_x9_(cleanup_x6_(l1_x7_),_x8_); case 1:break; default:if(!ws_x5_[1][1])return 0;} return ws_x5_;} function fast_connect_yf_(t_x__,state_yb_) {var t_x$_=repr_xL_(t_x__),_ya_=t_x$_[1]; {if(2===_ya_[0]) {var sleeper_yc_=_ya_[1]; t_x$_[1]=state_yb_; return unsafe_run_waiters_xM_(sleeper_yc_,state_yb_);} throw [0,_d_,_e0_];}} function return_yg_(v_yd_){return [0,[0,v_yd_]];} var return_unit_zh_=[0,state_return_unit_eW_]; function temp_yz_(t_yh_){return [0,[2,[0,[0,[0,t_yh_]],0,0,0]]];} function task_zi_(param_yj_) {var _yi_=[0,[2,[0,1,0,0,0]]];return [0,_yi_,_yi_];} function add_immutable_waiter_yV_(sleeper_ym_,waiter_yk_) {var _yl_=[1,waiter_yk_], _yn_=sleeper_ym_[2], _yo_=typeof _yn_==="number"?_yl_:[2,_yl_,_yn_]; sleeper_ym_[2]=_yo_; return 0;} function on_cancel_zj_(t_yp_,f_yr_) {var _yq_=repr_xL_(t_yp_)[1]; switch(_yq_[0]) {case 1: if(_yq_[1][1]===Canceled_wH_)return call_unsafe_xE_(f_yr_,0);break; case 2: var sleeper_ys_=_yq_[1], handler_yt_=[0,current_data_wI_[1],f_yr_], _yu_=sleeper_ys_[4], _yv_=typeof _yu_==="number"?handler_yt_:[2,handler_yt_,_yu_]; sleeper_ys_[4]=_yv_; return 0; default:} return 0;} function bind_yW_(t_yw_,f_yF_) {var t_yx_=repr_xL_(t_yw_),_yy_=t_yx_[1]; switch(_yy_[0]) {case 1:return [0,_yy_]; case 2: var sleeper_yB_=_yy_[1], res_yA_=temp_yz_(t_yx_), data_yD_=current_data_wI_[1]; add_immutable_waiter_yV_ (sleeper_yB_, function(state_yC_) {switch(state_yC_[0]) {case 0: var v_yE_=state_yC_[1]; current_data_wI_[1]=data_yD_; try {var _yG_=_g$_(f_yF_,v_yE_),_yH_=_yG_;} catch(_yI_){var _yH_=[0,[1,_yI_]];} var t1_yJ_=repr_xL_(res_yA_), t2_yK_=repr_xL_(_yH_), _yL_=t1_yJ_[1]; {if(2===_yL_[0]) {var sleeper1_yM_=_yL_[1]; if(t1_yJ_===t2_yK_) var _yN_=0; else {var _yO_=t2_yK_[1]; if(2===_yO_[0]) {var sleeper2_yP_=_yO_[1]; t2_yK_[1]=[3,t1_yJ_]; sleeper1_yM_[1]=sleeper2_yP_[1]; var waiters_yQ_=append_x9_(sleeper1_yM_[2],sleeper2_yP_[2]), removed_yR_=sleeper1_yM_[3]+sleeper2_yP_[3]|0; if(max_removed_xK_<removed_yR_) {sleeper1_yM_[3]=0; sleeper1_yM_[2]=cleanup_x6_(waiters_yQ_);} else {sleeper1_yM_[3]=removed_yR_;sleeper1_yM_[2]=waiters_yQ_;} var _yS_=sleeper2_yP_[4], _yT_=sleeper1_yM_[4], _yU_= typeof _yT_==="number" ?_yS_ :typeof _yS_==="number"?_yT_:[2,_yT_,_yS_]; sleeper1_yM_[4]=_yU_; var _yN_=0;} else {t1_yJ_[1]=_yO_; var _yN_=unsafe_run_waiters_xM_(sleeper1_yM_,_yO_);}} return _yN_;} throw [0,_d_,_eZ_];} case 1:return fast_connect_yf_(res_yA_,state_yC_); default:throw [0,_d_,_e2_];}}); return res_yA_; case 3:throw [0,_d_,_e1_]; default:return _g$_(f_yF_,_yy_[1]);}} function _zk_(t_yY_,f_yX_){return bind_yW_(t_yY_,f_yX_);} function _zl_(t_yZ_,f_y8_) {var t_y0_=repr_xL_(t_yZ_),_y1_=t_y0_[1]; switch(_y1_[0]) {case 1:var _y2_=[0,_y1_];break; case 2: var sleeper_y4_=_y1_[1], res_y3_=temp_yz_(t_y0_), data_y6_=current_data_wI_[1]; add_immutable_waiter_yV_ (sleeper_y4_, function(state_y5_) {switch(state_y5_[0]) {case 0: var v_y7_=state_y5_[1]; current_data_wI_[1]=data_y6_; try {var _y9_=[0,_g$_(f_y8_,v_y7_)],_y__=_y9_;} catch(_y$_){var _y__=[1,_y$_];} return fast_connect_yf_(res_y3_,_y__); case 1:return fast_connect_yf_(res_y3_,state_y5_); default:throw [0,_d_,_e4_];}}); var _y2_=res_y3_; break; case 3:throw [0,_d_,_e3_]; default: var v_za_=_y1_[1]; try {var _zb_=[0,_g$_(f_y8_,v_za_)],_zc_=_zb_;} catch(_zd_){var _zc_=[1,_zd_];} var _y2_=[0,_zc_];} return _y2_;} function poll_zm_(t_ze_) {var _zf_=repr_xL_(t_ze_)[1]; switch(_zf_[0]) {case 1:throw _zf_[1]; case 2:return 0; case 3:throw [0,_d_,_e5_]; default:return [0,_zf_[1]];}} var pause_hook_zo_=[0,function(_zg_){return 0;}],_zn_=_wG_(0),_zr_=[0,0]; function _zD_(param_zv_) {var _zp_=1-(_zn_[2]===_zn_?1:0); if(_zp_) {var tmp_zq_=_wG_(0); tmp_zq_[1][2]=_zn_[2]; _zn_[2][1]=tmp_zq_[1]; tmp_zq_[1]=_zn_[1]; _zn_[1][2]=tmp_zq_; _zn_[1]=_zn_; _zn_[2]=_zn_; _zr_[1]=0; var curr_zs_=tmp_zq_[2]; for(;;) {var _zt_=curr_zs_!==tmp_zq_?1:0; if(_zt_) {if(curr_zs_[4])wakeup_ye_(curr_zs_[3],0); var _zu_=curr_zs_[2],curr_zs_=_zu_; continue;} return _zt_;}} return _zp_;} function iter_s_zx_(f_zz_,l_zw_) {if(l_zw_) {var l_zy_=l_zw_[2], x_zB_=l_zw_[1], _zC_=function(param_zA_){return iter_s_zx_(f_zz_,l_zy_);}; return _zk_(_g$_(f_zz_,x_zB_),_zC_);} return return_unit_zh_;} var null_zE_=null,undefined_zF_=undefined; function _z3_(x_zG_,f_zH_){return x_zG_==null_zE_?0:_g$_(f_zH_,x_zG_);} function _zO_(x_zI_,f_zJ_,g_zK_) {return x_zI_==null_zE_?_g$_(f_zJ_,0):_g$_(g_zK_,x_zI_);} function _z4_(x_zP_) {function _zN_(x_zL_){return [0,x_zL_];} return _zO_(x_zP_,function(param_zM_){return 0;},_zN_);} function _z5_(x_zQ_){return x_zQ_!==undefined_zF_?1:0;} function _z6_(x_zR_,f_zS_) {return x_zR_!==undefined_zF_?_g$_(f_zS_,x_zR_):0;} function _z1_(x_zT_,f_zU_,g_zV_) {return x_zT_===undefined_zF_?_g$_(f_zU_,0):_g$_(g_zV_,x_zT_);} function _z7_(x_zW_,f_zX_) {return x_zW_===undefined_zF_?_g$_(f_zX_,0):x_zW_;} function _z8_(x_z2_) {function _z0_(x_zY_){return [0,x_zY_];} return _z1_(x_z2_,function(param_zZ_){return 0;},_z0_);} var _true_z9_=true, _false_z__=false, regExp_z$_=RegExp, array_constructor_Aa_=Array; function array_get_Ae_(_Ab_,_Ac_){return _Ab_[_Ac_];} function match_result_Af_(_Ad_){return _Ad_;} var date_constr_Ak_=Date,math_Aj_=Math; function escape_Ai_(s_Ag_){return escape(s_Ag_);} function _Al_(e_Ah_) {return e_Ah_ instanceof array_constructor_Aa_ ?0 :[0,new MlWrappedString(e_Ah_.toString())];} _o7_[1]=[0,_Al_,_o7_[1]]; function _Ao_(_Am_){return _Am_;} function _Ap_(_An_){return _An_;} function appendChild_AO_(p_Aq_,n_Ar_){p_Aq_.appendChild(n_Ar_);return 0;} function removeChild_AP_(p_As_,n_At_){p_As_.removeChild(n_At_);return 0;} function handler_AQ_(f_Av_) {return _Ap_ (caml_js_wrap_callback (function(e_Au_) {if(e_Au_) {var res_Aw_=_g$_(f_Av_,e_Au_); if(!(res_Aw_|0))e_Au_.preventDefault(); return res_Aw_;} var _Ax_=event,res_Ay_=_g$_(f_Av_,_Ax_); _Ax_.returnValue=res_Ay_; return res_Ay_;}));} function _AR_(s_Az_){return s_Az_.toString();} function _AS_(e_AA_,typ_AB_,h_AE_,capt_AL_) {if(e_AA_.addEventListener===undefined_zF_) {var ev_AC_=_eV_.toString().concat(typ_AB_), callback_AJ_= function(e_AD_) {var _AI_=[0,h_AE_,e_AD_,[0]]; return _g$_ (function(_AH_,_AG_,_AF_) {return caml_js_call(_AH_,_AG_,_AF_);}, _AI_);}; e_AA_.attachEvent(ev_AC_,callback_AJ_); return function(param_AK_) {return e_AA_.detachEvent(ev_AC_,callback_AJ_);};} e_AA_.addEventListener(typ_AB_,h_AE_,capt_AL_); return function(param_AM_) {return e_AA_.removeEventListener(typ_AB_,h_AE_,capt_AL_);};} function _AT_(id_AN_){return _g$_(id_AN_,0);} var onIE_AU_=caml_js_on_ie(0)|0, click_AV_=_AR_(_eE_), mouseup_AW_=_AR_(_eD_), mousemove_AY_=_AR_(_eC_), keydown_AX_=_AR_(_eB_), touchstart_AZ_=_AR_(_eA_), touchmove_A1_=_AR_(_ez_), touchend_A0_=_AR_(_ey_), _2d__A2_=_ex_.toString(), window_A3_=window, document_A4_=window_A3_.document; function opt_iter_Bj_(x_A5_,f_A6_){return x_A5_?_g$_(f_A6_,x_A5_[1]):0;} function createElement_A9_(doc_A8_,name_A7_) {return doc_A8_.createElement(name_A7_.toString());} function unsafeCreateElement_Ba_(doc_A$_,name_A__) {return createElement_A9_(doc_A$_,name_A__);} function createUl_Bk_(doc_Bb_) {return unsafeCreateElement_Ba_(doc_Bb_,_eM_);} function createDl_Bl_(doc_Bc_) {return unsafeCreateElement_Ba_(doc_Bc_,_eN_);} function createLi_Bm_(doc_Bd_) {return unsafeCreateElement_Ba_(doc_Bd_,_eO_);} function createDiv_Bn_(doc_Be_) {return unsafeCreateElement_Ba_(doc_Be_,_eP_);} function createA_Bo_(doc_Bf_) {return unsafeCreateElement_Ba_(doc_Bf_,_eQ_);} function createImg_Bp_(doc_Bg_) {return unsafeCreateElement_Ba_(doc_Bg_,_eR_);} function createDd_Bq_(doc_Bh_){return createElement_A9_(doc_Bh_,_eS_);} function createDt_Br_(doc_Bi_){return createElement_A9_(doc_Bi_,_eT_);} var Canvas_not_available_Bs_=[0,_ew_]; function createCanvas_Bv_(doc_Bt_) {var c_Bu_=unsafeCreateElement_Ba_(doc_Bt_,_eU_); if(1-(c_Bu_.getContext==null_zE_?1:0))return c_Bu_; throw [0,Canvas_not_available_Bs_];} _Ao_(window.HTMLElement)===undefined_zF_; function stopPropagation_BQ_(ev_Bw_) {function _Bz_(param_Bx_){return ev_Bw_.stopPropagation();} function _BA_(param_By_){return ev_Bw_.cancelBubble=_true_z9_;} return _z1_(ev_Bw_.stopPropagation,_BA_,_Bz_);} var _B2_= caml_js_pure_expr (function(param_BP_) {var l_BB_= [0, window_A3_.requestAnimationFrame, [0, window_A3_.mozRequestAnimationFrame, [0, window_A3_.webkitRequestAnimationFrame, [0, window_A3_.oRequestAnimationFrame, [0,window_A3_.msRequestAnimationFrame,0]]]]]; try {var param_BC_=l_BB_; for(;;) {if(!param_BC_)throw [0,_c_]; var x_BD_=param_BC_[1],l_BE_=param_BC_[2]; if(!_z5_(x_BD_)){var param_BC_=l_BE_;continue;} var _BG_=function(callback_BF_){return x_BD_(callback_BF_);}; break;}} catch(_BH_) {if(_BH_[1]===_c_) {var now_BJ_= function(param_BI_){return new date_constr_Ak_().getTime();}, last_BK_=[0,now_BJ_(0)]; return function(callback_BO_) {var t_BL_=now_BJ_(0), dt_BM_=last_BK_[1]+1000/60-t_BL_, dt_BN_=dt_BM_<0?0:dt_BM_; last_BK_[1]=t_BL_; window_A3_.setTimeout(callback_BO_,dt_BN_); return 0;};} throw _BH_;} return _BG_;}), _B1_=window.FileReader; function yield_B0_(param_BY_) {var match_BR_=task_zi_(0), t_BS_=match_BR_[1], w_BT_=match_BR_[2], _BV_=0*1000, id_BW_= window_A3_.setTimeout (caml_js_wrap_callback (function(param_BU_){return wakeup_ye_(w_BT_,0);}), _BV_); on_cancel_zj_ (t_BS_,function(param_BX_){return window_A3_.clearTimeout(id_BW_);}); return t_BS_;} pause_hook_zo_[1]= function(param_BZ_) {return 1===param_BZ_ ?(window_A3_.setTimeout(caml_js_wrap_callback(_zD_),0),0) :0;}; var _B3_=caml_js_get_console(0); function regexp_B6_(s_B4_) {var _B5_=_eo_.toString(); return new regExp_z$_(caml_js_from_byte_string(s_B4_),_B5_);} var quote_repl_re_B7_=new regExp_z$_(_em_.toString(),_en_.toString()), _B9_=regexp_B6_(_el_), l_B8_=window_A3_.location; function split_Ca_(c_B__,s_B$_) {return s_B$_.split(_iB_(1,c_B__).toString());} var Local_exn_Cb_=[0,_dE_]; function interrupt_Cd_(param_Cc_){throw [0,Local_exn_Cb_];} var af2e6a4db_Ce_=caml_js_from_byte_string(_dD_), _Cf_= regexp_B6_ (caml_js_to_byte_string(af2e6a4db_Ce_.replace(_B9_,_eq_.toString()))); function urldecode_js_string_string_Cn_(s_Cg_) {return caml_js_to_byte_string(unescape(s_Cg_));} function urlencode_Co_(_opt__Ch_,s_Cj_) {var with_plus_Ci_=_opt__Ch_?_opt__Ch_[1]:1; if(with_plus_Ci_) {var _Ck_= caml_js_to_byte_string(escape_Ai_(caml_js_from_byte_string(s_Cj_))); _Cf_.lastIndex=0; var a41432fb9_Cl_=caml_js_from_byte_string(_Ck_), a11bb050d_Cm_=caml_js_from_byte_string(_dF_); return caml_js_to_byte_string (a41432fb9_Cl_.replace (_Cf_, a11bb050d_Cm_.replace(quote_repl_re_B7_,_ep_.toString())));} return caml_js_to_byte_string (escape_Ai_(caml_js_from_byte_string(s_Cj_)));} var Not_an_http_protocol_CY_=[0,_dC_]; function path_of_path_string_Ct_(s_Cp_) {try {var length_Cq_=s_Cp_.getLen(); if(0===length_Cq_) var _Cr_=_ek_; else {var _Cs_=_iF_(s_Cp_,s_Cp_.getLen(),0,47); if(0===_Cs_) var _Cu_= [0,_ej_,path_of_path_string_Ct_(_iC_(s_Cp_,1,length_Cq_-1|0))]; else {var _Cv_= path_of_path_string_Ct_ (_iC_(s_Cp_,_Cs_+1|0,(length_Cq_-_Cs_|0)-1|0)), _Cu_=[0,_iC_(s_Cp_,0,_Cs_),_Cv_];} var _Cr_=_Cu_;}} catch(_Cw_){if(_Cw_[1]===_c_)return [0,s_Cp_,0];throw _Cw_;} return _Cr_;} function encode_arguments_CZ_(l_CA_) {return _iE_ (_dM_, _hW_ (function(param_Cx_) {var n_Cy_=param_Cx_[1], _Cz_=_gK_(_dN_,urlencode_Co_(0,param_Cx_[2])); return _gK_(urlencode_Co_(0,n_Cy_),_Cz_);}, l_CA_));} function decode_arguments_js_string_C0_(s_CB_) {var arr_CC_=split_Ca_(38,s_CB_),len_CX_=arr_CC_.length; function aux_CT_(acc_CS_,idx_CD_) {var idx_CE_=idx_CD_; for(;;) {if(0<=idx_CE_) {try {var _CQ_=idx_CE_-1|0, _CR_= function(s_CL_) {function _CN_(param_CF_) {var y_CJ_=param_CF_[2],x_CI_=param_CF_[1]; function get_CH_(t_CG_) {return urldecode_js_string_string_Cn_ (_z7_(t_CG_,interrupt_Cd_));} var _CK_=get_CH_(y_CJ_); return [0,get_CH_(x_CI_),_CK_];} var arr_bis_CM_=split_Ca_(61,s_CL_); if(2===arr_bis_CM_.length) {var _CO_=array_get_Ae_(arr_bis_CM_,1), _CP_=_Ao_([0,array_get_Ae_(arr_bis_CM_,0),_CO_]);} else var _CP_=undefined_zF_; return _z1_(_CP_,interrupt_Cd_,_CN_);}, _CU_= aux_CT_ ([0, _z1_(array_get_Ae_(arr_CC_,idx_CE_),interrupt_Cd_,_CR_), acc_CS_], _CQ_);} catch(_CV_) {if(_CV_[1]===Local_exn_Cb_) {var _CW_=idx_CE_-1|0,idx_CE_=_CW_;continue;} throw _CV_;} return _CU_;} return acc_CS_;}} return aux_CT_(0,len_CX_-1|0);} var url_re_C1_=new regExp_z$_(caml_js_from_byte_string(_dB_)), file_re_DA_=new regExp_z$_(caml_js_from_byte_string(_dA_)); function string_of_url_Dz_(param_C2_) {switch(param_C2_[0]) {case 1: var match_C3_=param_C2_[1], frag_C4_=match_C3_[6], args_C5_=match_C3_[5], port_C6_=match_C3_[2], path_C9_=match_C3_[3], host_C8_=match_C3_[1], _C7_= caml_string_notequal(frag_C4_,_d__) ?_gK_(_d9_,urlencode_Co_(0,frag_C4_)) :_d8_, _C__=args_C5_?_gK_(_d7_,encode_arguments_CZ_(args_C5_)):_d6_, _Da_=_gK_(_C__,_C7_), _Dc_= _gK_ (_d4_, _gK_ (_iE_ (_d5_, _hW_ (function(eta_C$_){return urlencode_Co_(0,eta_C$_);}, path_C9_)), _Da_)), _Db_=443===port_C6_?_d2_:_gK_(_d3_,string_of_int_gU_(port_C6_)), _Dd_=_gK_(_Db_,_Dc_); return _gK_(_d1_,_gK_(urlencode_Co_(0,host_C8_),_Dd_)); case 2: var match_De_=param_C2_[1], frag_Df_=match_De_[4], args_Dg_=match_De_[3], path_Di_=match_De_[1], _Dh_= caml_string_notequal(frag_Df_,_d0_) ?_gK_(_dZ_,urlencode_Co_(0,frag_Df_)) :_dY_, _Dj_=args_Dg_?_gK_(_dX_,encode_arguments_CZ_(args_Dg_)):_dW_, _Dl_=_gK_(_Dj_,_Dh_); return _gK_ (_dU_, _gK_ (_iE_ (_dV_, _hW_ (function(eta_Dk_){return urlencode_Co_(0,eta_Dk_);}, path_Di_)), _Dl_)); default: var match_Dm_=param_C2_[1], frag_Dn_=match_Dm_[6], args_Do_=match_Dm_[5], port_Dp_=match_Dm_[2], path_Ds_=match_Dm_[3], host_Dr_=match_Dm_[1], _Dq_= caml_string_notequal(frag_Dn_,_ei_) ?_gK_(_eh_,urlencode_Co_(0,frag_Dn_)) :_eg_, _Dt_=args_Do_?_gK_(_ef_,encode_arguments_CZ_(args_Do_)):_ee_, _Dv_=_gK_(_Dt_,_Dq_), _Dx_= _gK_ (_ec_, _gK_ (_iE_ (_ed_, _hW_ (function(eta_Du_){return urlencode_Co_(0,eta_Du_);}, path_Ds_)), _Dv_)), _Dw_=80===port_Dp_?_ea_:_gK_(_eb_,string_of_int_gU_(port_Dp_)), _Dy_=_gK_(_Dw_,_Dx_); return _gK_(_d$_,_gK_(urlencode_Co_(0,host_Dr_),_Dy_));}} urldecode_js_string_string_Cn_(l_B8_.hostname); try {caml_int_of_string(caml_js_to_byte_string(l_B8_.port));} catch(_DB_){if(_DB_[1]!==_a_)throw _DB_;} path_of_path_string_Ct_(urldecode_js_string_string_Cn_(l_B8_.pathname)); decode_arguments_js_string_C0_(l_B8_.search); urldecode_js_string_string_Cn_(l_B8_.href); var formData_DJ_=window.FormData; function _DI_(form_contents_DC_,form_elt_DE_) {if(891486873<=form_contents_DC_[1]) {var list_DD_=form_contents_DC_[2]; list_DD_[1]=[0,form_elt_DE_,list_DD_[1]]; return 0;} var f_DF_=form_contents_DC_[2], _DG_=form_elt_DE_[2], _DH_=form_elt_DE_[1]; return 781515420<=_DG_[1] ?f_DF_.append(_DH_.toString(),_DG_[2]) :f_DF_.append(_DH_.toString(),_DG_[2]);} function _DL_(param_DK_){return ActiveXObject;} var _DO_=[0,_c7_]; function icon_DN_(nm_DM_){return _gK_(_C_,nm_DM_).toString();} var tree_color_DP_=_A_.toString(); function option_DS_(var_DR_) {return _z7_ (var_DR_, function(param_DQ_){return new array_constructor_Aa_();});} var style_DT_=option_DS_(window.hyp_style); function opt_style_EL_(v_DW_,default_DU_) {return _z7_(v_DW_,function(param_DV_){return default_DU_;});} function sdiv_ED_(z_DX_,s_DY_){return [-1,z_DX_[1]/s_DY_,z_DX_[2]/s_DY_];} function sq_norm_D0_(c_DZ_){return c_DZ_[1]*c_DZ_[1]+c_DZ_[2]*c_DZ_[2];} function norm_EC_(c_D1_){return Math.sqrt(sq_norm_D0_(c_D1_));} function conj_Em_(z_D2_){return [-1,z_D2_[1],-z_D2_[2]];} function neg_EM_(z_D3_){return [-1,-z_D3_[1],-z_D3_[2]];} function add_Ey_(z_D5_,t_D4_) {return [-1,z_D5_[1]+t_D4_[1],z_D5_[2]+t_D4_[2]];} function sub_EF_(z_D7_,t_D6_) {return [-1,z_D7_[1]-t_D6_[1],z_D7_[2]-t_D6_[2]];} function mul_Eo_(z_D9_,t_D8_) {return [-1, z_D9_[1]*t_D8_[1]-z_D9_[2]*t_D8_[2], z_D9_[1]*t_D8_[2]+z_D9_[2]*t_D8_[1]];} function add_mul_Ee_(a_Ea_,z_D$_,b_D__) {return [-1, a_Ea_[1]*z_D$_[1]-a_Ea_[2]*z_D$_[2]+b_D__[1], a_Ea_[1]*z_D$_[2]+a_Ea_[2]*z_D$_[1]+b_D__[2]];} function div_El_(z_Ed_,t_Eb_) {var n_Ec_=sq_norm_D0_(t_Eb_); return [-1, (z_Ed_[1]*t_Eb_[1]+z_Ed_[2]*t_Eb_[2])/n_Ec_, (z_Ed_[2]*t_Eb_[1]-z_Ed_[1]*t_Eb_[2])/n_Ec_];} function transf_Ep_(a_Ej_,b_Ei_,c_Eh_,d_Ef_,z_Eg_) {var _Ek_=add_mul_Ee_(c_Eh_,z_Eg_,d_Ef_); return div_El_(add_mul_Ee_(a_Ej_,z_Eg_,b_Ei_),_Ek_);} function transl_EN_(p_En_) {var c_Er_=mul_Eo_(conj_Em_(p_En_),one_h_); return function(z_Eq_) {return transf_Ep_(one_h_,p_En_,c_Er_,one_h_,z_Eq_);};} function compose_EO_(param_Ev_,_Es_) {var t2_Et_=_Es_[2], p2_Eu_=_Es_[1], t1_Ex_=param_Ev_[2], t2p1_Ew_=mul_Eo_(t2_Et_,param_Ev_[1]), den_Ez_=add_Ey_(mul_Eo_(t2p1_Ew_,conj_Em_(p2_Eu_)),one_h_), _EA_=div_El_(conj_Em_(den_Ez_),den_Ez_), _EB_=mul_Eo_(mul_Eo_(t1_Ex_,t2_Et_),_EA_), _EE_=sdiv_ED_(_EB_,norm_EC_(_EB_)); return [0,div_El_(add_Ey_(t2p1_Ew_,p2_Eu_),den_Ez_),_EE_];} function compute_translation_EP_(z0_EG_,z1_EH_) {var dz_EI_=sub_EF_(z1_EH_,z0_EG_), z0z1_EJ_=mul_Eo_(z0_EG_,z1_EH_), _EK_=1-sq_norm_D0_(z0z1_EJ_); return sdiv_ED_(add_Ey_(mul_Eo_(z0z1_EJ_,conj_Em_(dz_EI_)),dz_EI_),_EK_);} var json_EQ_=JSON; function http_get_HK_(url_Fw_) {var _EU_=0,_EV_=0,_EW_=0,_EX_=0,_EY_=0,_EZ_=0; function _E1_(r_ER_) {var cod_ES_=r_ER_[2],msg_ET_=r_ER_[4]; if(0!==cod_ES_&&200!==cod_ES_)return [0,[2,[0,0,0,0,0]]]; return return_yg_(msg_ET_);} var headers_E0_=_EZ_?_EZ_[1]:0, get_args_E2_=_EW_?_EW_[1]:0, check_headers_E3_=_EU_?_EU_[1]:function(param_E4_,_E5_){return 1;}; if(_EV_) {var form_arg_E6_=_EV_[1]; if(_EX_) {var post_args_E8_=_EX_[1]; _h9_ (function(param_E7_) {return _DI_ (form_arg_E6_, [0,param_E7_[1],[0,-976970511,param_E7_[2].toString()]]);}, post_args_E8_);} var form_arg_E9_=[0,form_arg_E6_];} else if(_EX_) {var post_args_E__=_EX_[1], _E$_=_z8_(_Ao_(formData_DJ_)), contents_Fa_=_E$_?[0,808620462,new (_E$_[1])()]:[0,891486873,[0,0]]; _h9_ (function(param_Fb_) {return _DI_ (contents_Fa_, [0,param_Fb_[1],[0,-976970511,param_Fb_[2].toString()]]);}, post_args_E__); var form_arg_E9_=[0,contents_Fa_];} else var form_arg_E9_=0; if(form_arg_E9_) {var _Fc_=form_arg_E9_[1]; if(_EY_) var _Fd_=[0,_dy_,_EY_,126925477]; else {if(891486873<=_Fc_[1]) {var yes_Fe_=0,no_Ff_=0,param_Fg_=_Fc_[2][1]; for(;;) {if(param_Fg_) {var l_Fh_=param_Fg_[2], x_Fi_=param_Fg_[1], _Fj_=781515420<=x_Fi_[2][1]?0:1; if(_Fj_) {var _Fk_=[0,x_Fi_,yes_Fe_],yes_Fe_=_Fk_,param_Fg_=l_Fh_; continue;} var _Fl_=[0,x_Fi_,no_Ff_],no_Ff_=_Fl_,param_Fg_=l_Fh_; continue;} var _Fm_=_h8_(no_Ff_); _h8_(yes_Fe_); if(_Fm_) {var nine_digits_Fo_= function(param_Fn_) {return string_of_int_gU_(math_Aj_.random()*1000000000|0);}, _Fp_=nine_digits_Fo_(0), _Fq_=_gK_(_da_,_gK_(nine_digits_Fo_(0),_Fp_)), _Fr_=[0,_dw_,[0,_gK_(_dx_,_Fq_)],[0,164354597,_Fq_]];} else var _Fr_=_dv_; var _Fs_=_Fr_; break;}} else var _Fs_=_du_; var _Fd_=_Fs_;} var match_Ft_=_Fd_;} else var match_Ft_=[0,_dt_,_EY_,126925477]; var post_encode_Fu_=match_Ft_[3], content_type_Fv_=match_Ft_[2], method__Fy_=match_Ft_[1], _Fx_=caml_js_from_byte_string(url_Fw_); function _F7_(handle_Fz_) {var res_FA_=match_result_Af_(handle_Fz_), _FB_= caml_js_to_byte_string (_z7_(array_get_Ae_(res_FA_,1),interrupt_Cd_).toLowerCase()); if(caml_string_notequal(_FB_,_dL_)&&caml_string_notequal(_FB_,_dK_)) {if(caml_string_notequal(_FB_,_dJ_)&&caml_string_notequal(_FB_,_dI_)) {if (caml_string_notequal(_FB_,_dH_)&& caml_string_notequal(_FB_,_dG_)) {var _FD_=1,_FC_=0;} else var _FC_=1; if(_FC_){var ssl_FE_=1,_FD_=2;}} else var _FD_=0; switch(_FD_) {case 1:var _FF_=0;break; case 2:var _FF_=1;break; default:var ssl_FE_=0,_FF_=1;} if(_FF_) {var path_str_FG_= urldecode_js_string_string_Cn_ (_z7_(array_get_Ae_(res_FA_,5),interrupt_Cd_)), _FI_=function(param_FH_){return caml_js_from_byte_string(_dP_);}, _FK_= urldecode_js_string_string_Cn_ (_z7_(array_get_Ae_(res_FA_,9),_FI_)), _FL_=function(param_FJ_){return caml_js_from_byte_string(_dQ_);}, _FM_= decode_arguments_js_string_C0_ (_z7_(array_get_Ae_(res_FA_,7),_FL_)), _FO_=path_of_path_string_Ct_(path_str_FG_), _FP_=function(param_FN_){return caml_js_from_byte_string(_dR_);}, _FQ_=caml_js_to_byte_string(_z7_(array_get_Ae_(res_FA_,4),_FP_)), _FR_= caml_string_notequal(_FQ_,_dO_) ?caml_int_of_string(_FQ_) :ssl_FE_?443:80, url_FS_= [0, urldecode_js_string_string_Cn_ (_z7_(array_get_Ae_(res_FA_,2),interrupt_Cd_)), _FR_, _FO_, path_str_FG_, _FM_, _FK_], _FT_=ssl_FE_?[1,url_FS_]:[0,url_FS_]; return [0,_FT_];}} throw [0,Not_an_http_protocol_CY_];} function _F8_(param_F6_) {function _F4_(handle_FU_) {var res_FV_=match_result_Af_(handle_FU_), path_str_FW_= urldecode_js_string_string_Cn_ (_z7_(array_get_Ae_(res_FV_,2),interrupt_Cd_)); function _FY_(param_FX_){return caml_js_from_byte_string(_dS_);} var _F0_= caml_js_to_byte_string(_z7_(array_get_Ae_(res_FV_,6),_FY_)); function _F1_(param_FZ_){return caml_js_from_byte_string(_dT_);} var _F2_= decode_arguments_js_string_C0_ (_z7_(array_get_Ae_(res_FV_,4),_F1_)); return [0, [2, [0, path_of_path_string_Ct_(path_str_FW_), path_str_FW_, _F2_, _F0_]]];} function _F5_(param_F3_){return 0;} return _zO_(file_re_DA_.exec(_Fx_),_F5_,_F4_);} var _F9_=_zO_(url_re_C1_.exec(_Fx_),_F8_,_F7_); if(_F9_) {var _F__=_F9_[1]; switch(_F__[0]) {case 0: var url_F$_=_F__[1],_Ga_=url_F$_.slice(),_Gb_=url_F$_[5]; _Ga_[5]=0; var match_Gc_=[0,string_of_url_Dz_([0,_Ga_]),_Gb_],_Gd_=1; break; case 1: var url_Ge_=_F__[1],_Gf_=url_Ge_.slice(),_Gg_=url_Ge_[5]; _Gf_[5]=0; var match_Gc_=[0,string_of_url_Dz_([1,_Gf_]),_Gg_],_Gd_=1; break; default:var _Gd_=0;}} else var _Gd_=0; if(!_Gd_)var match_Gc_=[0,url_Fw_,0]; var url_Gh_=match_Gc_[1], _Gi_=_gQ_(match_Gc_[2],get_args_E2_), url_Gj_= _Gi_?_gK_(url_Gh_,_gK_(_ds_,encode_arguments_CZ_(_Gi_))):url_Gh_, match_Gk_=task_zi_(0), w_Gl_=match_Gk_[2], res_Gm_=match_Gk_[1]; try {var _Gn_=new XMLHttpRequest(),req_Go_=_Gn_;} catch(_Hw_) {try {var a5f6575ba_Gp_=_DL_(0), _Gq_=new a5f6575ba_Gp_(_c$_.toString()), req_Go_=_Gq_;} catch(_Gx_) {try {var a64f1392a_Gr_=_DL_(0), _Gs_=new a64f1392a_Gr_(_c__.toString()), req_Go_=_Gs_;} catch(_Gw_) {try {var a30a5da5a_Gt_=_DL_(0), _Gu_=new a30a5da5a_Gt_(_c9_.toString());} catch(_Gv_){throw [0,_d_,_c8_];} var req_Go_=_Gu_;}}} req_Go_.open(method__Fy_.toString(),url_Gj_.toString(),_true_z9_); if(content_type_Fv_) req_Go_.setRequestHeader (_dr_.toString(),content_type_Fv_[1].toString()); _h9_ (function(param_Gy_) {return req_Go_.setRequestHeader (param_Gy_[1].toString(),param_Gy_[2].toString());}, headers_E0_); function headers_GE_(s_GC_) {function _GB_(v_Gz_){return [0,new MlWrappedString(v_Gz_)];} function _GD_(param_GA_){return 0;} return _zO_ (req_Go_.getResponseHeader(caml_js_from_byte_string(s_GC_)), _GD_, _GB_);} var checked_GF_=[0,0]; function do_check_headers_GI_(param_GH_) {var _GG_= checked_GF_[1] ?0 :_hI_(check_headers_E3_,req_Go_.status,headers_GE_) ?0 :(wakeup_result_x1_ (w_Gl_,[1,[0,_DO_,[0,req_Go_.status,headers_GE_]]]), req_Go_.abort(), 1); _GG_; checked_GF_[1]=1; return 0;} req_Go_.onreadystatechange= caml_js_wrap_callback (function(param_GN_) {switch(req_Go_.readyState) {case 2:if(!onIE_AU_)return do_check_headers_GI_(0);break; case 3:if(onIE_AU_)return do_check_headers_GI_(0);break; case 4: do_check_headers_GI_(0); var _GM_= function(param_GL_) {var _GJ_=_z4_(req_Go_.responseXML); if(_GJ_) {var doc_GK_=_GJ_[1]; return _Ap_(doc_GK_.documentElement)===null_zE_ ?0 :[0,doc_GK_];} return 0;}; return wakeup_ye_ (w_Gl_, [0, url_Gj_, req_Go_.status, headers_GE_, new MlWrappedString(req_Go_.responseText), _GM_]); default:} return 0;}); if(form_arg_E9_) {var _GO_=form_arg_E9_[1]; if(891486873<=_GO_[1]) {var l_GP_=_GO_[2]; if(typeof post_encode_Fu_==="number") {var _GV_=l_GP_[1]; req_Go_.send (_Ap_ (_iE_ (_do_, _hW_ (function(param_GQ_) {var _GR_=param_GQ_[2],_GS_=param_GQ_[1]; if(781515420<=_GR_[1]) {var _GT_= _gK_ (_dq_,urlencode_Co_(0,new MlWrappedString(_GR_[2].name))); return _gK_(urlencode_Co_(0,_GS_),_GT_);} var _GU_= _gK_(_dp_,urlencode_Co_(0,new MlWrappedString(_GR_[2]))); return _gK_(urlencode_Co_(0,_GS_),_GU_);}, _GV_)).toString ()));} else {var boundary_GW_=post_encode_Fu_[2], _GZ_= function(data_GX_) {var data_GY_=_Ap_(data_GX_.join(_dz_.toString())); return _z5_(req_Go_.sendAsBinary) ?req_Go_.sendAsBinary(data_GY_) :req_Go_.send(data_GY_);}, _G1_=l_GP_[1], b_G0_=new array_constructor_Aa_(), _Hu_= function(param_G2_) {b_G0_.push(_gK_(_db_,_gK_(boundary_GW_,_dc_)).toString()); return b_G0_;}; _zl_ (_zl_ (iter_s_zx_ (function(v_G3_) {b_G0_.push(_gK_(_dg_,_gK_(boundary_GW_,_dh_)).toString()); var _G4_=v_G3_[2],_G5_=v_G3_[1]; if(781515420<=_G4_[1]) {var value_G6_=_G4_[2], _Hb_=-1041425454, _Hc_= function(file_Ha_) {var _G9_=_dn_.toString(), _G8_=_dm_.toString(), _G7_=_z8_(value_G6_.name); if(_G7_) var _G__=_G7_[1]; else {var _G$_=_z8_(value_G6_.fileName), _G__=_G$_?_G$_[1]:_q_(_er_);} b_G0_.push (_gK_(_dk_,_gK_(_G5_,_dl_)).toString(),_G__,_G8_,_G9_); b_G0_.push(_di_.toString(),file_Ha_,_dj_.toString()); return return_yg_(0);}, _Hd_=_z8_(_Ao_(_B1_)); if(_Hd_) {var reader_He_=new (_Hd_[1])(), match_Hf_=task_zi_(0), res_Hg_=match_Hf_[1], w_Hk_=match_Hf_[2]; reader_He_.onloadend= handler_AQ_ (function(param_Hl_) {if(2===reader_He_.readyState) {var _Hh_=reader_He_.result, _Hi_= caml_equal(typeof _Hh_,_es_.toString())?_Ap_(_Hh_):null_zE_, _Hj_=_z4_(_Hi_); if(!_Hj_)throw [0,_d_,_et_]; wakeup_ye_(w_Hk_,_Hj_[1]);} return _false_z__;}); on_cancel_zj_ (res_Hg_,function(param_Hm_){return reader_He_.abort();}); if(typeof _Hb_==="number") if(-550809787===_Hb_) reader_He_.readAsDataURL(value_G6_); else if(936573133<=_Hb_) reader_He_.readAsText(value_G6_); else reader_He_.readAsBinaryString(value_G6_); else reader_He_.readAsText(value_G6_,_Hb_[2]); var _Hn_=res_Hg_;} else {var fail_Hp_=function(param_Ho_){return _q_(_ev_);}; if(typeof _Hb_==="number") var _Hq_= -550809787===_Hb_ ?_z5_(value_G6_.getAsDataURL) ?value_G6_.getAsDataURL() :fail_Hp_(0) :936573133<=_Hb_ ?_z5_(value_G6_.getAsText) ?value_G6_.getAsText(_eu_.toString()) :fail_Hp_(0) :_z5_(value_G6_.getAsBinary) ?value_G6_.getAsBinary() :fail_Hp_(0); else {var e_Hr_=_Hb_[2], _Hq_= _z5_(value_G6_.getAsText) ?value_G6_.getAsText(e_Hr_) :fail_Hp_(0);} var _Hn_=return_yg_(_Hq_);} return _zk_(_Hn_,_Hc_);} var value_Ht_=_G4_[2],_Hs_=_df_.toString(); b_G0_.push (_gK_(_dd_,_gK_(_G5_,_de_)).toString(),value_Ht_,_Hs_); return return_yg_(0);}, _G1_), _Hu_), _GZ_);}} else req_Go_.send(_GO_[2]);} else req_Go_.send(null_zE_); on_cancel_zj_(res_Gm_,function(param_Hv_){return req_Go_.abort();}); return bind_yW_(res_Gm_,_E1_);} function load_image_HL_(src_HG_) {var img_Hx_=createImg_Bp_(document_A4_); function _HA_(param_Hy_){return return_yg_(img_Hx_);} var match_Hz_=task_zi_(0),w_HC_=match_Hz_[2],t_HD_=match_Hz_[1]; function cont_HE_(x_HB_){return wakeup_ye_(w_HC_,x_HB_);} img_Hx_.onload= handler_AQ_(function(param_HF_){cont_HE_(0);return _false_z__;}); img_Hx_.src=src_HG_; return bind_yW_(t_HD_,_HA_);} function create_canvas_HM_(w_HI_,h_HJ_) {var c_HH_=createCanvas_Bv_(window_A3_.document); c_HH_.width=w_HI_; c_HH_.height=h_HJ_; return c_HH_;} var debug_widget_HN_=createDiv_Bn_(document_A4_); debug_widget_HN_.style.position=_z_.toString(); debug_widget_HN_.style.bottom=_y_.toString(); debug_widget_HN_.style.left=_x_.toString(); debug_widget_HN_.style.lineHeight=_w_.toString(); var text_size_div_HQ_= [246, function(param_HP_) {var d_HO_=createDiv_Bn_(document_A4_); d_HO_.style.visibility=_R_.toString(); d_HO_.style.position=_Q_.toString(); d_HO_.style.whiteSpace=_P_.toString(); appendChild_AO_(document_A4_.body,d_HO_); return d_HO_;}], navigator_HR_=window.navigator; function default_language_HZ_(param_HW_) {function _HV_(param_HU_) {function _HT_(param_HS_){return _S_.toString();} return _z7_(navigator_HR_.userLanguage,_HT_);} return _z7_(navigator_HR_.language,_HV_).substring(0,2);} function _H1_(st_HX_) {var _HY_=st_HX_.getItem(_T_.toString()), _H0_=_HY_==null_zE_?default_language_HZ_(0):_HY_; return _H0_;} var language_H2_= [0,_z1_(window_A3_.localStorage,default_language_HZ_,_H1_)]; _B3_.log(language_H2_[1]); function local_messages_H__(msgs_H3_) {return option_DS_(msgs_H3_[language_H2_[1]]);} function screen_transform_H$_(canvas_H6_) {var _H4_=opt_style_EL_(style_DT_.padding,0), offset_H5_=opt_style_EL_(style_DT_.border,0.5)+_H4_, w_H7_=canvas_H6_.width, h_H8_=canvas_H6_.height, rx_H9_=_gy_(5,w_H7_/2-offset_H5_); return [0,rx_H9_,_gy_(5,h_H8_/2-offset_H5_),w_H7_/2,h_H8_/2];} var eps_Ia_=0.05; function from_screen_Ih_(canvas_Ib_,x_Ie_,y_Id_) {var match_Ic_=screen_transform_H$_(canvas_Ib_), z_If_= [-1, (x_Ie_-match_Ic_[3])/match_Ic_[1], (y_Id_-match_Ic_[4])/match_Ic_[2]], n_Ig_=norm_EC_(z_If_); return n_Ig_<=1-eps_Ia_?z_If_:sdiv_ED_(z_If_,n_Ig_/(1-eps_Ia_));} var pi_Ii_=4*Math.atan(1); function ellipse_arc_Ir_ (c_Ij_,cx_Il_,cy_Ik_,rx_In_,ry_Im_,start_Iq_,fin_Ip_,clock_wise_Io_) {c_Ij_.save(); c_Ij_.translate(cx_Il_,cy_Ik_); c_Ij_.scale(rx_In_,ry_Im_); c_Ij_.arc(0,0,1,start_Iq_,fin_Ip_,clock_wise_Io_); return c_Ij_.restore();} var shadow_Is_=0; function _IU_(x_It_,f_Iu_){return _g$_(f_Iu_,x_It_);} function tree_vertice_count_Iw_(n_Iv_) {var l_IA_=n_Iv_[2],_Iz_=1; return _hM_ (function(s_Iy_,n_Ix_) {return s_Iy_+tree_vertice_count_Iw_(n_Ix_)|0;}, _Iz_, l_IA_);} function tree_edge_count_IC_(n_IB_) {var l_IG_=n_IB_[2],_IF_=0; return _hM_ (function(s_IE_,n_ID_) {return (s_IE_+1|0)+tree_edge_count_IC_(n_ID_)|0;}, _IF_, l_IG_);} function randomize_tree_IT_(n_IH_) {var ch_II_=n_IH_[2],_IJ_=ch_II_.length-1-1|0,_IK_=0; if(!(_IJ_<_IK_)) {var i_IL_=_IJ_; for(;;) {var _IM_=i_IL_+1|0,v_IR_=caml_array_get(ch_II_,i_IL_); if(1073741823<_IM_||!(0<_IM_)) var _IN_=0; else for(;;) {var r_IO_=_pz_(_pA_),v_IP_=caml_mod(r_IO_,_IM_); if(((1073741823-_IM_|0)+1|0)<(r_IO_-v_IP_|0))continue; var _IQ_=v_IP_,_IN_=1; break;} if(!_IN_)var _IQ_=_gw_(_fw_); caml_array_set(ch_II_,i_IL_,caml_array_get(ch_II_,_IQ_)); caml_array_set(ch_II_,_IQ_,v_IR_); var _IS_=i_IL_-1|0; if(_IK_!==i_IL_){var i_IL_=_IS_;continue;} break;}} return _hK_(randomize_tree_IT_,ch_II_);} var need_redraw_IV_=[0,0], redraw_funct_IX_=[0,function(param_IW_){return 0;}]; function perform_redraw_IZ_(param_IY_) {need_redraw_IV_[1]=0;return _g$_(redraw_funct_IX_[1],0);} function schedule_redraw_I2_(now_I1_) {return need_redraw_IV_[1] ?0 :(need_redraw_IV_[1]= 1, _g$_ (_B2_, caml_js_wrap_callback (function(param_I0_) {return need_redraw_IV_[1]?perform_redraw_IZ_(0):0;})));} regexp_B6_(_u_); regexp_B6_(_t_); regexp_B6_(_s_); function compute_text_nodes_Lr_(node_names_I3_,nodes_Jc_) {try {var _I4_=_h__(language_H2_[1],node_names_I3_)[1],names_I5_=_I4_;} catch(_I6_) {if(_I6_[1]!==_c_)throw _I6_; try {var _I7_=_h__(_ag_.toString(),node_names_I3_)[1],_I8_=_I7_;} catch(_I9_){if(_I9_[1]!==_c_)throw _I9_;var _I8_=_qe_(0,11);} var names_I5_=_I8_;} try {var _I__=_qf_(names_I5_,_af_),_I$_=_I__;} catch(_Ja_){if(_Ja_[1]!==_c_)throw _Ja_;var _I$_=_ae_;} document_A4_.title=_I$_.toString(); var _Jb_=0,_Jd_=nodes_Jc_.length-1-1|0; if(!(_Jd_<_Jb_)) {var i_Je_=_Jb_; for(;;) {var _Jf_=caml_array_get(nodes_Jc_,i_Je_),_Jg_=_Jf_[2],_JC_=_Jf_[1]; if(typeof _Jg_==="number"||!(4204112===_Jg_[1])) var _Jh_=0; else {var match_Ji_=_Jg_[2], info_Jj_=match_Ji_[3], is_root_JB_=match_Ji_[1]; try {var _Jk_=_qf_(names_I5_,info_Jj_), font_Jl_=opt_style_EL_(style_DT_.nodeFont,_ad_.toString()), _Jm_=caml_obj_tag(text_size_div_HQ_), d_Jn_= 250===_Jm_ ?text_size_div_HQ_[1] :246===_Jm_?_iW_(text_size_div_HQ_):text_size_div_HQ_; d_Jn_.style.font=font_Jl_; var txt_Jo_=document_A4_.createTextNode(_Jk_.toString()); appendChild_AO_(d_Jn_,txt_Jo_); var _Jq_=d_Jn_.clientHeight,_Jp_=d_Jn_.clientWidth; removeChild_AP_(d_Jn_,txt_Jo_); var w_Jr_=_Jp_+8|0, h_Js_=_Jq_+8|0, canvas_Jt_=create_canvas_HM_(w_Jr_,h_Js_), c_Ju_=canvas_Jt_.getContext(_2d__A2_); c_Ju_.fillStyle= opt_style_EL_(style_DT_.nodeBackgroundColor,tree_color_DP_); var _Jv_=0,_Jw_=0,r_Jx_=_gx_(4,_gx_(w_Jr_,h_Js_)/2); c_Ju_.beginPath(); c_Ju_.moveTo(_Jw_+r_Jx_,_Jv_); c_Ju_.arcTo(_Jw_+w_Jr_,_Jv_,_Jw_+w_Jr_,_Jv_+r_Jx_,r_Jx_); c_Ju_.arcTo (_Jw_+w_Jr_,_Jv_+h_Js_,_Jw_+w_Jr_-r_Jx_,_Jv_+h_Js_,r_Jx_); c_Ju_.arcTo(_Jw_,_Jv_+h_Js_,_Jw_,_Jv_+h_Js_-r_Jx_,r_Jx_); c_Ju_.arcTo(_Jw_,_Jv_,_Jw_+r_Jx_,_Jv_,r_Jx_); c_Ju_.fill(); c_Ju_.font=font_Jl_; c_Ju_.fillStyle= opt_style_EL_(style_DT_.nodeColor,_ac_.toString()); c_Ju_.textAlign=_ab_.toString(); c_Ju_.textBaseline=_aa_.toString(); c_Ju_.fillText(_Jk_.toString(),w_Jr_/2,h_Js_/2); var _Jy_=[0,canvas_Jt_],canvas_Jz_=_Jy_;} catch(_JA_){if(_JA_[1]!==_c_)throw _JA_;var canvas_Jz_=0;} caml_array_set (nodes_Jc_, i_Je_, [0,_JC_,[0,4204112,[0,is_root_JB_,canvas_Jz_,info_Jj_]]]); var _Jh_=1;} _Jh_; var _JD_=i_Je_+1|0; if(_Jd_!==i_Je_){var i_Je_=_JD_;continue;} break;}} return 0;} function weight_sum_JM_(l_JH_) {var _JG_=0; return _hM_(function(s_JF_,n_JE_){return s_JF_+n_JE_[1];},_JG_,l_JH_);} function compute_weights_JK_(node_JI_) {var l_JJ_=node_JI_[2]; if(0===l_JJ_.length-1)return [0,1,[0]]; var l__JL_=_hL_(compute_weights_JK_,l_JJ_); return [0,0.6*weight_sum_JM_(l__JL_),l__JL_];} function close_button_KV_(over_JT_) {var color_JN_=opt_style_EL_(style_DT_.buttonColor,_aq_.toString()), size_JO_=32, offset_JP_=4, lw_JQ_=4, canvas_JR_=create_canvas_HM_(size_JO_,size_JO_), c_JS_=canvas_JR_.getContext(_2d__A2_); c_JS_.save(); c_JS_.lineWidth=2; c_JS_.strokeStyle=color_JN_; if(over_JT_){c_JS_.shadowBlur=offset_JP_;c_JS_.shadowColor=color_JN_;} c_JS_.beginPath(); var a_JU_=offset_JP_+lw_JQ_/Math.sqrt(2), b_JV_=size_JO_-offset_JP_-lw_JQ_/Math.sqrt(2); c_JS_.moveTo(a_JU_,a_JU_); c_JS_.lineTo(b_JV_,b_JV_); c_JS_.moveTo(a_JU_,b_JV_); c_JS_.lineTo(b_JV_,a_JU_); c_JS_.stroke(); c_JS_.restore(); var _JW_=over_JT_?_ap_:_ao_; canvas_JR_.className=_JW_.toString(); canvas_JR_.style.position=_an_.toString(); canvas_JR_.style.top=_am_.toString(); canvas_JR_.style.right=_al_.toString(); return canvas_JR_;} function img_button_K0_(href_J9_,h_J0_,src_JY_) {function decoration_J6_(over_J4_) {var img_JX_=createImg_Bp_(document_A4_); img_JX_.src=icon_DN_(src_JY_); var div_JZ_=createDiv_Bn_(document_A4_); div_JZ_.style.position=_aD_.toString(); div_JZ_.style.width=_aC_.toString(); var a76f8a41f_J1_=div_JZ_.style; a76f8a41f_J1_.height= _gK_(string_of_int_gU_(_gy_(38,h_J0_)),_aB_).toString(); div_JZ_.style.margin=_aA_.toString(); div_JZ_.style.borderRadius=_az_.toString(); var extra_J2_=_gy_(6,44-h_J0_|0),ae2701489_J3_=div_JZ_.style; ae2701489_J3_.padding= _kq_(sprintf_wB_,_ay_,extra_J2_/2|0,extra_J2_-(extra_J2_/2|0)|0).toString (); var _J5_=over_J4_?_ax_:_aw_; div_JZ_.className=_gK_(_av_,_J5_).toString(); appendChild_AO_(div_JZ_,img_JX_); return div_JZ_;} var button_J7_=createDiv_Bn_(document_A4_); button_J7_.className=_au_.toString(); button_J7_.style.width=_at_.toString(); var a90a42915_J8_=button_J7_.style; a90a42915_J8_.height= _gK_(string_of_int_gU_(8+_gy_(38,h_J0_)|0),_as_).toString(); if(href_J9_) {var url_J$_=href_J9_[1],a_J__=createA_Bo_(document_A4_); a_J__.target=_ar_.toString(); a_J__.href=url_J$_; appendChild_AO_(button_J7_,a_J__); var container_Ka_=a_J__;} else var container_Ka_=button_J7_; appendChild_AO_(container_Ka_,decoration_J6_(1)); appendChild_AO_(container_Ka_,decoration_J6_(0)); return button_J7_;} function tooltip_KW_(txt_Kc_) {var tooltip_Kb_=createDiv_Bn_(document_A4_); tooltip_Kb_.style.position=_aF_.toString(); tooltip_Kb_.className=_aE_.toString(); tooltip_Kb_.innerHTML=txt_Kc_; return tooltip_Kb_;} function show_on_click_Ln_(button_Kk_,txt_Kf_) {var activated_Kd_=[0,0]; return button_Kk_.onclick= handler_AQ_ (function(ev_Kj_) {if(!activated_Kd_[1]) {activated_Kd_[1]=1; var c_Ke_=[0,null_zE_]; c_Ke_[1]= _Ap_ (_AS_ (document_A4_, click_AV_, handler_AQ_ (function(ev_Ki_) {function _Kh_(param_Kg_) {_z3_(c_Ke_[1],_AT_); txt_Kf_.className=_aH_.toString(); activated_Kd_[1]=0; return return_yg_(0);} bind_yW_(yield_B0_(0),_Kh_); return _true_z9_;}), _true_z9_)); txt_Kf_.className=_aG_.toString();} stopPropagation_BQ_(ev_Kj_); return _false_z__;});} function show_image_Ls_ (all_messages_Kl_,image_info_Lq_,name_Ko_,small_image_KD_) {return bind_yW_ (image_info_Lq_, function(image_info_Kq_) {var messages_Km_=local_messages_H__(all_messages_Kl_), i_Kn_=[0,-1], _Kp_=0, _Kr_=image_info_Kq_.length-1-1|0, name_js_Kt_=name_Ko_.toString(); if(!(_Kr_<_Kp_)) {var j_Ks_=_Kp_; for(;;) {if(name_js_Kt_===caml_array_get(image_info_Kq_,j_Ks_)[1]) i_Kn_[1]=j_Ks_; var _Ku_=j_Ks_+1|0; if(_Kr_!==j_Ks_){var j_Ks_=_Ku_;continue;} break;}} if(0<=i_Kn_[1]) {var info_Kv_=caml_array_get(image_info_Kq_,i_Kn_[1]); _B3_.log(name_Ko_,i_Kn_[1]); var container_Kw_=createDiv_Bn_(document_A4_); container_Kw_.style.margin=_bM_.toString(); container_Kw_.style.position=_bL_.toString(); container_Kw_.style.top=_bK_.toString(); container_Kw_.style.bottom=_bJ_.toString(); container_Kw_.style.left=_bI_.toString(); container_Kw_.style.right=_bH_.toString(); var img_container_Kx_=createDiv_Bn_(document_A4_); img_container_Kx_.style.position=_bG_.toString(); img_container_Kx_.style.top=_bF_.toString(); img_container_Kx_.style.bottom=_bE_.toString(); img_container_Kx_.style.left=_bD_.toString(); img_container_Kx_.style.right=_bC_.toString(); var wrap_KB_= function(elt_KA_) {var w_Ky_=createDiv_Bn_(document_A4_); w_Ky_.style.position=_bT_.toString(); w_Ky_.style.top=_bS_.toString(); w_Ky_.style.bottom=_bR_.toString(); w_Ky_.style.left=_bQ_.toString(); w_Ky_.style.right=_bP_.toString(); w_Ky_.style.margin=_bO_.toString(); var a1e82fb4c_Kz_=w_Ky_.style; a1e82fb4c_Kz_.maxHeight= _gK_(string_of_int_gU_(info_Kv_[5]),_bN_).toString(); appendChild_AO_(w_Ky_,elt_KA_); return w_Ky_;}, img_KC_=createImg_Bp_(document_A4_), _KE_=caml_obj_tag(small_image_KD_), _KF_= 250===_KE_ ?small_image_KD_[1] :246===_KE_?_iW_(small_image_KD_):small_image_KD_, _KG_=poll_zm_(_KF_); if(_KG_) {var small_image_KI_=_KG_[1], canvas_KH_=create_canvas_HM_(info_Kv_[4],info_Kv_[5]), c_KJ_=canvas_KH_.getContext(_2d__A2_); c_KJ_.drawImage(small_image_KI_,0,0,info_Kv_[4],info_Kv_[5]); canvas_KH_.style.display=_bB_.toString(); canvas_KH_.style.height=_bA_.toString(); canvas_KH_.style.width=_bz_.toString(); canvas_KH_.style.maxWidth=_by_.toString(); canvas_KH_.style.maxHeight=_bx_.toString(); canvas_KH_.style.marginLeft=_bw_.toString(); canvas_KH_.style.marginRight=_bv_.toString(); var w_KK_=wrap_KB_(canvas_KH_); appendChild_AO_(img_container_Kx_,w_KK_); img_KC_.onload= handler_AQ_ (function(param_KL_) {removeChild_AP_(img_container_Kx_,w_KK_); return _false_z__;});} var _KM_=info_Kv_[7], _KN_=_KM_?_KM_[1]:_gK_(_bt_,_gK_(name_Ko_,_bu_)).toString(); img_KC_.src=_KN_; img_KC_.width=info_Kv_[4]; img_KC_.height=info_Kv_[5]; img_KC_.style.display=_bs_.toString(); img_KC_.style.height=_br_.toString(); img_KC_.style.width=_bq_.toString(); img_KC_.style.maxWidth=_bp_.toString(); img_KC_.style.maxHeight=_bo_.toString(); img_KC_.style.marginLeft=_bn_.toString(); img_KC_.style.marginRight=_bm_.toString(); var w_KO_=wrap_KB_(img_KC_), handle_error_KQ_= function(param_KP_) {removeChild_AP_(img_container_Kx_,w_KO_); return _false_z__;}; img_KC_.onerror=handler_AQ_(handle_error_KQ_); img_KC_.onabort=handler_AQ_(handle_error_KQ_); appendChild_AO_(img_container_Kx_,w_KO_); appendChild_AO_(container_Kw_,img_container_Kx_); var legend_KR_=createDiv_Bn_(document_A4_); legend_KR_.innerHTML=info_Kv_[3]; legend_KR_.onclick= handler_AQ_ (function(ev_KS_) {stopPropagation_BQ_(ev_KS_);return _true_z9_;}); legend_KR_.className=_bl_.toString(); legend_KR_.style.position=_bk_.toString(); legend_KR_.style.bottom=_bj_.toString(); legend_KR_.style.marginRight=_bi_.toString(); legend_KR_.style.marginLeft=_bh_.toString(); appendChild_AO_(container_Kw_,legend_KR_); var background_KT_=createDiv_Bn_(document_A4_); appendChild_AO_(background_KT_,container_Kw_); background_KT_.className=_bg_.toString(); background_KT_.style.width=_bf_.toString(); background_KT_.style.height=_be_.toString(); background_KT_.style.position=_bd_.toString(); background_KT_.style.top=_bc_.toString(); background_KT_.style.left=_bb_.toString(); background_KT_.style.zIndex=_ba_.toString(); var button_KU_=createDiv_Bn_(document_A4_); button_KU_.className=_a$_.toString(); button_KU_.style.position=_a__.toString(); button_KU_.style.top=_a9_.toString(); button_KU_.style.right=_a8_.toString(); button_KU_.style.cursor=_a7_.toString(); appendChild_AO_(button_KU_,close_button_KV_(1)); appendChild_AO_(button_KU_,close_button_KV_(0)); var tt_KX_= tooltip_KW_ (opt_style_EL_(messages_Km_.close,_a6_.toString())); tt_KX_.style.right=_a5_.toString(); tt_KX_.style.top=_a4_.toString(); appendChild_AO_(button_KU_,tt_KX_); appendChild_AO_(background_KT_,button_KU_); var buttons_KY_=createDiv_Bn_(document_A4_); buttons_KY_.style.position=_a3_.toString(); buttons_KY_.style.top=_a2_.toString(); buttons_KY_.style.left=_a1_.toString(); var suffix_KZ_= language_H2_[1]===_a0_.toString() ?_aZ_ :_gK_(_aY_,new MlWrappedString(language_H2_[1])), commons_K1_= img_button_K0_ ([0, _gK_(_aX_,_gK_(new MlWrappedString(info_Kv_[2]),suffix_KZ_)).toString ()], 52, _aW_), tt_K2_= tooltip_KW_ (opt_style_EL_ (messages_Km_.wikimediaCommons,_aV_.toString())); tt_K2_.style.left=_aU_.toString(); tt_K2_.style.top=_aT_.toString(); appendChild_AO_(commons_K1_,tt_K2_); appendChild_AO_(buttons_KY_,commons_K1_); var wikipedia_K3_=img_button_K0_(0,34,_aS_), txt_K4_=createDiv_Bn_(document_A4_), count_K5_=[0,0], dl_K6_=createDl_Bl_(document_A4_), list_Lk_= function(title_Li_,lang_K$_) {var ul_K7_=createUl_Bk_(document_A4_), empty_K8_=[0,1], _Lg_=info_Kv_[6]; _hK_ (function(param_K9_) {var name_K__=param_K9_[1],refer_Lb_=param_K9_[3]; if(param_K9_[2]===lang_K$_) {empty_K8_[1]=0; var a_La_=createA_Bo_(document_A4_); appendChild_AO_(a_La_,document_A4_.createTextNode(name_K__)); a_La_.target=_bW_.toString(); var refer_Lc_=new MlWrappedString(refer_Lb_), _Ld_= 0===refer_Lc_.getLen() ?new MlWrappedString(name_K__) :refer_Lc_, _Le_=_gK_(_bV_,_Ld_); a_La_.href= _gK_(_bU_,_gK_(new MlWrappedString(lang_K$_),_Le_)).toString (); var li_Lf_=createLi_Bm_(document_A4_); appendChild_AO_(li_Lf_,a_La_); return appendChild_AO_(ul_K7_,li_Lf_);} return 0;}, _Lg_); if(empty_K8_[1])return 0; count_K5_[1]+=1; var dd_Lh_=createDd_Bq_(document_A4_); appendChild_AO_ (dd_Lh_,document_A4_.createTextNode(title_Li_)); appendChild_AO_(dl_K6_,dd_Lh_); var dt_Lj_=createDt_Br_(document_A4_); appendChild_AO_(dt_Lj_,ul_K7_); return appendChild_AO_(dl_K6_,dt_Lj_);}, _Ll_=language_H2_[1]; list_Lk_ (opt_style_EL_(messages_Km_.language,_aR_.toString()),_Ll_); if(language_H2_[1]!==_aQ_.toString()) list_Lk_(_aO_.toString(),_aP_.toString()); if(0<count_K5_[1]) appendChild_AO_(txt_K4_,dl_K6_); else appendChild_AO_ (txt_K4_, document_A4_.createTextNode (opt_style_EL_(messages_Km_.noRef,_aN_.toString()))); txt_K4_.className=_aM_.toString(); txt_K4_.style.position=_aL_.toString(); txt_K4_.style.left=_aK_.toString(); txt_K4_.style.top=_aJ_.toString(); txt_K4_.style.whiteSpace=_aI_.toString(); appendChild_AO_(wikipedia_K3_,txt_K4_); appendChild_AO_(buttons_KY_,wikipedia_K3_); txt_K4_.onclick= handler_AQ_ (function(ev_Lm_) {stopPropagation_BQ_(ev_Lm_);return _true_z9_;}); show_on_click_Ln_(wikipedia_K3_,txt_K4_); buttons_KY_.onclick= handler_AQ_ (function(ev_Lo_) {stopPropagation_BQ_(ev_Lo_);return _true_z9_;}); appendChild_AO_(background_KT_,buttons_KY_); appendChild_AO_(document_A4_.body,background_KT_); background_KT_.onclick= handler_AQ_ (function(param_Lp_) {removeChild_AP_(document_A4_.body,background_KT_); return _true_z9_;});} return return_yg_(0);});} var information_en_Lt_=_r_.toString(); _py_(_pA_,caml_sys_random_seed(0)); _h9_ (function(src_Lu_){load_image_HL_(icon_DN_(src_Lu_));return 0;},icons_B_); function _Lw_(s_Lv_){return return_yg_(json_EQ_.parse(s_Lv_.toString()));} var _Nt_=bind_yW_(http_get_HK_(_V_),_Lw_); function _Nu_(s_Lx_) {var info_Ly_=json_EQ_.parse(s_Lx_.toString()), tree_Lz_=info_Ly_[1], node_names_LA_=info_Ly_[2]; randomize_tree_IT_(tree_Lz_); var node_names_L1_= _IU_ (_IU_ (node_names_LA_, _g$_ (_hL_, function(param_LB_) {var about_LF_=param_LB_[3], tbl_LE_=param_LB_[2], lang_LD_=param_LB_[1], h_LC_=_qe_(0,101); _hK_ (function(param_LG_) {var _LH_=new MlWrappedString(param_LG_[1]), _LJ_=new MlWrappedString(param_LG_[2]), i_LI_=_p2_(h_LC_,_LH_); caml_array_set (h_LC_[2], i_LI_, [0,_LH_,_LJ_,caml_array_get(h_LC_[2],i_LI_)]); h_LC_[1]=h_LC_[1]+1|0; var _LK_=h_LC_[2].length-1<<1<h_LC_[1]?1:0; if(_LK_) {var odata_LL_=h_LC_[2], osize_LM_=odata_LL_.length-1, nsize_LN_=osize_LM_*2|0, _LO_=nsize_LN_<_iH_?1:0; if(_LO_) {var ndata_LP_=caml_make_vect(nsize_LN_,0); h_LC_[2]=ndata_LP_; var insert_bucket_LS_= function(param_LQ_) {if(param_LQ_) {var key_LR_=param_LQ_[1],data_LT_=param_LQ_[2]; insert_bucket_LS_(param_LQ_[3]); var nidx_LU_=_p2_(h_LC_,key_LR_); return caml_array_set (ndata_LP_, nidx_LU_, [0,key_LR_,data_LT_,caml_array_get(ndata_LP_,nidx_LU_)]);} return 0;}, _LV_=0, _LW_=osize_LM_-1|0; if(!(_LW_<_LV_)) {var i_LX_=_LV_; for(;;) {insert_bucket_LS_(caml_array_get(odata_LL_,i_LX_)); var _LY_=i_LX_+1|0; if(_LW_!==i_LX_){var i_LX_=_LY_;continue;} break;}} var _LZ_=0;} else var _LZ_=_LO_; var _L0_=_LZ_;} else var _L0_=_LK_; return _L0_;}, tbl_LE_); return [0,lang_LD_,[0,h_LC_,about_LF_]];})), _hN_); function compute_Mb_(is_root_L$_,n_L2_) {var _L3_=new MlWrappedString(n_L2_[1]),ch_Ma_=n_L2_[2]; if(0===_L3_.getLen()) var info_L4_=870530776; else if(124===_L3_.safeGet(0)) {var _L5_=_iC_(_L3_,1,_L3_.getLen()-1|0), info_L4_= [0, 3654627, [0, [246, function(param_L__) {function _L9_(param_L8_) {function _L7_(img_L6_) {schedule_redraw_I2_(0);return return_yg_(img_L6_);} return bind_yW_ (load_image_HL_(_gK_(___,_gK_(_L5_,_$_)).toString()),_L7_);} return bind_yW_(yield_B0_(0),_L9_);}], _L5_]];} else var info_L4_=[0,4204112,[0,is_root_L$_,0,_L3_]]; return [0, info_L4_, _hL_(function(n_Mc_){return compute_Mb_(0,n_Mc_);},ch_Ma_)];} var _Md_=compute_Mb_(1,tree_Lz_), node_count_Me_=tree_vertice_count_Iw_(_Md_), vertices_Mf_=caml_make_vect(node_count_Me_,zero_i_), edges_Mg_=caml_make_vect(tree_edge_count_IC_(_Md_),_aj_), nodes_Mh_=caml_make_vect(node_count_Me_,[0,[0],870530776]), vi_Mi_=[0,0], ei_Mj_=[0,0], weights_MV_=compute_weights_JK_(_Md_); function layout_rec_MI_ (current_Mk_, current_weights_Mm_, is_root_Mt_, transf_Mq_, lineWidth_MH_, dir_Mz_) {var ch_Ml_=current_Mk_[2], ch_weights_Mn_=current_weights_Mm_[2], i_Mo_=vi_Mi_[1], info_Mp_=current_Mk_[1]; vi_Mi_[1]+=1; caml_array_set(vertices_Mf_,i_Mo_,transf_Mq_[1]); if(0===ch_Ml_.length-1) var ch__Mr_=[0]; else {var total_weight_Ms_=weight_sum_JM_(ch_weights_Mn_), j_Mv_=[0,0], _Mu_= is_root_Mt_ ?(total_weight_Ms_-caml_array_get(ch_weights_Mn_,0)[1])/2 :0, w0_Mw_=[0,_Mu_], _MN_= function(node_MJ_,weights_Mx_) {var w_My_=weights_Mx_[1], angle_MA_=Math.acos(dir_Mz_[1])*w_My_/total_weight_Ms_, th_MB_= Math.acos(dir_Mz_[1])* ((w0_Mw_[1]+w_My_/2)/total_weight_Ms_*2-1); j_Mv_[1]+=1; w0_Mw_[1]=w0_Mw_[1]+w_My_; var min_angle_MC_=pi_Ii_/3, a_MD_= [-1, (Math.cos(angle_MA_)-Math.cos(min_angle_MC_))/ (1-Math.cos(min_angle_MC_+angle_MA_)), 0], dir_ME_=[-1,Math.cos(min_angle_MC_),Math.sin(min_angle_MC_)], match_MF_= 0.25<a_MD_[1] ?[0,a_MD_,dir_ME_] :[0, a_g_, _hI_ (transl_EN_, neg_EM_(a_g_), [-1,Math.cos(angle_MA_),Math.sin(angle_MA_)])], dir_MG_=match_MF_[2], ch_MK_= layout_rec_MI_ (node_MJ_, weights_Mx_, 0, compose_EO_ (compose_EO_ ([0,match_MF_[1],one_h_], [0,zero_i_,[-1,Math.cos(th_MB_),Math.sin(th_MB_)]]), transf_Mq_), lineWidth_MH_*0.94, dir_MG_), i__MM_=ch_MK_[1], k_ML_=ei_Mj_[1]; ei_Mj_[1]+=1; caml_array_set(edges_Mg_,k_ML_,[0,i_Mo_,i__MM_,lineWidth_MH_]); return ch_MK_;}, l_MO_=ch_Ml_.length-1; if(ch_weights_Mn_.length-1!==l_MO_)throw [0,_d_,_ah_]; if(0===l_MO_) var _MP_=[0]; else {var r_MQ_= caml_make_vect (l_MO_, _MN_ (caml_array_get(ch_Ml_,0),caml_array_get(ch_weights_Mn_,0))), _MR_=1, _MS_=l_MO_-1|0; if(!(_MS_<_MR_)) {var i_MT_=_MR_; for(;;) {caml_array_set (r_MQ_, i_MT_, _MN_ (caml_array_get(ch_Ml_,i_MT_), caml_array_get(ch_weights_Mn_,i_MT_))); var _MU_=i_MT_+1|0; if(_MS_!==i_MT_){var i_MT_=_MU_;continue;} break;}} var _MP_=r_MQ_;} var ch__Mr_=_MP_;} caml_array_set(nodes_Mh_,i_Mo_,[0,[0],info_Mp_]); return [0,i_Mo_,ch__Mr_];} var tree_MW_=layout_rec_MI_(_Md_,weights_MV_,1,[0,zero_i_,one_h_],6,_ai_), frontiers_MX_=caml_make_vect(nodes_Mh_.length-1,[0,[0],[0]]); function node_info_M7_(param_MY_){return param_MY_[1];} function status_M4_(i_MZ_) {return [0,i_MZ_,870530776!==caml_array_get(nodes_Mh_,i_MZ_)[2]?1:0];} function compute_frontiers_M3_(node_M0_) {var l_M1_=node_M0_[2],i_M2_=node_M0_[1]; _hK_(compute_frontiers_M3_,l_M1_); if(0===l_M1_.length-1) {var _M5_=[0,status_M4_(i_M2_)],_M6_=[0,[0,status_M4_(i_M2_)],_M5_];} else {var _M8_= caml_array_get (frontiers_MX_, node_info_M7_(caml_array_get(l_M1_,l_M1_.length-1-1|0))) [2], _M6_= [0, caml_array_get (frontiers_MX_,node_info_M7_(caml_array_get(l_M1_,0))) [1], _M8_];} return caml_array_set(frontiers_MX_,i_M2_,_M6_);} compute_frontiers_M3_(tree_MW_); var neighboors_M9_=caml_make_vect(nodes_Mh_.length-1,[0]); function compute_neigh_Nn_(node_M__,parent_Ne_,lft_Nd_,rght_Nc_) {var ch_M$_=node_M__[2],i_Na_=node_M__[1]; caml_array_set (neighboors_M9_, i_Na_, caml_array_concat ([0, parent_Ne_, [0, lft_Nd_, [0, rght_Nc_, [0, _hL_ (function(n_Nb_){return status_M4_(node_info_M7_(n_Nb_));}, ch_M$_), 0]]]])); var is_root_Nf_=0===parent_Ne_.length-1?1:0, n_Ng_=ch_M$_.length-1, _Nh_=0, _Ni_=n_Ng_-1|0; if(!(_Ni_<_Nh_)) {var j_Nj_=_Nh_; for(;;) {var lft_Nk_= 0<j_Nj_ ?caml_array_get (frontiers_MX_, node_info_M7_(caml_array_get(ch_M$_,j_Nj_-1|0))) [2] :is_root_Nf_ ?caml_array_get (frontiers_MX_, node_info_M7_(caml_array_get(ch_M$_,n_Ng_-1|0))) [2] :lft_Nd_, rght_Nl_= j_Nj_<(n_Ng_-1|0) ?caml_array_get (frontiers_MX_, node_info_M7_(caml_array_get(ch_M$_,j_Nj_+1|0))) [1] :is_root_Nf_ ?caml_array_get (frontiers_MX_,node_info_M7_(caml_array_get(ch_M$_,0))) [1] :rght_Nc_, _Nm_=[0,status_M4_(i_Na_)]; compute_neigh_Nn_ (caml_array_get(ch_M$_,j_Nj_),_Nm_,lft_Nk_,rght_Nl_); var _No_=j_Nj_+1|0; if(_Ni_!==j_Nj_){var j_Nj_=_No_;continue;} break;}} return 0;} compute_neigh_Nn_(tree_MW_,[0],[0],[0]); var _Np_=0,_Nq_=nodes_Mh_.length-1-1|0; if(!(_Nq_<_Np_)) {var i_Nr_=_Np_; for(;;) {caml_array_set (nodes_Mh_, i_Nr_, [0, caml_array_get(neighboors_M9_,i_Nr_), caml_array_get(nodes_Mh_,i_Nr_)[2]]); var _Ns_=i_Nr_+1|0; if(_Nq_!==i_Nr_){var i_Nr_=_Ns_;continue;} break;}} compute_text_nodes_Lr_(node_names_L1_,nodes_Mh_); return return_yg_ ([0, [0, vertices_Mf_, edges_Mg_, nodes_Mh_, [0, caml_make_vect(node_count_Me_,0), caml_make_vect(node_count_Me_,0), caml_make_vect(node_count_Me_,0), caml_make_vect(node_count_Me_,0)]], node_names_L1_]);} var _Nw_=bind_yW_(http_get_HK_(tree_url_v_),_Nu_); function _Nx_(s_Nv_){return return_yg_(json_EQ_.parse(s_Nv_.toString()));} var _Ny_=bind_yW_(http_get_HK_(_ak_),_Nx_); window_A3_.onload= handler_AQ_ (function(param_RZ_) {try {createCanvas_Bv_(window_A3_.document); var _RR_= repr_xL_ (bind_yW_ (_Nw_, function(param_Nz_) {var tree_i18n_NA_=param_Nz_[2], match_NB_=param_Nz_[1], boxes_NC_=match_NB_[4], nodes_ND_=match_NB_[3], edges_NE_=match_NB_[2], vertices_NF_=match_NB_[1]; return bind_yW_ (_Nt_, function(all_messages_Qf_) {var page_NG_=document_A4_.documentElement; page_NG_.style.overflow=_cm_.toString(); page_NG_.style.height=_cl_.toString(); document_A4_.body.style.overflow=_ck_.toString(); document_A4_.body.style.margin=_cj_.toString(); document_A4_.body.style.height=_ci_.toString(); var canvas_NH_= create_canvas_HM_ (page_NG_.clientWidth,page_NG_.clientHeight); appendChild_AO_(document_A4_.body,canvas_NH_); var tr_NI_=[0,[0,zero_i_,one_h_]], tr__NJ_=[0,tr_NI_[1]], l_NK_=vertices_NF_.length-1, vertices__NL_= 0===l_NK_?[0]:caml_array_sub(vertices_NF_,0,l_NK_); redraw_funct_IX_[1]= function(param_PB_) {need_redraw_IV_[1]=0; _B3_.time(_co_.toString()); var w_NM_=page_NG_.clientWidth, h_NN_=page_NG_.clientHeight, _NO_= w_NM_!==canvas_NH_.width?0:h_NN_!==canvas_NH_.height?0:1; if(!_NO_){canvas_NH_.width=w_NM_;canvas_NH_.height=h_NN_;} var _NP_=tr__NJ_[1], t_NQ_=_NP_[2], p_NR_=_NP_[1], _NS_=0, _NT_=vertices_NF_.length-1-1|0, c_NV_=mul_Eo_(conj_Em_(p_NR_),t_NQ_); if(!(_NT_<_NS_)) {var i_NU_=_NS_; for(;;) {caml_array_set (vertices__NL_, i_NU_, transf_Ep_ (t_NQ_, p_NR_, c_NV_, one_h_, caml_array_get(vertices_NF_,i_NU_))); var _NW_=i_NU_+1|0; if(_NT_!==i_NU_){var i_NU_=_NW_;continue;} break;}} _B3_.timeEnd(_cn_.toString()); _B3_.time(_Z_.toString()); var c_NX_=canvas_NH_.getContext(_2d__A2_), transf_NY_=screen_transform_H$_(canvas_NH_), dy_NZ_=transf_NY_[4], dx_N0_=transf_NY_[3], ry_N2_=transf_NY_[2], rx_N1_=transf_NY_[1]; c_NX_.clearRect(0,0,canvas_NH_.width,canvas_NH_.height); var padding_N3_=opt_style_EL_(style_DT_.padding,0); c_NX_.beginPath(); ellipse_arc_Ir_ (c_NX_, dx_N0_, dy_NZ_, rx_N1_+padding_N3_, ry_N2_+padding_N3_, 0, 7, _false_z__); function _N5_(color_N4_) {c_NX_.fillStyle=color_N4_;return c_NX_.fill();} _z6_(style_DT_.backgroundColor,_N5_); function _N7_(color_N6_) {c_NX_.lineWidth=1; c_NX_.strokeStyle=color_N6_; return c_NX_.stroke();} _z6_(style_DT_.boundaryColor,_N7_); c_NX_.lineWidth=2; c_NX_.lineCap=_Y_.toString(); c_NX_.strokeStyle= opt_style_EL_(style_DT_.treeColor,tree_color_DP_); var ry_N8_=transf_NY_[2], rx_N9_=transf_NY_[1], _N__=0, _N$_=edges_NE_.length-1-1|0; if(!(_N$_<_N__)) {var i_Oa_=_N__; for(;;) {var match_Ob_=caml_array_get(edges_NE_,i_Oa_), z_Oc_=caml_array_get(vertices__NL_,match_Ob_[1]), z__Od_=caml_array_get(vertices__NL_,match_Ob_[2]), x_Oe_=z_Oc_[1]-z__Od_[1], y_Of_=z_Oc_[2]-z__Od_[2], w_Og_=match_Ob_[3]; if(4<rx_N9_*ry_N8_*(x_Oe_*x_Oe_+y_Of_*y_Of_)) {c_NX_.lineWidth=w_Og_; var d_Oh_=2*(z_Oc_[1]*z__Od_[2]-z_Oc_[2]*z__Od_[1]); if(Math.abs(d_Oh_)<0.05) {var dy_Oi_=transf_NY_[4], dx_Oj_=transf_NY_[3], ry_Ok_=transf_NY_[2], rx_Ol_=transf_NY_[1]; c_NX_.beginPath(); c_NX_.moveTo(z_Oc_[1]*rx_Ol_+dx_Oj_,z_Oc_[2]*ry_Ok_+dy_Oi_); c_NX_.lineTo (z__Od_[1]*rx_Ol_+dx_Oj_,z__Od_[2]*ry_Ok_+dy_Oi_); c_NX_.stroke();} else {var n1_Om_=sq_norm_D0_(z_Oc_)+1, n2_On_=sq_norm_D0_(z__Od_)+1, z0_Oo_= [-1, (z__Od_[2]*n1_Om_-z_Oc_[2]*n2_On_)/d_Oh_, (z_Oc_[1]*n2_On_-z__Od_[1]*n1_Om_)/d_Oh_], dy_Op_=transf_NY_[4], dx_Oq_=transf_NY_[3], ry_Or_=transf_NY_[2], rx_Os_=transf_NY_[1], rd_Ot_=norm_EC_(sub_EF_(z_Oc_,z0_Oo_)), start_Ou_=Math.atan2(z_Oc_[2]-z0_Oo_[2],z_Oc_[1]-z0_Oo_[1]), fin_Ov_=Math.atan2(z__Od_[2]-z0_Oo_[2],z__Od_[1]-z0_Oo_[1]); c_NX_.beginPath(); var alpha_Ow_=(fin_Ov_-start_Ou_+2*pi_Ii_)%(2*pi_Ii_); if(rx_Os_==ry_Or_) c_NX_.arc (z0_Oo_[1]*rx_Os_+dx_Oq_, z0_Oo_[2]*rx_Os_+dy_Op_, rd_Ot_*rx_Os_, start_Ou_, fin_Ov_, !!(pi_Ii_<alpha_Ow_?1:0)); else ellipse_arc_Ir_ (c_NX_, z0_Oo_[1]*rx_Os_+dx_Oq_, z0_Oo_[2]*ry_Or_+dy_Op_, rd_Ot_*rx_Os_, rd_Ot_*ry_Or_, start_Ou_, fin_Ov_, !!(pi_Ii_<alpha_Ow_?1:0)); c_NX_.stroke();}} var _Ox_=i_Oa_+1|0; if(_N$_!==i_Oa_){var i_Oa_=_Ox_;continue;} break;}} var image_count_Oy_=[0,0], large_image_count_Oz_=[0,0], _OA_=0, _OB_=nodes_ND_.length-1-1|0; if(!(_OB_<_OA_)) {var i_OC_=_OA_; for(;;) {var match_OD_=caml_array_get(nodes_ND_,i_OC_), img_OE_=match_OD_[2], l_OF_=match_OD_[1]; if(typeof img_OE_==="number") var _OG_=0; else {if(4204112<=img_OE_[1]) {var _OH_=img_OE_[2],_OI_=_OH_[2]; if(_OI_) {var txt_OJ_=_OI_[1], z_OK_=caml_array_get(vertices__NL_,i_OC_), circle_OO_=_OH_[1], _ON_=1, r2_OQ_= _hM_ (function(z_OK_) {return function(r2_OM_,param_OL_) {return _gx_ (r2_OM_, sq_norm_D0_ (sub_EF_(caml_array_get(vertices__NL_,param_OL_[1]),z_OK_)));};} (z_OK_), _ON_, l_OF_), w_OP_=txt_OJ_.width, h_OR_=txt_OJ_.height, img_d_OS_=Math.sqrt(w_OP_*w_OP_+h_OR_*h_OR_), rd_OT_=Math.sqrt(r2_OQ_*rx_N9_*ry_N8_)*0.5, rd_OU_=img_d_OS_/2<rd_OT_?img_d_OS_/2:rd_OT_, w_OV_=w_OP_/img_d_OS_*rd_OU_, h_OW_=h_OR_/img_d_OS_*rd_OU_; if(circle_OO_) {c_NX_.beginPath(); c_NX_.fillStyle= opt_style_EL_(style_DT_.nodeBackgroundColor,tree_color_DP_); c_NX_.arc (z_OK_[1]*rx_N9_+dx_N0_, z_OK_[2]*ry_N8_+dy_NZ_, Math.sqrt(w_OV_*w_OV_+h_OW_*h_OW_), 0, 7, _false_z__); c_NX_.fill();} c_NX_.drawImage (txt_OJ_, z_OK_[1]*rx_N9_+dx_N0_-w_OV_, z_OK_[2]*ry_N8_+dy_NZ_-h_OW_, 2*w_OV_, 2*h_OW_); var _OX_=1;} else {var _OG_=0,_OX_=0;}} else {var img_OY_=img_OE_[2][1]; caml_array_set(boxes_NC_[3],i_OC_,0); var z_OZ_=caml_array_get(vertices__NL_,i_OC_), min_scale_Pe_= function(z_OZ_) {return function(l_O3_,w_O8_,h_O__,s_O0_) {var s_O1_=[0,s_O0_],_O2_=0,_O4_=l_O3_.length-1-1|0; if(!(_O4_<_O2_)) {var i_O5_=_O2_; for(;;) {var match_O6_=caml_array_get(l_O3_,i_O5_), j_O7_=match_O6_[1], sx_O9_= Math.abs(caml_array_get(vertices__NL_,j_O7_)[1]-z_OZ_[1])/ w_O8_, sy_O$_= Math.abs(caml_array_get(vertices__NL_,j_O7_)[2]-z_OZ_[2])/ h_O__, large_Pb_=match_O6_[2], s__Pa_=sy_O$_<sx_O9_?sx_O9_:sy_O$_, s__Pc_=large_Pb_?s__Pa_:1.9*s__Pa_; if(s__Pc_<s_O1_[1])s_O1_[1]=s__Pc_; var _Pd_=i_O5_+1|0; if(_O4_!==i_O5_){var i_O5_=_Pd_;continue;} break;}} return s_O1_[1];};} (z_OZ_); if(caml_obj_tag(img_OY_)!==_iV_) {var _Pf_=caml_obj_tag(img_OY_), _Pg_=250===_Pf_?img_OY_[1]:246===_Pf_?_iW_(img_OY_):img_OY_, _Ph_=poll_zm_(_Pg_); if(_Ph_) {var img_Pi_=_Ph_[1], w_Pj_=img_Pi_.width, h_Pk_=img_Pi_.height, s_Pl_=min_scale_Pe_(l_OF_,1,1,1), scale_Pm_=s_Pl_/_gy_(w_Pj_/rx_N9_,h_Pk_/ry_N8_), w_Pn_=w_Pj_*scale_Pm_/2, h_Po_=h_Pk_*scale_Pm_/2; if(1<w_Pn_&&1<h_Po_) {if(shadow_Is_) {c_NX_.save(); var blur_Pp_=7*scale_Pm_, offset_Pq_=5*scale_Pm_, _Pr_=blur_Pp_<1?0:blur_Pp_; c_NX_.shadowBlur=_Pr_; var _Ps_=blur_Pp_<1?0:offset_Pq_; c_NX_.shadowOffsetX=_Ps_; var _Pt_=blur_Pp_<1?0:offset_Pq_; c_NX_.shadowOffsetY=_Pt_; c_NX_.shadowColor=_X_.toString();} var x_Pu_=z_OZ_[1]*rx_N9_+dx_N0_, y_Pv_=z_OZ_[2]*ry_N8_+dy_NZ_; c_NX_.drawImage (img_Pi_,x_Pu_-w_Pn_,y_Pv_-h_Po_,2*w_Pn_,2*h_Po_); if(shadow_Is_)c_NX_.restore(); caml_array_set(boxes_NC_[1],i_OC_,x_Pu_); caml_array_set(boxes_NC_[2],i_OC_,y_Pv_); caml_array_set(boxes_NC_[3],i_OC_,w_Pn_); caml_array_set(boxes_NC_[4],i_OC_,h_Po_); image_count_Oy_[1]+=1; var _Pw_= 2<=w_Pn_?2<=h_Po_?(large_image_count_Oz_[1]+=1,1):0:0; _Pw_; var _Px_=1;} else var _Px_=0; _Px_;}} else {var s_Py_=min_scale_Pe_(l_OF_,1,1,1); if(1<s_Py_*_gy_(rx_N9_,ry_N8_)) {var _Pz_=caml_obj_tag(img_OY_); if(250!==_Pz_&&246===_Pz_)_iW_(img_OY_);}} var _OX_=1;} if(_OX_)var _OG_=1;} _OG_; var _PA_=i_OC_+1|0; if(_OB_!==i_OC_){var i_OC_=_PA_;continue;} break;}} _B3_.timeEnd(_W_.toString()); return _B3_.log(image_count_Oy_[1],large_image_count_Oz_[1]);}; perform_redraw_IZ_(0); window_A3_.onresize= handler_AQ_ (function(param_PG_) {var page_PC_=document_A4_.documentElement, w_PD_=page_PC_.clientWidth, h_PE_=page_PC_.clientHeight; _kq_(sprintf_wB_,_cp_,w_PD_,h_PE_); var _PF_= w_PD_!==canvas_NH_.width?0:h_PE_!==canvas_NH_.height?0:1; if(!_PF_)schedule_redraw_I2_(1); return _true_z9_;}); function find_box_PQ_(boxes_PJ_,x_PM_,y_PN_) {var p_PH_=[0,-1],_PI_=0,_PK_=boxes_PJ_[3].length-1-1|0; if(!(_PK_<_PI_)) {var i_PL_=_PI_; for(;;) {var _PO_= 0<boxes_PJ_[3][i_PL_+1] ?Math.abs(x_PM_-boxes_PJ_[1][i_PL_+1])<boxes_PJ_[3][i_PL_+1] ?Math.abs(y_PN_-boxes_PJ_[2][i_PL_+1])<boxes_PJ_[4][i_PL_+1] ?(p_PH_[1]=i_PL_,1) :0 :0 :0; _PO_; var _PP_=i_PL_+1|0; if(_PK_!==i_PL_){var i_PL_=_PP_;continue;} break;}} return p_PH_[1];} var on_image_PR_=[0,0]; function update_cursor_PV_(x_PT_,y_PS_) {return -1===find_box_PQ_(boxes_NC_,x_PT_,y_PS_) ?on_image_PR_[1] ?(canvas_NH_.style.cursor= _cq_.toString(), on_image_PR_[1]= 0, 0) :0 :on_image_PR_[1] ?0 :(canvas_NH_.style.cursor= _cr_.toString(), on_image_PR_[1]= 1, 0);} canvas_NH_.onmousemove= handler_AQ_ (function(ev_PU_) {update_cursor_PV_(ev_PU_.clientX,ev_PU_.clientY); return _false_z__;}); var fuzz_PW_=4; canvas_NH_.onmousedown= handler_AQ_ (function(ev_PX_) {var x0_PY_=ev_PX_.clientX,y0_PZ_=ev_PX_.clientY; _kq_(sprintf_wB_,_D_,x0_PY_,y0_PZ_); var started_P0_=[0,0], c2_P8_=[0,null_zE_], c1_P__= _AS_ (document_A4_, mousemove_AY_, handler_AQ_ (function(ev_P1_) {var x_P2_=ev_P1_.clientX,y_P3_=ev_P1_.clientY; _to_(sprintf_wB_,_F_,x0_PY_,y0_PZ_,x_P2_,y_P3_); if(started_P0_[1]) var _P4_=0; else {if (fuzz_PW_< _gz_(x_P2_-x0_PY_|0)|| fuzz_PW_< _gz_(y_P3_-y0_PZ_|0)) var _P5_=1; else {var _P4_=0,_P5_=0;} if(_P5_) {started_P0_[1]=1; canvas_NH_.style.cursor=_E_.toString(); var _P4_=1;}} _P4_; if(started_P0_[1]) {var z0_P6_=from_screen_Ih_(canvas_NH_,x0_PY_,y0_PZ_), z1_P7_=from_screen_Ih_(canvas_NH_,x_P2_,y_P3_); tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_P6_),z1_P7_), one_h_]; schedule_redraw_I2_(1);} stopPropagation_BQ_(ev_P1_); return _true_z9_;}), _true_z9_); c2_P8_[1]= _Ap_ (_AS_ (document_A4_, mouseup_AW_, handler_AQ_ (function(ev_P9_) {_to_ (sprintf_wB_, _H_, x0_PY_, y0_PZ_, ev_P9_.clientX, ev_P9_.clientY); _AT_(c1_P__); _z3_(c2_P8_[1],_AT_); if(started_P0_[1]) {canvas_NH_.style.cursor=_G_.toString(); var _Qa_=ev_P9_.clientY,_P$_=ev_P9_.clientX; tr_NI_[1]=tr__NJ_[1]; on_image_PR_[1]=0; update_cursor_PV_(_P$_,_Qa_);} else {var i_Qb_= find_box_PQ_(boxes_NC_,ev_P9_.clientX,ev_P9_.clientY); if(0<i_Qb_) {var _Qc_=caml_array_get(nodes_ND_,i_Qb_)[2]; if(typeof _Qc_==="number"||!(3654627===_Qc_[1])) var _Qd_=0; else {var match_Qe_=_Qc_[2]; show_image_Ls_ (all_messages_Qf_,_Ny_,match_Qe_[2],match_Qe_[1]); var _Qd_=1;} _Qd_;}} return _true_z9_;}), _true_z9_)); return _true_z9_;}); var fuzz_Qg_=4; _AS_ (canvas_NH_, touchstart_AZ_, handler_AQ_ (function(ev_QX_) {function _QY_(touch_Qh_) {var id_Qi_=touch_Qh_.identifier, x0_Qj_=touch_Qh_.clientX, y0_Qk_=touch_Qh_.clientY; _kq_(sprintf_wB_,_I_,x0_Qj_,y0_Qk_); var started_Ql_=[0,0], c1_Qz_= _AS_ (document_A4_, touchmove_A1_, handler_AQ_ (function(ev_Qn_) {var _Qm_=0,_Qo_=ev_Qn_.changedTouches.length-1|0; if(!(_Qo_<_Qm_)) {var i_Qp_=_Qm_; for(;;) {var _Qx_= function(touch_Qq_) {if(touch_Qq_.identifier===id_Qi_) {var x_Qr_=touch_Qq_.clientX,y_Qs_=touch_Qq_.clientY; _to_(sprintf_wB_,_K_,x0_Qj_,y0_Qk_,x_Qr_,y_Qs_); if(started_Ql_[1]) var _Qt_=0; else {if (fuzz_Qg_< _gz_(x_Qr_-x0_Qj_|0)|| fuzz_Qg_< _gz_(y_Qs_-y0_Qk_|0)) var _Qu_=1; else {var _Qt_=0,_Qu_=0;} if(_Qu_) {started_Ql_[1]=1; canvas_NH_.style.cursor=_J_.toString(); var _Qt_=1;}} _Qt_; if(started_Ql_[1]) {_B3_.time(_cs_.toString()); var z0_Qv_=from_screen_Ih_(canvas_NH_,x0_Qj_,y0_Qk_), z1_Qw_=from_screen_Ih_(canvas_NH_,x_Qr_,y_Qs_); tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_Qv_),z1_Qw_), one_h_]; return schedule_redraw_I2_(1);} return 0;} return 0;}; _z6_(ev_Qn_.changedTouches.item(i_Qp_),_Qx_); var _Qy_=i_Qp_+1|0; if(_Qo_!==i_Qp_){var i_Qp_=_Qy_;continue;} break;}} stopPropagation_BQ_(ev_Qn_); return _false_z__;}), _true_z9_), c2_QA_=[0,null_zE_], c3_QB_=[0,null_zE_]; c2_QA_[1]= _Ap_ (_AS_ (document_A4_, touchend_A0_, handler_AQ_ (function(ev_QD_) {var _QC_=0,_QE_=ev_QD_.changedTouches.length-1|0; if(!(_QE_<_QC_)) {var i_QF_=_QC_; for(;;) {var _QO_= function(touch_QG_) {if(touch_QG_.identifier===id_Qi_) {var x_QH_=touch_QG_.clientX,y_QI_=touch_QG_.clientY; _to_(sprintf_wB_,_M_,x0_Qj_,y0_Qk_,x_QH_,y_QI_); _AT_(c1_Qz_); _z3_(c2_QA_[1],_AT_); _z3_(c3_QB_[1],_AT_); if(started_Ql_[1]) {canvas_NH_.style.cursor=_L_.toString(); tr_NI_[1]=tr__NJ_[1]; return 0;} var i_QJ_=find_box_PQ_(boxes_NC_,x_QH_,y_QI_); if(0<i_QJ_) {var _QK_=caml_array_get(nodes_ND_,i_QJ_)[2]; if(typeof _QK_==="number"||!(3654627===_QK_[1])) var _QL_=0; else {var match_QM_=_QK_[2]; show_image_Ls_ (all_messages_Qf_,_Ny_,match_QM_[2],match_QM_[1]); var _QN_=0,_QL_=1;} if(!_QL_)var _QN_=0;} else var _QN_=0; return _QN_;} return 0;}; _z6_(ev_QD_.changedTouches.item(i_QF_),_QO_); var _QP_=i_QF_+1|0; if(_QE_!==i_QF_){var i_QF_=_QP_;continue;} break;}} return _true_z9_;}), _true_z9_)); c3_QB_[1]= _Ap_ (_AS_ (document_A4_, touchend_A0_, handler_AQ_ (function(ev_QR_) {var _QQ_=0,_QS_=ev_QR_.changedTouches.length-1|0; if(!(_QS_<_QQ_)) {var i_QT_=_QQ_; for(;;) {var _QV_= function(touch_QU_) {if(touch_QU_.identifier===id_Qi_) {_to_ (sprintf_wB_, _O_, x0_Qj_, y0_Qk_, touch_QU_.clientX, touch_QU_.clientY); _AT_(c1_Qz_); _z3_(c2_QA_[1],_AT_); _z3_(c3_QB_[1],_AT_); if(started_Ql_[1])canvas_NH_.style.cursor=_N_.toString(); tr_NI_[1]=tr__NJ_[1]; return 0;} return 0;}; _z6_(ev_QR_.changedTouches.item(i_QT_),_QV_); var _QW_=i_QT_+1|0; if(_QS_!==i_QT_){var i_QT_=_QW_;continue;} break;}} return _false_z__;}), _true_z9_)); return 0;} _z6_(ev_QX_.changedTouches.item(0),_QY_); return _false_z__;}), _true_z9_); _AS_ (document_A4_, keydown_AX_, handler_AQ_ (function(ev_QZ_) {var _Q0_=ev_QZ_.keyCode-37|0; if(_Q0_<0||3<_Q0_)return _true_z9_; switch(_Q0_) {case 1: tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_cy_),z1_cx_), one_h_]; tr_NI_[1]=tr__NJ_[1]; schedule_redraw_I2_(1); return _false_z__; case 2: tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_cw_),z1_cv_), one_h_]; tr_NI_[1]=tr__NJ_[1]; schedule_redraw_I2_(1); return _false_z__; case 3: tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_cu_),z1_ct_), one_h_]; tr_NI_[1]=tr__NJ_[1]; schedule_redraw_I2_(1); return _false_z__; default: tr__NJ_[1]= [0, compute_translation_EP_ (_hI_(transl_EN_,neg_EM_(tr_NI_[1][1]),z0_cA_),z1_cz_), one_h_]; tr_NI_[1]=tr__NJ_[1]; schedule_redraw_I2_(1); return _false_z__;}}), _true_z9_); var prev_buttons_Q1_=[0,0]; function make_buttons_RI_(param_RQ_) {var _Q2_=prev_buttons_Q1_[1]; if(_Q2_)removeChild_AP_(document_A4_.body,_Q2_[1]); var buttons_Q3_=createDiv_Bn_(document_A4_); buttons_Q3_.style.position=_c5_.toString(); buttons_Q3_.style.right=_c4_.toString(); buttons_Q3_.style.bottom=_c3_.toString(); var messages_Q4_=local_messages_H__(all_messages_Qf_), info_Q5_=img_button_K0_(0,38,_c2_); info_Q5_.style.position=_c1_.toString(); info_Q5_.style.bottom=_c0_.toString(); info_Q5_.style.right=_cZ_.toString(); info_Q5_.style.cursor=_cY_.toString(); info_Q5_.onclick= handler_AQ_ (function(param_Rv_) {try {var _Q6_=_h__(language_H2_[1],tree_i18n_NA_)[2], info_Q7_=_Q6_;} catch(_Q8_) {if(_Q8_[1]!==_c_)throw _Q8_; try {var _Q9_=_h__(_b9_.toString(),tree_i18n_NA_)[2],_Q__=_Q9_;} catch(_Q$_) {if(_Q$_[1]!==_c_)throw _Q$_;var _Q__=information_en_Lt_;} var info_Q7_=_Q__;} var txt_Ra_=createDiv_Bn_(document_A4_); txt_Ra_.className=_b8_.toString(); txt_Ra_.style.width=_b7_.toString(); txt_Ra_.style.margin=_b6_.toString(); txt_Ra_.innerHTML=info_Q7_; var cell_Rb_=createDiv_Bn_(document_A4_); cell_Rb_.style.display=_b5_.toString(); cell_Rb_.style.verticalAlign=_b4_.toString(); appendChild_AO_(cell_Rb_,txt_Ra_); var table_Rc_=createDiv_Bn_(document_A4_); table_Rc_.style.width=_b3_.toString(); table_Rc_.style.height=_b2_.toString(); table_Rc_.style.display=_b1_.toString(); appendChild_AO_(table_Rc_,cell_Rb_); var overlay_Rd_=createDiv_Bn_(document_A4_); overlay_Rd_.className=_b0_.toString(); appendChild_AO_(overlay_Rd_,table_Rc_); var c_Re_=[0,null_zE_]; function close_info_Ri_(param_Rf_) {removeChild_AP_(document_A4_.body,overlay_Rd_); return _z3_(c_Re_[1],_AT_);} c_Re_[1]= _Ap_ (_AS_ (document_A4_, keydown_AX_, handler_AQ_ (function(e_Rg_) {var _Rh_=e_Rg_.keyCode; if(13!==_Rh_&&27!==_Rh_)return _true_z9_; close_info_Ri_(0); return _false_z__;}), _true_z9_)); var _Rj_=0,_Rk_=0; if(0===_Rk_&&0===_Rj_) {var _Rl_=createElement_A9_(document_A4_,_f_),_Rm_=1;} else var _Rm_=0; if(!_Rm_) if(onIE_AU_) {var a_Rn_=new array_constructor_Aa_(); a_Rn_.push(_eH_.toString(),_f_.toString()); opt_iter_Bj_ (_Rk_, function(t_Ro_) {a_Rn_.push (_eI_.toString(),caml_js_html_escape(t_Ro_),_eJ_.toString()); return 0;}); opt_iter_Bj_ (_Rj_, function(n_Rp_) {a_Rn_.push (_eK_.toString(),caml_js_html_escape(n_Rp_),_eL_.toString()); return 0;}); a_Rn_.push(_eG_.toString()); var _Rl_= document_A4_.createElement(a_Rn_.join(_eF_.toString()));} else {var res_Rq_=createElement_A9_(document_A4_,_f_); opt_iter_Bj_ (_Rk_,function(t_Rr_){return res_Rq_.type=t_Rr_;}); opt_iter_Bj_ (_Rj_,function(n_Rs_){return res_Rq_.name=n_Rs_;}); var _Rl_=res_Rq_;} appendChild_AO_ (_Rl_, document_A4_.createTextNode (opt_style_EL_(messages_Q4_.ok,_bZ_.toString()))); _Rl_.onclick= handler_AQ_ (function(param_Rt_){close_info_Ri_(0);return _false_z__;}); var button_div_Ru_=createDiv_Bn_(document_A4_); button_div_Ru_.style.textAlign=_bY_.toString(); button_div_Ru_.style.margin=_bX_.toString(); appendChild_AO_(button_div_Ru_,_Rl_); appendChild_AO_(txt_Ra_,button_div_Ru_); appendChild_AO_(document_A4_.body,overlay_Rd_); return _false_z__;}); var tt_Rw_= tooltip_KW_ (opt_style_EL_(messages_Q4_.info,_cX_.toString())); tt_Rw_.style.right=_cW_.toString(); tt_Rw_.style.bottom=_cV_.toString(); appendChild_AO_(info_Q5_,tt_Rw_); appendChild_AO_(buttons_Q3_,info_Q5_); var lang_Rx_=img_button_K0_(0,38,_cU_); lang_Rx_.style.position=_cT_.toString(); lang_Rx_.style.bottom=_cS_.toString(); lang_Rx_.style.right=_cR_.toString(); lang_Rx_.style.cursor=_cQ_.toString(); var txt_Ry_=createDiv_Bn_(document_A4_), dl_Rz_=createDl_Bl_(document_A4_), ul_RA_=createUl_Bk_(document_A4_); _h9_ (function(param_RB_) {var id_RE_=param_RB_[2], name_RD_=param_RB_[1], a_RC_=createA_Bo_(document_A4_); appendChild_AO_ (a_RC_,document_A4_.createTextNode(name_RD_.toString())); a_RC_.href=_c6_.toString(); a_RC_.onclick= handler_AQ_ (function(param_RJ_) {var _RF_=id_RE_.toString(); function _RH_(st_RG_) {return st_RG_.setItem(_U_.toString(),_RF_);} _z6_(window_A3_.localStorage,_RH_); language_H2_[1]=_RF_; make_buttons_RI_(0); compute_text_nodes_Lr_(tree_i18n_NA_,nodes_ND_); schedule_redraw_I2_(1); return _false_z__;}); var li_RK_=createLi_Bm_(document_A4_); appendChild_AO_(li_RK_,a_RC_); return appendChild_AO_(ul_RA_,li_RK_);}, languages_cP_); var dd_RL_=createDd_Bq_(document_A4_); appendChild_AO_ (dd_RL_, document_A4_.createTextNode (opt_style_EL_(messages_Q4_.languages,_cO_.toString()))); appendChild_AO_(dl_Rz_,dd_RL_); var dt_RM_=createDt_Br_(document_A4_); appendChild_AO_(dt_RM_,ul_RA_); appendChild_AO_(dl_Rz_,dt_RM_); appendChild_AO_(txt_Ry_,dl_Rz_); txt_Ry_.className=_cN_.toString(); txt_Ry_.style.position=_cM_.toString(); txt_Ry_.style.right=_cL_.toString(); txt_Ry_.style.bottom=_cK_.toString(); txt_Ry_.style.whiteSpace=_cJ_.toString(); appendChild_AO_(lang_Rx_,txt_Ry_); show_on_click_Ln_(lang_Rx_,txt_Ry_); appendChild_AO_(buttons_Q3_,lang_Rx_); var recenter_RN_=img_button_K0_(0,38,_cI_); recenter_RN_.style.position=_cH_.toString(); recenter_RN_.style.bottom=_cG_.toString(); recenter_RN_.style.right=_cF_.toString(); recenter_RN_.style.cursor=_cE_.toString(); recenter_RN_.onclick= handler_AQ_ (function(param_RO_) {tr__NJ_[1]=[0,zero_i_,one_h_]; tr_NI_[1]=tr__NJ_[1]; schedule_redraw_I2_(1); return _false_z__;}); var tt_RP_= tooltip_KW_ (opt_style_EL_(messages_Q4_.recenter,_cD_.toString())); tt_RP_.style.right=_cC_.toString(); tt_RP_.style.bottom=_cB_.toString(); appendChild_AO_(recenter_RN_,tt_RP_); appendChild_AO_(buttons_Q3_,recenter_RN_); appendChild_AO_(document_A4_.body,buttons_Q3_); prev_buttons_Q1_[1]=[0,buttons_Q3_]; return 0;} make_buttons_RI_(0); return return_yg_(0);});})) [1]; switch(_RR_[0]) {case 1:throw _RR_[1]; case 2: var sleeper_RT_=_RR_[1]; add_immutable_waiter_yV_ (sleeper_RT_, function(param_RS_) {switch(param_RS_[0]) {case 0:return 0; case 1:return _xh_(param_RS_[1]); default:throw [0,_d_,_e7_];}}); break; case 3:throw [0,_d_,_e6_]; default:}} catch(_RU_) {if(_RU_[1]===Canvas_not_available_Bs_) {var txt_RV_=createDiv_Bn_(document_A4_); txt_RV_.className=_ch_.toString(); txt_RV_.style.width=_cg_.toString(); txt_RV_.style.margin=_cf_.toString(); txt_RV_.innerHTML=_ce_.toString(); var cell_RW_=createDiv_Bn_(document_A4_); cell_RW_.style.display=_cd_.toString(); cell_RW_.style.verticalAlign=_cc_.toString(); appendChild_AO_(cell_RW_,txt_RV_); var table_RX_=createDiv_Bn_(document_A4_); table_RX_.style.width=_cb_.toString(); table_RX_.style.height=_ca_.toString(); table_RX_.style.display=_b$_.toString(); appendChild_AO_(table_RX_,cell_RW_); var overlay_RY_=createDiv_Bn_(document_A4_); overlay_RY_.className=_b__.toString(); appendChild_AO_(overlay_RY_,table_RX_); appendChild_AO_(document_A4_.body,overlay_RY_); return _false_z__;} throw _RU_;} return _false_z__;}); do_at_exit_hb_(0); return;} ());