docs: protected void encodeFreeList(FacesContext context, DataList list) throws IOException {
          int first = list.getFirst();
          int rows = list.getRows() == 0 ? list.getRowCount() : list.getRows();
          int pageSize = first + rows;
          int rowCount = list.getRowCount();
  
          String rowIndexVar = list.getRowIndexVar();
          String varStatus = list.getVarStatus();
          Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
  
          for (int i = first; i < pageSize; i++) {
              if (varStatus != null) {
                  requestMap.put(varStatus, new VarStatus(first, (pageSize - 1), (i == 0), (i == (rowCount - 1)), i, (i % 2 == 0), (i % 2 == 1), 1));
              }
  
              list.setRowIndex(i);
  
              if (rowIndexVar != null) {
                  requestMap.put(rowIndexVar, i);
              }
  
              if (list.isRowAvailable()) {
                  renderChildren(context, list);
              }
          }
  
          //cleanup
          list.setRowIndex(-1);
  
          if (rowIndexVar != null) {
              requestMap.remove(rowIndexVar);
          }
  
          if (varStatus != null) {
              requestMap.remove(varStatus);
          }
      }