<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def str_search(self, search: str) -> List[HistoryItem]: """Find history items which contain a given string :param search: the string to search for :return: a list of history items, or an empty list if the string was not found """

        def isin(history_item):
            """filter function for string search of history"""
            sloppy = utils.norm_fold(search)
            return sloppy in utils.norm_fold(history_item) or sloppy in utils.norm_fold(history_item.expanded)
        return [item for item in self if isin(item)]