@Override
      public void putRecord(final ByteBuffer target,
                            final int offset,
                            final int capacity,
                            final int length,
                            final int redirectTo,
                            final ByteBuffer payload) {
        final int packedCapacity = getPackedCapacity(capacity, length);
        final int first5BitsOfCapacity = packedCapacity >> CAPACITY_BITS_1;
        final byte headerByte0 = (byte)(RECORD_TYPE_ACTUAL | RECORD_SIZE_TYPE_LARGE | first5BitsOfCapacity);

        final int headerBytes1_4 = Integer.rotateRight(packedCapacity & CAPACITY_MASK_1, CAPACITY_BITS_1)
                                   | (length & LENGTH_MASK);

        target.put(offset, headerByte0);
        target.putInt(offset + 1, headerBytes1_4);
        target.put(offset + HEADER_SIZE, payload, payload.position(), length);
      }
@Override
      public void putRecord(final ByteBuffer target,
                            final int offset,
                            final int capacity,
                            final int length,
                            final int redirectTo,
                            final ByteBuffer payload)