@Override
 @ForceInline
 public void write(long offsetInRDO, ByteBuffer bytes, int offset, int length)
     throws BufferOverflowException {
   writeCheckOffset(offsetInRDO, length);
   bytesStore.write(offsetInRDO, bytes, offset, length);
 }
 @NotNull
 @Override
 @ForceInline
 public Bytes<Underlying> prewrite(byte[] bytes) {
   long offsetInRDO = prewriteOffsetPositionMoved(bytes.length);
   bytesStore.write(offsetInRDO, bytes);
   return this;
 }
 @NotNull
 @Override
 @ForceInline
 public Bytes<Underlying> write(byte[] bytes, int offset, int length) {
   long offsetInRDO = writeOffsetPositionMoved(length);
   bytesStore.write(offsetInRDO, bytes, offset, length);
   return this;
 }
 @NotNull
 @Override
 @ForceInline
 public Bytes<Underlying> write(@NotNull ByteBuffer buffer) {
   bytesStore.write(writePosition, buffer, buffer.position(), buffer.limit());
   writePosition += buffer.remaining();
   assert writePosition <= writeLimit();
   return this;
 }
 @NotNull
 @Override
 @ForceInline
 public Bytes<Underlying> write(long offsetInRDO, RandomDataInput bytes, long offset, long length)
     throws IORuntimeException, BufferUnderflowException, BufferOverflowException {
   writeCheckOffset(offsetInRDO, length);
   bytesStore.write(offsetInRDO, bytes, offset, length);
   return this;
 }
 @NotNull
 @Override
 @ForceInline
 public Bytes<Underlying> write(long offsetInRDO, byte[] bytes, int offset, int length)
     throws BufferOverflowException {
   writeCheckOffset(offsetInRDO, length);
   bytesStore.write(offsetInRDO, bytes, offset, length);
   return this;
 }