def METHOD_NAME(dict1, dict2):
    if dict1.keys() != dict2.keys():
        return False
    for key, value in dict1.items():
        if isinstance(value, dict):
            if not METHOD_NAME(value, dict2[key]):
                return False
        elif isinstance(value, list):
            if len(value) != len(dict2[key]):
                return False
            for elem1, elem2 in zip(value, dict2[key]):
                if isinstance(elem1, T1CharString):
                    elem1.compile()
                    elem2.compile()
                    if elem1.bytecode != elem2.bytecode:
                        return False
                else:
                    if elem1 != elem2:
                        return False
        elif isinstance(value, T1CharString):
            value.compile()
            dict2[key].compile()
            if value.bytecode != dict2[key].bytecode:
                return False
        else:
            if value != dict2[key]:
                return False
    return True