human
Complete this python program:
def ApplyPluginToMultiTypeCollection(plugin, output_collection, source_urn=None):
assistant
#Here is the Python code you requested.

    """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]
        def GetValues():
            for (timestamp, value) in output_collection.ScanByType(stored_type_name):
                _ = timestamp
                if source_urn:
                    value.source = source_urn
                (yield value)
        for chunk in plugin.ProcessValues(stored_cls, GetValues):
            (yield chunk)
    for chunk in plugin.Finish():
        (yield chunk)