private static List<SegmentInfo> init(Address imageBase,
				List<SegmentMapDescription> segmentMapDescriptions) {
			List<SegmentInfo> segments = new ArrayList<>();

			for (SegmentMapDescription smd : segmentMapDescriptions) {
				SegmentInfo segment = new SegmentInfo(smd.getOffset(), smd.getLength());
				segments.add(segment);
			}
			// Currently, this is the only calculator using synthesis to correct offset.
			// If all used it, we would put this in the parent class constructor.
			//
			// We have the defaults for offset of initial segment and for segment align size to both
			// be 0x1000.  If we determine that these need to be different for the various data
			//  sources, then the AddressCalculator constructor can take these values as parameters
			// and pass them to the following synthesize method.
			return synthesizeSegmentInfo(segments, 0x1000L, 0x1000L);
		}
Clean up possibly incomplete segment information, by synthesizing missing offset data.
@param segments segments to correct
@param firstSectionOffset "known" first section offset
@param imageAlign section alignment
@return new synthesized segment info with synthesized offsets
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PdbAddressCalculator.java