code: public final void put(int offset, ByteBuffer source, int numBytes) {
  		// ByteBuffer performs the boundy checks
  		source.get(this.memory, offset, numBytes);
  	}
docs: Bulk put method. Copies {@code numBytes} bytes from the given {@code ByteBuffer}, into
  this memory segment. The bytes will be read from the target buffer
  starting at the buffer's current position, and will be written to this memory segment starting
  at {@code offset}.
  If this method attempts to read more bytes than
  the target byte buffer has remaining (with respect to {@link ByteBuffer#remaining()}),
  this method will cause a {@link java.nio.BufferUnderflowException}.
  
  @param offset The position where the bytes are started to be written to in this memory segment.
  @param source The ByteBuffer to copy the bytes from.
  @param numBytes The number of bytes to copy.
  
  @throws IndexOutOfBoundsException If the offset is invalid, or the source buffer does not
  contain the given number of bytes, or this segment does
  not have enough space for the bytes (counting from offset).