@Override
  public void readFully(byte @NotNull [] b, int off, int len) throws IOException {
    if (len < 0)
        throw new IndexOutOfBoundsException();
    int n = 0;
    while (n < len) {
        int count = in.read(b, off + n, len - n);
        if (count < 0)
            throw new EOFException();
        n += count;
    }
  }
@Override
  public void readFully(byte @NotNull [] b, int off, int len)