docs: def ApplyPluginToMultiTypeCollection(plugin, output_collection,
                                       source_urn=None):
    """Applies instant output plugin to a multi-type collection.
  
    Args:
      plugin: InstantOutputPlugin instance.
      output_collection: MultiTypeCollection instance.
      source_urn: If not None, override source_urn for collection items. This has
        to be used when exporting flow results - their GrrMessages don't have
        "source" attribute set.
  
    Yields:
      Bytes chunks, as generated by the plugin.
    """
    for chunk in plugin.Start():
      yield chunk
  
    for stored_type_name in sorted(output_collection.ListStoredTypes()):
      stored_cls = rdfvalue.RDFValue.classes[stored_type_name]
  
      # pylint: disable=cell-var-from-loop
      def GetValues():
        for timestamp, value in output_collection.ScanByType(stored_type_name):
          _ = timestamp
          if source_urn:
            value.source = source_urn
          yield value
  
      # pylint: enable=cell-var-from-loop
  
      for chunk in plugin.ProcessValues(stored_cls, GetValues):
        yield chunk
  
    for chunk in plugin.Finish():
      yield chunk