prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  I miss one with C-Trace.de/WZV
  Hello guys,
  
  I just switched from ics to C-Trace.de. Since then, unfortunately, it no longer shows me all the bins. I'm missing the residual waste, everything else is displayed as usual. Can someone help me?
  
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py`
  Content:
  ```
  1 import requests
  2 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
  3 from waste_collection_schedule.service.ICS import ICS
  4 
  5 TITLE = "C-Trace"
  6 DESCRIPTION = "Source for C-Trace.de."
  7 URL = "https://c-trace.de/"
  8 EXTRA_INFO = [
  9     {
  10         "title": "Bremener Stadreinigung",
  11         "url": "https://www.die-bremer-stadtreinigung.de/",
  12     },
  13     {
  14         "title": "AWB Landkreis Augsburg",
  15         "url": "https://www.awb-landkreis-augsburg.de/",
  16     },
  17     {
  18         "title": "WZV Kreis Segeberg",
  19         "url": "https://www.wzv.de/",
  20     },
  21 ]
  22 TEST_CASES = {
  23     "Bremen": {"ort": "Bremen", "strasse": "Abbentorstraße", "hausnummer": 5},
  24     "AugsburgLand": {
  25         "ort": "Königsbrunn",
  26         "strasse": "Marktplatz",
  27         "hausnummer": 7,
  28         "service": "augsburglandkreis",
  29     },
  30 }
  31 
  32 
  33 BASE_URL = "https://web.c-trace.de"
  34 
  35 
  36 class Source:
  37     def __init__(self, ort, strasse, hausnummer, service=None):
  38         # Compatibility handling for Bremen which was the first supported
  39         # district and didn't require to set a service name.
  40         if service is None:
  41             if ort == "Bremen":
  42                 service = "bremenabfallkalender"
  43             else:
  44                 raise Exception("service is missing")
  45 
  46         self._service = service
  47         self._ort = ort
  48         self._strasse = strasse
  49         self._hausnummer = hausnummer
  50         self._ics = ICS(regex=r"Abfuhr: (.*)")
  51 
  52     def fetch(self):
  53         session = requests.session()
  54 
  55         # get session url
  56         r = session.get(
  57             f"{BASE_URL}/{self._service}/Abfallkalender",
  58             allow_redirects=False,
  59         )
  60         session_id = r.headers["location"].split("/")[
  61             2
  62         ]  # session_id like "(S(r3bme50igdgsp2lstgxxhvs2))"
  63 
  64         args = {
  65             "Ort": self._ort,
  66             "Gemeinde": self._ort,
  67             "Strasse": self._strasse,
  68             "Hausnr": self._hausnummer,
  69             "Abfall": "|".join(str(i) for i in range(1, 99)),  # return all waste types
  70         }
  71         r = session.get(
  72             f"{BASE_URL}/{self._service}/{session_id}/abfallkalender/cal", params=args
  73         )
  74         r.raise_for_status()
  75 
  76         # parse ics file
  77         r.encoding = "utf-8"
  78         dates = self._ics.convert(r.text)
  79 
  80         entries = []
  81         for d in dates:
  82             entries.append(Collection(d[0], d[1]))
  83         return entries
  84
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py
  --- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py
  +++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py
  @@ -27,6 +27,12 @@
           "hausnummer": 7,
           "service": "augsburglandkreis",
       },
  +    "WZV": {
  +        "ort": "Bark",
  +        "strasse": "Birkenweg",
  +        "hausnummer": 1,
  +        "service": "segebergwzv-abfallkalender",
  +    },
   }
   
   
  @@ -66,7 +72,7 @@
               "Gemeinde": self._ort,
               "Strasse": self._strasse,
               "Hausnr": self._hausnummer,
  -            "Abfall": "|".join(str(i) for i in range(1, 99)),  # return all waste types
  +            "Abfall": "|".join(str(i) for i in range(0, 99)),  # return all waste types
           }
           r = session.get(
               f"{BASE_URL}/{self._service}/{session_id}/abfallkalender/cal", params=args
  
verification_info: {"golden_diff": "diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py\n--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py\n+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py\n@@ -27,6 +27,12 @@\n         \"hausnummer\": 7,\n         \"service\": \"augsburglandkreis\",\n     },\n+    \"WZV\": {\n+        \"ort\": \"Bark\",\n+        \"strasse\": \"Birkenweg\",\n+        \"hausnummer\": 1,\n+        \"service\": \"segebergwzv-abfallkalender\",\n+    },\n }\n \n \n@@ -66,7 +72,7 @@\n             \"Gemeinde\": self._ort,\n             \"Strasse\": self._strasse,\n             \"Hausnr\": self._hausnummer,\n-            \"Abfall\": \"|\".join(str(i) for i in range(1, 99)),  # return all waste types\n+            \"Abfall\": \"|\".join(str(i) for i in range(0, 99)),  # return all waste types\n         }\n         r = session.get(\n             f\"{BASE_URL}/{self._service}/{session_id}/abfallkalender/cal\", params=args\n", "issue": "I miss one with C-Trace.de/WZV\nHello guys,\r\n\r\nI just switched from ics to C-Trace.de. Since then, unfortunately, it no longer shows me all the bins. I'm missing the residual waste, everything else is displayed as usual. Can someone help me?\r\n\r\n\n", "before_files": [{"content": "import requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"C-Trace\"\nDESCRIPTION = \"Source for C-Trace.de.\"\nURL = \"https://c-trace.de/\"\nEXTRA_INFO = [\n    {\n        \"title\": \"Bremener Stadreinigung\",\n        \"url\": \"https://www.die-bremer-stadtreinigung.de/\",\n    },\n    {\n        \"title\": \"AWB Landkreis Augsburg\",\n        \"url\": \"https://www.awb-landkreis-augsburg.de/\",\n    },\n    {\n        \"title\": \"WZV Kreis Segeberg\",\n        \"url\": \"https://www.wzv.de/\",\n    },\n]\nTEST_CASES = {\n    \"Bremen\": {\"ort\": \"Bremen\", \"strasse\": \"Abbentorstra\u00dfe\", \"hausnummer\": 5},\n    \"AugsburgLand\": {\n        \"ort\": \"K\u00f6nigsbrunn\",\n        \"strasse\": \"Marktplatz\",\n        \"hausnummer\": 7,\n        \"service\": \"augsburglandkreis\",\n    },\n}\n\n\nBASE_URL = \"https://web.c-trace.de\"\n\n\nclass Source:\n    def __init__(self, ort, strasse, hausnummer, service=None):\n        # Compatibility handling for Bremen which was the first supported\n        # district and didn't require to set a service name.\n        if service is None:\n            if ort == \"Bremen\":\n                service = \"bremenabfallkalender\"\n            else:\n                raise Exception(\"service is missing\")\n\n        self._service = service\n        self._ort = ort\n        self._strasse = strasse\n        self._hausnummer = hausnummer\n        self._ics = ICS(regex=r\"Abfuhr: (.*)\")\n\n    def fetch(self):\n        session = requests.session()\n\n        # get session url\n        r = session.get(\n            f\"{BASE_URL}/{self._service}/Abfallkalender\",\n            allow_redirects=False,\n        )\n        session_id = r.headers[\"location\"].split(\"/\")[\n            2\n        ]  # session_id like \"(S(r3bme50igdgsp2lstgxxhvs2))\"\n\n        args = {\n            \"Ort\": self._ort,\n            \"Gemeinde\": self._ort,\n            \"Strasse\": self._strasse,\n            \"Hausnr\": self._hausnummer,\n            \"Abfall\": \"|\".join(str(i) for i in range(1, 99)),  # return all waste types\n        }\n        r = session.get(\n            f\"{BASE_URL}/{self._service}/{session_id}/abfallkalender/cal\", params=args\n        )\n        r.raise_for_status()\n\n        # parse ics file\n        r.encoding = \"utf-8\"\n        dates = self._ics.convert(r.text)\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py"}], "after_files": [{"content": "import requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"C-Trace\"\nDESCRIPTION = \"Source for C-Trace.de.\"\nURL = \"https://c-trace.de/\"\nEXTRA_INFO = [\n    {\n        \"title\": \"Bremener Stadreinigung\",\n        \"url\": \"https://www.die-bremer-stadtreinigung.de/\",\n    },\n    {\n        \"title\": \"AWB Landkreis Augsburg\",\n        \"url\": \"https://www.awb-landkreis-augsburg.de/\",\n    },\n    {\n        \"title\": \"WZV Kreis Segeberg\",\n        \"url\": \"https://www.wzv.de/\",\n    },\n]\nTEST_CASES = {\n    \"Bremen\": {\"ort\": \"Bremen\", \"strasse\": \"Abbentorstra\u00dfe\", \"hausnummer\": 5},\n    \"AugsburgLand\": {\n        \"ort\": \"K\u00f6nigsbrunn\",\n        \"strasse\": \"Marktplatz\",\n        \"hausnummer\": 7,\n        \"service\": \"augsburglandkreis\",\n    },\n    \"WZV\": {\n        \"ort\": \"Bark\",\n        \"strasse\": \"Birkenweg\",\n        \"hausnummer\": 1,\n        \"service\": \"segebergwzv-abfallkalender\",\n    },\n}\n\n\nBASE_URL = \"https://web.c-trace.de\"\n\n\nclass Source:\n    def __init__(self, ort, strasse, hausnummer, service=None):\n        # Compatibility handling for Bremen which was the first supported\n        # district and didn't require to set a service name.\n        if service is None:\n            if ort == \"Bremen\":\n                service = \"bremenabfallkalender\"\n            else:\n                raise Exception(\"service is missing\")\n\n        self._service = service\n        self._ort = ort\n        self._strasse = strasse\n        self._hausnummer = hausnummer\n        self._ics = ICS(regex=r\"Abfuhr: (.*)\")\n\n    def fetch(self):\n        session = requests.session()\n\n        # get session url\n        r = session.get(\n            f\"{BASE_URL}/{self._service}/Abfallkalender\",\n            allow_redirects=False,\n        )\n        session_id = r.headers[\"location\"].split(\"/\")[\n            2\n        ]  # session_id like \"(S(r3bme50igdgsp2lstgxxhvs2))\"\n\n        args = {\n            \"Ort\": self._ort,\n            \"Gemeinde\": self._ort,\n            \"Strasse\": self._strasse,\n            \"Hausnr\": self._hausnummer,\n            \"Abfall\": \"|\".join(str(i) for i in range(0, 99)),  # return all waste types\n        }\n        r = session.get(\n            f\"{BASE_URL}/{self._service}/{session_id}/abfallkalender/cal\", params=args\n        )\n        r.raise_for_status()\n\n        # parse ics file\n        r.encoding = \"utf-8\"\n        dates = self._ics.convert(r.text)\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/c_trace_de.py"}]}