code: def _FindKeys(self, key, names, matches):
      
      for name, subkey in iter(key.items()):
        if name in names:
          matches.append((name, subkey))
  
        if isinstance(subkey, dict):
          self._FindKeys(subkey, names, matches)
docs: Searches the plist key hierarchy for keys with matching names.
  
      If a match is found a tuple of the key name and value is added to
      the matches list.
  
      Args:
        key (dict[str, object]): plist key.
        names (list[str]): names of the keys to match.
        matches (list[str]): keys with matching names.