code: def unzip(self, overwrite: bool = False):
          
  
          if self.zip_content and not overwrite:
              raise FileExistsError(str(self.temp_dir))
  
          LOGGER.debug('unzipping miz to temp dir')
  
          try:
  
              with ZipFile(str(self.miz_path)) as zip_file:
  
                  LOGGER.debug('reading infolist')
  
                  self.zip_content = [f.filename for f in zip_file.infolist()]
  
                  self._extract_files_from_zip(zip_file)
  
          except BadZipFile:
              raise BadZipFile(str(self.miz_path))
  
          except:  # noqa: E722
              LOGGER.exception('error while unzipping miz file: %s', self.miz_path)
              raise
  
          LOGGER.debug('checking miz content')
  
          # noinspection PyTypeChecker
          for miz_item in ['mission', 'options', 'warehouses', 'l10n/DEFAULT/dictionary', 'l10n/DEFAULT/mapResource']:
              if not Path(self.temp_dir.joinpath(miz_item)).exists():
                  LOGGER.error('missing file in miz: %s', miz_item)
                  raise FileNotFoundError(miz_item)
  
          self._check_extracted_content()
  
          LOGGER.debug('all files have been found, miz successfully unzipped')
docs: Flattens a MIZ file into the temp dir
  
          Args:
              overwrite: allow overwriting exiting files