docs: private void read(final DataInput pInput) throws IOException {
          byte[] bytes = new byte[64];
          pInput.readFully(bytes);
  
          // NOTE: Length is in bytes, including the null-terminator...
          int nameLength = pInput.readShort();
          name = new String(bytes, 0, nameLength - 2, Charset.forName("UTF-16LE"));
  //        System.out.println("name: " + name);
  
          type = pInput.readByte();
  //        System.out.println("type: " + type);
  
          nodeColor = pInput.readByte();
  //        System.out.println("nodeColor: " + nodeColor);
  
          prevDId = pInput.readInt();
  //        System.out.println("prevDId: " + prevDId);
          nextDId = pInput.readInt();
  //        System.out.println("nextDId: " + nextDId);
          rootNodeDId = pInput.readInt();
  //        System.out.println("rootNodeDId: " + rootNodeDId);
  
          // UID (16) + user flags (4), ignored
          if (pInput.skipBytes(20) != 20) {
              throw new CorruptDocumentException();
          }
  
          createdTimestamp = CompoundDocument.toJavaTimeInMillis(pInput.readLong());
          modifiedTimestamp = CompoundDocument.toJavaTimeInMillis(pInput.readLong());
  
          startSId = pInput.readInt();
  //        System.out.println("startSId: " + startSId);
          streamSize = pInput.readInt();
  //        System.out.println("streamSize: " + streamSize);
  
          // Reserved
          pInput.readInt();
      }