constructor(stream, encrypted, seacAnalysisEnabled) {
    if (encrypted) {
      const data = stream.getBytes();
      const isBinary = !(
        (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&
        isHexDigit(data[1]) &&
        isHexDigit(data[2]) &&
        isHexDigit(data[3]) &&
        isHexDigit(data[4]) &&
        isHexDigit(data[5]) &&
        isHexDigit(data[6]) &&
        isHexDigit(data[7])
      );
      stream = new Stream(
        isBinary
          ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)
          : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)
      );
    }
    this.seacAnalysisEnabled = !!seacAnalysisEnabled;

    this.stream = stream;
    this.nextChar();
  }
Type1Parser encapsulate the needed code for parsing a Type1 font program.
Some of its logic depends on the Type2 charstrings structure.
NOTE: This doesn't really parse the font since that would require evaluation
      of PostScript, but it is possible in most cases to extract what we need
      without a full parse.