// 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_create_string(len) { if (len < 0) caml_invalid_argument("String.create"); return new MlMakeString(len); } 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_equal (x, y) { return +(caml_compare_val(x,y,false) == 0); } function caml_fill_string(s, i, l, c) { s.fill (i, l, c); } var caml_global_data = [0]; function caml_failwith (msg) { caml_raise_with_string(caml_global_data[3], msg); } function caml_float_of_string(s) { var res; s = s.getFullBytes(); res = +s; if ((s.length > 0) && (res === res)) return res; s = s.replace(/_/g,""); res = +s; if (((s.length > 0) && (res === res)) || /^[+-]?nan$/i.test(s)) return res; caml_failwith("float_of_string"); } 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_compare (a, b) { return caml_compare_val (a, b, true); } function caml_greaterequal (x, y) { return +(caml_compare(x,y,false) >= 0); } 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; } 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_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; } function caml_js_on_ie () { var ua = window.navigator?window.navigator.userAgent:""; return ua.indexOf("MSIE") != -1 && ua.indexOf("Opera") != 0; } 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_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_out_channels_list () { 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_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_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 _jn_(_vw_,_vx_,_vy_,_vz_,_vA_,_vB_,_vC_) {return _vw_.length==6 ?_vw_(_vx_,_vy_,_vz_,_vA_,_vB_,_vC_) :caml_call_gen(_vw_,[_vx_,_vy_,_vz_,_vA_,_vB_,_vC_]);} function _fb_(_vs_,_vt_,_vu_,_vv_) {return _vs_.length==3 ?_vs_(_vt_,_vu_,_vv_) :caml_call_gen(_vs_,[_vt_,_vu_,_vv_]);} function _fG_(_vp_,_vq_,_vr_) {return _vp_.length==2?_vp_(_vq_,_vr_):caml_call_gen(_vp_,[_vq_,_vr_]);} function _cQ_(_vn_,_vo_) {return _vn_.length==1?_vn_(_vo_):caml_call_gen(_vn_,[_vo_]);} 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("monkey.model"), _g_=new MlString("canvas"); caml_register_global(5,[0,new MlString("Division_by_zero")]); caml_register_global(3,_b_); caml_register_global(2,_a_); var _cm_=[0,new MlString("Out_of_memory")], _cl_=[0,new MlString("Match_failure")], _ck_=[0,new MlString("Stack_overflow")], _cj_=new MlString("%.12g"), _ci_=new MlString("."), _ch_=new MlString("%d"), _cg_=new MlString("true"), _cf_=new MlString("false"), _ce_=new MlString("Pervasives.do_at_exit"), _cd_=new MlString("\\b"), _cc_=new MlString("\\t"), _cb_=new MlString("\\n"), _ca_=new MlString("\\r"), _b$_=new MlString("\\\\"), _b__=new MlString("\\'"), _b9_=new MlString(""), _b8_=new MlString("String.blit"), _b7_=new MlString("String.sub"), _b6_=new MlString("Queue.Empty"), _b5_=new MlString("Buffer.add: cannot grow buffer"), _b4_=new MlString("%"), _b3_=new MlString(""), _b2_=new MlString(""), _b1_=new MlString("\""), _b0_=new MlString("\""), _bZ_=new MlString("'"), _bY_=new MlString("'"), _bX_=new MlString("."), _bW_=new MlString("printf: bad positional specification (0)."), _bV_=new MlString("%_"), _bU_=[0,new MlString("printf.ml"),144,8], _bT_=new MlString("''"), _bS_=new MlString("Printf: premature end of format string ``"), _bR_=new MlString("''"), _bQ_=new MlString(" in format string ``"), _bP_=new MlString(", at char number "), _bO_=new MlString("Printf: bad conversion %"), _bN_=new MlString("Sformat.index_of_int: negative argument "), _bM_=new MlString(""), _bL_=new MlString(", %s%s"), _bK_=new MlString("Out of memory"), _bJ_=new MlString("Stack overflow"), _bI_=new MlString("Pattern matching failed"), _bH_=new MlString("Assertion failed"), _bG_=new MlString("(%s%s)"), _bF_=new MlString(""), _bE_=new MlString(""), _bD_=new MlString("(%s)"), _bC_=new MlString("%d"), _bB_=new MlString("%S"), _bA_=new MlString("_"), _bz_=new MlString("x"), _by_=[0,new MlString("src/core/lwt.ml"),483,20], _bx_=[0,new MlString("src/core/lwt.ml"),486,8], _bw_=[0,new MlString("src/core/lwt.ml"),461,20], _bv_=[0,new MlString("src/core/lwt.ml"),464,8], _bu_=[0,new MlString("src/core/lwt.ml"),440,20], _bt_=[0,new MlString("src/core/lwt.ml"),443,8], _bs_=new MlString("Lwt.fast_connect"), _br_=new MlString("Lwt.connect"), _bq_=new MlString("Lwt.wakeup_exn"), _bp_=new MlString("Lwt.wakeup"), _bo_=new MlString("Lwt.Canceled"), _bn_=new MlString("script"), _bm_=new MlString("canvas"), _bl_=new MlString("\\$&"), _bk_=new MlString("$$$$"), _bj_=new MlString("g"), _bi_=new MlString("g"), _bh_=new MlString("[$]"), _bg_=new MlString("[\\][()\\\\|+*.?{}^$]"), _bf_=[0,new MlString(""),0], _be_=new MlString(""), _bd_=new MlString(""), _bc_=new MlString("#"), _bb_=new MlString(""), _ba_=new MlString("?"), _a$_=new MlString(""), _a__=new MlString("/"), _a9_=new MlString("/"), _a8_=new MlString(":"), _a7_=new MlString(""), _a6_=new MlString("http://"), _a5_=new MlString(""), _a4_=new MlString("#"), _a3_=new MlString(""), _a2_=new MlString("?"), _a1_=new MlString(""), _a0_=new MlString("/"), _aZ_=new MlString("/"), _aY_=new MlString(":"), _aX_=new MlString(""), _aW_=new MlString("https://"), _aV_=new MlString(""), _aU_=new MlString("#"), _aT_=new MlString(""), _aS_=new MlString("?"), _aR_=new MlString(""), _aQ_=new MlString("/"), _aP_=new MlString("file://"), _aO_=new MlString(""), _aN_=new MlString(""), _aM_=new MlString(""), _aL_=new MlString(""), _aK_=new MlString(""), _aJ_=new MlString(""), _aI_=new MlString("="), _aH_=new MlString("&"), _aG_=new MlString("file"), _aF_=new MlString("file:"), _aE_=new MlString("http"), _aD_=new MlString("http:"), _aC_=new MlString("https"), _aB_=new MlString("https:"), _aA_=new MlString("%2B"), _az_=new MlString("Url.Local_exn"), _ay_=new MlString("+"), _ax_=new MlString("Url.Not_an_http_protocol"), _aw_= new MlString ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?/([^\\?#]*)(\\?([^#]*))?(#(.*))?$"), _av_= new MlString("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#])*)?(#(.*))?$"), _au_=new MlString("browser can't read file: unimplemented"), _at_=new MlString("utf8"), _as_=[0,new MlString("file.ml"),132,15], _ar_=new MlString("string"), _aq_=new MlString("can't retrieve file name: not implemented"), _ap_=new MlString(""), _ao_=new MlString("POST"), _an_=new MlString("multipart/form-data; boundary="), _am_=new MlString("POST"), _al_= [0, new MlString("POST"), [0,new MlString("application/x-www-form-urlencoded")], 126925477], _ak_=[0,new MlString("POST"),0,126925477], _aj_=new MlString("GET"), _ai_=new MlString("?"), _ah_=new MlString("Content-type"), _ag_=new MlString("="), _af_=new MlString("="), _ae_=new MlString("&"), _ad_=new MlString("Content-Type: application/octet-stream\r\n"), _ac_=new MlString("\"\r\n"), _ab_=new MlString("\"; filename=\""), _aa_=new MlString("Content-Disposition: form-data; name=\""), _$_=new MlString("\r\n"), ___=new MlString("\r\n"), _Z_=new MlString("\r\n"), _Y_=new MlString("--"), _X_=new MlString("\r\n"), _W_=new MlString("\"\r\n\r\n"), _V_=new MlString("Content-Disposition: form-data; name=\""), _U_=new MlString("--\r\n"), _T_=new MlString("--"), _S_=new MlString("js_of_ocaml-------------------"), _R_=new MlString("Msxml2.XMLHTTP"), _Q_=new MlString("Msxml3.XMLHTTP"), _P_=new MlString("Microsoft.XMLHTTP"), _O_=[0,new MlString("xmlHttpRequest.ml"),79,2], _N_=new MlString("XmlHttpRequest.Wrong_headers"), _M_=new MlString("webgl"), _L_=new MlString("experimental-webgl"), _K_=new MlString("uncaught exception: %s"), _J_=new MlString("%.1f"), _I_=new MlString("loading"), _H_=new MlString("fps"), _G_=new MlString("fragment-shader"), _F_=new MlString("vertex-shader"), _E_=new MlString("program loaded"), _D_=new MlString("u_proj"), _C_=new MlString("u_lightPos"), _B_=new MlString("u_ambientLight"), _A_=new MlString("a_position"), _z_=new MlString("a_normal"), _y_=new MlString("ready"), _x_=new MlString("\n"), _w_=[0,1,[0,2,[0,3,[0,4,0]]]], _v_=new MlString("f"), _u_=new MlString("v"), _t_=new MlString("vn"), _s_=[0,1,[0,2,0]], _r_=new MlString("can't find script element %s"), _q_=new MlString("Unable to link the shader program."), _p_=new MlString("An error occurred compiling the shaders: \n%s\n%s"), _o_=new MlString("can't initialise webgl context"), _n_=new MlString("can't find canvas element %s"), _m_=new MlString("WebGL error"), _l_=new MlString("(v|vn|f)\\ ([^\\ ]+)\\ ([^\\ ]+)\\ ([^\\ ]+)"), _k_=new MlString("([0-9]+)//([0-9]+)"); function _j_(s_h_){throw [0,_a_,s_h_];} function _cn_(s_i_){throw [0,_b_,s_i_];} function _cy_(s1_co_,s2_cq_) {var l1_cp_=s1_co_.getLen(), l2_cr_=s2_cq_.getLen(), s_cs_=caml_create_string(l1_cp_+l2_cr_|0); caml_blit_string(s1_co_,0,s_cs_,0,l1_cp_); caml_blit_string(s2_cq_,0,s_cs_,l1_cp_,l2_cr_); return s_cs_;} function string_of_int_cL_(n_ct_){return caml_format_int(_ch_,n_ct_);} function string_of_float_cM_(f_cu_) {var _cv_=caml_format_float(_cj_,f_cu_),i_cw_=0,l_cx_=_cv_.getLen(); for(;;) {if(l_cx_<=i_cw_) var _cz_=_cy_(_cv_,_ci_); else {var _cA_=_cv_.safeGet(i_cw_), _cB_=48<=_cA_?58<=_cA_?0:1:45===_cA_?1:0; if(_cB_){var _cC_=i_cw_+1|0,i_cw_=_cC_;continue;} var _cz_=_cv_;} return _cz_;}} function _cE_(l1_cD_,l2_cF_) {if(l1_cD_) {var hd_cG_=l1_cD_[1];return [0,hd_cG_,_cE_(l1_cD_[2],l2_cF_)];} return l2_cF_;} function do_at_exit_cN_(param_cK_) {var param_cH_=caml_ml_out_channels_list(0); for(;;) {if(param_cH_) {var l_cI_=param_cH_[2]; try {}catch(_cJ_){} var param_cH_=l_cI_; continue;} return 0;}} caml_register_named_value(_ce_,do_at_exit_cN_); function _c8_(l_cO_,f_cP_) {if(0===l_cO_)return [0]; var res_cR_=caml_make_vect(l_cO_,_cQ_(f_cP_,0)),_cS_=1,_cT_=l_cO_-1|0; if(!(_cT_<_cS_)) {var i_cU_=_cS_; for(;;) {res_cR_[i_cU_+1]=_cQ_(f_cP_,i_cU_); var _cV_=i_cU_+1|0; if(_cT_!==i_cU_){var i_cU_=_cV_;continue;} break;}} return res_cR_;} function _c9_(l_cW_) {if(l_cW_) {var accu_cX_=0,param_cY_=l_cW_,tl_c4_=l_cW_[2],hd_c1_=l_cW_[1]; for(;;) {if(param_cY_) {var t_c0_=param_cY_[2], _cZ_=accu_cX_+1|0, accu_cX_=_cZ_, param_cY_=t_c0_; continue;} var a_c2_=caml_make_vect(accu_cX_,hd_c1_),i_c3_=1,param_c5_=tl_c4_; for(;;) {if(param_c5_) {var tl_c6_=param_c5_[2]; a_c2_[i_c3_+1]=param_c5_[1]; var _c7_=i_c3_+1|0,i_c3_=_c7_,param_c5_=tl_c6_; continue;} return a_c2_;}}} return [0];} function _dm_(l_c__) {var l1_c$_=l_c__,l2_da_=0; for(;;) {if(l1_c$_) {var l_db_=l1_c$_[2], _dc_=[0,l1_c$_[1],l2_da_], l1_c$_=l_db_, l2_da_=_dc_; continue;} return l2_da_;}} function _dg_(f_de_,param_dd_) {if(param_dd_) {var l_df_=param_dd_[2],r_dh_=_cQ_(f_de_,param_dd_[1]); return [0,r_dh_,_dg_(f_de_,l_df_)];} return 0;} function _dn_(f_dk_,param_di_) {var param_dj_=param_di_; for(;;) {if(param_dj_) {var l_dl_=param_dj_[2]; _cQ_(f_dk_,param_dj_[1]); var param_dj_=l_dl_; continue;} return 0;}} function _dK_(n_do_,c_dq_) {var s_dp_=caml_create_string(n_do_); caml_fill_string(s_dp_,0,n_do_,c_dq_); return s_dp_;} function _dL_(s_dt_,ofs_dr_,len_ds_) {if(0<=ofs_dr_&&0<=len_ds_&&!((s_dt_.getLen()-len_ds_|0)<ofs_dr_)) {var r_du_=caml_create_string(len_ds_); caml_blit_string(s_dt_,ofs_dr_,r_du_,0,len_ds_); return r_du_;} return _cn_(_b7_);} function _dM_(s1_dx_,ofs1_dw_,s2_dz_,ofs2_dy_,len_dv_) {if (0<= len_dv_&& 0<= ofs1_dw_&& !((s1_dx_.getLen()-len_dv_|0)<ofs1_dw_)&& 0<= ofs2_dy_&& !((s2_dz_.getLen()-len_dv_|0)<ofs2_dy_)) return caml_blit_string(s1_dx_,ofs1_dw_,s2_dz_,ofs2_dy_,len_dv_); return _cn_(_b8_);} function _dN_(sep_dG_,l_dA_) {if(l_dA_) {var hd_dB_=l_dA_[1],num_dC_=[0,0],len_dD_=[0,0],tl_dF_=l_dA_[2]; _dn_ (function(s_dE_) {num_dC_[1]+=1;len_dD_[1]=len_dD_[1]+s_dE_.getLen()|0;return 0;}, l_dA_); var r_dH_= caml_create_string (len_dD_[1]+caml_mul(sep_dG_.getLen(),num_dC_[1]-1|0)|0); caml_blit_string(hd_dB_,0,r_dH_,0,hd_dB_.getLen()); var pos_dI_=[0,hd_dB_.getLen()]; _dn_ (function(s_dJ_) {caml_blit_string(sep_dG_,0,r_dH_,pos_dI_[1],sep_dG_.getLen()); pos_dI_[1]=pos_dI_[1]+sep_dG_.getLen()|0; caml_blit_string(s_dJ_,0,r_dH_,pos_dI_[1],s_dJ_.getLen()); pos_dI_[1]=pos_dI_[1]+s_dJ_.getLen()|0; return 0;}, tl_dF_); return r_dH_;} return _b9_;} var _dO_=caml_sys_get_config(0)[2], _dP_=caml_mul(_dO_/8|0,(1<<(_dO_-10|0))-1|0)-1|0, _dU_=252, _dT_=253, _dS_=[0,_b6_]; function _dR_(q_dQ_){return q_dQ_[1];} function _ea_(n_dV_) {var n_dW_=1<=n_dV_?n_dV_:1, n_dX_=_dP_<n_dW_?_dP_:n_dW_, s_dY_=caml_create_string(n_dX_); return [0,s_dY_,0,n_dX_,s_dY_];} function _eb_(b_dZ_){return _dL_(b_dZ_[1],0,b_dZ_[2]);} function _d6_(b_d0_,more_d2_) {var new_len_d1_=[0,b_d0_[3]]; for(;;) {if(new_len_d1_[1]<(b_d0_[2]+more_d2_|0)) {new_len_d1_[1]=2*new_len_d1_[1]|0;continue;} if(_dP_<new_len_d1_[1]) if((b_d0_[2]+more_d2_|0)<=_dP_)new_len_d1_[1]=_dP_;else _j_(_b5_); var new_buffer_d3_=caml_create_string(new_len_d1_[1]); _dM_(b_d0_[1],0,new_buffer_d3_,0,b_d0_[2]); b_d0_[1]=new_buffer_d3_; b_d0_[3]=new_len_d1_[1]; return 0;}} function _ec_(b_d4_,c_d7_) {var pos_d5_=b_d4_[2]; if(b_d4_[3]<=pos_d5_)_d6_(b_d4_,1); b_d4_[1].safeSet(pos_d5_,c_d7_); b_d4_[2]=pos_d5_+1|0; return 0;} function _ed_(b_d__,s_d8_) {var len_d9_=s_d8_.getLen(),new_position_d$_=b_d__[2]+len_d9_|0; if(b_d__[3]<new_position_d$_)_d6_(b_d__,len_d9_); _dM_(s_d8_,0,b_d__[1],b_d__[2],len_d9_); b_d__[2]=new_position_d$_; return 0;} function index_of_int_eh_(i_ee_) {return 0<=i_ee_?i_ee_:_j_(_cy_(_bN_,string_of_int_cL_(i_ee_)));} function add_int_index_ei_(i_ef_,idx_eg_) {return index_of_int_eh_(i_ef_+idx_eg_|0);} var _ej_=_cQ_(add_int_index_ei_,1); function _eq_(fmt_ek_){return _dL_(fmt_ek_,0,fmt_ek_.getLen());} function bad_conversion_es_(sfmt_el_,i_em_,c_eo_) {var _en_=_cy_(_bQ_,_cy_(sfmt_el_,_bR_)), _ep_=_cy_(_bP_,_cy_(string_of_int_cL_(i_em_),_en_)); return _cn_(_cy_(_bO_,_cy_(_dK_(1,c_eo_),_ep_)));} function bad_conversion_format_fh_(fmt_er_,i_eu_,c_et_) {return bad_conversion_es_(_eq_(fmt_er_),i_eu_,c_et_);} function incomplete_format_fi_(fmt_ev_) {return _cn_(_cy_(_bS_,_cy_(_eq_(fmt_ev_),_bT_)));} function extract_format_eP_(fmt_ew_,start_eE_,stop_eG_,widths_eI_) {function skip_positional_spec_eD_(start_ex_) {if ((fmt_ew_.safeGet(start_ex_)-48|0)< 0|| 9< (fmt_ew_.safeGet(start_ex_)-48|0)) return start_ex_; var i_ey_=start_ex_+1|0; for(;;) {var _ez_=fmt_ew_.safeGet(i_ey_); if(48<=_ez_) {if(!(58<=_ez_)){var _eB_=i_ey_+1|0,i_ey_=_eB_;continue;} var _eA_=0;} else if(36===_ez_){var _eC_=i_ey_+1|0,_eA_=1;}else var _eA_=0; if(!_eA_)var _eC_=start_ex_; return _eC_;}} var start_eF_=skip_positional_spec_eD_(start_eE_+1|0), b_eH_=_ea_((stop_eG_-start_eF_|0)+10|0); _ec_(b_eH_,37); var i_eJ_=start_eF_,widths_eK_=_dm_(widths_eI_); for(;;) {if(i_eJ_<=stop_eG_) {var _eL_=fmt_ew_.safeGet(i_eJ_); if(42===_eL_) {if(widths_eK_) {var t_eM_=widths_eK_[2]; _ed_(b_eH_,string_of_int_cL_(widths_eK_[1])); var i_eN_=skip_positional_spec_eD_(i_eJ_+1|0), i_eJ_=i_eN_, widths_eK_=t_eM_; continue;} throw [0,_d_,_bU_];} _ec_(b_eH_,_eL_); var _eO_=i_eJ_+1|0,i_eJ_=_eO_; continue;} return _eb_(b_eH_);}} function extract_format_int_gI_ (conv_eV_,fmt_eT_,start_eS_,stop_eR_,widths_eQ_) {var sfmt_eU_=extract_format_eP_(fmt_eT_,start_eS_,stop_eR_,widths_eQ_); if(78!==conv_eV_&&110!==conv_eV_)return sfmt_eU_; sfmt_eU_.safeSet(sfmt_eU_.getLen()-1|0,117); return sfmt_eU_;} function sub_format_fj_ (incomplete_format_e2_,bad_conversion_format_fa_,conv_ff_,fmt_eW_,i_fe_) {var len_eX_=fmt_eW_.getLen(); function sub_fmt_fc_(c_eY_,i_e$_) {var close_eZ_=40===c_eY_?41:125; function sub_e__(j_e0_) {var j_e1_=j_e0_; for(;;) {if(len_eX_<=j_e1_)return _cQ_(incomplete_format_e2_,fmt_eW_); if(37===fmt_eW_.safeGet(j_e1_)) {var _e3_=j_e1_+1|0; if(len_eX_<=_e3_) var _e4_=_cQ_(incomplete_format_e2_,fmt_eW_); else {var _e5_=fmt_eW_.safeGet(_e3_),_e6_=_e5_-40|0; if(_e6_<0||1<_e6_) {var _e7_=_e6_-83|0; if(_e7_<0||2<_e7_) var _e8_=1; else switch(_e7_) {case 1:var _e8_=1;break; case 2:var _e9_=1,_e8_=0;break; default:var _e9_=0,_e8_=0;} if(_e8_){var _e4_=sub_e__(_e3_+1|0),_e9_=2;}} else var _e9_=0===_e6_?0:1; switch(_e9_) {case 1: var _e4_= _e5_===close_eZ_ ?_e3_+1|0 :_fb_(bad_conversion_format_fa_,fmt_eW_,i_e$_,_e5_); break; case 2:break; default:var _e4_=sub_e__(sub_fmt_fc_(_e5_,_e3_+1|0)+1|0);}} return _e4_;} var _fd_=j_e1_+1|0,j_e1_=_fd_; continue;}} return sub_e__(i_e$_);} return sub_fmt_fc_(conv_ff_,i_fe_);} function sub_format_for_printf_fJ_(conv_fg_) {return _fb_ (sub_format_fj_, incomplete_format_fi_, bad_conversion_format_fh_, conv_fg_);} function iter_on_format_args_fZ_(fmt_fk_,add_conv_fv_,add_char_fF_) {var lim_fl_=fmt_fk_.getLen()-1|0; function scan_fmt_fH_(i_fm_) {var i_fn_=i_fm_; a: for(;;) {if(i_fn_<lim_fl_) {if(37===fmt_fk_.safeGet(i_fn_)) {var skip_fo_=0,i_fp_=i_fn_+1|0; for(;;) {if(lim_fl_<i_fp_) var _fq_=incomplete_format_fi_(fmt_fk_); else {var _fr_=fmt_fk_.safeGet(i_fp_); if(58<=_fr_) {if(95===_fr_) {var _ft_=i_fp_+1|0,_fs_=1,skip_fo_=_fs_,i_fp_=_ft_; continue;}} else if(32<=_fr_) switch(_fr_-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 _fu_=i_fp_+1|0,i_fp_=_fu_;continue; case 10: var _fw_=_fb_(add_conv_fv_,skip_fo_,i_fp_,105),i_fp_=_fw_; continue; default:var _fx_=i_fp_+1|0,i_fp_=_fx_;continue;} var i_fy_=i_fp_; c: for(;;) {if(lim_fl_<i_fy_) var _fz_=incomplete_format_fi_(fmt_fk_); else {var _fA_=fmt_fk_.safeGet(i_fy_); if(126<=_fA_) var _fB_=0; else switch(_fA_) {case 78: case 88: case 100: case 105: case 111: case 117: case 120: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,105),_fB_=1;break; case 69: case 70: case 71: case 101: case 102: case 103: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,102),_fB_=1;break; case 33: case 37: case 44:var _fz_=i_fy_+1|0,_fB_=1;break; case 83: case 91: case 115: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,115),_fB_=1;break; case 97: case 114: case 116: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,_fA_),_fB_=1; break; case 76: case 108: case 110: var j_fC_=i_fy_+1|0; if(lim_fl_<j_fC_) {var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,105),_fB_=1;} else {var _fD_=fmt_fk_.safeGet(j_fC_)-88|0; if(_fD_<0||32<_fD_) var _fE_=1; else switch(_fD_) {case 0: case 12: case 17: case 23: case 29: case 32: var _fz_= _fG_ (add_char_fF_,_fb_(add_conv_fv_,skip_fo_,i_fy_,_fA_),105), _fB_=1, _fE_=0; break; default:var _fE_=1;} if(_fE_) {var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,105),_fB_=1;}} break; case 67: case 99: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,99),_fB_=1;break; case 66: case 98: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,66),_fB_=1;break; case 41: case 125: var _fz_=_fb_(add_conv_fv_,skip_fo_,i_fy_,_fA_),_fB_=1; break; case 40: var _fz_=scan_fmt_fH_(_fb_(add_conv_fv_,skip_fo_,i_fy_,_fA_)), _fB_=1; break; case 123: var i_fI_=_fb_(add_conv_fv_,skip_fo_,i_fy_,_fA_), j_fK_=_fb_(sub_format_for_printf_fJ_,_fA_,fmt_fk_,i_fI_), i_fL_=i_fI_; for(;;) {if(i_fL_<(j_fK_-2|0)) {var _fM_=_fG_(add_char_fF_,i_fL_,fmt_fk_.safeGet(i_fL_)), i_fL_=_fM_; continue;} var _fN_=j_fK_-1|0,i_fy_=_fN_; continue c;} default:var _fB_=0;} if(!_fB_) var _fz_=bad_conversion_format_fh_(fmt_fk_,i_fy_,_fA_);} var _fq_=_fz_; break;}} var i_fn_=_fq_; continue a;}} var _fO_=i_fn_+1|0,i_fn_=_fO_; continue;} return i_fn_;}} scan_fmt_fH_(0); return 0;} function count_arguments_of_format_hX_(fmt_f0_) {var ac_fP_=[0,0,0,0]; function add_conv_fY_(skip_fU_,i_fV_,c_fQ_) {var _fR_=41!==c_fQ_?1:0,_fS_=_fR_?125!==c_fQ_?1:0:_fR_; if(_fS_) {var inc_fT_=97===c_fQ_?2:1; if(114===c_fQ_)ac_fP_[3]=ac_fP_[3]+1|0; if(skip_fU_) ac_fP_[2]=ac_fP_[2]+inc_fT_|0; else ac_fP_[1]=ac_fP_[1]+inc_fT_|0;} return i_fV_+1|0;} iter_on_format_args_fZ_ (fmt_f0_,add_conv_fY_,function(i_fW_,c_fX_){return i_fW_+1|0;}); return ac_fP_[1];} function scan_positional_spec_gE_(fmt_f1_,got_spec_f4_,n_ga_,i_f2_) {var _f3_=fmt_f1_.safeGet(i_f2_); if((_f3_-48|0)<0||9<(_f3_-48|0))return _fG_(got_spec_f4_,0,i_f2_); var accu_f5_=_f3_-48|0,j_f6_=i_f2_+1|0; for(;;) {var _f7_=fmt_f1_.safeGet(j_f6_); if(48<=_f7_) {if(!(58<=_f7_)) {var _f__=j_f6_+1|0, _f9_=(10*accu_f5_|0)+(_f7_-48|0)|0, accu_f5_=_f9_, j_f6_=_f__; continue;} var _f8_=0;} else if(36===_f7_) if(0===accu_f5_) {var _f$_=_j_(_bW_),_f8_=1;} else {var _f$_= _fG_(got_spec_f4_,[0,index_of_int_eh_(accu_f5_-1|0)],j_f6_+1|0), _f8_=1;} else var _f8_=0; if(!_f8_)var _f$_=_fG_(got_spec_f4_,0,i_f2_); return _f$_;}} function next_index_gz_(spec_gb_,n_gc_) {return spec_gb_?n_gc_:_cQ_(_ej_,n_gc_);} function get_index_go_(spec_gd_,n_ge_){return spec_gd_?spec_gd_[1]:n_ge_;} function _jm_ (to_s_if_,get_out_gg_,outc_ir_,outs_ig_,flush_h2_,k_ix_,fmt_gf_) {var out_gh_=_cQ_(get_out_gg_,fmt_gf_); function pr_h1_(k_gm_,n_iw_,fmt_gi_,v_gr_) {var len_gl_=fmt_gi_.getLen(); function doprn_hY_(n_io_,i_gj_) {var i_gk_=i_gj_; for(;;) {if(len_gl_<=i_gk_)return _cQ_(k_gm_,out_gh_); var _gn_=fmt_gi_.safeGet(i_gk_); if(37===_gn_) {var get_arg_gv_= function(spec_gq_,n_gp_) {return caml_array_get(v_gr_,get_index_go_(spec_gq_,n_gp_));}, scan_flags_gB_= function(spec_gD_,n_gw_,widths_gy_,i_gs_) {var i_gt_=i_gs_; for(;;) {var _gu_=fmt_gi_.safeGet(i_gt_)-32|0; if(!(_gu_<0||25<_gu_)) switch(_gu_) {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_gE_ (fmt_gi_, function(wspec_gx_,i_gC_) {var _gA_=[0,get_arg_gv_(wspec_gx_,n_gw_),widths_gy_]; return scan_flags_gB_ (spec_gD_,next_index_gz_(wspec_gx_,n_gw_),_gA_,i_gC_);}, n_gw_, i_gt_+1|0); default:var _gF_=i_gt_+1|0,i_gt_=_gF_;continue;} var _gG_=fmt_gi_.safeGet(i_gt_); if(124<=_gG_) var _gH_=0; else switch(_gG_) {case 78: case 88: case 100: case 105: case 111: case 117: case 120: var x_gJ_=get_arg_gv_(spec_gD_,n_gw_), s_gK_= caml_format_int (extract_format_int_gI_(_gG_,fmt_gi_,i_gk_,i_gt_,widths_gy_), x_gJ_), _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_gK_,i_gt_+1|0), _gH_=1; break; case 69: case 71: case 101: case 102: case 103: var x_gN_=get_arg_gv_(spec_gD_,n_gw_), s_gO_= caml_format_float (extract_format_eP_(fmt_gi_,i_gk_,i_gt_,widths_gy_),x_gN_), _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_gO_,i_gt_+1|0), _gH_=1; break; case 76: case 108: case 110: var _gP_=fmt_gi_.safeGet(i_gt_+1|0)-88|0; if(_gP_<0||32<_gP_) var _gQ_=1; else switch(_gP_) {case 0: case 12: case 17: case 23: case 29: case 32: var i_gR_=i_gt_+1|0,_gS_=_gG_-108|0; if(_gS_<0||2<_gS_) var _gT_=0; else {switch(_gS_) {case 1:var _gT_=0,_gU_=0;break; case 2: var x_gV_=get_arg_gv_(spec_gD_,n_gw_), _gW_= caml_format_int (extract_format_eP_(fmt_gi_,i_gk_,i_gR_,widths_gy_),x_gV_), _gU_=1; break; default: var x_gX_=get_arg_gv_(spec_gD_,n_gw_), _gW_= caml_format_int (extract_format_eP_(fmt_gi_,i_gk_,i_gR_,widths_gy_),x_gX_), _gU_=1;} if(_gU_){var s_gY_=_gW_,_gT_=1;}} if(!_gT_) {var x_gZ_=get_arg_gv_(spec_gD_,n_gw_), s_gY_= caml_int64_format (extract_format_eP_(fmt_gi_,i_gk_,i_gR_,widths_gy_),x_gZ_);} var _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_gY_,i_gR_+1|0), _gH_=1, _gQ_=0; break; default:var _gQ_=1;} if(_gQ_) {var x_g0_=get_arg_gv_(spec_gD_,n_gw_), s_g1_= caml_format_int (extract_format_int_gI_(110,fmt_gi_,i_gk_,i_gt_,widths_gy_), x_g0_), _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_g1_,i_gt_+1|0), _gH_=1;} break; case 83: case 115: var x_g2_=get_arg_gv_(spec_gD_,n_gw_); if(115===_gG_) var x_g3_=x_g2_; else {var n_g4_=[0,0],_g5_=0,_g6_=x_g2_.getLen()-1|0; if(!(_g6_<_g5_)) {var i_g7_=_g5_; for(;;) {var _g8_=x_g2_.safeGet(i_g7_), _g9_= 14<=_g8_ ?34===_g8_?1:92===_g8_?1:0 :11<=_g8_?13<=_g8_?1:0:8<=_g8_?1:0, _g__=_g9_?2:caml_is_printable(_g8_)?1:4; n_g4_[1]=n_g4_[1]+_g__|0; var _g$_=i_g7_+1|0; if(_g6_!==i_g7_){var i_g7_=_g$_;continue;} break;}} if(n_g4_[1]===x_g2_.getLen()) var _ha_=x_g2_; else {var s__hb_=caml_create_string(n_g4_[1]); n_g4_[1]=0; var _hc_=0,_hd_=x_g2_.getLen()-1|0; if(!(_hd_<_hc_)) {var i_he_=_hc_; for(;;) {var _hf_=x_g2_.safeGet(i_he_),_hg_=_hf_-34|0; if(_hg_<0||58<_hg_) if(-20<=_hg_) var _hh_=1; else {switch(_hg_+34|0) {case 8: s__hb_.safeSet(n_g4_[1],92); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],98); var _hi_=1; break; case 9: s__hb_.safeSet(n_g4_[1],92); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],116); var _hi_=1; break; case 10: s__hb_.safeSet(n_g4_[1],92); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],110); var _hi_=1; break; case 13: s__hb_.safeSet(n_g4_[1],92); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],114); var _hi_=1; break; default:var _hh_=1,_hi_=0;} if(_hi_)var _hh_=0;} else var _hh_= (_hg_-1|0)<0||56<(_hg_-1|0) ?(s__hb_.safeSet(n_g4_[1],92), n_g4_[1]+= 1, s__hb_.safeSet(n_g4_[1],_hf_), 0) :1; if(_hh_) if(caml_is_printable(_hf_)) s__hb_.safeSet(n_g4_[1],_hf_); else {s__hb_.safeSet(n_g4_[1],92); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],48+(_hf_/100|0)|0); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],48+((_hf_/10|0)%10|0)|0); n_g4_[1]+=1; s__hb_.safeSet(n_g4_[1],48+(_hf_%10|0)|0);} n_g4_[1]+=1; var _hj_=i_he_+1|0; if(_hd_!==i_he_){var i_he_=_hj_;continue;} break;}} var _ha_=s__hb_;} var x_g3_=_cy_(_b0_,_cy_(_ha_,_b1_));} if(i_gt_===(i_gk_+1|0)) var s_hk_=x_g3_; else {var _hl_= extract_format_eP_(fmt_gi_,i_gk_,i_gt_,widths_gy_); try {var neg_hm_=0,i_hn_=1; for(;;) {if(_hl_.getLen()<=i_hn_) var _ho_=[0,0,neg_hm_]; else {var _hp_=_hl_.safeGet(i_hn_); if(49<=_hp_) if(58<=_hp_) var _hq_=0; else {var _ho_= [0, caml_int_of_string (_dL_(_hl_,i_hn_,(_hl_.getLen()-i_hn_|0)-1|0)), neg_hm_], _hq_=1;} else {if(45===_hp_) {var _hs_=i_hn_+1|0,_hr_=1,neg_hm_=_hr_,i_hn_=_hs_; continue;} var _hq_=0;} if(!_hq_){var _ht_=i_hn_+1|0,i_hn_=_ht_;continue;}} var match_hu_=_ho_; break;}} catch(_hv_) {if(_hv_[1]!==_a_)throw _hv_; var match_hu_=bad_conversion_es_(_hl_,0,115);} var p_hw_=match_hu_[1], _hx_=x_g3_.getLen(), _hy_=0, neg_hC_=match_hu_[2], _hB_=32; if(p_hw_===_hx_&&0===_hy_) {var _hz_=x_g3_,_hA_=1;} else var _hA_=0; if(!_hA_) if(p_hw_<=_hx_) var _hz_=_dL_(x_g3_,_hy_,_hx_); else {var res_hD_=_dK_(p_hw_,_hB_); if(neg_hC_) _dM_(x_g3_,_hy_,res_hD_,0,_hx_); else _dM_(x_g3_,_hy_,res_hD_,p_hw_-_hx_|0,_hx_); var _hz_=res_hD_;} var s_hk_=_hz_;} var _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_hk_,i_gt_+1|0), _gH_=1; break; case 67: case 99: var x_hE_=get_arg_gv_(spec_gD_,n_gw_); if(99===_gG_) var s_hF_=_dK_(1,x_hE_); else {if(39===x_hE_) var _hG_=_b__; else if(92===x_hE_) var _hG_=_b$_; else {if(14<=x_hE_) var _hH_=0; else switch(x_hE_) {case 8:var _hG_=_cd_,_hH_=1;break; case 9:var _hG_=_cc_,_hH_=1;break; case 10:var _hG_=_cb_,_hH_=1;break; case 13:var _hG_=_ca_,_hH_=1;break; default:var _hH_=0;} if(!_hH_) if(caml_is_printable(x_hE_)) {var s_hI_=caml_create_string(1); s_hI_.safeSet(0,x_hE_); var _hG_=s_hI_;} else {var s_hJ_=caml_create_string(4); s_hJ_.safeSet(0,92); s_hJ_.safeSet(1,48+(x_hE_/100|0)|0); s_hJ_.safeSet(2,48+((x_hE_/10|0)%10|0)|0); s_hJ_.safeSet(3,48+(x_hE_%10|0)|0); var _hG_=s_hJ_;}} var s_hF_=_cy_(_bY_,_cy_(_hG_,_bZ_));} var _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_hF_,i_gt_+1|0), _gH_=1; break; case 66: case 98: var _hL_=i_gt_+1|0, _hK_=get_arg_gv_(spec_gD_,n_gw_)?_cg_:_cf_, _gM_=cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),_hK_,_hL_), _gH_=1; break; case 40: case 123: var xf_hM_=get_arg_gv_(spec_gD_,n_gw_), j_hN_=_fb_(sub_format_for_printf_fJ_,_gG_,fmt_gi_,i_gt_+1|0); if(123===_gG_) {var b_hO_=_ea_(xf_hM_.getLen()), add_char_hS_= function(i_hQ_,c_hP_){_ec_(b_hO_,c_hP_);return i_hQ_+1|0;}; iter_on_format_args_fZ_ (xf_hM_, function(skip_hR_,i_hU_,c_hT_) {if(skip_hR_)_ed_(b_hO_,_bV_);else _ec_(b_hO_,37); return add_char_hS_(i_hU_,c_hT_);}, add_char_hS_); var _hV_=_eb_(b_hO_), _gM_=cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),_hV_,j_hN_), _gH_=1;} else {var _hW_=next_index_gz_(spec_gD_,n_gw_), m_hZ_= add_int_index_ei_ (count_arguments_of_format_hX_(xf_hM_),_hW_), _gM_= pr_h1_ (function(param_h0_){return doprn_hY_(m_hZ_,j_hN_);}, _hW_, xf_hM_, v_gr_), _gH_=1;} break; case 33: _cQ_(flush_h2_,out_gh_); var _gM_=doprn_hY_(n_gw_,i_gt_+1|0),_gH_=1; break; case 37: var _gM_=cont_s_gL_(n_gw_,_b4_,i_gt_+1|0),_gH_=1;break; case 41: var _gM_=cont_s_gL_(n_gw_,_b3_,i_gt_+1|0),_gH_=1;break; case 44: var _gM_=cont_s_gL_(n_gw_,_b2_,i_gt_+1|0),_gH_=1;break; case 70: var x_h3_=get_arg_gv_(spec_gD_,n_gw_); if(0===widths_gy_) var s_h4_=string_of_float_cM_(x_h3_); else {var sfmt_h5_= extract_format_eP_(fmt_gi_,i_gk_,i_gt_,widths_gy_); if(70===_gG_)sfmt_h5_.safeSet(sfmt_h5_.getLen()-1|0,103); var s_h6_=caml_format_float(sfmt_h5_,x_h3_); if(3<=caml_classify_float(x_h3_)) var _h7_=s_h6_; else {var i_h8_=0,l_h9_=s_h6_.getLen(); for(;;) {if(l_h9_<=i_h8_) var _h__=_cy_(s_h6_,_bX_); else {var _h$_=s_h6_.safeGet(i_h8_)-46|0, _ia_= _h$_<0||23<_h$_ ?55===_h$_?1:0 :(_h$_-1|0)<0||21<(_h$_-1|0)?1:0; if(!_ia_){var _ib_=i_h8_+1|0,i_h8_=_ib_;continue;} var _h__=s_h6_;} var _h7_=_h__; break;}} var s_h4_=_h7_;} var _gM_= cont_s_gL_(next_index_gz_(spec_gD_,n_gw_),s_h4_,i_gt_+1|0), _gH_=1; break; case 97: var printer_ic_=get_arg_gv_(spec_gD_,n_gw_), n_id_=_cQ_(_ej_,get_index_go_(spec_gD_,n_gw_)), arg_ie_=get_arg_gv_(0,n_id_), _ii_=i_gt_+1|0, _ih_=next_index_gz_(spec_gD_,n_id_); if(to_s_if_) _fG_(outs_ig_,out_gh_,_fG_(printer_ic_,0,arg_ie_)); else _fG_(printer_ic_,out_gh_,arg_ie_); var _gM_=doprn_hY_(_ih_,_ii_),_gH_=1; break; case 116: var printer_ij_=get_arg_gv_(spec_gD_,n_gw_), _il_=i_gt_+1|0, _ik_=next_index_gz_(spec_gD_,n_gw_); if(to_s_if_) _fG_(outs_ig_,out_gh_,_cQ_(printer_ij_,0)); else _cQ_(printer_ij_,out_gh_); var _gM_=doprn_hY_(_ik_,_il_),_gH_=1; break; default:var _gH_=0;} if(!_gH_) var _gM_=bad_conversion_format_fh_(fmt_gi_,i_gt_,_gG_); return _gM_;}}, _iq_=i_gk_+1|0, _in_=0; return scan_positional_spec_gE_ (fmt_gi_, function(spec_ip_,i_im_) {return scan_flags_gB_(spec_ip_,n_io_,_in_,i_im_);}, n_io_, _iq_);} _fG_(outc_ir_,out_gh_,_gn_); var _is_=i_gk_+1|0,i_gk_=_is_; continue;}} function cont_s_gL_(n_iv_,s_it_,i_iu_) {_fG_(outs_ig_,out_gh_,s_it_);return doprn_hY_(n_iv_,i_iu_);} return doprn_hY_(n_iw_,0);} var kpr_iy_=_fG_(pr_h1_,k_ix_,index_of_int_eh_(0)), _iz_=count_arguments_of_format_hX_(fmt_gf_); if(_iz_<0||6<_iz_) {var loop_iM_= function(i_iA_,args_iG_) {if(_iz_<=i_iA_) {var a_iB_=caml_make_vect(_iz_,0), _iE_= function(i_iC_,arg_iD_) {return caml_array_set(a_iB_,(_iz_-i_iC_|0)-1|0,arg_iD_);}, i_iF_=0, param_iH_=args_iG_; for(;;) {if(param_iH_) {var _iI_=param_iH_[2],_iJ_=param_iH_[1]; if(_iI_) {_iE_(i_iF_,_iJ_); var _iK_=i_iF_+1|0,i_iF_=_iK_,param_iH_=_iI_; continue;} _iE_(i_iF_,_iJ_);} return _fG_(kpr_iy_,fmt_gf_,a_iB_);}} return function(x_iL_) {return loop_iM_(i_iA_+1|0,[0,x_iL_,args_iG_]);};}, _iN_=loop_iM_(0,0);} else switch(_iz_) {case 1: var _iN_= function(x_iP_) {var a_iO_=caml_make_vect(1,0); caml_array_set(a_iO_,0,x_iP_); return _fG_(kpr_iy_,fmt_gf_,a_iO_);}; break; case 2: var _iN_= function(x_iR_,y_iS_) {var a_iQ_=caml_make_vect(2,0); caml_array_set(a_iQ_,0,x_iR_); caml_array_set(a_iQ_,1,y_iS_); return _fG_(kpr_iy_,fmt_gf_,a_iQ_);}; break; case 3: var _iN_= function(x_iU_,y_iV_,z_iW_) {var a_iT_=caml_make_vect(3,0); caml_array_set(a_iT_,0,x_iU_); caml_array_set(a_iT_,1,y_iV_); caml_array_set(a_iT_,2,z_iW_); return _fG_(kpr_iy_,fmt_gf_,a_iT_);}; break; case 4: var _iN_= function(x_iY_,y_iZ_,z_i0_,t_i1_) {var a_iX_=caml_make_vect(4,0); caml_array_set(a_iX_,0,x_iY_); caml_array_set(a_iX_,1,y_iZ_); caml_array_set(a_iX_,2,z_i0_); caml_array_set(a_iX_,3,t_i1_); return _fG_(kpr_iy_,fmt_gf_,a_iX_);}; break; case 5: var _iN_= function(x_i3_,y_i4_,z_i5_,t_i6_,u_i7_) {var a_i2_=caml_make_vect(5,0); caml_array_set(a_i2_,0,x_i3_); caml_array_set(a_i2_,1,y_i4_); caml_array_set(a_i2_,2,z_i5_); caml_array_set(a_i2_,3,t_i6_); caml_array_set(a_i2_,4,u_i7_); return _fG_(kpr_iy_,fmt_gf_,a_i2_);}; break; case 6: var _iN_= function(x_i9_,y_i__,z_i$_,t_ja_,u_jb_,v_jc_) {var a_i8_=caml_make_vect(6,0); caml_array_set(a_i8_,0,x_i9_); caml_array_set(a_i8_,1,y_i__); caml_array_set(a_i8_,2,z_i$_); caml_array_set(a_i8_,3,t_ja_); caml_array_set(a_i8_,4,u_jb_); caml_array_set(a_i8_,5,v_jc_); return _fG_(kpr_iy_,fmt_gf_,a_i8_);}; break; default:var _iN_=_fG_(kpr_iy_,fmt_gf_,[0]);} return _iN_;} function _jl_(fmt_jd_){return _ea_(2*fmt_jd_.getLen()|0);} function _ji_(k_jg_,b_je_) {var s_jf_=_eb_(b_je_);b_je_[2]=0;return _cQ_(k_jg_,s_jf_);} function _jq_(k_jh_) {var _jk_=_cQ_(_ji_,k_jh_); return _jn_(_jm_,1,_jl_,_ec_,_ed_,function(_jj_){return 0;},_jk_);} function _jr_(fmt_jp_) {return _fG_(_jq_,function(s_jo_){return s_jo_;},fmt_jp_);} var _js_=[0,0]; function _jz_(x_jt_,i_ju_) {var f_jv_=x_jt_[i_ju_+1]; return caml_obj_is_block(f_jv_) ?caml_obj_tag(f_jv_)===_dU_ ?_fG_(_jr_,_bB_,f_jv_) :caml_obj_tag(f_jv_)===_dT_?string_of_float_cM_(f_jv_):_bA_ :_fG_(_jr_,_bC_,f_jv_);} function _jy_(x_jw_,i_jx_) {if(x_jw_.length-1<=i_jx_)return _bM_; var _jA_=_jy_(x_jw_,i_jx_+1|0); return _fb_(_jr_,_bL_,_jz_(x_jw_,i_jx_),_jA_);} 32===_dO_; function _jD_(param_jC_) {var seq_jB_=[]; caml_update_dummy(seq_jB_,[0,seq_jB_,seq_jB_]); return seq_jB_;} var Canceled_jE_=[0,_bo_],current_data_jF_=[0,0],max_removed_kr_=42; function repr_rec_jJ_(t_jG_) {var _jH_=t_jG_[1]; {if(3===_jH_[0]) {var t__jI_=_jH_[1],t___jK_=repr_rec_jJ_(t__jI_); if(t___jK_!==t__jI_)t_jG_[1]=[3,t___jK_]; return t___jK_;} return t_jG_;}} function repr_kg_(t_jL_){return repr_rec_jJ_(t_jL_);} function run_waiters_j__(waiters_jM_,state_jQ_) {var ws_jN_=waiters_jM_,rem_jO_=0,save_j3_=current_data_jF_[1]; for(;;) {if(typeof ws_jN_==="number") {if(rem_jO_) {var rem_j2_=rem_jO_[2], ws_j1_=rem_jO_[1], ws_jN_=ws_j1_, rem_jO_=rem_j2_; continue;}} else switch(ws_jN_[0]) {case 1: var _jP_=ws_jN_[1]; if(rem_jO_) {var rem_jS_=rem_jO_[2],ws_jR_=rem_jO_[1]; _cQ_(_jP_,state_jQ_); var ws_jN_=ws_jR_,rem_jO_=rem_jS_; continue;} _cQ_(_jP_,state_jQ_); break; case 2: var ws1_jT_=ws_jN_[1], _jU_=[0,ws_jN_[2],rem_jO_], ws_jN_=ws1_jT_, rem_jO_=_jU_; continue; default: var _jV_=ws_jN_[1][1]; if(_jV_) {var _jW_=_jV_[1]; if(rem_jO_) {var rem_jY_=rem_jO_[2],ws_jX_=rem_jO_[1]; _cQ_(_jW_,state_jQ_); var ws_jN_=ws_jX_,rem_jO_=rem_jY_; continue;} _cQ_(_jW_,state_jQ_);} else if(rem_jO_) {var rem_j0_=rem_jO_[2], ws_jZ_=rem_jO_[1], ws_jN_=ws_jZ_, rem_jO_=rem_j0_; continue;}} current_data_jF_[1]=save_j3_; return 0;}} function wakeup_lp_(t_j4_,v_j7_) {var t_j5_=repr_rec_jJ_(t_j4_),_j6_=t_j5_[1]; switch(_j6_[0]) {case 1:if(_j6_[1][1]===Canceled_jE_)return 0;break; case 2: var state_j8_=[0,v_j7_],waiters_j9_=_j6_[1][2]; t_j5_[1]=state_j8_; return run_waiters_j__(waiters_j9_,state_j8_); default:} return _cn_(_bp_);} function append_kf_(l1_j$_,l2_ka_) {return typeof l1_j$_==="number" ?l2_ka_ :typeof l2_ka_==="number"?l1_j$_:[2,l1_j$_,l2_ka_];} function cleanup_kc_(ws_kb_) {if(typeof ws_kb_!=="number") switch(ws_kb_[0]) {case 2: var l1_kd_=ws_kb_[1],_ke_=cleanup_kc_(ws_kb_[2]); return append_kf_(cleanup_kc_(l1_kd_),_ke_); case 1:break; default:if(!ws_kb_[1][1])return 0;} return ws_kb_;} function connect_k9_(t1_kh_,t2_kj_) {var t1_ki_=repr_kg_(t1_kh_),t2_kk_=repr_kg_(t2_kj_),_kl_=t1_ki_[1]; {if(2===_kl_[0]) {var sleeper1_km_=_kl_[1]; if(t1_ki_===t2_kk_)return 0; var _kn_=t2_kk_[1]; {if(2===_kn_[0]) {var sleeper2_ko_=_kn_[1]; t2_kk_[1]=[3,t1_ki_]; sleeper1_km_[1][1]=[1,sleeper2_ko_[1]]; var waiters_kp_=append_kf_(sleeper1_km_[2],sleeper2_ko_[2]), removed_kq_=sleeper1_km_[3]+sleeper2_ko_[3]|0; return max_removed_kr_<removed_kq_ ?(sleeper1_km_[3]= 0, sleeper1_km_[2]= cleanup_kc_(waiters_kp_), 0) :(sleeper1_km_[3]=removed_kq_,sleeper1_km_[2]=waiters_kp_,0);} t1_ki_[1]=_kn_; return run_waiters_j__(sleeper1_km_[2],_kn_);}} return _cn_(_br_);}} function fast_connect_k__(t_ks_,state_kv_) {var t_kt_=repr_kg_(t_ks_),_ku_=t_kt_[1]; {if(2===_ku_[0]) {var waiters_kw_=_ku_[1][2]; t_kt_[1]=state_kv_; return run_waiters_j__(waiters_kw_,state_kv_);} return _cn_(_bs_);}} function return_lo_(v_kx_){return [0,[0,v_kx_]];} function fail_kY_(e_ky_){return [0,[1,e_ky_]];} function temp_k0_(r_kz_){return [0,[2,[0,r_kz_,0,0]]];} function task_lq_(param_kJ_) {var t_kA_=[],_kI_=0,_kH_=0; caml_update_dummy (t_kA_, [0, [2, [0, [0, [0, function(param_kG_) {var t_kB_=repr_rec_jJ_(t_kA_),_kC_=t_kB_[1]; if(2===_kC_[0]) {var state_kD_=[1,[0,Canceled_jE_]],waiters_kE_=_kC_[1][2]; t_kB_[1]=state_kD_; var _kF_=run_waiters_j__(waiters_kE_,state_kD_);} else var _kF_=0; return _kF_;}]], _kH_, _kI_]]]); return [0,t_kA_,t_kA_];} function add_immutable_waiter_kV_(sleeper_kK_,waiter_kL_) {var _kM_= typeof sleeper_kK_[2]==="number" ?[1,waiter_kL_] :[2,[1,waiter_kL_],sleeper_kK_[2]]; sleeper_kK_[2]=_kM_; return 0;} function on_cancel_lr_(t_kN_,f_kP_) {var _kO_=repr_kg_(t_kN_)[1]; switch(_kO_[0]) {case 1:if(_kO_[1][1]===Canceled_jE_)return _cQ_(f_kP_,0);break; case 2: var sleeper_kU_=_kO_[1],data_kR_=current_data_jF_[1]; return add_immutable_waiter_kV_ (sleeper_kU_, function(param_kQ_) {if(1===param_kQ_[0]&¶m_kQ_[1][1]===Canceled_jE_) {current_data_jF_[1]=data_kR_; try {var _kS_=_cQ_(f_kP_,0);}catch(_kT_){return 0;} return _kS_;} return 0;}); default:} return 0;} function bind_k$_(t_kW_,f_k5_) {var _kX_=repr_kg_(t_kW_)[1]; switch(_kX_[0]) {case 1:return fail_kY_(_kX_[1]); case 2: var sleeper_kZ_=_kX_[1], res_k1_=temp_k0_(sleeper_kZ_[1]), data_k3_=current_data_jF_[1]; add_immutable_waiter_kV_ (sleeper_kZ_, function(param_k2_) {switch(param_k2_[0]) {case 0: var v_k4_=param_k2_[1]; current_data_jF_[1]=data_k3_; try {var _k6_=_cQ_(f_k5_,v_k4_),_k7_=_k6_;} catch(_k8_){var _k7_=fail_kY_(_k8_);} return connect_k9_(res_k1_,_k7_); case 1:return fast_connect_k__(res_k1_,[1,param_k2_[1]]); default:throw [0,_d_,_bu_];}}); return res_k1_; case 3:throw [0,_d_,_bt_]; default:return _cQ_(f_k5_,_kX_[1]);}} function _ls_(t_lb_,f_la_){return bind_k$_(t_lb_,f_la_);} function _lt_(t_lc_,f_lk_) {var _ld_=repr_kg_(t_lc_)[1]; switch(_ld_[0]) {case 1:var _le_=[0,[1,_ld_[1]]];break; case 2: var sleeper_lf_=_ld_[1], res_lg_=temp_k0_(sleeper_lf_[1]), data_li_=current_data_jF_[1]; add_immutable_waiter_kV_ (sleeper_lf_, function(param_lh_) {switch(param_lh_[0]) {case 0: var v_lj_=param_lh_[1]; current_data_jF_[1]=data_li_; try {var _ll_=[0,_cQ_(f_lk_,v_lj_)],_lm_=_ll_;} catch(_ln_){var _lm_=[1,_ln_];} return fast_connect_k__(res_lg_,_lm_); case 1:return fast_connect_k__(res_lg_,[1,param_lh_[1]]); default:throw [0,_d_,_bw_];}}); var _le_=res_lg_; break; case 3:throw [0,_d_,_bv_]; default:var _le_=return_lo_(_cQ_(f_lk_,_ld_[1]));} return _le_;} var _lu_=[0], _lv_=[0,caml_make_vect(55,0),0], seed_lw_=caml_equal(_lu_,[0])?[0,0]:_lu_, l_lx_=seed_lw_.length-1, _ly_=0, _lz_=54; if(!(_lz_<_ly_)) {var i_lA_=_ly_; for(;;) {caml_array_set(_lv_[1],i_lA_,i_lA_); var _lB_=i_lA_+1|0; if(_lz_!==i_lA_){var i_lA_=_lB_;continue;} break;}} var accu_lC_=[0,_bz_], _lD_=0, _lE_=55, _lF_=caml_greaterequal(_lE_,l_lx_)?_lE_:l_lx_, _lG_=54+_lF_|0; if(!(_lG_<_lD_)) {var i_lH_=_lD_; for(;;) {var j_lI_=i_lH_%55|0, _lJ_=accu_lC_[1], _lK_= _cy_ (_lJ_, string_of_int_cL_(caml_array_get(seed_lw_,caml_mod(i_lH_,l_lx_)))); accu_lC_[1]=caml_md5_string(_lK_,0,_lK_.getLen()); var _lL_=accu_lC_[1]; caml_array_set (_lv_[1], j_lI_, caml_array_get(_lv_[1],j_lI_)^ (((_lL_.safeGet(0)+(_lL_.safeGet(1)<<8)|0)+(_lL_.safeGet(2)<<16)|0)+ (_lL_.safeGet(3)<<24)| 0)); var _lM_=i_lH_+1|0; if(_lG_!==i_lH_){var i_lH_=_lM_;continue;} break;}} _lv_[2]=0; var pause_hook_lP_=[0,function(_lN_){return 0;}],_lO_=_jD_(0),_lR_=[0,0]; function _l1_(param_lU_) {if(_lO_[2]===_lO_)return 0; var tmp_lQ_=_jD_(0); tmp_lQ_[1][2]=_lO_[2]; _lO_[2][1]=tmp_lQ_[1]; tmp_lQ_[1]=_lO_[1]; _lO_[1][2]=tmp_lQ_; _lO_[1]=_lO_; _lO_[2]=_lO_; _lR_[1]=0; var curr_lS_=tmp_lQ_[2]; for(;;) {if(curr_lS_!==tmp_lQ_) {if(curr_lS_[4])wakeup_lp_(curr_lS_[3],0); var _lT_=curr_lS_[2],curr_lS_=_lT_; continue;} return 0;}} function _lY_(f_lW_,l_lV_) {if(l_lV_) {var l_lX_=l_lV_[2],__pa_lwt_0_l0_=_cQ_(f_lW_,l_lV_[1]); return bind_k$_ (__pa_lwt_0_l0_, function(param_lZ_){return _lY_(f_lW_,l_lX_);});} return return_lo_(0);} var null_l2_=null,undefined_l3_=undefined; function _mp_(x_l4_,f_l5_) {return x_l4_==null_l2_?null_l2_:_cQ_(f_l5_,x_l4_);} function _mc_(x_l6_,f_l7_,g_l8_) {return x_l6_==null_l2_?_cQ_(f_l7_,0):_cQ_(g_l8_,x_l6_);} function _mq_(x_l9_,f_l__){return x_l9_==null_l2_?_cQ_(f_l__,0):x_l9_;} function _mr_(x_md_) {function _mb_(x_l$_){return [0,x_l$_];} return _mc_(x_md_,function(param_ma_){return 0;},_mb_);} function _ms_(x_me_){return x_me_!==undefined_l3_?1:0;} function _mn_(x_mf_,f_mg_,g_mh_) {return x_mf_===undefined_l3_?_cQ_(f_mg_,0):_cQ_(g_mh_,x_mf_);} function _mt_(x_mi_,f_mj_) {return x_mi_===undefined_l3_?_cQ_(f_mj_,0):x_mi_;} function _mu_(x_mo_) {function _mm_(x_mk_){return [0,x_mk_];} return _mn_(x_mo_,function(param_ml_){return 0;},_mm_);} var _true_mv_=true, _false_mw_=false, regExp_mx_=RegExp, array_constructor_my_=Array; function array_get_mD_(_mz_,_mA_){return _mz_[_mA_];} function str_array_mE_(_mB_){return _mB_;} function match_result_mF_(_mC_){return _mC_;} var date_constr_mG_=Date,math_mK_=Math; function escape_mJ_(s_mH_){return escape(s_mH_);} function _mL_(e_mI_) {return e_mI_ instanceof array_constructor_my_ ?0 :[0,new MlWrappedString(e_mI_.toString())];} _js_[1]=[0,_mL_,_js_[1]]; function _mO_(_mM_){return _mM_;} function _mP_(_mN_){return _mN_;} function handler_mV_(f_mR_) {return _mP_ (caml_js_wrap_callback (function(e_mQ_) {if(e_mQ_) {var res_mS_=_cQ_(f_mR_,e_mQ_); if(!(res_mS_|0))e_mQ_.preventDefault(); return res_mS_;} var _mT_=event,res_mU_=_cQ_(f_mR_,_mT_); _mT_.returnValue=res_mU_; return res_mU_;}));} var onIE_mW_=caml_js_on_ie(0)|0, window_mX_=window, document_mY_=window_mX_.document, html_element_mZ_=window.HTMLElement, float32Array_m3_=window.Float32Array, _m1_= _mO_(html_element_mZ_)===undefined_l3_ ?function(e_m0_) {return _mO_(e_m0_.innerHTML)===undefined_l3_?null_l2_:_mP_(e_m0_);} :function(e_m2_) {return e_m2_ instanceof html_element_mZ_?_mP_(e_m2_):null_l2_;}; function _m7_(tag_m4_,e_m5_) {var _m6_=tag_m4_.toString(); return e_m5_.tagName.toLowerCase()===_m6_?_mP_(e_m5_):null_l2_;} function _m__(e_m8_){return _m7_(_bm_,e_m8_);} function _na_(e_m9_){return _m7_(_bn_,e_m9_);} pause_hook_lP_[1]= function(param_m$_) {return 1===param_m$_ ?(window_mX_.setTimeout(caml_js_wrap_callback(_l1_),0),0) :0;}; var _nb_=caml_js_get_console(0); function regexp_nn_(s_nc_) {var _nd_=_bj_.toString(); return new regExp_mx_(caml_js_from_byte_string(s_nc_),_nd_);} function string_match_no_(r_ne_,s_ng_,i_nf_) {r_ne_.lastIndex=i_nf_; var _nh_=r_ne_.exec(caml_js_from_byte_string(s_ng_)), _ni_=_nh_==null_l2_?null_l2_:match_result_mF_(_nh_); return _mr_(_ni_);} function matched_group_np_(r_nk_,i_nj_) {var _nl_=array_get_mD_(r_nk_,i_nj_), _nm_=_nl_===undefined_l3_?undefined_l3_:caml_js_to_byte_string(_nl_); return _mu_(_nm_);} var quote_repl_re_nq_=new regExp_mx_(_bh_.toString(),_bi_.toString()), _ns_=regexp_nn_(_bg_), l_nr_=window_mX_.location; function split_nv_(c_nt_,s_nu_) {return str_array_mE_(s_nu_.split(_dK_(1,c_nt_).toString()));} var Local_exn_nw_=[0,_az_]; function interrupt_ny_(param_nx_){throw [0,Local_exn_nw_];} var af2e6a4db_nz_=caml_js_from_byte_string(_ay_), _nA_= regexp_nn_ (caml_js_to_byte_string(af2e6a4db_nz_.replace(_ns_,_bl_.toString()))); function urldecode_js_string_string_nI_(s_nB_) {return caml_js_to_byte_string(unescape(s_nB_));} function urlencode_nJ_(_opt__nC_,s_nE_) {var with_plus_nD_=_opt__nC_?_opt__nC_[1]:1; if(with_plus_nD_) {var _nF_= caml_js_to_byte_string(escape_mJ_(caml_js_from_byte_string(s_nE_))); _nA_.lastIndex=0; var a41432fb9_nG_=caml_js_from_byte_string(_nF_), a11bb050d_nH_=caml_js_from_byte_string(_aA_); return caml_js_to_byte_string (a41432fb9_nG_.replace (_nA_, a11bb050d_nH_.replace(quote_repl_re_nq_,_bk_.toString())));} return caml_js_to_byte_string (escape_mJ_(caml_js_from_byte_string(s_nE_)));} var Not_an_http_protocol_ok_=[0,_ax_]; function path_of_path_string_nQ_(s_nK_) {try {var length_nL_=s_nK_.getLen(); if(0===length_nL_) var _nM_=_bf_; else {var i_nN_=0,_nP_=47,_nO_=s_nK_.getLen(); for(;;) {if(_nO_<=i_nN_)throw [0,_c_]; if(s_nK_.safeGet(i_nN_)!==_nP_) {var _nT_=i_nN_+1|0,i_nN_=_nT_;continue;} if(0===i_nN_) var _nR_= [0,_be_,path_of_path_string_nQ_(_dL_(s_nK_,1,length_nL_-1|0))]; else {var _nS_= path_of_path_string_nQ_ (_dL_(s_nK_,i_nN_+1|0,(length_nL_-i_nN_|0)-1|0)), _nR_=[0,_dL_(s_nK_,0,i_nN_),_nS_];} var _nM_=_nR_; break;}}} catch(_nU_){if(_nU_[1]===_c_)return [0,s_nK_,0];throw _nU_;} return _nM_;} function encode_arguments_ol_(l_nY_) {return _dN_ (_aH_, _dg_ (function(param_nV_) {var n_nW_=param_nV_[1], _nX_=_cy_(_aI_,urlencode_nJ_(0,param_nV_[2])); return _cy_(urlencode_nJ_(0,n_nW_),_nX_);}, l_nY_));} function decode_arguments_js_string_om_(s_nZ_) {var arr_n0_=split_nv_(38,s_nZ_),len_oj_=arr_n0_.length; function aux_of_(acc_oe_,idx_n1_) {var idx_n2_=idx_n1_; for(;;) {if(0<=idx_n2_) {try {var _oc_=idx_n2_-1|0, _od_= function(s_n9_) {function _n$_(param_n3_) {var y_n7_=param_n3_[2],x_n6_=param_n3_[1]; function get_n5_(t_n4_) {return urldecode_js_string_string_nI_ (_mt_(t_n4_,interrupt_ny_));} var _n8_=get_n5_(y_n7_); return [0,get_n5_(x_n6_),_n8_];} var arr_bis_n__=split_nv_(61,s_n9_); if(2===arr_bis_n__.length) {var _oa_=array_get_mD_(arr_bis_n__,1), _ob_=_mO_([0,array_get_mD_(arr_bis_n__,0),_oa_]);} else var _ob_=undefined_l3_; return _mn_(_ob_,interrupt_ny_,_n$_);}, _og_= aux_of_ ([0, _mn_(array_get_mD_(arr_n0_,idx_n2_),interrupt_ny_,_od_), acc_oe_], _oc_);} catch(_oh_) {if(_oh_[1]===Local_exn_nw_) {var _oi_=idx_n2_-1|0,idx_n2_=_oi_;continue;} throw _oh_;} return _og_;} return acc_oe_;}} return aux_of_(0,len_oj_-1|0);} var url_re_on_=new regExp_mx_(caml_js_from_byte_string(_aw_)), file_re_oY_=new regExp_mx_(caml_js_from_byte_string(_av_)); function string_of_url_oX_(param_oo_) {switch(param_oo_[0]) {case 1: var match_op_=param_oo_[1], frag_oq_=match_op_[6], args_or_=match_op_[5], port_os_=match_op_[2], path_ov_=match_op_[3], host_ou_=match_op_[1], _ot_= caml_string_notequal(frag_oq_,_a5_) ?_cy_(_a4_,urlencode_nJ_(0,frag_oq_)) :_a3_, _ow_=args_or_?_cy_(_a2_,encode_arguments_ol_(args_or_)):_a1_, _oy_=_cy_(_ow_,_ot_), _oA_= _cy_ (_aZ_, _cy_ (_dN_ (_a0_, _dg_ (function(eta_ox_){return urlencode_nJ_(0,eta_ox_);}, path_ov_)), _oy_)), _oz_=443===port_os_?_aX_:_cy_(_aY_,string_of_int_cL_(port_os_)), _oB_=_cy_(_oz_,_oA_); return _cy_(_aW_,_cy_(urlencode_nJ_(0,host_ou_),_oB_)); case 2: var match_oC_=param_oo_[1], frag_oD_=match_oC_[4], args_oE_=match_oC_[3], path_oG_=match_oC_[1], _oF_= caml_string_notequal(frag_oD_,_aV_) ?_cy_(_aU_,urlencode_nJ_(0,frag_oD_)) :_aT_, _oH_=args_oE_?_cy_(_aS_,encode_arguments_ol_(args_oE_)):_aR_, _oJ_=_cy_(_oH_,_oF_); return _cy_ (_aP_, _cy_ (_dN_ (_aQ_, _dg_ (function(eta_oI_){return urlencode_nJ_(0,eta_oI_);}, path_oG_)), _oJ_)); default: var match_oK_=param_oo_[1], frag_oL_=match_oK_[6], args_oM_=match_oK_[5], port_oN_=match_oK_[2], path_oQ_=match_oK_[3], host_oP_=match_oK_[1], _oO_= caml_string_notequal(frag_oL_,_bd_) ?_cy_(_bc_,urlencode_nJ_(0,frag_oL_)) :_bb_, _oR_=args_oM_?_cy_(_ba_,encode_arguments_ol_(args_oM_)):_a$_, _oT_=_cy_(_oR_,_oO_), _oV_= _cy_ (_a9_, _cy_ (_dN_ (_a__, _dg_ (function(eta_oS_){return urlencode_nJ_(0,eta_oS_);}, path_oQ_)), _oT_)), _oU_=80===port_oN_?_a7_:_cy_(_a8_,string_of_int_cL_(port_oN_)), _oW_=_cy_(_oU_,_oV_); return _cy_(_a6_,_cy_(urlencode_nJ_(0,host_oP_),_oW_));}} urldecode_js_string_string_nI_(l_nr_.hostname); try {caml_int_of_string(caml_js_to_byte_string(l_nr_.port));} catch(_oZ_){if(_oZ_[1]!==_a_)throw _oZ_;} path_of_path_string_nQ_(urldecode_js_string_string_nI_(l_nr_.pathname)); decode_arguments_js_string_om_(l_nr_.search); urldecode_js_string_string_nI_(l_nr_.href); var _o8_=window.FileReader,formData_o7_=window.FormData; function _o6_(form_contents_o0_,form_elt_o2_) {if(891486873<=form_contents_o0_[1]) {var list_o1_=form_contents_o0_[2]; list_o1_[1]=[0,form_elt_o2_,list_o1_[1]]; return 0;} var f_o3_=form_contents_o0_[2], _o4_=form_elt_o2_[2], _o5_=form_elt_o2_[1]; return 781515420<=_o4_[1] ?f_o3_.append(_o5_.toString(),_o4_[2]) :f_o3_.append(_o5_.toString(),_o4_[2]);} function _o__(param_o9_){return ActiveXObject;} var _pI_=[0,_N_]; function error_pf_(f_pa_) {return _fG_ (_jq_, function(s_o$_) {_nb_.error(s_o$_.toString());return _j_(s_o$_);}, f_pa_);} function debug_pJ_(f_pc_) {return _fG_ (_jq_,function(s_pb_){return _nb_.log(s_pb_.toString());},f_pc_);} function check_error_pK_(gl_pd_) {var _pe_=gl_pd_.NO; return caml_notequal(gl_pd_.getError(),_pe_)?error_pf_(_m_):0;} function load_shader_pL_(gl_pg_,shader_pi_,text_ph_) {gl_pg_.shaderSource(shader_pi_,text_ph_); gl_pg_.compileShader(shader_pi_); if(gl_pg_.getShaderParameter(shader_pi_,gl_pg_.COMPILE_STATUS)|0) return 0; var _pj_=new MlWrappedString(gl_pg_.getShaderInfoLog(shader_pi_)); return _fb_(error_pf_,_p_,new MlWrappedString(text_ph_),_pj_);} function get_source_pM_(src_id_pk_) {function _pm_(param_pl_){return _fG_(error_pf_,_r_,src_id_pk_);} return _mq_ (_mp_(document_mY_.getElementById(src_id_pk_.toString()),_na_), _pm_).text;} function float32array_pN_(a_pn_) {var array_po_=new float32Array_m3_(a_pn_.length-1), _pp_=0, _pq_=a_pn_.length-1-1|0; if(!(_pq_<_pp_)) {var i_pr_=_pp_; for(;;) {array_po_[i_pr_]=a_pn_[i_pr_+1]; var _ps_=i_pr_+1|0; if(_pq_!==i_pr_){var i_pr_=_ps_;continue;} break;}} return array_po_;} function _py_(i_pt_,j_pu_){return (i_pt_*4|0)+j_pu_|0;} function _pO_(m1_pB_,m2_pz_) {return _c8_ (16, function(p_pv_) {var _pw_=p_pv_%4|0, _px_=p_pv_/4|0, _pA_=caml_array_get(m2_pz_,_py_(3,_pw_)), _pC_=caml_array_get(m1_pB_,_py_(_px_,3))*_pA_, _pD_=caml_array_get(m2_pz_,_py_(2,_pw_)), _pE_=caml_array_get(m1_pB_,_py_(_px_,2))*_pD_, _pF_=caml_array_get(m2_pz_,_py_(1,_pw_)), _pG_=caml_array_get(m1_pB_,_py_(_px_,1))*_pF_, _pH_=caml_array_get(m2_pz_,_py_(0,_pw_)); return caml_array_get(m1_pB_,_py_(_px_,0))* _pH_+ _pG_+ _pE_+ _pC_;});} var line_regexp_pP_=regexp_nn_(_l_),couple_regexp_pR_=regexp_nn_(_k_); function read_coord_couple_qf_(c_pQ_) {var _pS_=string_match_no_(couple_regexp_pR_,c_pQ_,0); if(_pS_) {var _pT_=_dg_(_cQ_(matched_group_np_,_pS_[1]),_s_); if(_pT_) {var _pU_=_pT_[1]; if(_pU_) {var _pV_=_pT_[2]; if(_pV_) {var _pW_=_pV_[1]; if(_pW_&&!_pV_[2]) {var v_pX_=_pU_[1],_pY_=caml_int_of_string(_pW_[1]); return [0,[0,caml_int_of_string(v_pX_),_pY_]];}}}} return 0;} return 0;} function concat_qe_(a_p1_) {var r_pZ_=[0,0],_p0_=0,_p2_=a_p1_.length-1-1|0; if(!(_p2_<_p0_)) {var i_p3_=_p0_; a: for(;;) {var len_p4_=0,param_p5_=a_p1_[i_p3_+1],_p8_=r_pZ_[1]; for(;;) {if(param_p5_) {var l_p7_=param_p5_[2], _p6_=len_p4_+1|0, len_p4_=_p6_, param_p5_=l_p7_; continue;} r_pZ_[1]=_p8_+len_p4_|0; var _p9_=i_p3_+1|0; if(_p2_!==i_p3_){var i_p3_=_p9_;continue a;} break;} break;}} var pos_p__=[0,-1],l_p$_=[0,0],_qd_=r_pZ_[1]; return _c8_ (_qd_, function(param_qc_) {for(;;) {var _qa_=l_p$_[1]; if(_qa_){var t_qb_=_qa_[1];l_p$_[1]=_qa_[2];return t_qb_;} pos_p__[1]+=1; l_p$_[1]=caml_array_get(a_p1_,pos_p__[1]); continue;}});} var pi_qJ_=4*Math.atan(1); function start_u__(param_qg_) {var pos_qh_=param_qg_[1], norm_qj_=param_qg_[2], fps_text_qi_=document_mY_.createTextNode(_I_.toString()), _qk_=_mp_(document_mY_.getElementById(_H_.toString()),_m1_); if(_qk_!=null_l2_)_qk_.appendChild(fps_text_qi_); function _qm_(param_ql_){return _fG_(error_pf_,_n_,_g_);} var canvas_qn_= _mq_(_mp_(document_mY_.getElementById(_g_.toString()),_m__),_qm_); function _qt_(param_qp_) {return _fG_ (_jq_, function(s_qo_) {window_mX_.alert(s_qo_.toString());return _j_(s_qo_);}, _o_);} try {var ctx_qq_=canvas_qn_.getContext(_M_.toString()), _qr_= 1-(ctx_qq_==null_l2_?1:0) ?ctx_qq_ :canvas_qn_.getContext(_L_.toString()), _qs_=_qr_;} catch(_re_){var _qs_=null_l2_;} var gl_qu_=_mq_(_qs_,_qt_), _qv_=get_source_pM_(_G_), _qw_=get_source_pM_(_F_), vertexShader_qx_=gl_qu_.createShader(gl_qu_.VERTEX_SHADER), fragmentShader_qy_=gl_qu_.createShader(gl_qu_.FRAGMENT_SHADER); load_shader_pL_(gl_qu_,vertexShader_qx_,_qw_); load_shader_pL_(gl_qu_,fragmentShader_qy_,_qv_); var prog_qz_=gl_qu_.createProgram(); gl_qu_.attachShader(prog_qz_,vertexShader_qx_); gl_qu_.attachShader(prog_qz_,fragmentShader_qy_); gl_qu_.linkProgram(prog_qz_); if(!(gl_qu_.getProgramParameter(prog_qz_,gl_qu_.LINK_STATUS)|0)) error_pf_(_q_); gl_qu_.useProgram(prog_qz_); check_error_pK_(gl_qu_); debug_pJ_(_E_); gl_qu_.enable(gl_qu_.DEPTH_TEST); gl_qu_.depthFunc(gl_qu_.LESS); var proj_loc_qA_=gl_qu_.getUniformLocation(prog_qz_,_D_.toString()), lightPos_loc_qB_=gl_qu_.getUniformLocation(prog_qz_,_C_.toString()), ambientLight_loc_qC_=gl_qu_.getUniformLocation(prog_qz_,_B_.toString()), lightPos_qD_=float32array_pN_([-1,3,0,-1]), ambientLight_qE_=float32array_pN_([-1,0.1,0.1,0.1]); gl_qu_.uniform3fv(lightPos_loc_qB_,lightPos_qD_); gl_qu_.uniform3fv(ambientLight_loc_qC_,ambientLight_qE_); var pos_attr_qF_=gl_qu_.getAttribLocation(prog_qz_,_A_.toString()); gl_qu_.enableVertexAttribArray(pos_attr_qF_); var array_buffer_qG_=gl_qu_.createBuffer(); gl_qu_.bindBuffer(gl_qu_.ARRAY_BUFFER,array_buffer_qG_); gl_qu_.bufferData(gl_qu_.ARRAY_BUFFER,pos_qh_,gl_qu_.STATIC_DRAW); gl_qu_.vertexAttribPointer(pos_attr_qF_,3,gl_qu_.FLOAT,_false_mw_,0,0); var norm_attr_qH_=gl_qu_.getAttribLocation(prog_qz_,_z_.toString()); gl_qu_.enableVertexAttribArray(norm_attr_qH_); var norm_buffer_qI_=gl_qu_.createBuffer(); gl_qu_.bindBuffer(gl_qu_.ARRAY_BUFFER,norm_buffer_qI_); gl_qu_.bufferData(gl_qu_.ARRAY_BUFFER,norm_qj_,gl_qu_.STATIC_DRAW); gl_qu_.vertexAttribPointer(norm_attr_qH_,3,gl_qu_.FLOAT,_false_mw_,0,0); var _qK_=pi_qJ_/2, mat_qL_= _pO_ ([-1, 1, 0, 0, 0, 0, Math.cos(_qK_), Math.sin(_qK_), 0, 0, -Math.sin(_qK_), Math.cos(_qK_), 0, 0, 0, 0, 1], _pO_ ([-1,0.5,0,0,0,0,0.5,0,0,0,0,0.5,0,0,0,0,1], [-1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])); check_error_pK_(gl_qu_); debug_pJ_(_y_); function get_time_qN_(param_qM_) {return new date_constr_mG_().getTime();} var last_draw_qO_=[0,get_time_qN_(0)],_qP_=[0,0,0]; function f_rc_(param_rd_) {var _qQ_=1*(new date_constr_mG_().getTime()/1000); gl_qu_.uniformMatrix4fv (proj_loc_qA_, _false_mw_, float32array_pN_ (_pO_ (mat_qL_, [-1, Math.cos(_qQ_), 0, -Math.sin(_qQ_), 0, 0, 1, 0, 0, Math.sin(_qQ_), 0, Math.cos(_qQ_), 0, 0, 0, 0, 1]))); gl_qu_.clear(gl_qu_.DEPTH_BUFFER_BIT|gl_qu_.COLOR_BUFFER_BIT); gl_qu_.drawArrays(gl_qu_.TRIANGLES,0,pos_qh_.length/3|0); check_error_pK_(gl_qu_); var now_qR_=get_time_qN_(0),_qS_=now_qR_-last_draw_qO_[1]; _qP_[1]=_qP_[1]+1|0; if(1===_qP_[1]) {var cell_qT_=[]; caml_update_dummy(cell_qT_,[0,_qS_,cell_qT_]); _qP_[2]=cell_qT_;} else {var tail_qU_=_qP_[2],cell_qV_=[0,_qS_,tail_qU_[2]]; tail_qU_[2]=cell_qV_; _qP_[2]=cell_qV_;} last_draw_qO_[1]=now_qR_; if(50<_dR_(_qP_)) {if(0===_qP_[1])throw [0,_dS_]; _qP_[1]=_qP_[1]-1|0; var tail_qW_=_qP_[2],head_qX_=tail_qW_[2]; if(head_qX_===tail_qW_)_qP_[2]=0;else tail_qW_[2]=head_qX_[2];} var _qY_=0,_qZ_=_dR_(_qP_),_q6_=1000; if(0===_qP_[1]) var _q0_=_qY_; else {var tail_q1_=_qP_[2],accu_q2_=_qY_,cell_q3_=tail_q1_[2]; for(;;) {var _q4_=accu_q2_+cell_q3_[1]; if(cell_q3_!==tail_q1_) {var _q5_=cell_q3_[2],accu_q2_=_q4_,cell_q3_=_q5_;continue;} var _q0_=_q4_; break;}} fps_text_qi_.data=_fG_(_jr_,_J_,1/_q0_*_qZ_*_q6_).toString(); var match_q7_=task_lq_(0), t_q8_=match_q7_[1], w_q9_=match_q7_[2], _q$_=0.02*1000, id_ra_= window_mX_.setTimeout (caml_js_wrap_callback (function(param_q__){return wakeup_lp_(w_q9_,0);}), _q$_); on_cancel_lr_ (t_q8_,function(param_rb_){return window_mX_.clearTimeout(id_ra_);}); return _ls_(t_q8_,f_rc_);} return f_rc_(0);} window_mX_.onload= handler_mV_ (function(param_vm_) {function _rv_(exn_rg_) {var param_rf_=_js_[1]; for(;;) {if(param_rf_) {var tl_rl_=param_rf_[2],hd_rh_=param_rf_[1]; try {var _ri_=_cQ_(hd_rh_,exn_rg_),_rj_=_ri_;} catch(_rm_){var _rj_=0;} if(!_rj_){var param_rf_=tl_rl_;continue;} var _rk_=_rj_[1];} else if(exn_rg_[1]===_cm_) var _rk_=_bK_; else if(exn_rg_[1]===_ck_) var _rk_=_bJ_; else if(exn_rg_[1]===_cl_) {var match_rn_=exn_rg_[2], char_ro_=match_rn_[3], _rk_= _jn_ (_jr_, _e_, match_rn_[1], match_rn_[2], char_ro_, char_ro_+5|0, _bI_);} else if(exn_rg_[1]===_d_) {var match_rp_=exn_rg_[2], char_rq_=match_rp_[3], _rk_= _jn_ (_jr_, _e_, match_rp_[1], match_rp_[2], char_rq_, char_rq_+6|0, _bH_);} else {var _rr_=exn_rg_.length-1,constructor_ru_=exn_rg_[0+1][0+1]; if(_rr_<0||2<_rr_) {var _rs_=_jy_(exn_rg_,2), _rt_=_fb_(_jr_,_bG_,_jz_(exn_rg_,1),_rs_);} else switch(_rr_) {case 1:var _rt_=_bE_;break; case 2:var _rt_=_fG_(_jr_,_bD_,_jz_(exn_rg_,1));break; default:var _rt_=_bF_;} var _rk_=_cy_(constructor_ru_,_rt_);} return _fG_(error_pf_,_K_,_rk_);}} try {var _sr_=0, _ss_=0, _st_=0, _su_=0, _sv_=0, _sw_=0, _sy_= function(frame_rw_) {var a_rx_= str_array_mE_(frame_rw_[4].toString().split(_x_.toString())); window_mX_.arr=a_rx_; var vertex_ry_=[0,0],norm_rz_=[0,0],face_rA_=[0,0],i_rB_=0; for(;;) {var _rC_=_mu_(array_get_mD_(a_rx_,i_rB_)); if(_rC_) {var _rD_= string_match_no_ (line_regexp_pP_,new MlWrappedString(_rC_[1]),0); if(_rD_) {var _rE_=_dg_(_cQ_(matched_group_np_,_rD_[1]),_w_); if(_rE_) {var _rF_=_rE_[1]; if(_rF_) {var _rG_=_rF_[1]; if(caml_string_notequal(_rG_,_v_)) if(caml_string_notequal(_rG_,_u_)) if(caml_string_notequal(_rG_,_t_)) var _rH_=0; else {var _rI_=_rE_[2]; if(_rI_) {var _rJ_=_rI_[1]; if(_rJ_) {var _rK_=_rI_[2]; if(_rK_) {var _rL_=_rK_[1]; if(_rL_) {var _rM_=_rK_[2]; if(_rM_) {var _rN_=_rM_[1]; if(_rN_&&!_rM_[2]) {var _rO_= [0, [1, [0, caml_float_of_string(_rJ_[1]), caml_float_of_string(_rL_[1]), caml_float_of_string(_rN_[1])]]], _rH_=1;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else {var _rP_=_rE_[2]; if(_rP_) {var _rQ_=_rP_[1]; if(_rQ_) {var _rR_=_rP_[2]; if(_rR_) {var _rS_=_rR_[1]; if(_rS_) {var _rT_=_rR_[2]; if(_rT_) {var _rU_=_rT_[1]; if(_rU_&&!_rT_[2]) {var _rO_= [0, [0, [0, caml_float_of_string(_rQ_[1]), caml_float_of_string(_rS_[1]), caml_float_of_string(_rU_[1])]]], _rH_=1;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else {var _rV_=_rE_[2]; if(_rV_) {var _rW_=_rV_[1]; if(_rW_) {var _rX_=_rV_[2]; if(_rX_) {var _rY_=_rX_[1]; if(_rY_) {var _rZ_=_rX_[2]; if(_rZ_) {var _r0_=_rZ_[1]; if(_r0_&&!_rZ_[2]) {var _r1_= _dg_ (read_coord_couple_qf_, [0,_rW_[1],[0,_rY_[1],[0,_r0_[1],0]]]); if(_r1_) {var _r2_=_r1_[1]; if(_r2_) {var _r3_=_r1_[2]; if(_r3_) {var _r4_=_r3_[1]; if(_r4_) {var _r5_=_r3_[2]; if(_r5_) {var _r6_=_r5_[1]; if(_r6_&&!_r5_[2]) {var _rO_=[0,[2,[0,_r2_[1],_r4_[1],_r6_[1]]]],_rH_=1,_r7_=0;} else var _r7_=1;} else var _r7_=1;} else var _r7_=1;} else var _r7_=1;} else var _r7_=1;} else var _r7_=1; if(_r7_){var _rO_=0,_rH_=1;}} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;} else var _rH_=0;}} else var _rH_=0;} else var _rH_=0; if(!_rH_)var _rO_=0;} else var _rO_=0; if(_rO_) {var _r8_=_rO_[1]; switch(_r8_[0]) {case 1: var match_r9_=_r8_[1]; norm_rz_[1]= [0,[0,match_r9_[1],match_r9_[2],match_r9_[3]],norm_rz_[1]]; break; case 2: var match_r__=_r8_[1]; face_rA_[1]= [0,[0,match_r__[1],match_r__[2],match_r__[3]],face_rA_[1]]; break; default: var match_r$_=_r8_[1]; vertex_ry_[1]= [0,[0,match_r$_[1],match_r$_[2],match_r$_[3]],vertex_ry_[1]];}} var _sa_=i_rB_+1|0,i_rB_=_sa_; continue;} var _sb_=_c9_(_dm_(face_rA_[1])), _sc_=_c9_(_dm_(norm_rz_[1])), _sd_=_c9_(_dm_(vertex_ry_[1])), vertex__so_= _c8_ (_sb_.length-1, function(i_se_) {var _sf_=caml_array_get(_sb_,i_se_), match_sg_=caml_array_get(_sd_,_sf_[1][1]-1|0), match_sh_=caml_array_get(_sd_,_sf_[2][1]-1|0), match_si_=caml_array_get(_sd_,_sf_[3][1]-1|0); return [0, match_sg_[1], [0, match_sg_[2], [0, match_sg_[3], [0, match_sh_[1], [0, match_sh_[2], [0, match_sh_[3], [0,match_si_[1],[0,match_si_[2],[0,match_si_[3],0]]]]]]]]];}), norm__sp_= _c8_ (_sb_.length-1, function(i_sj_) {var _sk_=caml_array_get(_sb_,i_sj_), match_sl_=caml_array_get(_sc_,_sk_[1][2]-1|0), match_sm_=caml_array_get(_sc_,_sk_[2][2]-1|0), match_sn_=caml_array_get(_sc_,_sk_[3][2]-1|0); return [0, match_sl_[1], [0, match_sl_[2], [0, match_sl_[3], [0, match_sm_[1], [0, match_sm_[2], [0, match_sm_[3], [0,match_sn_[1],[0,match_sn_[2],[0,match_sn_[3],0]]]]]]]]];}), vertex_sq_=float32array_pN_(concat_qe_(vertex__so_)); return [0,vertex_sq_,float32array_pN_(concat_qe_(norm__sp_))];}}, headers_sx_=_sw_?_sw_[1]:0, get_args_sz_=_st_?_st_[1]:0, check_headers_sA_=_sr_?_sr_[1]:function(param_sB_,_sC_){return 1;}; if(_ss_) {var form_arg_sD_=_ss_[1]; if(_su_) {var post_args_sF_=_su_[1]; _dn_ (function(param_sE_) {return _o6_ (form_arg_sD_, [0,param_sE_[1],[0,-976970511,param_sE_[2].toString()]]);}, post_args_sF_);} var form_arg_sG_=[0,form_arg_sD_];} else if(_su_) {var post_args_sH_=_su_[1], _sI_=_mu_(_mO_(formData_o7_)), contents_sJ_= _sI_?[0,808620462,new (_sI_[1])()]:[0,891486873,[0,0]]; _dn_ (function(param_sK_) {return _o6_ (contents_sJ_, [0,param_sK_[1],[0,-976970511,param_sK_[2].toString()]]);}, post_args_sH_); var form_arg_sG_=[0,contents_sJ_];} else var form_arg_sG_=0; if(form_arg_sG_) {var _sL_=form_arg_sG_[1]; if(_sv_) var _sM_=[0,_ao_,_sv_,126925477]; else {if(891486873<=_sL_[1]) {var yes_sN_=0,no_sO_=0,param_sP_=_sL_[2][1]; for(;;) {if(param_sP_) {var l_sQ_=param_sP_[2], x_sR_=param_sP_[1], _sS_=781515420<=x_sR_[2][1]?0:1; if(_sS_) {var _sT_=[0,x_sR_,yes_sN_],yes_sN_=_sT_,param_sP_=l_sQ_; continue;} var _sU_=[0,x_sR_,no_sO_],no_sO_=_sU_,param_sP_=l_sQ_; continue;} var _sV_=_dm_(no_sO_); _dm_(yes_sN_); if(_sV_) {var nine_digits_sX_= function(param_sW_) {return string_of_int_cL_(math_mK_.random()*1000000000|0);}, _sY_=nine_digits_sX_(0), _sZ_=_cy_(_S_,_cy_(nine_digits_sX_(0),_sY_)), _s0_=[0,_am_,[0,_cy_(_an_,_sZ_)],[0,164354597,_sZ_]];} else var _s0_=_al_; var _s1_=_s0_; break;}} else var _s1_=_ak_; var _sM_=_s1_;} var match_s2_=_sM_;} else var match_s2_=[0,_aj_,_sv_,126925477]; var post_encode_s3_=match_s2_[3], content_type_s4_=match_s2_[2], method__s6_=match_s2_[1], _s5_=caml_js_from_byte_string(_f_), _tD_= function(handle_s7_) {var res_s8_=match_result_mF_(handle_s7_), _s9_= caml_js_to_byte_string (_mt_(array_get_mD_(res_s8_,1),interrupt_ny_).toLowerCase()); if (caml_string_notequal(_s9_,_aG_)&& caml_string_notequal(_s9_,_aF_)) {if (caml_string_notequal(_s9_,_aE_)&& caml_string_notequal(_s9_,_aD_)) {if (caml_string_notequal(_s9_,_aC_)&& caml_string_notequal(_s9_,_aB_)) {var _s$_=1,_s__=0;} else var _s__=1; if(_s__){var ssl_ta_=1,_s$_=2;}} else var _s$_=0; switch(_s$_) {case 1:var _tb_=0;break; case 2:var _tb_=1;break; default:var ssl_ta_=0,_tb_=1;} if(_tb_) {var path_str_tc_= urldecode_js_string_string_nI_ (_mt_(array_get_mD_(res_s8_,5),interrupt_ny_)), _te_= function(param_td_){return caml_js_from_byte_string(_aK_);}, _tg_= urldecode_js_string_string_nI_ (_mt_(array_get_mD_(res_s8_,9),_te_)), _th_= function(param_tf_){return caml_js_from_byte_string(_aL_);}, _ti_= decode_arguments_js_string_om_ (_mt_(array_get_mD_(res_s8_,7),_th_)), _tk_=path_of_path_string_nQ_(path_str_tc_), _tl_= function(param_tj_){return caml_js_from_byte_string(_aM_);}, _tm_= caml_js_to_byte_string(_mt_(array_get_mD_(res_s8_,4),_tl_)), _tn_= caml_string_notequal(_tm_,_aJ_) ?caml_int_of_string(_tm_) :ssl_ta_?443:80, url_to_= [0, urldecode_js_string_string_nI_ (_mt_(array_get_mD_(res_s8_,2),interrupt_ny_)), _tn_, _tk_, path_str_tc_, _ti_, _tg_], _tp_=ssl_ta_?[1,url_to_]:[0,url_to_]; return [0,_tp_];}} throw [0,Not_an_http_protocol_ok_];}, _tE_= function(param_tC_) {function _tA_(handle_tq_) {var res_tr_=match_result_mF_(handle_tq_), path_str_ts_= urldecode_js_string_string_nI_ (_mt_(array_get_mD_(res_tr_,2),interrupt_ny_)); function _tu_(param_tt_) {return caml_js_from_byte_string(_aN_);} var _tw_= caml_js_to_byte_string(_mt_(array_get_mD_(res_tr_,6),_tu_)); function _tx_(param_tv_) {return caml_js_from_byte_string(_aO_);} var _ty_= decode_arguments_js_string_om_ (_mt_(array_get_mD_(res_tr_,4),_tx_)); return [0, [2, [0, path_of_path_string_nQ_(path_str_ts_), path_str_ts_, _ty_, _tw_]]];} function _tB_(param_tz_){return 0;} return _mc_(file_re_oY_.exec(_s5_),_tB_,_tA_);}, _tF_=_mc_(url_re_on_.exec(_s5_),_tE_,_tD_); if(_tF_) {var _tG_=_tF_[1]; switch(_tG_[0]) {case 0: var url_tH_=_tG_[1],_tI_=url_tH_.slice(),_tJ_=url_tH_[5]; _tI_[5]=0; var match_tK_=[0,string_of_url_oX_([0,_tI_]),_tJ_],_tL_=1; break; case 1: var url_tM_=_tG_[1],_tN_=url_tM_.slice(),_tO_=url_tM_[5]; _tN_[5]=0; var match_tK_=[0,string_of_url_oX_([1,_tN_]),_tO_],_tL_=1; break; default:var _tL_=0;}} else var _tL_=0; if(!_tL_)var match_tK_=[0,_f_,0]; var url_tP_=match_tK_[1], _tQ_=_cE_(match_tK_[2],get_args_sz_), url_tR_= _tQ_?_cy_(url_tP_,_cy_(_ai_,encode_arguments_ol_(_tQ_))):url_tP_, match_tS_=task_lq_(0), w_tT_=match_tS_[2], res_tU_=match_tS_[1]; try {var _tV_=new XMLHttpRequest(),req_tW_=_tV_;} catch(_vb_) {try {var a5f6575ba_tX_=_o__(0), _tY_=new a5f6575ba_tX_(_R_.toString()), req_tW_=_tY_;} catch(_t5_) {try {var a64f1392a_tZ_=_o__(0), _t0_=new a64f1392a_tZ_(_Q_.toString()), req_tW_=_t0_;} catch(_t4_) {try {var a30a5da5a_t1_=_o__(0), _t2_=new a30a5da5a_t1_(_P_.toString());} catch(_t3_){throw [0,_d_,_O_];} var req_tW_=_t2_;}}} req_tW_.open(method__s6_.toString(),url_tR_.toString(),_true_mv_); if(content_type_s4_) req_tW_.setRequestHeader (_ah_.toString(),content_type_s4_[1].toString()); _dn_ (function(param_t6_) {return req_tW_.setRequestHeader (param_t6_[1].toString(),param_t6_[2].toString());}, headers_sx_); var headers_ua_= function(s_t__) {function _t9_(v_t7_){return [0,new MlWrappedString(v_t7_)];} function _t$_(param_t8_){return 0;} return _mc_ (req_tW_.getResponseHeader(caml_js_from_byte_string(s_t__)), _t$_, _t9_);}, checked_ub_=[0,0], do_check_headers_uk_= function(param_uj_) {if (checked_ub_[1]|| _fG_(check_headers_sA_,req_tW_.status,headers_ua_)) var _uc_=0; else {var _ue_=[0,_pI_,[0,req_tW_.status,headers_ua_]], t_ud_=repr_rec_jJ_(w_tT_), _uf_=t_ud_[1]; switch(_uf_[0]) {case 1:var _ug_=_uf_[1][1]===Canceled_jE_?1:0;break; case 2: var state_uh_=[1,_ue_],waiters_ui_=_uf_[1][2]; t_ud_[1]=state_uh_; run_waiters_j__(waiters_ui_,state_uh_); var _ug_=1; break; default:var _ug_=0;} if(!_ug_)_cn_(_bq_); req_tW_.abort(); var _uc_=1;} _uc_; checked_ub_[1]=1; return 0;}; req_tW_.onreadystatechange= caml_js_wrap_callback (function(param_up_) {switch(req_tW_.readyState) {case 2:if(!onIE_mW_)return do_check_headers_uk_(0);break; case 3:if(onIE_mW_)return do_check_headers_uk_(0);break; case 4: do_check_headers_uk_(0); var _uo_= function(param_un_) {var _ul_=_mr_(req_tW_.responseXML); if(_ul_) {var doc_um_=_ul_[1]; return _mP_(doc_um_.documentElement)===null_l2_ ?0 :[0,doc_um_];} return 0;}; return wakeup_lp_ (w_tT_, [0, url_tR_, req_tW_.status, headers_ua_, new MlWrappedString(req_tW_.responseText), _uo_]); default:} return 0;}); if(form_arg_sG_) {var _uq_=form_arg_sG_[1]; if(891486873<=_uq_[1]) {var l_ur_=_uq_[2]; if(typeof post_encode_s3_==="number") {var _ux_=l_ur_[1]; req_tW_.send (_mP_ (_dN_ (_ae_, _dg_ (function(param_us_) {var _ut_=param_us_[2],_uu_=param_us_[1]; if(781515420<=_ut_[1]) {var _uv_= _cy_ (_ag_,urlencode_nJ_(0,new MlWrappedString(_ut_[2].name))); return _cy_(urlencode_nJ_(0,_uu_),_uv_);} var _uw_= _cy_(_af_,urlencode_nJ_(0,new MlWrappedString(_ut_[2]))); return _cy_(urlencode_nJ_(0,_uu_),_uw_);}, _ux_)).toString ()));} else {var boundary_uy_=post_encode_s3_[2], _uB_= function(data_uz_) {var data_uA_=_mP_(data_uz_.join(_ap_.toString())); return _ms_(req_tW_.sendAsBinary) ?req_tW_.sendAsBinary(data_uA_) :req_tW_.send(data_uA_);}, _uD_=l_ur_[1], b_uC_=new array_constructor_my_(), _u8_= function(param_uE_) {b_uC_.push(_cy_(_T_,_cy_(boundary_uy_,_U_)).toString()); return b_uC_;}; _lt_ (_lt_ (_lY_ (function(v_uF_) {b_uC_.push(_cy_(_Y_,_cy_(boundary_uy_,_Z_)).toString()); var _uG_=v_uF_[2],_uH_=v_uF_[1]; if(781515420<=_uG_[1]) {var value_uI_=_uG_[2], _uP_=-1041425454, _uQ_= function(file_uO_) {var _uL_=_ad_.toString(), _uK_=_ac_.toString(), _uJ_=_mu_(value_uI_.name); if(_uJ_) var _uM_=_uJ_[1]; else {var _uN_=_mu_(value_uI_.fileName), _uM_=_uN_?_uN_[1]:_j_(_aq_);} b_uC_.push (_cy_(_aa_,_cy_(_uH_,_ab_)).toString(),_uM_,_uK_,_uL_); b_uC_.push(___.toString(),file_uO_,_$_.toString()); return return_lo_(0);}, _uR_=_mu_(_mO_(_o8_)); if(_uR_) {var reader_uS_=new (_uR_[1])(), match_uT_=task_lq_(0), res_uU_=match_uT_[1], w_uY_=match_uT_[2]; reader_uS_.onloadend= handler_mV_ (function(param_uZ_) {if(2===reader_uS_.readyState) {var _uV_=reader_uS_.result, _uW_= caml_equal(typeof _uV_,_ar_.toString())?_mP_(_uV_):null_l2_, _uX_=_mr_(_uW_); if(!_uX_)throw [0,_d_,_as_]; wakeup_lp_(w_uY_,_uX_[1]);} return _false_mw_;}); on_cancel_lr_ (res_uU_,function(param_u0_){return reader_uS_.abort();}); if(typeof _uP_==="number") if(-550809787===_uP_) reader_uS_.readAsDataURL(value_uI_); else if(936573133<=_uP_) reader_uS_.readAsText(value_uI_); else reader_uS_.readAsBinaryString(value_uI_); else reader_uS_.readAsText(value_uI_,_uP_[2]); var _u1_=res_uU_;} else {var fail_u3_=function(param_u2_){return _j_(_au_);}; if(typeof _uP_==="number") var _u4_= -550809787===_uP_ ?_ms_(value_uI_.getAsDataURL) ?value_uI_.getAsDataURL() :fail_u3_(0) :936573133<=_uP_ ?_ms_(value_uI_.getAsText) ?value_uI_.getAsText(_at_.toString()) :fail_u3_(0) :_ms_(value_uI_.getAsBinary) ?value_uI_.getAsBinary() :fail_u3_(0); else {var e_u5_=_uP_[2], _u4_= _ms_(value_uI_.getAsText) ?value_uI_.getAsText(e_u5_) :fail_u3_(0);} var _u1_=return_lo_(_u4_);} return _ls_(_u1_,_uQ_);} var value_u7_=_uG_[2],_u6_=_X_.toString(); b_uC_.push (_cy_(_V_,_cy_(_uH_,_W_)).toString(),value_u7_,_u6_); return return_lo_(0);}, _uD_), _u8_), _uB_);}} else req_tW_.send(_uq_[2]);} else req_tW_.send(null_l2_); on_cancel_lr_(res_tU_,function(param_u9_){return req_tW_.abort();}); var _u$_=_ls_(_lt_(res_tU_,_sy_),start_u__),t_va_=_u$_;} catch(_vc_){var t_va_=fail_kY_(_vc_);} var _vd_=repr_kg_(t_va_)[1]; switch(_vd_[0]) {case 1:_rv_(_vd_[1]);break; case 2: var sleeper_ve_=_vd_[1], res_vf_=temp_k0_(sleeper_ve_[1]), data_vh_=current_data_jF_[1]; add_immutable_waiter_kV_ (sleeper_ve_, function(state_vg_) {switch(state_vg_[0]) {case 0:return fast_connect_k__(res_vf_,state_vg_); case 1: var exn_vi_=state_vg_[1]; current_data_jF_[1]=data_vh_; try {var _vj_=_rv_(exn_vi_),_vk_=_vj_;} catch(_vl_){var _vk_=fail_kY_(_vl_);} return connect_k9_(res_vf_,_vk_); default:throw [0,_d_,_by_];}}); break; case 3:throw [0,_d_,_bx_]; default:} return _true_mv_;}); do_at_exit_cN_(0); return;} ());