def merge_results(old_results, new_results):
    """Update results in baseline with latest information.

    :type old_results: dict
    :param old_results: results of status quo

    :type new_results: dict
    :param new_results: results to replace status quo

    :rtype: dict
    """
    for filename, old_secrets in old_results.items():
        if filename not in new_results:
            continue

        old_secrets_mapping = dict()
        for old_secret in old_secrets:
            old_secrets_mapping[old_secret['hashed_secret']] = old_secret

        for new_secret in new_results[filename]:
            if new_secret['hashed_secret'] not in old_secrets_mapping:
                # We don't join the two secret sets, because if the newer
                # result set did not discover an old secret, it probably
                # moved.
                continue

            old_secret = old_secrets_mapping[new_secret['hashed_secret']]
            # Only propagate 'is_secret' if it's not already there
            if 'is_secret' in old_secret and 'is_secret' not in new_secret:
                new_secret['is_secret'] = old_secret['is_secret']

    return new_results
Update results in baseline with latest information.

    :type old_results: dict
    :param old_results: results of status quo

    :type new_results: dict
    :param new_results: results to replace status quo

    :rtype: dict