Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 3866615ed9f87500bac83f78574eecc8 > files > 596

js-of-ocaml-doc-1.2-2.fc18.noarch.rpm

// 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); }
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:6, 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);
  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(f.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(f.prec); break;
    case 'g':
      var prec = f.prec?f.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);
  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));
  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)); }
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, "&amp;")
          .replace(caml_js_regexps.lt, "&lt;")
          .replace(caml_js_regexps.quot, "&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_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_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_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 _g7_(_pz_,_pA_,_pB_,_pC_,_pD_,_pE_,_pF_)
     {return _pz_.length==6
              ?_pz_(_pA_,_pB_,_pC_,_pD_,_pE_,_pF_)
              :caml_call_gen(_pz_,[_pA_,_pB_,_pC_,_pD_,_pE_,_pF_]);}
    function _cR_(_pv_,_pw_,_px_,_py_)
     {return _pv_.length==3
              ?_pv_(_pw_,_px_,_py_)
              :caml_call_gen(_pv_,[_pw_,_px_,_py_]);}
    function _dj_(_ps_,_pt_,_pu_)
     {return _ps_.length==2?_ps_(_pt_,_pu_):caml_call_gen(_ps_,[_pt_,_pu_]);}
    function _a6_(_pq_,_pr_)
     {return _pq_.length==1?_pq_(_pr_):caml_call_gen(_pq_,[_pr_]);}
    var
     _a_=[0,new MlString("Failure")],
     _b_=[0,new MlString("Invalid_argument")],
     _c_=[0,new MlString("Assert_failure")];
    caml_register_global(5,[0,new MlString("Division_by_zero")]);
    caml_register_global(3,_b_);
    caml_register_global(2,_a_);
    var
     _aN_=new MlString("%.12g"),
     _aM_=new MlString("."),
     _aL_=new MlString("%d"),
     _aK_=new MlString("true"),
     _aJ_=new MlString("false"),
     _aI_=new MlString("Pervasives.do_at_exit"),
     _aH_=new MlString("\\b"),
     _aG_=new MlString("\\t"),
     _aF_=new MlString("\\n"),
     _aE_=new MlString("\\r"),
     _aD_=new MlString("\\\\"),
     _aC_=new MlString("\\'"),
     _aB_=new MlString("String.blit"),
     _aA_=new MlString("String.sub"),
     _az_=new MlString("Buffer.add: cannot grow buffer"),
     _ay_=new MlString("%"),
     _ax_=new MlString(""),
     _aw_=new MlString(""),
     _av_=new MlString("\""),
     _au_=new MlString("\""),
     _at_=new MlString("'"),
     _as_=new MlString("'"),
     _ar_=new MlString("."),
     _aq_=new MlString("printf: bad positional specification (0)."),
     _ap_=new MlString("%_"),
     _ao_=[0,new MlString("printf.ml"),144,8],
     _an_=new MlString("''"),
     _am_=new MlString("Printf: premature end of format string ``"),
     _al_=new MlString("''"),
     _ak_=new MlString(" in format string ``"),
     _aj_=new MlString(", at char number "),
     _ai_=new MlString("Printf: bad conversion %"),
     _ah_=new MlString("Sformat.index_of_int: negative argument "),
     _ag_=new MlString("x"),
     _af_=[0,new MlString("src/core/lwt.ml"),573,20],
     _ae_=[0,new MlString("src/core/lwt.ml"),575,8],
     _ad_=[0,new MlString("src/core/lwt.ml"),440,20],
     _ac_=[0,new MlString("src/core/lwt.ml"),443,8],
     _ab_=new MlString("Lwt.fast_connect"),
     _aa_=new MlString("Lwt.connect"),
     _$_=new MlString("Lwt.wakeup"),
     ___=new MlString("Lwt.Canceled"),
     _Z_=new MlString("canvas"),
     _Y_=new MlString("img"),
     _X_=new MlString("br"),
     _W_=new MlString("p"),
     _V_=new MlString("div"),
     _U_=new MlString("label"),
     _T_=new MlString("input"),
     _S_=new MlString("select"),
     _R_=new MlString("option"),
     _Q_=new MlString("\""),
     _P_=new MlString(" name=\""),
     _O_=new MlString("\""),
     _N_=new MlString(" type=\""),
     _M_=new MlString("<"),
     _L_=new MlString(">"),
     _K_=new MlString(""),
     _J_=new MlString("on"),
     _I_=new MlString("mouseup"),
     _H_=new MlString("mousemove"),
     _G_=new MlString("2d"),
     _F_=new MlString("Dom_html.Canvas_not_available"),
     _E_=new MlString("lighter"),
     _D_=new MlString("copy"),
     _C_=new MlString("% 2.f"),
     _B_=new MlString(""),
     _A_=new MlString("controls"),
     _z_=new MlString("Click and drag mouse to rotate."),
     _y_=new MlString("Resume"),
     _x_=new MlString("Pause"),
     _w_=new MlString("Fixed position"),
     _v_=new MlString("Follow rotation"),
     _u_=new MlString("Reset orientation"),
     _t_=new MlString("Date:"),
     _s_=
      [0,
       new MlString("December solstice"),
       [0,new MlString("Equinox"),[0,new MlString("June solstice"),0]]],
     _r_=new MlString("Lighting"),
     _q_=new MlString("Clip"),
     _p_=new MlString("Frames per second: "),
     _o_=
      new
       MlString
       ("Credit: <a href='http://visibleearth.nasa.gov/'>Visual Earth</a>, Nasa"),
     _n_=[0,new MlString("planet.ml"),415,0],
     _m_=[0,new MlString("planet.ml"),416,0],
     _l_=[0,new MlString("planet.ml"),417,0],
     _k_=[0,new MlString("planet.ml"),418,0],
     _j_=new MlString("copy"),
     _i_=new MlString("checkbox"),
     _h_=new MlString("button"),
     v_g_=[254,0,0,1],
     _f_=new MlString("../planet/texture.jpg");
    function _e_(s_d_){throw [0,_a_,s_d_];}
    function _aP_(s_aO_){throw [0,_b_,s_aO_];}
    function _aV_(s1_aQ_,s2_aS_)
     {var
       l1_aR_=s1_aQ_.getLen(),
       l2_aT_=s2_aS_.getLen(),
       s_aU_=caml_create_string(l1_aR_+l2_aT_|0);
      caml_blit_string(s1_aQ_,0,s_aU_,0,l1_aR_);
      caml_blit_string(s2_aS_,0,s_aU_,l1_aR_,l2_aT_);
      return s_aU_;}
    function string_of_int_aX_(n_aW_){return caml_format_int(_aL_,n_aW_);}
    function do_at_exit_a2_(param_a1_)
     {var param_aY_=caml_ml_out_channels_list(0);
      for(;;)
       {if(param_aY_)
         {var l_aZ_=param_aY_[2];
          try {}catch(_a0_){}
          var param_aY_=l_aZ_;
          continue;}
        return 0;}}
    caml_register_named_value(_aI_,do_at_exit_a2_);
    function _ba_(f_a5_,a_a3_)
     {var l_a4_=a_a3_.length-1;
      if(0===l_a4_)return [0];
      var
       r_a7_=caml_make_vect(l_a4_,_a6_(f_a5_,a_a3_[0+1])),
       _a8_=1,
       _a9_=l_a4_-1|0;
      if(!(_a9_<_a8_))
       {var i_a__=_a8_;
        for(;;)
         {r_a7_[i_a__+1]=_a6_(f_a5_,a_a3_[i_a__+1]);
          var _a$_=i_a__+1|0;
          if(_a9_!==i_a__){var i_a__=_a$_;continue;}
          break;}}
      return r_a7_;}
    function _be_(n_bb_,c_bd_)
     {var s_bc_=caml_create_string(n_bb_);
      caml_fill_string(s_bc_,0,n_bb_,c_bd_);
      return s_bc_;}
    function _bj_(s_bh_,ofs_bf_,len_bg_)
     {if(0<=ofs_bf_&&0<=len_bg_&&!((s_bh_.getLen()-len_bg_|0)<ofs_bf_))
       {var r_bi_=caml_create_string(len_bg_);
        caml_blit_string(s_bh_,ofs_bf_,r_bi_,0,len_bg_);
        return r_bi_;}
      return _aP_(_aA_);}
    function _bp_(s1_bm_,ofs1_bl_,s2_bo_,ofs2_bn_,len_bk_)
     {if
       (0<=
        len_bk_&&
        0<=
        ofs1_bl_&&
        !((s1_bm_.getLen()-len_bk_|0)<ofs1_bl_)&&
        0<=
        ofs2_bn_&&
        !((s2_bo_.getLen()-len_bk_|0)<ofs2_bn_))
       return caml_blit_string(s1_bm_,ofs1_bl_,s2_bo_,ofs2_bn_,len_bk_);
      return _aP_(_aB_);}
    var
     _bq_=caml_sys_get_config(0)[2],
     _br_=caml_mul(_bq_/8|0,(1<<(_bq_-10|0))-1|0)-1|0;
    function _bw_(n_bs_)
     {var
       n_bt_=1<=n_bs_?n_bs_:1,
       n_bu_=_br_<n_bt_?_br_:n_bt_,
       s_bv_=caml_create_string(n_bu_);
      return [0,s_bv_,0,n_bu_,s_bv_];}
    function _by_(b_bx_){return _bj_(b_bx_[1],0,b_bx_[2]);}
    function _bD_(b_bz_,more_bB_)
     {var new_len_bA_=[0,b_bz_[3]];
      for(;;)
       {if(new_len_bA_[1]<(b_bz_[2]+more_bB_|0))
         {new_len_bA_[1]=2*new_len_bA_[1]|0;continue;}
        if(_br_<new_len_bA_[1])
         if((b_bz_[2]+more_bB_|0)<=_br_)new_len_bA_[1]=_br_;else _e_(_az_);
        var new_buffer_bC_=caml_create_string(new_len_bA_[1]);
        _bp_(b_bz_[1],0,new_buffer_bC_,0,b_bz_[2]);
        b_bz_[1]=new_buffer_bC_;
        b_bz_[3]=new_len_bA_[1];
        return 0;}}
    function _bH_(b_bE_,c_bG_)
     {var pos_bF_=b_bE_[2];
      if(b_bE_[3]<=pos_bF_)_bD_(b_bE_,1);
      b_bE_[1].safeSet(pos_bF_,c_bG_);
      b_bE_[2]=pos_bF_+1|0;
      return 0;}
    function _bM_(b_bK_,s_bI_)
     {var len_bJ_=s_bI_.getLen(),new_position_bL_=b_bK_[2]+len_bJ_|0;
      if(b_bK_[3]<new_position_bL_)_bD_(b_bK_,len_bJ_);
      _bp_(s_bI_,0,b_bK_[1],b_bK_[2],len_bJ_);
      b_bK_[2]=new_position_bL_;
      return 0;}
    function index_of_int_bO_(i_bN_)
     {return 0<=i_bN_?i_bN_:_e_(_aV_(_ah_,string_of_int_aX_(i_bN_)));}
    function add_int_index_bR_(i_bP_,idx_bQ_)
     {return index_of_int_bO_(i_bP_+idx_bQ_|0);}
    var _bS_=_a6_(add_int_index_bR_,1);
    function _bU_(fmt_bT_){return _bj_(fmt_bT_,0,fmt_bT_.getLen());}
    function bad_conversion_b0_(sfmt_bV_,i_bW_,c_bY_)
     {var
       _bX_=_aV_(_ak_,_aV_(sfmt_bV_,_al_)),
       _bZ_=_aV_(_aj_,_aV_(string_of_int_aX_(i_bW_),_bX_));
      return _aP_(_aV_(_ai_,_aV_(_be_(1,c_bY_),_bZ_)));}
    function bad_conversion_format_b4_(fmt_b1_,i_b3_,c_b2_)
     {return bad_conversion_b0_(_bU_(fmt_b1_),i_b3_,c_b2_);}
    function incomplete_format_b6_(fmt_b5_)
     {return _aP_(_aV_(_am_,_aV_(_bU_(fmt_b5_),_an_)));}
    function extract_format_cs_(fmt_b7_,start_cd_,stop_cf_,widths_ch_)
     {function skip_positional_spec_cc_(start_b8_)
       {if
         ((fmt_b7_.safeGet(start_b8_)-48|0)<
          0||
          9<
          (fmt_b7_.safeGet(start_b8_)-48|0))
         return start_b8_;
        var i_b9_=start_b8_+1|0;
        for(;;)
         {var _b__=fmt_b7_.safeGet(i_b9_);
          if(48<=_b__)
           {if(!(58<=_b__)){var _ca_=i_b9_+1|0,i_b9_=_ca_;continue;}
            var _b$_=0;}
          else
           if(36===_b__){var _cb_=i_b9_+1|0,_b$_=1;}else var _b$_=0;
          if(!_b$_)var _cb_=start_b8_;
          return _cb_;}}
      var
       start_ce_=skip_positional_spec_cc_(start_cd_+1|0),
       b_cg_=_bw_((stop_cf_-start_ce_|0)+10|0);
      _bH_(b_cg_,37);
      var l1_ci_=widths_ch_,l2_cj_=0;
      for(;;)
       {if(l1_ci_)
         {var
           l_ck_=l1_ci_[2],
           _cl_=[0,l1_ci_[1],l2_cj_],
           l1_ci_=l_ck_,
           l2_cj_=_cl_;
          continue;}
        var i_cm_=start_ce_,widths_cn_=l2_cj_;
        for(;;)
         {if(i_cm_<=stop_cf_)
           {var _co_=fmt_b7_.safeGet(i_cm_);
            if(42===_co_)
             {if(widths_cn_)
               {var t_cp_=widths_cn_[2];
                _bM_(b_cg_,string_of_int_aX_(widths_cn_[1]));
                var
                 i_cq_=skip_positional_spec_cc_(i_cm_+1|0),
                 i_cm_=i_cq_,
                 widths_cn_=t_cp_;
                continue;}
              throw [0,_c_,_ao_];}
            _bH_(b_cg_,_co_);
            var _cr_=i_cm_+1|0,i_cm_=_cr_;
            continue;}
          return _by_(b_cg_);}}}
    function extract_format_int_cz_
     (conv_cy_,fmt_cw_,start_cv_,stop_cu_,widths_ct_)
     {var sfmt_cx_=extract_format_cs_(fmt_cw_,start_cv_,stop_cu_,widths_ct_);
      if(78!==conv_cy_&&110!==conv_cy_)return sfmt_cx_;
      sfmt_cx_.safeSet(sfmt_cx_.getLen()-1|0,117);
      return sfmt_cx_;}
    function sub_format_cX_
     (incomplete_format_cG_,bad_conversion_format_cQ_,conv_cV_,fmt_cA_,i_cU_)
     {var len_cB_=fmt_cA_.getLen();
      function sub_fmt_cS_(c_cC_,i_cP_)
       {var close_cD_=40===c_cC_?41:125;
        function sub_cO_(j_cE_)
         {var j_cF_=j_cE_;
          for(;;)
           {if(len_cB_<=j_cF_)return _a6_(incomplete_format_cG_,fmt_cA_);
            if(37===fmt_cA_.safeGet(j_cF_))
             {var _cH_=j_cF_+1|0;
              if(len_cB_<=_cH_)
               var _cI_=_a6_(incomplete_format_cG_,fmt_cA_);
              else
               {var _cJ_=fmt_cA_.safeGet(_cH_),_cK_=_cJ_-40|0;
                if(_cK_<0||1<_cK_)
                 {var _cL_=_cK_-83|0;
                  if(_cL_<0||2<_cL_)
                   var _cM_=1;
                  else
                   switch(_cL_)
                    {case 1:var _cM_=1;break;
                     case 2:var _cN_=1,_cM_=0;break;
                     default:var _cN_=0,_cM_=0;}
                  if(_cM_){var _cI_=sub_cO_(_cH_+1|0),_cN_=2;}}
                else
                 var _cN_=0===_cK_?0:1;
                switch(_cN_)
                 {case 1:
                   var
                    _cI_=
                     _cJ_===close_cD_
                      ?_cH_+1|0
                      :_cR_(bad_conversion_format_cQ_,fmt_cA_,i_cP_,_cJ_);
                   break;
                  case 2:break;
                  default:var _cI_=sub_cO_(sub_fmt_cS_(_cJ_,_cH_+1|0)+1|0);}}
              return _cI_;}
            var _cT_=j_cF_+1|0,j_cF_=_cT_;
            continue;}}
        return sub_cO_(i_cP_);}
      return sub_fmt_cS_(conv_cV_,i_cU_);}
    function sub_format_for_printf_cY_(conv_cW_)
     {return _cR_
              (sub_format_cX_,
               incomplete_format_b6_,
               bad_conversion_format_b4_,
               conv_cW_);}
    function iter_on_format_args_dr_(fmt_cZ_,add_conv_c__,add_char_di_)
     {var lim_c0_=fmt_cZ_.getLen()-1|0;
      function scan_fmt_dk_(i_c1_)
       {var i_c2_=i_c1_;
        a:
        for(;;)
         {if(i_c2_<lim_c0_)
           {if(37===fmt_cZ_.safeGet(i_c2_))
             {var skip_c3_=0,i_c4_=i_c2_+1|0;
              for(;;)
               {if(lim_c0_<i_c4_)
                 var _c5_=incomplete_format_b6_(fmt_cZ_);
                else
                 {var _c6_=fmt_cZ_.safeGet(i_c4_);
                  if(58<=_c6_)
                   {if(95===_c6_)
                     {var _c8_=i_c4_+1|0,_c7_=1,skip_c3_=_c7_,i_c4_=_c8_;
                      continue;}}
                  else
                   if(32<=_c6_)
                    switch(_c6_-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 _c9_=i_c4_+1|0,i_c4_=_c9_;continue;
                      case 10:
                       var _c$_=_cR_(add_conv_c__,skip_c3_,i_c4_,105),i_c4_=_c$_;
                       continue;
                      default:var _da_=i_c4_+1|0,i_c4_=_da_;continue;}
                  var i_db_=i_c4_;
                  c:
                  for(;;)
                   {if(lim_c0_<i_db_)
                     var _dc_=incomplete_format_b6_(fmt_cZ_);
                    else
                     {var _dd_=fmt_cZ_.safeGet(i_db_);
                      if(126<=_dd_)
                       var _de_=0;
                      else
                       switch(_dd_)
                        {case 78:
                         case 88:
                         case 100:
                         case 105:
                         case 111:
                         case 117:
                         case 120:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,105),_de_=1;break;
                         case 69:
                         case 70:
                         case 71:
                         case 101:
                         case 102:
                         case 103:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,102),_de_=1;break;
                         case 33:
                         case 37:
                         case 44:var _dc_=i_db_+1|0,_de_=1;break;
                         case 83:
                         case 91:
                         case 115:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,115),_de_=1;break;
                         case 97:
                         case 114:
                         case 116:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,_dd_),_de_=1;
                          break;
                         case 76:
                         case 108:
                         case 110:
                          var j_df_=i_db_+1|0;
                          if(lim_c0_<j_df_)
                           {var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,105),_de_=1;}
                          else
                           {var _dg_=fmt_cZ_.safeGet(j_df_)-88|0;
                            if(_dg_<0||32<_dg_)
                             var _dh_=1;
                            else
                             switch(_dg_)
                              {case 0:
                               case 12:
                               case 17:
                               case 23:
                               case 29:
                               case 32:
                                var
                                 _dc_=
                                  _dj_
                                   (add_char_di_,_cR_(add_conv_c__,skip_c3_,i_db_,_dd_),105),
                                 _de_=1,
                                 _dh_=0;
                                break;
                               default:var _dh_=1;}
                            if(_dh_)
                             {var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,105),_de_=1;}}
                          break;
                         case 67:
                         case 99:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,99),_de_=1;break;
                         case 66:
                         case 98:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,66),_de_=1;break;
                         case 41:
                         case 125:
                          var _dc_=_cR_(add_conv_c__,skip_c3_,i_db_,_dd_),_de_=1;
                          break;
                         case 40:
                          var
                           _dc_=scan_fmt_dk_(_cR_(add_conv_c__,skip_c3_,i_db_,_dd_)),
                           _de_=1;
                          break;
                         case 123:
                          var
                           i_dl_=_cR_(add_conv_c__,skip_c3_,i_db_,_dd_),
                           j_dm_=_cR_(sub_format_for_printf_cY_,_dd_,fmt_cZ_,i_dl_),
                           i_dn_=i_dl_;
                          for(;;)
                           {if(i_dn_<(j_dm_-2|0))
                             {var
                               _do_=_dj_(add_char_di_,i_dn_,fmt_cZ_.safeGet(i_dn_)),
                               i_dn_=_do_;
                              continue;}
                            var _dp_=j_dm_-1|0,i_db_=_dp_;
                            continue c;}
                         default:var _de_=0;}
                      if(!_de_)
                       var _dc_=bad_conversion_format_b4_(fmt_cZ_,i_db_,_dd_);}
                    var _c5_=_dc_;
                    break;}}
                var i_c2_=_c5_;
                continue a;}}
            var _dq_=i_c2_+1|0,i_c2_=_dq_;
            continue;}
          return i_c2_;}}
      scan_fmt_dk_(0);
      return 0;}
    function count_arguments_of_format_dD_(fmt_dC_)
     {var ac_ds_=[0,0,0,0];
      function add_conv_dB_(skip_dx_,i_dy_,c_dt_)
       {var _du_=41!==c_dt_?1:0,_dv_=_du_?125!==c_dt_?1:0:_du_;
        if(_dv_)
         {var inc_dw_=97===c_dt_?2:1;
          if(114===c_dt_)ac_ds_[3]=ac_ds_[3]+1|0;
          if(skip_dx_)
           ac_ds_[2]=ac_ds_[2]+inc_dw_|0;
          else
           ac_ds_[1]=ac_ds_[1]+inc_dw_|0;}
        return i_dy_+1|0;}
      iter_on_format_args_dr_
       (fmt_dC_,add_conv_dB_,function(i_dz_,c_dA_){return i_dz_+1|0;});
      return ac_ds_[1];}
    function scan_positional_spec_dQ_(fmt_dE_,got_spec_dH_,n_dP_,i_dF_)
     {var _dG_=fmt_dE_.safeGet(i_dF_);
      if((_dG_-48|0)<0||9<(_dG_-48|0))return _dj_(got_spec_dH_,0,i_dF_);
      var accu_dI_=_dG_-48|0,j_dJ_=i_dF_+1|0;
      for(;;)
       {var _dK_=fmt_dE_.safeGet(j_dJ_);
        if(48<=_dK_)
         {if(!(58<=_dK_))
           {var
             _dN_=j_dJ_+1|0,
             _dM_=(10*accu_dI_|0)+(_dK_-48|0)|0,
             accu_dI_=_dM_,
             j_dJ_=_dN_;
            continue;}
          var _dL_=0;}
        else
         if(36===_dK_)
          if(0===accu_dI_)
           {var _dO_=_e_(_aq_),_dL_=1;}
          else
           {var
             _dO_=
              _dj_(got_spec_dH_,[0,index_of_int_bO_(accu_dI_-1|0)],j_dJ_+1|0),
             _dL_=1;}
         else
          var _dL_=0;
        if(!_dL_)var _dO_=_dj_(got_spec_dH_,0,i_dF_);
        return _dO_;}}
    function next_index_dT_(spec_dR_,n_dS_)
     {return spec_dR_?n_dS_:_a6_(_bS_,n_dS_);}
    function get_index_dW_(spec_dU_,n_dV_){return spec_dU_?spec_dU_[1]:n_dV_;}
    function _gY_
     (to_s_fZ_,get_out_dY_,outc_f$_,outs_f0_,flush_fD_,k_gf_,fmt_dX_)
     {var out_dZ_=_a6_(get_out_dY_,fmt_dX_);
      function pr_fC_(k_d4_,n_ge_,fmt_d0_,v_d8_)
       {var len_d3_=fmt_d0_.getLen();
        function doprn_fz_(n_f8_,i_d1_)
         {var i_d2_=i_d1_;
          for(;;)
           {if(len_d3_<=i_d2_)return _a6_(k_d4_,out_dZ_);
            var _d5_=fmt_d0_.safeGet(i_d2_);
            if(37===_d5_)
             {var
               get_arg_d9_=
                function(spec_d7_,n_d6_)
                 {return caml_array_get(v_d8_,get_index_dW_(spec_d7_,n_d6_));},
               scan_flags_ef_=
                function(spec_eh_,n_eb_,widths_ed_,i_d__)
                 {var i_d$_=i_d__;
                  for(;;)
                   {var _ea_=fmt_d0_.safeGet(i_d$_)-32|0;
                    if(!(_ea_<0||25<_ea_))
                     switch(_ea_)
                      {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_dQ_
                                (fmt_d0_,
                                 function(wspec_ec_,i_eg_)
                                  {var _ee_=[0,get_arg_d9_(wspec_ec_,n_eb_),widths_ed_];
                                   return scan_flags_ef_
                                           (spec_eh_,next_index_dT_(wspec_ec_,n_eb_),_ee_,i_eg_);},
                                 n_eb_,
                                 i_d$_+1|0);
                       default:var _ei_=i_d$_+1|0,i_d$_=_ei_;continue;}
                    var _ej_=fmt_d0_.safeGet(i_d$_);
                    if(124<=_ej_)
                     var _ek_=0;
                    else
                     switch(_ej_)
                      {case 78:
                       case 88:
                       case 100:
                       case 105:
                       case 111:
                       case 117:
                       case 120:
                        var
                         x_el_=get_arg_d9_(spec_eh_,n_eb_),
                         s_em_=
                          caml_format_int
                           (extract_format_int_cz_(_ej_,fmt_d0_,i_d2_,i_d$_,widths_ed_),
                            x_el_),
                         _eo_=
                          cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_em_,i_d$_+1|0),
                         _ek_=1;
                        break;
                       case 69:
                       case 71:
                       case 101:
                       case 102:
                       case 103:
                        var
                         x_ep_=get_arg_d9_(spec_eh_,n_eb_),
                         s_eq_=
                          caml_format_float
                           (extract_format_cs_(fmt_d0_,i_d2_,i_d$_,widths_ed_),x_ep_),
                         _eo_=
                          cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_eq_,i_d$_+1|0),
                         _ek_=1;
                        break;
                       case 76:
                       case 108:
                       case 110:
                        var _er_=fmt_d0_.safeGet(i_d$_+1|0)-88|0;
                        if(_er_<0||32<_er_)
                         var _es_=1;
                        else
                         switch(_er_)
                          {case 0:
                           case 12:
                           case 17:
                           case 23:
                           case 29:
                           case 32:
                            var i_et_=i_d$_+1|0,_eu_=_ej_-108|0;
                            if(_eu_<0||2<_eu_)
                             var _ev_=0;
                            else
                             {switch(_eu_)
                               {case 1:var _ev_=0,_ew_=0;break;
                                case 2:
                                 var
                                  x_ex_=get_arg_d9_(spec_eh_,n_eb_),
                                  _ey_=
                                   caml_format_int
                                    (extract_format_cs_(fmt_d0_,i_d2_,i_et_,widths_ed_),x_ex_),
                                  _ew_=1;
                                 break;
                                default:
                                 var
                                  x_ez_=get_arg_d9_(spec_eh_,n_eb_),
                                  _ey_=
                                   caml_format_int
                                    (extract_format_cs_(fmt_d0_,i_d2_,i_et_,widths_ed_),x_ez_),
                                  _ew_=1;}
                              if(_ew_){var s_eA_=_ey_,_ev_=1;}}
                            if(!_ev_)
                             {var
                               x_eB_=get_arg_d9_(spec_eh_,n_eb_),
                               s_eA_=
                                caml_int64_format
                                 (extract_format_cs_(fmt_d0_,i_d2_,i_et_,widths_ed_),x_eB_);}
                            var
                             _eo_=
                              cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_eA_,i_et_+1|0),
                             _ek_=1,
                             _es_=0;
                            break;
                           default:var _es_=1;}
                        if(_es_)
                         {var
                           x_eC_=get_arg_d9_(spec_eh_,n_eb_),
                           s_eD_=
                            caml_format_int
                             (extract_format_int_cz_(110,fmt_d0_,i_d2_,i_d$_,widths_ed_),
                              x_eC_),
                           _eo_=
                            cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_eD_,i_d$_+1|0),
                           _ek_=1;}
                        break;
                       case 83:
                       case 115:
                        var x_eE_=get_arg_d9_(spec_eh_,n_eb_);
                        if(115===_ej_)
                         var x_eF_=x_eE_;
                        else
                         {var n_eG_=[0,0],_eH_=0,_eI_=x_eE_.getLen()-1|0;
                          if(!(_eI_<_eH_))
                           {var i_eJ_=_eH_;
                            for(;;)
                             {var
                               _eK_=x_eE_.safeGet(i_eJ_),
                               _eL_=
                                14<=_eK_
                                 ?34===_eK_?1:92===_eK_?1:0
                                 :11<=_eK_?13<=_eK_?1:0:8<=_eK_?1:0,
                               _eM_=_eL_?2:caml_is_printable(_eK_)?1:4;
                              n_eG_[1]=n_eG_[1]+_eM_|0;
                              var _eN_=i_eJ_+1|0;
                              if(_eI_!==i_eJ_){var i_eJ_=_eN_;continue;}
                              break;}}
                          if(n_eG_[1]===x_eE_.getLen())
                           var _eO_=x_eE_;
                          else
                           {var s__eP_=caml_create_string(n_eG_[1]);
                            n_eG_[1]=0;
                            var _eQ_=0,_eR_=x_eE_.getLen()-1|0;
                            if(!(_eR_<_eQ_))
                             {var i_eS_=_eQ_;
                              for(;;)
                               {var _eT_=x_eE_.safeGet(i_eS_),_eU_=_eT_-34|0;
                                if(_eU_<0||58<_eU_)
                                 if(-20<=_eU_)
                                  var _eV_=1;
                                 else
                                  {switch(_eU_+34|0)
                                    {case 8:
                                      s__eP_.safeSet(n_eG_[1],92);
                                      n_eG_[1]+=1;
                                      s__eP_.safeSet(n_eG_[1],98);
                                      var _eW_=1;
                                      break;
                                     case 9:
                                      s__eP_.safeSet(n_eG_[1],92);
                                      n_eG_[1]+=1;
                                      s__eP_.safeSet(n_eG_[1],116);
                                      var _eW_=1;
                                      break;
                                     case 10:
                                      s__eP_.safeSet(n_eG_[1],92);
                                      n_eG_[1]+=1;
                                      s__eP_.safeSet(n_eG_[1],110);
                                      var _eW_=1;
                                      break;
                                     case 13:
                                      s__eP_.safeSet(n_eG_[1],92);
                                      n_eG_[1]+=1;
                                      s__eP_.safeSet(n_eG_[1],114);
                                      var _eW_=1;
                                      break;
                                     default:var _eV_=1,_eW_=0;}
                                   if(_eW_)var _eV_=0;}
                                else
                                 var
                                  _eV_=
                                   (_eU_-1|0)<0||56<(_eU_-1|0)
                                    ?(s__eP_.safeSet(n_eG_[1],92),
                                      n_eG_[1]+=
                                      1,
                                      s__eP_.safeSet(n_eG_[1],_eT_),
                                      0)
                                    :1;
                                if(_eV_)
                                 if(caml_is_printable(_eT_))
                                  s__eP_.safeSet(n_eG_[1],_eT_);
                                 else
                                  {s__eP_.safeSet(n_eG_[1],92);
                                   n_eG_[1]+=1;
                                   s__eP_.safeSet(n_eG_[1],48+(_eT_/100|0)|0);
                                   n_eG_[1]+=1;
                                   s__eP_.safeSet(n_eG_[1],48+((_eT_/10|0)%10|0)|0);
                                   n_eG_[1]+=1;
                                   s__eP_.safeSet(n_eG_[1],48+(_eT_%10|0)|0);}
                                n_eG_[1]+=1;
                                var _eX_=i_eS_+1|0;
                                if(_eR_!==i_eS_){var i_eS_=_eX_;continue;}
                                break;}}
                            var _eO_=s__eP_;}
                          var x_eF_=_aV_(_au_,_aV_(_eO_,_av_));}
                        if(i_d$_===(i_d2_+1|0))
                         var s_eY_=x_eF_;
                        else
                         {var
                           _eZ_=
                            extract_format_cs_(fmt_d0_,i_d2_,i_d$_,widths_ed_);
                          try
                           {var neg_e0_=0,i_e1_=1;
                            for(;;)
                             {if(_eZ_.getLen()<=i_e1_)
                               var _e2_=[0,0,neg_e0_];
                              else
                               {var _e3_=_eZ_.safeGet(i_e1_);
                                if(49<=_e3_)
                                 if(58<=_e3_)
                                  var _e4_=0;
                                 else
                                  {var
                                    _e2_=
                                     [0,
                                      caml_int_of_string
                                       (_bj_(_eZ_,i_e1_,(_eZ_.getLen()-i_e1_|0)-1|0)),
                                      neg_e0_],
                                    _e4_=1;}
                                else
                                 {if(45===_e3_)
                                   {var _e6_=i_e1_+1|0,_e5_=1,neg_e0_=_e5_,i_e1_=_e6_;
                                    continue;}
                                  var _e4_=0;}
                                if(!_e4_){var _e7_=i_e1_+1|0,i_e1_=_e7_;continue;}}
                              var match_e8_=_e2_;
                              break;}}
                          catch(_e9_)
                           {if(_e9_[1]!==_a_)throw _e9_;
                            var match_e8_=bad_conversion_b0_(_eZ_,0,115);}
                          var
                           neg_e$_=match_e8_[2],
                           p_e__=match_e8_[1],
                           _fa_=x_eF_.getLen(),
                           _fb_=0,
                           _fe_=32;
                          if(p_e__===_fa_&&0===_fb_)
                           {var _fc_=x_eF_,_fd_=1;}
                          else
                           var _fd_=0;
                          if(!_fd_)
                           if(p_e__<=_fa_)
                            var _fc_=_bj_(x_eF_,_fb_,_fa_);
                           else
                            {var res_ff_=_be_(p_e__,_fe_);
                             if(neg_e$_)
                              _bp_(x_eF_,_fb_,res_ff_,0,_fa_);
                             else
                              _bp_(x_eF_,_fb_,res_ff_,p_e__-_fa_|0,_fa_);
                             var _fc_=res_ff_;}
                          var s_eY_=_fc_;}
                        var
                         _eo_=
                          cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_eY_,i_d$_+1|0),
                         _ek_=1;
                        break;
                       case 67:
                       case 99:
                        var x_fg_=get_arg_d9_(spec_eh_,n_eb_);
                        if(99===_ej_)
                         var s_fh_=_be_(1,x_fg_);
                        else
                         {if(39===x_fg_)
                           var _fi_=_aC_;
                          else
                           if(92===x_fg_)
                            var _fi_=_aD_;
                           else
                            {if(14<=x_fg_)
                              var _fj_=0;
                             else
                              switch(x_fg_)
                               {case 8:var _fi_=_aH_,_fj_=1;break;
                                case 9:var _fi_=_aG_,_fj_=1;break;
                                case 10:var _fi_=_aF_,_fj_=1;break;
                                case 13:var _fi_=_aE_,_fj_=1;break;
                                default:var _fj_=0;}
                             if(!_fj_)
                              if(caml_is_printable(x_fg_))
                               {var s_fk_=caml_create_string(1);
                                s_fk_.safeSet(0,x_fg_);
                                var _fi_=s_fk_;}
                              else
                               {var s_fl_=caml_create_string(4);
                                s_fl_.safeSet(0,92);
                                s_fl_.safeSet(1,48+(x_fg_/100|0)|0);
                                s_fl_.safeSet(2,48+((x_fg_/10|0)%10|0)|0);
                                s_fl_.safeSet(3,48+(x_fg_%10|0)|0);
                                var _fi_=s_fl_;}}
                          var s_fh_=_aV_(_as_,_aV_(_fi_,_at_));}
                        var
                         _eo_=
                          cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_fh_,i_d$_+1|0),
                         _ek_=1;
                        break;
                       case 66:
                       case 98:
                        var
                         _fn_=i_d$_+1|0,
                         _fm_=get_arg_d9_(spec_eh_,n_eb_)?_aK_:_aJ_,
                         _eo_=cont_s_en_(next_index_dT_(spec_eh_,n_eb_),_fm_,_fn_),
                         _ek_=1;
                        break;
                       case 40:
                       case 123:
                        var
                         xf_fo_=get_arg_d9_(spec_eh_,n_eb_),
                         j_fp_=_cR_(sub_format_for_printf_cY_,_ej_,fmt_d0_,i_d$_+1|0);
                        if(123===_ej_)
                         {var
                           b_fq_=_bw_(xf_fo_.getLen()),
                           add_char_ft_=
                            function(i_fs_,c_fr_){_bH_(b_fq_,c_fr_);return i_fs_+1|0;};
                          iter_on_format_args_dr_
                           (xf_fo_,
                            function(skip_fu_,i_fw_,c_fv_)
                             {if(skip_fu_)_bM_(b_fq_,_ap_);else _bH_(b_fq_,37);
                              return add_char_ft_(i_fw_,c_fv_);},
                            add_char_ft_);
                          var
                           _fx_=_by_(b_fq_),
                           _eo_=cont_s_en_(next_index_dT_(spec_eh_,n_eb_),_fx_,j_fp_),
                           _ek_=1;}
                        else
                         {var
                           _fy_=next_index_dT_(spec_eh_,n_eb_),
                           m_fA_=
                            add_int_index_bR_
                             (count_arguments_of_format_dD_(xf_fo_),_fy_),
                           _eo_=
                            pr_fC_
                             (function(param_fB_){return doprn_fz_(m_fA_,j_fp_);},
                              _fy_,
                              xf_fo_,
                              v_d8_),
                           _ek_=1;}
                        break;
                       case 33:
                        _a6_(flush_fD_,out_dZ_);
                        var _eo_=doprn_fz_(n_eb_,i_d$_+1|0),_ek_=1;
                        break;
                       case 37:
                        var _eo_=cont_s_en_(n_eb_,_ay_,i_d$_+1|0),_ek_=1;break;
                       case 41:
                        var _eo_=cont_s_en_(n_eb_,_ax_,i_d$_+1|0),_ek_=1;break;
                       case 44:
                        var _eo_=cont_s_en_(n_eb_,_aw_,i_d$_+1|0),_ek_=1;break;
                       case 70:
                        var x_fE_=get_arg_d9_(spec_eh_,n_eb_);
                        if(0===widths_ed_)
                         {var
                           _fF_=caml_format_float(_aN_,x_fE_),
                           i_fG_=0,
                           l_fH_=_fF_.getLen();
                          for(;;)
                           {if(l_fH_<=i_fG_)
                             var _fI_=_aV_(_fF_,_aM_);
                            else
                             {var
                               _fJ_=_fF_.safeGet(i_fG_),
                               _fK_=48<=_fJ_?58<=_fJ_?0:1:45===_fJ_?1:0;
                              if(_fK_){var _fL_=i_fG_+1|0,i_fG_=_fL_;continue;}
                              var _fI_=_fF_;}
                            var s_fM_=_fI_;
                            break;}}
                        else
                         {var
                           sfmt_fN_=
                            extract_format_cs_(fmt_d0_,i_d2_,i_d$_,widths_ed_);
                          if(70===_ej_)sfmt_fN_.safeSet(sfmt_fN_.getLen()-1|0,103);
                          var s_fO_=caml_format_float(sfmt_fN_,x_fE_);
                          if(3<=caml_classify_float(x_fE_))
                           var _fP_=s_fO_;
                          else
                           {var i_fQ_=0,l_fR_=s_fO_.getLen();
                            for(;;)
                             {if(l_fR_<=i_fQ_)
                               var _fS_=_aV_(s_fO_,_ar_);
                              else
                               {var
                                 _fT_=s_fO_.safeGet(i_fQ_)-46|0,
                                 _fU_=
                                  _fT_<0||23<_fT_
                                   ?55===_fT_?1:0
                                   :(_fT_-1|0)<0||21<(_fT_-1|0)?1:0;
                                if(!_fU_){var _fV_=i_fQ_+1|0,i_fQ_=_fV_;continue;}
                                var _fS_=s_fO_;}
                              var _fP_=_fS_;
                              break;}}
                          var s_fM_=_fP_;}
                        var
                         _eo_=
                          cont_s_en_(next_index_dT_(spec_eh_,n_eb_),s_fM_,i_d$_+1|0),
                         _ek_=1;
                        break;
                       case 97:
                        var
                         printer_fW_=get_arg_d9_(spec_eh_,n_eb_),
                         n_fX_=_a6_(_bS_,get_index_dW_(spec_eh_,n_eb_)),
                         arg_fY_=get_arg_d9_(0,n_fX_),
                         _f2_=i_d$_+1|0,
                         _f1_=next_index_dT_(spec_eh_,n_fX_);
                        if(to_s_fZ_)
                         _dj_(outs_f0_,out_dZ_,_dj_(printer_fW_,0,arg_fY_));
                        else
                         _dj_(printer_fW_,out_dZ_,arg_fY_);
                        var _eo_=doprn_fz_(_f1_,_f2_),_ek_=1;
                        break;
                       case 116:
                        var
                         printer_f3_=get_arg_d9_(spec_eh_,n_eb_),
                         _f5_=i_d$_+1|0,
                         _f4_=next_index_dT_(spec_eh_,n_eb_);
                        if(to_s_fZ_)
                         _dj_(outs_f0_,out_dZ_,_a6_(printer_f3_,0));
                        else
                         _a6_(printer_f3_,out_dZ_);
                        var _eo_=doprn_fz_(_f4_,_f5_),_ek_=1;
                        break;
                       default:var _ek_=0;}
                    if(!_ek_)
                     var _eo_=bad_conversion_format_b4_(fmt_d0_,i_d$_,_ej_);
                    return _eo_;}},
               _f__=i_d2_+1|0,
               _f7_=0;
              return scan_positional_spec_dQ_
                      (fmt_d0_,
                       function(spec_f9_,i_f6_)
                        {return scan_flags_ef_(spec_f9_,n_f8_,_f7_,i_f6_);},
                       n_f8_,
                       _f__);}
            _dj_(outc_f$_,out_dZ_,_d5_);
            var _ga_=i_d2_+1|0,i_d2_=_ga_;
            continue;}}
        function cont_s_en_(n_gd_,s_gb_,i_gc_)
         {_dj_(outs_f0_,out_dZ_,s_gb_);return doprn_fz_(n_gd_,i_gc_);}
        return doprn_fz_(n_ge_,0);}
      var
       kpr_gg_=_dj_(pr_fC_,k_gf_,index_of_int_bO_(0)),
       _gh_=count_arguments_of_format_dD_(fmt_dX_);
      if(_gh_<0||6<_gh_)
       {var
         loop_gu_=
          function(i_gi_,args_go_)
           {if(_gh_<=i_gi_)
             {var
               a_gj_=caml_make_vect(_gh_,0),
               _gm_=
                function(i_gk_,arg_gl_)
                 {return caml_array_set(a_gj_,(_gh_-i_gk_|0)-1|0,arg_gl_);},
               i_gn_=0,
               param_gp_=args_go_;
              for(;;)
               {if(param_gp_)
                 {var _gq_=param_gp_[2],_gr_=param_gp_[1];
                  if(_gq_)
                   {_gm_(i_gn_,_gr_);
                    var _gs_=i_gn_+1|0,i_gn_=_gs_,param_gp_=_gq_;
                    continue;}
                  _gm_(i_gn_,_gr_);}
                return _dj_(kpr_gg_,fmt_dX_,a_gj_);}}
            return function(x_gt_)
             {return loop_gu_(i_gi_+1|0,[0,x_gt_,args_go_]);};},
         _gv_=loop_gu_(0,0);}
      else
       switch(_gh_)
        {case 1:
          var
           _gv_=
            function(x_gx_)
             {var a_gw_=caml_make_vect(1,0);
              caml_array_set(a_gw_,0,x_gx_);
              return _dj_(kpr_gg_,fmt_dX_,a_gw_);};
          break;
         case 2:
          var
           _gv_=
            function(x_gz_,y_gA_)
             {var a_gy_=caml_make_vect(2,0);
              caml_array_set(a_gy_,0,x_gz_);
              caml_array_set(a_gy_,1,y_gA_);
              return _dj_(kpr_gg_,fmt_dX_,a_gy_);};
          break;
         case 3:
          var
           _gv_=
            function(x_gC_,y_gD_,z_gE_)
             {var a_gB_=caml_make_vect(3,0);
              caml_array_set(a_gB_,0,x_gC_);
              caml_array_set(a_gB_,1,y_gD_);
              caml_array_set(a_gB_,2,z_gE_);
              return _dj_(kpr_gg_,fmt_dX_,a_gB_);};
          break;
         case 4:
          var
           _gv_=
            function(x_gG_,y_gH_,z_gI_,t_gJ_)
             {var a_gF_=caml_make_vect(4,0);
              caml_array_set(a_gF_,0,x_gG_);
              caml_array_set(a_gF_,1,y_gH_);
              caml_array_set(a_gF_,2,z_gI_);
              caml_array_set(a_gF_,3,t_gJ_);
              return _dj_(kpr_gg_,fmt_dX_,a_gF_);};
          break;
         case 5:
          var
           _gv_=
            function(x_gL_,y_gM_,z_gN_,t_gO_,u_gP_)
             {var a_gK_=caml_make_vect(5,0);
              caml_array_set(a_gK_,0,x_gL_);
              caml_array_set(a_gK_,1,y_gM_);
              caml_array_set(a_gK_,2,z_gN_);
              caml_array_set(a_gK_,3,t_gO_);
              caml_array_set(a_gK_,4,u_gP_);
              return _dj_(kpr_gg_,fmt_dX_,a_gK_);};
          break;
         case 6:
          var
           _gv_=
            function(x_gR_,y_gS_,z_gT_,t_gU_,u_gV_,v_gW_)
             {var a_gQ_=caml_make_vect(6,0);
              caml_array_set(a_gQ_,0,x_gR_);
              caml_array_set(a_gQ_,1,y_gS_);
              caml_array_set(a_gQ_,2,z_gT_);
              caml_array_set(a_gQ_,3,t_gU_);
              caml_array_set(a_gQ_,4,u_gV_);
              caml_array_set(a_gQ_,5,v_gW_);
              return _dj_(kpr_gg_,fmt_dX_,a_gQ_);};
          break;
         default:var _gv_=_dj_(kpr_gg_,fmt_dX_,[0]);}
      return _gv_;}
    function _g2_(fmt_gX_){return _bw_(2*fmt_gX_.getLen()|0);}
    function _g4_(k_g1_,b_gZ_)
     {var s_g0_=_by_(b_gZ_);b_gZ_[2]=0;return _a6_(k_g1_,s_g0_);}
    function _g__(k_g3_)
     {var _g6_=_a6_(_g4_,k_g3_);
      return _g7_(_gY_,1,_g2_,_bH_,_bM_,function(_g5_){return 0;},_g6_);}
    function _ha_(fmt_g9_)
     {return _dj_(_g__,function(s_g8_){return s_g8_;},fmt_g9_);}
    var _g$_=[0,0];
    32===_bq_;
    function _hd_(param_hc_)
     {var seq_hb_=[];
      caml_update_dummy(seq_hb_,[0,seq_hb_,seq_hb_]);
      return seq_hb_;}
    var Canceled_he_=[0,___],current_data_hf_=[0,0],max_removed_hl_=42;
    function repr_rec_hj_(t_hg_)
     {var _hh_=t_hg_[1];
      {if(3===_hh_[0])
        {var t__hi_=_hh_[1],t___hk_=repr_rec_hj_(t__hi_);
         if(t___hk_!==t__hi_)t_hg_[1]=[3,t___hk_];
         return t___hk_;}
       return t_hg_;}}
    function repr_hn_(t_hm_){return repr_rec_hj_(t_hm_);}
    function run_waiters_hG_(waiters_ho_,state_ht_)
     {var save_hq_=current_data_hf_[1],ws_hp_=waiters_ho_,rem_hr_=0;
      for(;;)
       {if(typeof ws_hp_==="number")
         {if(rem_hr_)
           {var
             rem_hF_=rem_hr_[2],
             ws_hE_=rem_hr_[1],
             ws_hp_=ws_hE_,
             rem_hr_=rem_hF_;
            continue;}}
        else
         switch(ws_hp_[0])
          {case 1:
            var _hs_=ws_hp_[1];
            if(rem_hr_)
             {var rem_hv_=rem_hr_[2],ws_hu_=rem_hr_[1];
              _a6_(_hs_,state_ht_);
              var ws_hp_=ws_hu_,rem_hr_=rem_hv_;
              continue;}
            _a6_(_hs_,state_ht_);
            break;
           case 2:
            var
             ws1_hw_=ws_hp_[1],
             _hx_=[0,ws_hp_[2],rem_hr_],
             ws_hp_=ws1_hw_,
             rem_hr_=_hx_;
            continue;
           default:
            var _hy_=ws_hp_[1][1];
            if(_hy_)
             {var _hz_=_hy_[1];
              if(rem_hr_)
               {var rem_hB_=rem_hr_[2],ws_hA_=rem_hr_[1];
                _a6_(_hz_,state_ht_);
                var ws_hp_=ws_hA_,rem_hr_=rem_hB_;
                continue;}
              _a6_(_hz_,state_ht_);}
            else
             if(rem_hr_)
              {var
                rem_hD_=rem_hr_[2],
                ws_hC_=rem_hr_[1],
                ws_hp_=ws_hC_,
                rem_hr_=rem_hD_;
               continue;}}
        current_data_hf_[1]=save_hq_;
        return 0;}}
    function wakeup_hN_(t_hH_,v_hK_)
     {var t_hI_=repr_rec_hj_(t_hH_),_hJ_=t_hI_[1];
      switch(_hJ_[0])
       {case 1:if(_hJ_[1][1]===Canceled_he_)return 0;break;
        case 2:
         var waiters_hM_=_hJ_[1][2],state_hL_=[0,v_hK_];
         t_hI_[1]=state_hL_;
         return run_waiters_hG_(waiters_hM_,state_hL_);
        default:}
      return _aP_(_$_);}
    function append_hQ_(l1_hO_,l2_hP_)
     {return typeof l1_hO_==="number"
              ?l2_hP_
              :typeof l2_hP_==="number"?l1_hO_:[2,l1_hO_,l2_hP_];}
    function cleanup_hS_(ws_hR_)
     {if(typeof ws_hR_!=="number")
       switch(ws_hR_[0])
        {case 2:
          var l1_hT_=ws_hR_[1],_hU_=cleanup_hS_(ws_hR_[2]);
          return append_hQ_(cleanup_hS_(l1_hT_),_hU_);
         case 1:break;
         default:if(!ws_hR_[1][1])return 0;}
      return ws_hR_;}
    function fail_hW_(e_hV_){return [0,[1,e_hV_]];}
    function task_h7_(param_h6_)
     {var t_hX_=[],_h5_=0,_h4_=0;
      caml_update_dummy
       (t_hX_,
        [0,
         [2,
          [0,
           [0,
            [0,
             function(param_h3_)
              {var t_hY_=repr_rec_hj_(t_hX_),_hZ_=t_hY_[1];
               if(2===_hZ_[0])
                {var waiters_h1_=_hZ_[1][2],state_h0_=[1,[0,Canceled_he_]];
                 t_hY_[1]=state_h0_;
                 var _h2_=run_waiters_hG_(waiters_h1_,state_h0_);}
               else
                var _h2_=0;
               return _h2_;}]],
           _h4_,
           _h5_]]]);
      return [0,t_hX_,t_hX_];}
    function add_immutable_waiter_h$_(sleeper_h8_,waiter_h9_)
     {var
       _h__=
        typeof sleeper_h8_[2]==="number"
         ?[1,waiter_h9_]
         :[2,[1,waiter_h9_],sleeper_h8_[2]];
      sleeper_h8_[2]=_h__;
      return 0;}
    function bind_iz_(t_ia_,f_ih_)
     {var _ib_=repr_hn_(t_ia_)[1];
      switch(_ib_[0])
       {case 1:return fail_hW_(_ib_[1]);
        case 2:
         var
          sleeper_ic_=_ib_[1],
          _id_=[0,[2,[0,sleeper_ic_[1],0,0]]],
          data_if_=current_data_hf_[1];
         add_immutable_waiter_h$_
          (sleeper_ic_,
           function(param_ie_)
            {switch(param_ie_[0])
              {case 0:
                var v_ig_=param_ie_[1];
                current_data_hf_[1]=data_if_;
                try
                 {var _ii_=_a6_(f_ih_,v_ig_),_ij_=_ii_;}
                catch(_ik_){var _ij_=fail_hW_(_ik_);}
                var
                 t1_il_=repr_hn_(_id_),
                 t2_im_=repr_hn_(_ij_),
                 _in_=t1_il_[1];
                if(2===_in_[0])
                 {var sleeper1_io_=_in_[1];
                  if(t1_il_===t2_im_)
                   var _ip_=0;
                  else
                   {var _iq_=t2_im_[1];
                    if(2===_iq_[0])
                     {var sleeper2_ir_=_iq_[1];
                      t2_im_[1]=[3,t1_il_];
                      sleeper1_io_[1][1]=[1,sleeper2_ir_[1]];
                      var
                       waiters_is_=append_hQ_(sleeper1_io_[2],sleeper2_ir_[2]),
                       removed_it_=sleeper1_io_[3]+sleeper2_ir_[3]|0,
                       _ip_=
                        max_removed_hl_<removed_it_
                         ?(sleeper1_io_[3]=
                           0,
                           sleeper1_io_[2]=
                           cleanup_hS_(waiters_is_),
                           0)
                         :(sleeper1_io_[3]=removed_it_,sleeper1_io_[2]=waiters_is_,0);}
                    else
                     {t1_il_[1]=_iq_;
                      var _ip_=run_waiters_hG_(sleeper1_io_[2],_iq_);}}}
                else
                 var _ip_=_aP_(_aa_);
                return _ip_;
               case 1:
                var _iu_=[1,param_ie_[1]],t_iv_=repr_hn_(_id_),_iw_=t_iv_[1];
                if(2===_iw_[0])
                 {var waiters_ix_=_iw_[1][2];
                  t_iv_[1]=_iu_;
                  var _iy_=run_waiters_hG_(waiters_ix_,_iu_);}
                else
                 var _iy_=_aP_(_ab_);
                return _iy_;
               default:throw [0,_c_,_ad_];}});
         return _id_;
        case 3:throw [0,_c_,_ac_];
        default:return _a6_(f_ih_,_ib_[1]);}}
    var
     _iA_=[0],
     _iB_=[0,caml_make_vect(55,0),0],
     seed_iC_=caml_equal(_iA_,[0])?[0,0]:_iA_,
     l_iD_=seed_iC_.length-1,
     _iE_=0,
     _iF_=54;
    if(!(_iF_<_iE_))
     {var i_iG_=_iE_;
      for(;;)
       {caml_array_set(_iB_[1],i_iG_,i_iG_);
        var _iH_=i_iG_+1|0;
        if(_iF_!==i_iG_){var i_iG_=_iH_;continue;}
        break;}}
    var
     accu_iI_=[0,_ag_],
     _iJ_=0,
     _iK_=55,
     _iL_=caml_greaterequal(_iK_,l_iD_)?_iK_:l_iD_,
     _iM_=54+_iL_|0;
    if(!(_iM_<_iJ_))
     {var i_iN_=_iJ_;
      for(;;)
       {var
         j_iO_=i_iN_%55|0,
         _iP_=accu_iI_[1],
         _iQ_=
          _aV_
           (_iP_,
            string_of_int_aX_(caml_array_get(seed_iC_,caml_mod(i_iN_,l_iD_))));
        accu_iI_[1]=caml_md5_string(_iQ_,0,_iQ_.getLen());
        var _iR_=accu_iI_[1];
        caml_array_set
         (_iB_[1],
          j_iO_,
          caml_array_get(_iB_[1],j_iO_)^
          (((_iR_.safeGet(0)+(_iR_.safeGet(1)<<8)|0)+(_iR_.safeGet(2)<<16)|0)+
           (_iR_.safeGet(3)<<24)|
           0));
        var _iS_=i_iN_+1|0;
        if(_iM_!==i_iN_){var i_iN_=_iS_;continue;}
        break;}}
    _iB_[2]=0;
    var pause_hook_iV_=[0,function(_iT_){return 0;}],_iU_=_hd_(0),_iX_=[0,0];
    function _i2_(param_i0_)
     {if(_iU_[2]===_iU_)return 0;
      var tmp_iW_=_hd_(0);
      tmp_iW_[1][2]=_iU_[2];
      _iU_[2][1]=tmp_iW_[1];
      tmp_iW_[1]=_iU_[1];
      _iU_[1][2]=tmp_iW_;
      _iU_[1]=_iU_;
      _iU_[2]=_iU_;
      _iX_[1]=0;
      var curr_iY_=tmp_iW_[2];
      for(;;)
       {if(curr_iY_!==tmp_iW_)
         {if(curr_iY_[4])wakeup_hN_(curr_iY_[3],0);
          var _iZ_=curr_iY_[2],curr_iY_=_iZ_;
          continue;}
        return 0;}}
    var
     null_i1_=null,
     undefined_i3_=undefined,
     _true_i4_=true,
     _false_i5_=false,
     array_constructor_i6_=Array,
     date_constr_i7_=Date;
    _g$_[1]=
    [0,
     function(e_i8_)
      {return e_i8_ instanceof array_constructor_i6_
               ?0
               :[0,new MlWrappedString(e_i8_.toString())];},
     _g$_[1]];
    function _i__(_i9_){return _i9_;}
    function _jb_(p_i$_,n_ja_){p_i$_.appendChild(n_ja_);return 0;}
    var onIE_ji_=caml_js_on_ie(0)|0;
    function handler_jh_(f_jd_)
     {return _i__
              (caml_js_wrap_callback
                (function(e_jc_)
                  {if(e_jc_)
                    {var res_je_=_a6_(f_jd_,e_jc_);
                     if(!(res_je_|0))e_jc_.preventDefault();
                     return res_je_;}
                   var _jf_=event,res_jg_=_a6_(f_jd_,_jf_);
                   _jf_.returnValue=res_jg_;
                   return res_jg_;}));}
    var mouseup_jy_=_I_.toString(),mousemove_jx_=_H_.toString();
    function addEventListener_jw_(e_jj_,typ_jk_,h_jn_,capt_ju_)
     {if(e_jj_.addEventListener===undefined_i3_)
       {var
         ev_jl_=_J_.toString().concat(typ_jk_),
         callback_js_=
          function(e_jm_)
           {var _jr_=[0,h_jn_,e_jm_,[0]];
            return _a6_
                    (function(_jq_,_jp_,_jo_)
                      {return caml_js_call(_jq_,_jp_,_jo_);},
                     _jr_);};
        e_jj_.attachEvent(ev_jl_,callback_js_);
        return function(param_jt_)
         {return e_jj_.detachEvent(ev_jl_,callback_js_);};}
      e_jj_.addEventListener(typ_jk_,h_jn_,capt_ju_);
      return function(param_jv_)
       {return e_jj_.removeEventListener(typ_jk_,h_jn_,capt_ju_);};}
    function removeEventListener_jA_(id_jz_){return _a6_(id_jz_,0);}
    var
     _2d__jB_=_G_.toString(),
     window_jC_=window,
     document_jD_=window_jC_.document;
    function opt_iter_jG_(x_jE_,f_jF_){return x_jE_?_a6_(f_jF_,x_jE_[1]):0;}
    function createElement_jJ_(doc_jI_,name_jH_)
     {return doc_jI_.createElement(name_jH_.toString());}
    function unsafeCreateElement_jM_(doc_jL_,name_jK_)
     {return createElement_jJ_(doc_jL_,name_jK_);}
    function unsafeCreateElementEx_jX_(_type_jN_,name_jO_,doc_jQ_,elt_jP_)
     {if(0===_type_jN_&&0===name_jO_)
       return createElement_jJ_(doc_jQ_,elt_jP_);
      if(onIE_ji_)
       {var a_jR_=new array_constructor_i6_();
        a_jR_.push(_M_.toString(),elt_jP_.toString());
        opt_iter_jG_
         (_type_jN_,
          function(t_jS_)
           {a_jR_.push
             (_N_.toString(),caml_js_html_escape(t_jS_),_O_.toString());
            return 0;});
        opt_iter_jG_
         (name_jO_,
          function(n_jT_)
           {a_jR_.push
             (_P_.toString(),caml_js_html_escape(n_jT_),_Q_.toString());
            return 0;});
        a_jR_.push(_L_.toString());
        return doc_jQ_.createElement(a_jR_.join(_K_.toString()));}
      var res_jU_=createElement_jJ_(doc_jQ_,elt_jP_);
      opt_iter_jG_(_type_jN_,function(t_jV_){return res_jU_.type=t_jV_;});
      opt_iter_jG_(name_jO_,function(n_jW_){return res_jU_.name=n_jW_;});
      return res_jU_;}
    function createInput_j1_(_type_j0_,name_jZ_,doc_jY_)
     {return unsafeCreateElementEx_jX_(_type_j0_,name_jZ_,doc_jY_,_T_);}
    function createLabel_j3_(doc_j2_)
     {return unsafeCreateElement_jM_(doc_j2_,_U_);}
    function createDiv_j5_(doc_j4_)
     {return unsafeCreateElement_jM_(doc_j4_,_V_);}
    var Canvas_not_available_j6_=[0,_F_];
    window.HTMLElement===undefined_i3_;
    pause_hook_iV_[1]=
    function(param_j7_)
     {return 1===param_j7_
              ?(window_jC_.setTimeout(caml_js_wrap_callback(_i2_),0),0)
              :0;};
    var
     width_j8_=600,
     pi_j9_=4*Math.atan(1),
     obliquity_j__=23.5*pi_j9_/180,
     gamma_j$_=2,
     dark_ka_=Math.pow(0.2,gamma_j$_),
     button_type_kb_=_h_.toString();
    function toggle_button_kl_(txt1_kd_,txt2_kf_,action_kj_)
     {var
       state_kc_=[0,0],
       txt1_ke_=txt1_kd_.toString(),
       txt2_kh_=txt2_kf_.toString(),
       b_kg_=createInput_j1_([0,button_type_kb_],0,document_jD_);
      b_kg_.value=txt1_ke_;
      b_kg_.onclick=
      handler_jh_
       (function(param_kk_)
         {state_kc_[1]=1-state_kc_[1];
          var _ki_=state_kc_[1]?txt2_kh_:txt1_ke_;
          b_kg_.value=_ki_;
          _a6_(action_kj_,state_kc_[1]);
          return _true_i4_;});
      return b_kg_;}
    function checkbox_ks_(txt_kr_,checked_kn_,action_ko_)
     {var b_km_=createInput_j1_([0,_i_.toString()],0,document_jD_);
      b_km_.checked=!!checked_kn_;
      b_km_.onclick=
      handler_jh_
       (function(param_kp_)
         {_a6_(action_ko_,b_km_.checked|0);return _true_i4_;});
      var lab_kq_=createLabel_j3_(document_jD_);
      _jb_(lab_kq_,b_km_);
      _jb_(lab_kq_,document_jD_.createTextNode(txt_kr_.toString()));
      return lab_kq_;}
    function vertex_kw_(x_kv_,y_ku_,z_kt_){return [-1,x_kv_,y_ku_,z_kt_];}
    function vect_kz_(param_ky_,_kx_)
     {return [-1,
              _kx_[1]-param_ky_[1],
              _kx_[2]-param_ky_[2],
              _kx_[3]-param_ky_[3]];}
    function matrix_vect_mul_kI_(m_kE_,param_kA_)
     {var
       z_kB_=param_kA_[3],
       y_kC_=param_kA_[2],
       x_kD_=param_kA_[1],
       r3_kF_=m_kE_[3],
       r2_kG_=m_kE_[2],
       r1_kH_=m_kE_[1];
      return [-1,
              x_kD_*r1_kH_[1]+y_kC_*r1_kH_[2]+z_kB_*r1_kH_[3],
              x_kD_*r2_kG_[1]+y_kC_*r2_kG_[2]+z_kB_*r2_kG_[3],
              x_kD_*r3_kF_[1]+y_kC_*r3_kF_[2]+z_kB_*r3_kF_[3]];}
    function matrix_transp_kN_(m_kJ_)
     {var r3_kK_=m_kJ_[3],r2_kL_=m_kJ_[2],r1_kM_=m_kJ_[1];
      return [0,
              [-1,r1_kM_[1],r2_kL_[1],r3_kK_[1]],
              [-1,r1_kM_[2],r2_kL_[2],r3_kK_[2]],
              [-1,r1_kM_[3],r2_kL_[3],r3_kK_[3]]];}
    function matrix_mul_kT_(m_kQ_,m__kO_)
     {var
       m__kP_=matrix_transp_kN_(m__kO_),
       _kR_=matrix_vect_mul_kI_(m__kP_,m_kQ_[3]),
       _kS_=matrix_vect_mul_kI_(m__kP_,m_kQ_[2]);
      return [0,matrix_vect_mul_kI_(m__kP_,m_kQ_[1]),_kS_,_kR_];}
    function xz_rotation_kZ_(phi_kU_)
     {var
       cos_phi_kV_=Math.cos(phi_kU_),
       sin_phi_kW_=Math.sin(phi_kU_),
       _kX_=vertex_kw_(-sin_phi_kW_,0,cos_phi_kV_),
       _kY_=vertex_kw_(0,1,0);
      return [0,vertex_kw_(cos_phi_kV_,0,sin_phi_kW_),_kY_,_kX_];}
    function xy_rotation_k5_(phi_k0_)
     {var
       cos_phi_k1_=Math.cos(phi_k0_),
       sin_phi_k2_=Math.sin(phi_k0_),
       _k3_=vertex_kw_(0,0,1),
       _k4_=vertex_kw_(-sin_phi_k2_,cos_phi_k1_,0);
      return [0,vertex_kw_(cos_phi_k1_,sin_phi_k2_,0),_k4_,_k3_];}
    var matrix_identity_k6_=xz_rotation_kZ_(0);
    function face_k__(v1_k9_,v2_k8_,v3_k7_){return [0,v1_k9_,v2_k8_,v3_k7_];}
    function create_canvas_lc_(w_la_,h_lb_)
     {var c_k$_=unsafeCreateElement_jM_(document_jD_,_Z_);
      if(1-(c_k$_.getContext==null_i1_?1:0))
       {c_k$_.width=w_la_;c_k$_.height=h_lb_;return c_k$_;}
      throw [0,Canvas_not_available_j6_];}
    function min_lf_(u_ld_,v_le_){return u_ld_<v_le_?u_ld_:v_le_;}
    function max_li_(u_lg_,v_lh_){return u_lg_<v_lh_?v_lh_:u_lg_;}
    var
     _lj_=8,
     _lk_=12,
     t_delta_ll_=pi_j9_/_lj_,
     n_lm_=_lj_*_lk_|0,
     vertices_ln_=caml_make_vect(n_lm_+2|0,vertex_kw_(0,0,0)),
     faces_lo_=caml_make_vect(n_lm_*2|0,face_k__(0,0,0)),
     south_lp_=n_lm_+1|0;
    caml_array_set(vertices_ln_,n_lm_,vertex_kw_(0,-1,0));
    caml_array_set(vertices_ln_,south_lp_,vertex_kw_(0,1,0));
    var
     _lq_=0,
     _lr_=_lk_-1|0,
     p_delta_lw_=2*pi_j9_/_lk_,
     t_offset_ly_=(pi_j9_-t_delta_ll_)/2;
    if(!(_lr_<_lq_))
     {var i_ls_=_lq_;
      for(;;)
       {var _lt_=0,_lu_=_lj_-1|0;
        if(!(_lu_<_lt_))
         {var j_lv_=_lt_;
          for(;;)
           {var
             phi_lx_=i_ls_*p_delta_lw_,
             theta_lz_=j_lv_*t_delta_ll_-t_offset_ly_,
             k_lA_=(i_ls_*_lj_|0)+j_lv_|0;
            caml_array_set
             (vertices_ln_,
              k_lA_,
              vertex_kw_
               (Math.cos(phi_lx_)*Math.cos(theta_lz_),
                Math.sin(theta_lz_),
                Math.sin(phi_lx_)*Math.cos(theta_lz_)));
            if(0===j_lv_)
             {caml_array_set
               (faces_lo_,
                2*k_lA_|0,
                face_k__(n_lm_,k_lA_,caml_mod(k_lA_+_lj_|0,n_lm_)));
              caml_array_set
               (faces_lo_,
                (2*k_lA_|0)+1|0,
                face_k__
                 (south_lp_,
                  caml_mod((k_lA_+(2*_lj_|0)|0)-1|0,n_lm_),
                  (k_lA_+_lj_|0)-1|0));}
            else
             {caml_array_set
               (faces_lo_,
                2*k_lA_|0,
                face_k__(k_lA_,caml_mod(k_lA_+_lj_|0,n_lm_),k_lA_-1|0));
              caml_array_set
               (faces_lo_,
                (2*k_lA_|0)+1|0,
                face_k__
                 (k_lA_-1|0,
                  caml_mod(k_lA_+_lj_|0,n_lm_),
                  caml_mod((k_lA_+_lj_|0)-1|0,n_lm_)));}
            var _lB_=j_lv_+1|0;
            if(_lu_!==j_lv_){var j_lv_=_lB_;continue;}
            break;}}
        var _lC_=i_ls_+1|0;
        if(_lr_!==i_ls_){var i_ls_=_lC_;continue;}
        break;}}
    var texture_pl_=_f_.toString();
    window_jC_.onload=
    handler_jh_
     (function(param_pp_)
       {function _pc_(texture_lD_)
         {var
           w_lE_=texture_lD_.width,
           h_lF_=texture_lD_.height,
           canvas_lG_=create_canvas_lc_(w_lE_,h_lF_),
           ctx_lH_=canvas_lG_.getContext(_2d__jB_),
           _lI_=h_lF_/8|0,
           _lJ_=w_lE_/8|0,
           img_lK_=ctx_lH_.getImageData(0,0,_lJ_,_lI_),
           data_lL_=img_lK_.data,
           inv_gamma_l1_=1/gamma_j$_;
          function update_shadow_l5_(obliquity_lM_)
           {var
             _lN_=0,
             _lO_=_lI_-1|0,
             cos_obl_lV_=Math.cos(obliquity_lM_),
             sin_obl_lU_=-Math.sin(obliquity_lM_);
            if(!(_lO_<_lN_))
             {var j_lP_=_lN_;
              for(;;)
               {var _lQ_=0,_lR_=(_lJ_/2|0)-1|0;
                if(!(_lR_<_lQ_))
                 {var i_lS_=_lQ_;
                  for(;;)
                   {var
                     theta_lT_=(j_lP_/_lI_-0.5)*pi_j9_,
                     _lW_=
                      Math.cos(i_lS_/_lJ_*2*pi_j9_)*
                      Math.cos(theta_lT_)*
                      cos_obl_lV_+
                      Math.sin(theta_lT_)*
                      sin_obl_lU_,
                     k_lZ_=4*(i_lS_+j_lP_*_lJ_)|0,
                     k__lY_=4*(_lJ_-i_lS_+j_lP_*_lJ_-1)|0,
                     c_lX_=0<_lW_?dark_ka_:dark_ka_-_lW_*(1-dark_ka_)*1.2,
                     c_l0_=c_lX_<=1?c_lX_:1,
                     c_l2_=255-(255.99*Math.pow(c_l0_,inv_gamma_l1_)|0)|0;
                    data_lL_[k_lZ_+3|0]=c_l2_;
                    data_lL_[k__lY_+3|0]=c_l2_;
                    var _l3_=i_lS_+1|0;
                    if(_lR_!==i_lS_){var i_lS_=_l3_;continue;}
                    break;}}
                var _l4_=j_lP_+1|0;
                if(_lO_!==j_lP_){var j_lP_=_l4_;continue;}
                break;}}
            ctx_lH_.putImageData(img_lK_,0,0);
            ctx_lH_.globalCompositeOperation=_j_.toString();
            ctx_lH_.save();
            ctx_lH_.scale(8*(_lJ_+2|0)/_lJ_,8*(_lI_+2|0)/_lI_);
            ctx_lH_.translate(-1,-1);
            ctx_lH_.drawImage(canvas_lG_,0,0);
            return ctx_lH_.restore();}
          update_shadow_l5_(obliquity_j__);
          var
           w_l6_=texture_lD_.width,
           canvas__l7_=create_canvas_lc_(w_l6_,texture_lD_.height),
           ctx__l8_=canvas__l7_.getContext(_2d__jB_),
           no_lighting_l9_=[0,0],
           canvas_l__=create_canvas_lc_(width_j8_,width_j8_),
           canvas__l$_=create_canvas_lc_(width_j8_,width_j8_);
          _jb_(document_jD_.body,canvas_l__);
          var
           ctx_ma_=canvas_l__.getContext(_2d__jB_),
           ctx__mb_=canvas__l$_.getContext(_2d__jB_),
           r_mc_=width_j8_/2,
           tw_md_=texture_lD_.width,
           th_me_=texture_lD_.height,
           uv_mj_=
            _ba_
             (function(v_mf_)
               {var
                 y_mh_=v_mf_[2],
                 u_mg_=
                  (tw_md_-
                   Math.atan2(v_mf_[3],v_mf_[1])*
                   ((tw_md_/2-0.99)/pi_j9_)|
                   0)%
                  tw_md_,
                 v_mi_=th_me_/2+Math.asin(y_mh_)*((th_me_-0.99)/pi_j9_)|0;
                if(0<=u_mg_)
                 {if(u_mg_<tw_md_)
                   {if(0<=v_mi_)
                     {if(v_mi_<th_me_)return [0,u_mg_,v_mi_];throw [0,_c_,_k_];}
                    throw [0,_c_,_l_];}
                  throw [0,_c_,_m_];}
                throw [0,_c_,_n_];},
              vertices_ln_),
           normals_nd_=
            _ba_
             (function(param_mk_)
               {var
                 v3_mn_=param_mk_[3],
                 v2_mm_=param_mk_[2],
                 v1_ml_=caml_array_get(vertices_ln_,param_mk_[1]),
                 v2_mp_=caml_array_get(vertices_ln_,v2_mm_),
                 _mo_=vect_kz_(v1_ml_,caml_array_get(vertices_ln_,v3_mn_)),
                 _mq_=vect_kz_(v1_ml_,v2_mp_),
                 z2_mr_=_mo_[3],
                 y2_ms_=_mo_[2],
                 x2_mt_=_mo_[1],
                 z1_mu_=_mq_[3],
                 y1_mv_=_mq_[2],
                 x1_mw_=_mq_[1];
                return [-1,
                        y1_mv_*z2_mr_-y2_ms_*z1_mu_,
                        z1_mu_*x2_mt_-z2_mr_*x1_mw_,
                        x1_mw_*y2_ms_-x2_mt_*y1_mv_];},
              faces_lo_),
           face_info_nf_=
            _ba_
             (function(f_mx_)
               {var
                 v3_mA_=f_mx_[3],
                 v2_mz_=f_mx_[2],
                 match_my_=caml_array_get(uv_mj_,f_mx_[1]),
                 v1_mB_=match_my_[2],
                 u1_mC_=match_my_[1],
                 match_mD_=caml_array_get(uv_mj_,v2_mz_),
                 v2_mE_=match_mD_[2],
                 u2_mF_=match_mD_[1],
                 match_mG_=caml_array_get(uv_mj_,v3_mA_),
                 v3_mH_=match_mG_[2],
                 u3_mI_=match_mG_[1],
                 mid_mJ_=tw_md_/2;
                if(u1_mC_==0)
                 {if(mid_mJ_<u2_mF_||mid_mJ_<u3_mI_)
                   var _mK_=1;
                  else
                   {var _mL_=0,_mK_=0;}
                  if(_mK_){var u1_mM_=tw_md_-2,_mL_=1;}}
                else
                 var _mL_=0;
                if(!_mL_)var u1_mM_=u1_mC_;
                if(u2_mF_==0)
                 {if(mid_mJ_<u1_mM_||mid_mJ_<u3_mI_)
                   var _mN_=1;
                  else
                   {var _mO_=0,_mN_=0;}
                  if(_mN_){var u2_mP_=tw_md_-2,_mO_=1;}}
                else
                 var _mO_=0;
                if(!_mO_)var u2_mP_=u2_mF_;
                if(u3_mI_==0)
                 {if(mid_mJ_<u2_mP_||mid_mJ_<u1_mM_)
                   var _mQ_=1;
                  else
                   {var _mR_=0,_mQ_=0;}
                  if(_mQ_){var u3_mS_=tw_md_-2,_mR_=1;}}
                else
                 var _mR_=0;
                if(!_mR_)var u3_mS_=u3_mI_;
                var mth_mT_=th_me_-2;
                if(v1_mB_==0||mth_mT_<=v1_mB_)
                 var _mU_=0;
                else
                 {var u1_mV_=u1_mM_,_mU_=1;}
                if(!_mU_)var u1_mV_=(u2_mP_+u3_mS_)/2;
                if(v2_mE_==0||mth_mT_<=v2_mE_)
                 var _mW_=0;
                else
                 {var u2_mX_=u2_mP_,_mW_=1;}
                if(!_mW_)var u2_mX_=(u1_mV_+u3_mS_)/2;
                if(v3_mH_==0||mth_mT_<=v3_mH_)
                 var _mY_=0;
                else
                 {var u3_mZ_=u3_mS_,_mY_=1;}
                if(!_mY_)var u3_mZ_=(u2_mX_+u1_mV_)/2;
                var
                 u1_m0_=max_li_(1,u1_mV_),
                 u2_m1_=max_li_(1,u2_mX_),
                 u3_m2_=max_li_(1,u3_mZ_),
                 v1_m3_=max_li_(1,v1_mB_),
                 v2_m4_=max_li_(1,v2_mE_),
                 v3_m5_=max_li_(1,v3_mH_),
                 du2_m6_=u2_m1_-u1_m0_,
                 du3_m7_=u3_m2_-u1_m0_,
                 dv2_m8_=v2_m4_-v1_m3_,
                 dv3_m9_=v3_m5_-v1_m3_,
                 su_m__=dv2_m8_*du3_m7_-dv3_m9_*du2_m6_,
                 sv_m$_=du2_m6_*dv3_m9_-du3_m7_*dv2_m8_,
                 u_na_=max_li_(0,min_lf_(u1_m0_,min_lf_(u2_m1_,u3_m2_))-4),
                 v_nb_=max_li_(0,min_lf_(v1_m3_,min_lf_(v2_m4_,v3_m5_))-4),
                 u__nc_=
                  min_lf_(tw_md_,max_li_(u1_m0_,max_li_(u2_m1_,u3_m2_))+4);
                return [0,
                        u1_m0_,
                        v1_m3_,
                        du2_m6_/su_m__,
                        dv2_m8_/sv_m$_,
                        du3_m7_/su_m__,
                        dv3_m9_/sv_m$_,
                        u_na_,
                        v_nb_,
                        u__nc_-u_na_,
                        min_lf_(th_me_,max_li_(v1_m3_,max_li_(v2_m4_,v3_m5_))+4)-
                        v_nb_];},
              faces_lo_),
           paused_ne_=[0,0],
           follow_ng_=[0,0],
           lighting_nh_=[0,1],
           clipped_ni_=[0,1],
           obl_nj_=[0,obliquity_j__],
           m_obliq_nk_=[0,xy_rotation_k5_(-obliquity_j__)],
           m_nl_=[0,matrix_identity_k6_],
           phi_rot_nm_=[0,0],
           rateText_nn_=document_jD_.createTextNode(_B_.toString()),
           ctrl_no_=createDiv_j5_(document_jD_);
          ctrl_no_.className=_A_.toString();
          var d_np_=createDiv_j5_(document_jD_);
          _jb_(d_np_,document_jD_.createTextNode(_z_.toString()));
          _jb_(ctrl_no_,d_np_);
          var form_nq_=createDiv_j5_(document_jD_);
          function br_ns_(param_nr_)
           {return unsafeCreateElement_jM_(document_jD_,_X_);}
          _jb_
           (form_nq_,
            toggle_button_kl_
             (_x_,_y_,function(p_nt_){paused_ne_[1]=p_nt_;return 0;}));
          _jb_(form_nq_,br_ns_(0));
          _jb_
           (form_nq_,
            toggle_button_kl_
             (_v_,_w_,function(f_nu_){follow_ng_[1]=f_nu_;return 0;}));
          _jb_(form_nq_,br_ns_(0));
          var b_nv_=createInput_j1_([0,button_type_kb_],0,document_jD_);
          b_nv_.value=_u_.toString();
          b_nv_.onclick=
          handler_jh_
           (function(param_nw_)
             {m_nl_[1]=matrix_identity_k6_;
              phi_rot_nm_[1]=0;
              m_obliq_nk_[1]=xy_rotation_k5_(-obl_nj_[1]);
              return _true_i4_;});
          _jb_(form_nq_,b_nv_);
          _jb_(form_nq_,br_ns_(0));
          var lab_nx_=createLabel_j3_(document_jD_);
          _jb_(lab_nx_,document_jD_.createTextNode(_t_.toString()));
          var
           _ny_=unsafeCreateElementEx_jX_(0,0,document_jD_,_S_),
           param_nz_=_s_;
          for(;;)
           {if(param_nz_)
             {var
               l_nC_=param_nz_[2],
               a_nB_=param_nz_[1],
               _nA_=unsafeCreateElement_jM_(document_jD_,_R_);
              _jb_(_nA_,document_jD_.createTextNode(a_nB_.toString()));
              _ny_.add(_nA_,null_i1_);
              var param_nz_=l_nC_;
              continue;}
            _ny_.onchange=
            handler_jh_
             (function(param_nF_)
               {var
                 _nD_=_ny_.selectedIndex,
                 o_nE_=0===_nD_?obliquity_j__:1===_nD_?0:-obliquity_j__;
                update_shadow_l5_(o_nE_);
                obl_nj_[1]=o_nE_;
                return _true_i4_;});
            _jb_(lab_nx_,_ny_);
            _jb_(form_nq_,lab_nx_);
            _jb_(ctrl_no_,form_nq_);
            var form_nG_=createDiv_j5_(document_jD_);
            _jb_
             (form_nG_,
              checkbox_ks_
               (_r_,1,function(l_nH_){lighting_nh_[1]=l_nH_;return 0;}));
            _jb_(form_nG_,br_ns_(0));
            _jb_
             (form_nG_,
              checkbox_ks_
               (_q_,1,function(l_nI_){clipped_ni_[1]=l_nI_;return 0;}));
            _jb_(form_nG_,br_ns_(0));
            _jb_(form_nG_,document_jD_.createTextNode(_p_.toString()));
            _jb_(form_nG_,rateText_nn_);
            _jb_(ctrl_no_,form_nG_);
            _jb_(document_jD_.body,ctrl_no_);
            var _nJ_=unsafeCreateElement_jM_(document_jD_,_W_);
            _nJ_.innerHTML=_o_.toString();
            _jb_(document_jD_.body,_nJ_);
            var mx_nK_=[0,0],my_nL_=[0,0];
            canvas_l__.onmousedown=
            handler_jh_
             (function(ev_nM_)
               {mx_nK_[1]=ev_nM_.clientX;
                my_nL_[1]=ev_nM_.clientY;
                var
                 c1_n0_=
                  addEventListener_jw_
                   (document_jD_,
                    mousemove_jx_,
                    handler_jh_
                     (function(ev_nN_)
                       {var
                         x_nO_=ev_nN_.clientX,
                         y_nP_=ev_nN_.clientY,
                         dx_nQ_=x_nO_-mx_nK_[1]|0,
                         dy_nR_=y_nP_-my_nL_[1]|0;
                        if(0!==dy_nR_)
                         {var
                           _nT_=m_nl_[1],
                           _nS_=2*dy_nR_/width_j8_,
                           cos_phi_nU_=Math.cos(_nS_),
                           sin_phi_nV_=Math.sin(_nS_),
                           _nW_=vertex_kw_(0,-sin_phi_nV_,cos_phi_nU_),
                           _nX_=vertex_kw_(0,cos_phi_nU_,sin_phi_nV_);
                          m_nl_[1]=
                          matrix_mul_kT_([0,vertex_kw_(1,0,0),_nX_,_nW_],_nT_);}
                        if(0!==dx_nQ_)
                         {var _nY_=m_nl_[1];
                          m_nl_[1]=
                          matrix_mul_kT_(xz_rotation_kZ_(2*dx_nQ_/width_j8_),_nY_);}
                        mx_nK_[1]=x_nO_;
                        my_nL_[1]=y_nP_;
                        return _true_i4_;}),
                    _true_i4_),
                 c2_nZ_=[0,null_i1_];
                c2_nZ_[1]=
                _i__
                 (addEventListener_jw_
                   (document_jD_,
                    mouseup_jy_,
                    handler_jh_
                     (function(param_n2_)
                       {removeEventListener_jA_(c1_n0_);
                        var _n1_=c2_nZ_[1];
                        if(_n1_!=null_i1_)removeEventListener_jA_(_n1_);
                        return _true_i4_;}),
                    _true_i4_));
                return _false_i5_;});
            var
             ti_n3_=[0,new date_constr_i7_().getTime()],
             fps_n4_=[0,0],
             loop_oU_=
              function(t_oO_,phi_n5_)
               {var rotation_n7_=xz_rotation_kZ_(phi_n5_-phi_rot_nm_[1]);
                if(lighting_nh_[1])
                 {no_lighting_l9_[1]=0;
                  ctx__l8_.drawImage(texture_lD_,0,0);
                  var
                   i_n6_=
                    (2*pi_j9_-phi_n5_%(2*pi_j9_))*w_l6_/2/pi_j9_%w_l6_|0;
                  ctx__l8_.drawImage(canvas_lG_,i_n6_,0);
                  ctx__l8_.drawImage(canvas_lG_,i_n6_-w_l6_,0);}
                else
                 if(!no_lighting_l9_[1])
                  {ctx__l8_.drawImage(texture_lD_,0,0);no_lighting_l9_[1]=1;}
                var
                 m_n8_=
                  matrix_mul_kT_
                   (m_nl_[1],matrix_mul_kT_(m_obliq_nk_[1],rotation_n7_)),
                 _n__=
                  _ba_
                   (function(v_n9_){return matrix_vect_mul_kI_(m_n8_,v_n9_);},
                    vertices_ln_),
                 _n$_=matrix_vect_mul_kI_(matrix_transp_kN_(m_n8_),v_g_);
                ctx__mb_.clearRect(0,0,width_j8_,width_j8_);
                ctx__mb_.save();
                if(clipped_ni_[1])
                 {ctx__mb_.beginPath();
                  ctx__mb_.arc(r_mc_,r_mc_,r_mc_*0.95,0,-2*pi_j9_,_true_i4_);
                  ctx__mb_.clip();}
                ctx__mb_.setTransform(r_mc_-2,0,0,r_mc_-2,r_mc_,r_mc_);
                ctx__mb_.globalCompositeOperation=_E_.toString();
                var _oa_=0,_ob_=faces_lo_.length-1-1|0;
                if(!(_ob_<_oa_))
                 {var i_oc_=_oa_;
                  for(;;)
                   {var
                     _od_=faces_lo_[i_oc_+1],
                     v3_og_=_od_[3],
                     v2_of_=_od_[2],
                     match_oe_=caml_array_get(_n__,_od_[1]),
                     y1_oh_=match_oe_[2],
                     x1_oi_=match_oe_[1],
                     match_oj_=caml_array_get(_n__,v2_of_),
                     y2_ok_=match_oj_[2],
                     x2_ol_=match_oj_[1],
                     match_om_=caml_array_get(_n__,v3_og_),
                     y3_on_=match_om_[2],
                     x3_oo_=match_om_[1],
                     _op_=caml_array_get(normals_nd_,i_oc_);
                    if(0<=_op_[1]*_n$_[1]+_op_[2]*_n$_[2]+_op_[3]*_n$_[3])
                     {ctx__mb_.beginPath();
                      ctx__mb_.moveTo(x1_oi_,y1_oh_);
                      ctx__mb_.lineTo(x2_ol_,y2_ok_);
                      ctx__mb_.lineTo(x3_oo_,y3_on_);
                      ctx__mb_.closePath();
                      ctx__mb_.save();
                      ctx__mb_.clip();
                      var
                       match_oq_=caml_array_get(face_info_nf_,i_oc_),
                       dv_or_=match_oq_[10],
                       du_os_=match_oq_[9],
                       v_ot_=match_oq_[8],
                       u_ou_=match_oq_[7],
                       dv3_ov_=match_oq_[6],
                       du3_ow_=match_oq_[5],
                       dv2_ox_=match_oq_[4],
                       du2_oy_=match_oq_[3],
                       v1_oz_=match_oq_[2],
                       u1_oA_=match_oq_[1],
                       dx2_oB_=x2_ol_-x1_oi_,
                       dx3_oC_=x3_oo_-x1_oi_,
                       dy2_oD_=y2_ok_-y1_oh_,
                       dy3_oE_=y3_on_-y1_oh_,
                       a_oF_=dx2_oB_*dv3_ov_-dx3_oC_*dv2_ox_,
                       b_oG_=dx2_oB_*du3_ow_-dx3_oC_*du2_oy_,
                       d_oH_=dy2_oD_*dv3_ov_-dy3_oE_*dv2_ox_,
                       e_oI_=dy2_oD_*du3_ow_-dy3_oE_*du2_oy_;
                      ctx__mb_.transform
                       (a_oF_,
                        d_oH_,
                        b_oG_,
                        e_oI_,
                        x1_oi_-a_oF_*u1_oA_-b_oG_*v1_oz_,
                        y1_oh_-d_oH_*u1_oA_-e_oI_*v1_oz_);
                      ctx__mb_.drawImage
                       (canvas__l7_,
                        u_ou_,
                        v_ot_,
                        du_os_,
                        dv_or_,
                        u_ou_,
                        v_ot_,
                        du_os_,
                        dv_or_);
                      ctx__mb_.restore();}
                    var _oJ_=i_oc_+1|0;
                    if(_ob_!==i_oc_){var i_oc_=_oJ_;continue;}
                    break;}}
                ctx__mb_.restore();
                ctx_ma_.globalCompositeOperation=_D_.toString();
                ctx_ma_.drawImage(canvas__l$_,0,0);
                try {ctx_ma_.getImageData(0,0,1,1);}catch(_pa_){}
                var
                 t__oK_=new date_constr_i7_().getTime(),
                 hz_oL_=1000/(t__oK_-ti_n3_[1]),
                 _oM_=fps_n4_[1]==0?hz_oL_:0.9*fps_n4_[1]+0.1*hz_oL_;
                fps_n4_[1]=_oM_;
                rateText_nn_.data=_dj_(_ha_,_C_,fps_n4_[1]).toString();
                ti_n3_[1]=t__oK_;
                function _oX_(param_oV_)
                 {var
                   t__oN_=new date_constr_i7_().getTime(),
                   dt_oP_=t__oN_-t_oO_,
                   dt_oQ_=dt_oP_<0?0:1000<dt_oP_?0:dt_oP_,
                   angle_oR_=2*pi_j9_*dt_oQ_/1000/10,
                   _oS_=
                    paused_ne_[1]
                     ?0
                     :follow_ng_[1]?(phi_rot_nm_[1]=phi_rot_nm_[1]+angle_oR_,1):0;
                  _oS_;
                  var _oT_=paused_ne_[1]?phi_n5_:phi_n5_+angle_oR_;
                  return loop_oU_(t__oN_,_oT_);}
                var
                 match_oW_=task_h7_(0),
                 w_oZ_=match_oW_[2],
                 t_oY_=match_oW_[1],
                 _o1_=0.01*1000,
                 id_o2_=
                  window_jC_.setTimeout
                   (caml_js_wrap_callback
                     (function(param_o0_){return wakeup_hN_(w_oZ_,0);}),
                    _o1_);
                function _o4_(param_o3_)
                 {return window_jC_.clearTimeout(id_o2_);}
                var _o5_=repr_hn_(t_oY_)[1];
                switch(_o5_[0])
                 {case 1:
                   var _o6_=_o5_[1][1]===Canceled_he_?(_o4_(0),1):0;break;
                  case 2:
                   var sleeper_o$_=_o5_[1],data_o8_=current_data_hf_[1];
                   add_immutable_waiter_h$_
                    (sleeper_o$_,
                     function(param_o7_)
                      {if(1===param_o7_[0]&&param_o7_[1][1]===Canceled_he_)
                        {current_data_hf_[1]=data_o8_;
                         try {var _o9_=_o4_(0);}catch(_o__){return 0;}
                         return _o9_;}
                       return 0;});
                   var _o6_=1;
                   break;
                  default:var _o6_=0;}
                _o6_;
                return bind_iz_(t_oY_,_oX_);};
            return loop_oU_(new date_constr_i7_().getTime(),0);}}
        var _pb_=unsafeCreateElement_jM_(document_jD_,_Y_);
        function _pf_(param_pd_){return [0,[0,_pb_]];}
        var match_pe_=task_h7_(0),w_ph_=match_pe_[2],t_pi_=match_pe_[1];
        function cont_pj_(x_pg_){return wakeup_hN_(w_ph_,x_pg_);}
        _pb_.onload=
        handler_jh_(function(param_pk_){cont_pj_(0);return _false_i5_;});
        _pb_.src=texture_pl_;
        var _pm_=repr_hn_(bind_iz_(bind_iz_(t_pi_,_pf_),_pc_))[1];
        switch(_pm_[0])
         {case 1:throw _pm_[1];
          case 2:
           var sleeper_po_=_pm_[1];
           add_immutable_waiter_h$_
            (sleeper_po_,
             function(param_pn_)
              {switch(param_pn_[0])
                {case 0:return 0;
                 case 1:throw param_pn_[1];
                 default:throw [0,_c_,_af_];}});
           break;
          case 3:throw [0,_c_,_ae_];
          default:}
        return _false_i5_;});
    do_at_exit_a2_(0);
    return;}
  ());