So IFD0 has a next pointer that points to IFD1, but only if there is an EXIF IFD, and IFD1 has a next pointer that points to the EXIF IFD, but the EXIF IFD does not have a next pointer that points to the GPS IFD?