<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ParseFileset(self, fileset=None):
 """Process linux system group and gshadow files. Orchestrates collection of account entries from /etc/group and /etc/gshadow. The group and gshadow entries are reconciled and member users are added to the entry. Args: fileset: A dict of files mapped from path to an open file. Yields: - A series of Group entries, each of which is populated with group [memberships and indications of the shadow state of any group password. - A series of anomalies in cases where there are mismatches between group and gshadow states. """

    # Get relevant shadow attributes.
    gshadow = fileset.get("/etc/gshadow")
    if gshadow:
      self._ParseFile(gshadow, self.ParseGshadowEntry)
    else:
      logging.debug("No /etc/gshadow file.")
    group = fileset.get("/etc/group")
    if group:
      self._ParseFile(group, self.ParseGroupEntry)
    else:
      logging.debug("No /etc/group file.")
    self.ReconcileShadow(self.shadow_store)
    # Identify any anomalous group/shadow entries.
    # This needs to be done before memberships are merged: merged memberships
    # are the *effective* membership regardless of wierd configurations.
    for anom in self.FindAnomalies():
      yield anom
    # Then add shadow group members to the group membership.
    self.MergeMembers()
    for group in itervalues(self.entry):
      yield group