Sophie

Sophie

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

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