docs: public static byte[] readAllBytes(InputStream src, int limit) throws IOException {
  		byte[] buffer = new byte[STREAM_IO_BUFFER_SIZE];
  		byte[] bytes = new byte[0];
  		int read;
  
  		while ((read = src.read(buffer)) > 0) {
  			int totalRead = bytes.length + read;
  
  			if (bytes.length + read > limit) {
  				InterruptedIOException exception = new InterruptedIOException("Limit reached: " + limit);
  
  				exception.bytesTransferred = totalRead;
  				throw exception;
  			}
  
  			byte[] newBytes = new byte[totalRead];
  
  			System.arraycopy(bytes, 0, newBytes, 0, bytes.length);
  			System.arraycopy(buffer, 0, newBytes, bytes.length, read);
  			bytes = newBytes;
  		}
  		return bytes;
  	}