code: def _mark_candidate_indexes(lines, candidate):
      
      # at first consider everything to be potential signature lines
      markers = list('c' * len(candidate))
  
      # mark lines starting from bottom up
      for i, line_idx in reversed(list(enumerate(candidate))):
          if len(lines[line_idx].strip()) > TOO_LONG_SIGNATURE_LINE:
              markers[i] = 'l'
          else:
              line = lines[line_idx].strip()
              if line.startswith('-') and line.strip("-"):
                  markers[i] = 'd'
  
      return "".join(markers)
docs: Mark candidate indexes with markers
  
      Markers:
  
      * c - line that could be a signature line
      * l - long line
      * d - line that starts with dashes but has other chars as well
  
      >>> _mark_candidate_lines(['Some text', '', '-', 'Bob'], [0, 2, 3])
      'cdc'