docs: def save(self):
          """
            Return the dex (with the modifications) into raw format (fix checksums)
            (beta: do not use !)
  
            :rtype: string
        """
          l = []
          h = {}
          s = {}
          h_r = {}
  
          idx = 0
          for i in self.map_list.get_obj():
              length = 0
  
              if isinstance(i, list):
                  for j in i:
                      if isinstance(j, AnnotationsDirectoryItem):
                          if idx % 4 != 0:
                              idx = idx + (4 - (idx % 4))
  
                      l.append(j)
  
                      c_length = j.get_length()
                      if isinstance(j, StringDataItem):
                          c_length += 1
                      h[j] = idx + length
                      h_r[idx + length] = j
                      s[idx + length] = c_length
  
                      length += c_length
                      #debug("SAVE" + str(j) + " @ 0x%x" % (idx+length))
  
                  debug("SAVE " + str(i[0]) + " @0x%x (%x)" % (idx, length))
  
              else:
                  if isinstance(i, MapList):
                      if idx % 4 != 0:
                          idx = idx + (4 - (idx % 4))
  
                  l.append(i)
                  h[i] = idx
                  h_r[idx] = i
  
                  length = i.get_length()
  
                  s[idx] = length
  
                  debug("SAVE " + str(i) + " @0x%x (%x)" % (idx, length))
  
              idx += length
  
          self.header.file_size = idx
  
          for i in l:
              idx = h[i]
              i.set_off(idx)
              if isinstance(i, CodeItem):
                  last_idx = idx
                  for j in i.get_obj():
                      j.set_off(last_idx)
                      #j.set_debug_info_off(0)
                      last_idx += j.get_size()
  
          last_idx = 0
          buff = ""
          for i in l:
              idx = h[i]
  
              if idx != last_idx:
                  debug("Adjust alignment @%x with 00 %x" % (idx, idx - last_idx))
                  buff += "\x00" * (idx - last_idx)
  
              buff += i.get_raw()
              if isinstance(i, StringDataItem):
                  buff += "\x00"
              last_idx = idx + s[idx]
  
          debug("GLOBAL SIZE %d" % len(buff))
  
          return self.fix_checksums(buff)