| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.decode = decode;function con(b) {  if ((b & 0xc0) === 0x80) {    return b & 0x3f;  } else {    throw new Error("invalid UTF-8 encoding");  }}function code(min, n) {  if (n < min || 0xd800 <= n && n < 0xe000 || n >= 0x10000) {    throw new Error("invalid UTF-8 encoding");  } else {    return n;  }}function decode(bytes) {  return _decode(bytes).map(function (x) {    return String.fromCharCode(x);  }).join("");}function _decode(bytes) {  var result = [];  while (bytes.length > 0) {    var b1 = bytes[0];    if (b1 < 0x80) {      result.push(code(0x0, b1));      bytes = bytes.slice(1);      continue;    }    if (b1 < 0xc0) {      throw new Error("invalid UTF-8 encoding");    }    var b2 = bytes[1];    if (b1 < 0xe0) {      result.push(code(0x80, ((b1 & 0x1f) << 6) + con(b2)));      bytes = bytes.slice(2);      continue;    }    var b3 = bytes[2];    if (b1 < 0xf0) {      result.push(code(0x800, ((b1 & 0x0f) << 12) + (con(b2) << 6) + con(b3)));      bytes = bytes.slice(3);      continue;    }    var b4 = bytes[3];    if (b1 < 0xf8) {      result.push(code(0x10000, (((b1 & 0x07) << 18) + con(b2) << 12) + (con(b3) << 6) + con(b4)));      bytes = bytes.slice(4);      continue;    }    throw new Error("invalid UTF-8 encoding");  }  return result;}
 |