code: def _mark_lines(lines, sender):
      
      global EXTRACTOR
  
      candidate = get_signature_candidate(lines)
  
      # at first consider everything to be text no signature
      markers = list('t' * len(lines))
  
      # mark lines starting from bottom up
      # mark only lines that belong to candidate
      # no need to mark all lines of the message
      for i, line in reversed(list(enumerate(candidate))):
          # markers correspond to lines not candidate
          # so we need to recalculate our index to be
          # relative to lines not candidate
          j = len(lines) - len(candidate) + i
          if not line.strip():
              markers[j] = 'e'
          elif is_signature_line(line, sender, EXTRACTOR):
              markers[j] = 's'
  
      return "".join(markers)
docs: Mark message lines with markers to distinguish signature lines.
  
      Markers:
  
      * e - empty line
      * s - line identified as signature
      * t - other i.e. ordinary text line
  
      >>> mark_message_lines(['Some text', '', 'Bob'], 'Bob')
      'tes'