def METHOD_NAME(
    _responses: lib.Deserializable[typing.List[typing.Tuple[str, dict]]],
    settings: provider_utils.Settings,
) -> typing.Tuple[typing.List[models.TrackingDetails], typing.List[models.Message]]:
    responses = _responses.deserialize()
    packages = [
        result["trackResponse"]["shipment"][0]
        for _, result in responses
        if "trackResponse" in result
        and result["trackResponse"]["shipment"][0].get("package") is not None
    ]
    messages: typing.List[models.Message] = error.parse_error_response(
        [response for _, response in responses],
        settings=settings,
    )
    details = [_extract_details(package, settings) for package in packages]
    return details, messages