input: Write a python function to parse a stream containing email to employer data and return a dictionary with email addresses as keys and a list of tuples (organization, date) as values.
  assert parse_email_to_employer_stream("# List of enrollments\njsmith@example.com    Example Company # John Smith\njdoe@example.com    Example Company   # John Doe\njsmith@example.com    Bitergia < 2015-01-01  # John Smith - Bitergia\n") == {'jsmith@example.com': [('Example Company', None), ('Bitergia', '2015-01-01')], 'jdoe@example.com': [('Example Company', None)]}
  assert parse_email_to_employer_stream("jane@example.com    Example Corp\njohn@example.net    Tech Org < 2020-05-15\n") == {'jane@example.com': [('Example Corp', None)], 'john@example.net': [('Tech Org', '2020-05-15')]}
  assert parse_email_to_employer_stream("") == {}
output: def parse_email_to_employer_stream(stream):
      result = {}
      for line in stream.strip().split('\n'):
          if not line.strip() or line.startswith('#'):
              continue
          
          parts = line.split()
          email = parts[0]
          org_parts = []
          date = None
  
          for part in parts[1:]:
              if part.startswith('<') and part.endswith('>'):
                  date = part[1:-1]
              elif '<' in part and part.endswith('>'):
                  org_parts.append(part.split('<')[0].strip())
                  date = part.split('<')[1][:-1]
              else:
                  org_parts.append(part)
  
          organization = ' '.join(org_parts).strip()
          if email not in result:
              result[email] = []
          result[email].append((organization, date))
      
      return result