          if with_thumb:
              # Thumbnails currently only used for manual tool. Default to None
              self.thumbnail = alignment.get("thumb", None)
          # Manual tool and legacy alignments will not have a mask
          self.aligned = None
  
          if alignment.get("mask", None) is not None:
              self.mask = dict()
              for name, mask_dict in alignment["mask"].items():
                  self.mask[name] = Mask()
 
</s> remove             self.thumbnail = alignment.get("thumb", None)
 </s> add             self.thumbnail = alignment.get("thumb") </s> remove         self.landmarks_xy = landmarks.copy()
 </s> add         self._landmarks_xy = landmarks.copy() </s> remove             self.mask = dict()
 </s> add             self.mask = {} </s> remove         self.x = x  # pylint:disable=invalid-name
        self.w = w  # pylint:disable=invalid-name
        self.y = y  # pylint:disable=invalid-name
        self.h = h  # pylint:disable=invalid-name
        self.landmarks_xy = landmarks_xy
        self.thumbnail = None
        self.mask = dict() if mask is None else mask
 </s> add         self.left = left
        self.width = width
        self.top = top
        self.height = height
        self._landmarks_xy = landmarks_xy
        self.thumbnail: Optional[np.ndarray] = None
        self.mask = {} if mask is None else mask </s> remove         self.aligned = None
        logger.trace("Initialized %s", self.__class__.__name__)
 </s> add         self._aligned: Optional[AlignedFace] = None
        logger.trace("Initialized %s", self.__class__.__name__)  # type: ignore
        self._aligned = None
          if with_thumb:
              # Thumbnails currently only used for manual tool. Default to None
              self.thumbnail = alignment.get("thumb", None)
          # Manual tool and legacy alignments will not have a mask
        self._aligned = None
  
          if alignment.get("mask", None) is not None:
              self.mask = dict()
              for name, mask_dict in alignment["mask"].items():
                  self.mask[name] = Mask()
keep keep keep keep replace keep keep keep keep keep
 lib.align updates:
  - alignments.py
    - Add typed dicts for imported alignments
    - Explicitly check for presence of thumb value in alignments dict
    - linting
  - detected_face.py
    - Typing
    - Linting
    - Legacy support for pre-aligned face
    - Update dependencies to new property names 
lib/align/detected_face.py