@Override
  protected void serialize(LittleEndianOutput out) {

    out.writeInt(_grbit1);
    out.writeByte(_grbit2);
    out.writeByte(_citmShow);
    out.writeShort(_isxdiSort);
    out.writeShort(_isxdiShow);

    if (_subtotalName == null) {
      out.writeShort(STRING_NOT_PRESENT_LEN);
    } else {
      out.writeShort(_subtotalName.length());
    }

    out.writeInt(_reserved1);
    out.writeInt(_reserved2);
    if (_subtotalName != null) {
      StringUtil.putUnicodeLE(_subtotalName, out);
    }
  }
    protected void serialize(ContinuableRecordOutput out) {
      int dataSize = getDataSize();

      out.writeContinueIfRequired(8);
      out.writeShort(reserved);
      out.writeShort(dataSize);
      out.writeShort(formattingFontIndex);
      out.writeShort(formattingOptions);

      out.writeContinueIfRequired(6);
      out.writeShort(numberOfRuns);
      out.writeShort(phoneticText.length());
      out.writeShort(phoneticText.length());

      out.writeContinueIfRequired(phoneticText.length() * 2);
      StringUtil.putUnicodeLE(phoneticText, out);

      for (int i = 0; i < phRuns.length; i++) {
        phRuns[i].serialize(out);
      }

      out.write(extraData);
    }