code: public RandomAccessData parse(RandomAccessData data, boolean skipPrefixBytes)
  			throws IOException {
  		CentralDirectoryEndRecord endRecord = new CentralDirectoryEndRecord(data);
  		if (skipPrefixBytes) {
  			data = getArchiveData(endRecord, data);
  		}
  		RandomAccessData centralDirectoryData = endRecord.getCentralDirectory(data);
  		visitStart(endRecord, centralDirectoryData);
  		parseEntries(endRecord, centralDirectoryData);
  		visitEnd();
  		return data;
  	}
docs: Parse the source data, triggering {@link CentralDirectoryVisitor visitors}.
  @param data the source data
  @param skipPrefixBytes if prefix bytes should be skipped
  @return the actual archive data without any prefix bytes
  @throws IOException on error