We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Support for Logitech G613 with receiver id c53d
Apparently solaar v1.0.1 on ubuntu ppa does not support Lightspeed receiver with id c53d . solaar reported that no receiver has been found.

Here is the output of my lsusb

tonny@fenrir:[~]: lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 1b1c:1b65 Corsair 
Bus 003 Device 006: ID 046d:c53d Logitech, Inc. 
Bus 003 Device 003: ID 046d:082b Logitech, Inc. Webcam C170
Bus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0aa7 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `lib/logitech_receiver/base_usb.py`
Content:
```
1 # -*- python-mode -*-
2 # -*- coding: UTF-8 -*-
3 
4 ## Copyright (C) 2012-2013  Daniel Pavel
5 ##
6 ## This program is free software; you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation; either version 2 of the License, or
9 ## (at your option) any later version.
10 ##
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ## GNU General Public License for more details.
15 ##
16 ## You should have received a copy of the GNU General Public License along
17 ## with this program; if not, write to the Free Software Foundation, Inc.,
18 ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 
20 # USB ids of Logitech wireless receivers.
21 # Only receivers supporting the HID++ protocol can go in here.
22 
23 from __future__ import absolute_import, division, print_function, unicode_literals
24 
25 
26 _DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')
27 
28 # max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1
29 # may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False
30 ## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right
31 # re_pairs determines whether a receiver pairs by replacing existing pairings, default to False
32 ## currently only one receiver is so marked - should there be more?
33 
34 _unifying_receiver = lambda product_id: {
35 	'vendor_id':0x046d,
36 	'product_id':product_id, 
37 	'usb_interface':2,
38 	'hid_driver':_DRIVER,
39 	'name':'Unifying Receiver'
40 }
41 
42 _nano_receiver = lambda product_id: {
43 	'vendor_id':0x046d,
44 	'product_id':product_id,
45 	'usb_interface':1,
46 	'hid_driver':_DRIVER,
47 	'name':'Nano Receiver',
48 	'may_unpair': False,
49 	're_pairs': True 
50 }
51 
52 _nano_receiver_max2 = lambda product_id: {
53 	'vendor_id':0x046d,
54 	'product_id':product_id,
55 	'usb_interface':1,
56 	'hid_driver':_DRIVER,
57 	'name':'Nano Receiver',
58 	'max_devices': 2,
59 	'may_unpair': False,
60 	're_pairs': True 
61 }
62 
63 _nano_receiver_maxn = lambda product_id, max: {
64 	'vendor_id':0x046d,
65 	'product_id':product_id,
66 	'usb_interface':1,
67 	'hid_driver':_DRIVER,
68 	'name':'Nano Receiver',
69 	'max_devices': max,
70 	'may_unpair': False,
71 	're_pairs': True 
72 }
73 
74 _lenovo_receiver = lambda product_id: {
75 	'vendor_id':0x17ef, 
76 	'product_id':product_id, 
77 	'usb_interface':1, 
78 	'hid_driver':_DRIVER, 
79 	'name':'Nano Receiver'
80 }
81 
82 _lightspeed_receiver = lambda product_id: {
83 	'vendor_id':0x046d,
84 	'product_id':product_id,
85 	'usb_interface':2,
86 	'hid_driver':_DRIVER,
87 	'name':'Lightspeed Receiver'
88 }
89 
90 # standard Unifying receivers (marked with the orange Unifying logo)
91 UNIFYING_RECEIVER_C52B    = _unifying_receiver(0xc52b)
92 UNIFYING_RECEIVER_C532    = _unifying_receiver(0xc532)
93 
94 # Nano receviers that support the Unifying protocol
95 NANO_RECEIVER_ADVANCED    = _nano_receiver(0xc52f)
96 
97 # Nano receivers that don't support the Unifying protocol
98 NANO_RECEIVER_C517        = _nano_receiver_maxn(0xc517,6)
99 NANO_RECEIVER_C518        = _nano_receiver(0xc518)
100 NANO_RECEIVER_C51A        = _nano_receiver(0xc51a)
101 NANO_RECEIVER_C51B        = _nano_receiver(0xc51b)
102 NANO_RECEIVER_C521        = _nano_receiver(0xc521)
103 NANO_RECEIVER_C525        = _nano_receiver(0xc525)
104 NANO_RECEIVER_C526        = _nano_receiver(0xc526)
105 NANO_RECEIVER_C52e        = _nano_receiver(0xc52e)
106 NANO_RECEIVER_C531        = _nano_receiver(0xc531)
107 NANO_RECEIVER_C534        = _nano_receiver_max2(0xc534)
108 NANO_RECEIVER_C537        = _nano_receiver(0xc537)
109 NANO_RECEIVER_6042        = _lenovo_receiver(0x6042)
110 
111 # Lightspeed receivers
112 LIGHTSPEED_RECEIVER_C539  = _lightspeed_receiver(0xc539)
113 LIGHTSPEED_RECEIVER_C53a  = _lightspeed_receiver(0xc53a)
114 LIGHTSPEED_RECEIVER_C53f  = _lightspeed_receiver(0xc53f)
115 
116 del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver
117 
118 
119 ALL = (
120 		UNIFYING_RECEIVER_C52B,
121 		UNIFYING_RECEIVER_C532,
122 		NANO_RECEIVER_ADVANCED,
123 		NANO_RECEIVER_C517,
124 		NANO_RECEIVER_C518,
125 		NANO_RECEIVER_C51A,
126 		NANO_RECEIVER_C51B,
127 		NANO_RECEIVER_C521,
128 		NANO_RECEIVER_C525,
129 		NANO_RECEIVER_C526,
130 		NANO_RECEIVER_C52e,
131 		NANO_RECEIVER_C531,
132 		NANO_RECEIVER_C534,
133 		NANO_RECEIVER_C537,
134 		NANO_RECEIVER_6042,
135 		LIGHTSPEED_RECEIVER_C539,
136 		LIGHTSPEED_RECEIVER_C53a,
137 		LIGHTSPEED_RECEIVER_C53f,
138 	)
139 
140 def product_information(usb_id):
141 	if isinstance(usb_id,str):
142 		usb_id = int(usb_id,16)
143 	for r in ALL:
144 		if usb_id == r.get('product_id'):
145 			return r
146 	return { }
147
```
--- 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()

```

diff --git a/lib/logitech_receiver/base_usb.py b/lib/logitech_receiver/base_usb.py
--- a/lib/logitech_receiver/base_usb.py
+++ b/lib/logitech_receiver/base_usb.py
@@ -112,6 +112,7 @@
 LIGHTSPEED_RECEIVER_C539  = _lightspeed_receiver(0xc539)
 LIGHTSPEED_RECEIVER_C53a  = _lightspeed_receiver(0xc53a)
 LIGHTSPEED_RECEIVER_C53f  = _lightspeed_receiver(0xc53f)
+LIGHTSPEED_RECEIVER_C53d  = _lightspeed_receiver(0xc53d)
 
 del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver
 
@@ -135,6 +136,7 @@
 		LIGHTSPEED_RECEIVER_C539,
 		LIGHTSPEED_RECEIVER_C53a,
 		LIGHTSPEED_RECEIVER_C53f,
+		LIGHTSPEED_RECEIVER_C53d,
 	)
 
 def product_information(usb_id):

{"golden_diff": "diff --git a/lib/logitech_receiver/base_usb.py b/lib/logitech_receiver/base_usb.py\n--- a/lib/logitech_receiver/base_usb.py\n+++ b/lib/logitech_receiver/base_usb.py\n@@ -112,6 +112,7 @@\n LIGHTSPEED_RECEIVER_C539  = _lightspeed_receiver(0xc539)\n LIGHTSPEED_RECEIVER_C53a  = _lightspeed_receiver(0xc53a)\n LIGHTSPEED_RECEIVER_C53f  = _lightspeed_receiver(0xc53f)\n+LIGHTSPEED_RECEIVER_C53d  = _lightspeed_receiver(0xc53d)\n \n del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n \n@@ -135,6 +136,7 @@\n \t\tLIGHTSPEED_RECEIVER_C539,\n \t\tLIGHTSPEED_RECEIVER_C53a,\n \t\tLIGHTSPEED_RECEIVER_C53f,\n+\t\tLIGHTSPEED_RECEIVER_C53d,\n \t)\n \n def product_information(usb_id):\n", "issue": "Support for Logitech G613 with receiver id c53d\nApparently solaar v1.0.1 on ubuntu ppa does not support Lightspeed receiver with id c53d . solaar reported that no receiver has been found.\r\n\r\nHere is the output of my lsusb\r\n\r\ntonny@fenrir:[~]: lsusb\r\nBus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub\r\nBus 003 Device 005: ID 1b1c:1b65 Corsair \r\nBus 003 Device 006: ID 046d:c53d Logitech, Inc. \r\nBus 003 Device 003: ID 046d:082b Logitech, Inc. Webcam C170\r\nBus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub\r\nBus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\r\nBus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub\r\nBus 001 Device 002: ID 8087:0aa7 Intel Corp. \r\nBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\r\n\n", "before_files": [{"content": "# -*- python-mode -*-\n# -*- coding: UTF-8 -*-\n\n## Copyright (C) 2012-2013  Daniel Pavel\n##\n## This program is free software; you can redistribute it and/or modify\n## it under the terms of the GNU General Public License as published by\n## the Free Software Foundation; either version 2 of the License, or\n## (at your option) any later version.\n##\n## This program is distributed in the hope that it will be useful,\n## but WITHOUT ANY WARRANTY; without even the implied warranty of\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n## GNU General Public License for more details.\n##\n## You should have received a copy of the GNU General Public License along\n## with this program; if not, write to the Free Software Foundation, Inc.,\n## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# USB ids of Logitech wireless receivers.\n# Only receivers supporting the HID++ protocol can go in here.\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\n\n_DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')\n\n# max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1\n# may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False\n## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right\n# re_pairs determines whether a receiver pairs by replacing existing pairings, default to False\n## currently only one receiver is so marked - should there be more?\n\n_unifying_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id, \n\t'usb_interface':2,\n\t'hid_driver':_DRIVER,\n\t'name':'Unifying Receiver'\n}\n\n_nano_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_nano_receiver_max2 = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'max_devices': 2,\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_nano_receiver_maxn = lambda product_id, max: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'max_devices': max,\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_lenovo_receiver = lambda product_id: {\n\t'vendor_id':0x17ef, \n\t'product_id':product_id, \n\t'usb_interface':1, \n\t'hid_driver':_DRIVER, \n\t'name':'Nano Receiver'\n}\n\n_lightspeed_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':2,\n\t'hid_driver':_DRIVER,\n\t'name':'Lightspeed Receiver'\n}\n\n# standard Unifying receivers (marked with the orange Unifying logo)\nUNIFYING_RECEIVER_C52B    = _unifying_receiver(0xc52b)\nUNIFYING_RECEIVER_C532    = _unifying_receiver(0xc532)\n\n# Nano receviers that support the Unifying protocol\nNANO_RECEIVER_ADVANCED    = _nano_receiver(0xc52f)\n\n# Nano receivers that don't support the Unifying protocol\nNANO_RECEIVER_C517        = _nano_receiver_maxn(0xc517,6)\nNANO_RECEIVER_C518        = _nano_receiver(0xc518)\nNANO_RECEIVER_C51A        = _nano_receiver(0xc51a)\nNANO_RECEIVER_C51B        = _nano_receiver(0xc51b)\nNANO_RECEIVER_C521        = _nano_receiver(0xc521)\nNANO_RECEIVER_C525        = _nano_receiver(0xc525)\nNANO_RECEIVER_C526        = _nano_receiver(0xc526)\nNANO_RECEIVER_C52e        = _nano_receiver(0xc52e)\nNANO_RECEIVER_C531        = _nano_receiver(0xc531)\nNANO_RECEIVER_C534        = _nano_receiver_max2(0xc534)\nNANO_RECEIVER_C537        = _nano_receiver(0xc537)\nNANO_RECEIVER_6042        = _lenovo_receiver(0x6042)\n\n# Lightspeed receivers\nLIGHTSPEED_RECEIVER_C539  = _lightspeed_receiver(0xc539)\nLIGHTSPEED_RECEIVER_C53a  = _lightspeed_receiver(0xc53a)\nLIGHTSPEED_RECEIVER_C53f  = _lightspeed_receiver(0xc53f)\n\ndel _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n\n\nALL = (\n\t\tUNIFYING_RECEIVER_C52B,\n\t\tUNIFYING_RECEIVER_C532,\n\t\tNANO_RECEIVER_ADVANCED,\n\t\tNANO_RECEIVER_C517,\n\t\tNANO_RECEIVER_C518,\n\t\tNANO_RECEIVER_C51A,\n\t\tNANO_RECEIVER_C51B,\n\t\tNANO_RECEIVER_C521,\n\t\tNANO_RECEIVER_C525,\n\t\tNANO_RECEIVER_C526,\n\t\tNANO_RECEIVER_C52e,\n\t\tNANO_RECEIVER_C531,\n\t\tNANO_RECEIVER_C534,\n\t\tNANO_RECEIVER_C537,\n\t\tNANO_RECEIVER_6042,\n\t\tLIGHTSPEED_RECEIVER_C539,\n\t\tLIGHTSPEED_RECEIVER_C53a,\n\t\tLIGHTSPEED_RECEIVER_C53f,\n\t)\n\ndef product_information(usb_id):\n\tif isinstance(usb_id,str):\n\t\tusb_id = int(usb_id,16)\n\tfor r in ALL:\n\t\tif usb_id == r.get('product_id'):\n\t\t\treturn r\n\treturn { }\n", "path": "lib/logitech_receiver/base_usb.py"}], "after_files": [{"content": "# -*- python-mode -*-\n# -*- coding: UTF-8 -*-\n\n## Copyright (C) 2012-2013  Daniel Pavel\n##\n## This program is free software; you can redistribute it and/or modify\n## it under the terms of the GNU General Public License as published by\n## the Free Software Foundation; either version 2 of the License, or\n## (at your option) any later version.\n##\n## This program is distributed in the hope that it will be useful,\n## but WITHOUT ANY WARRANTY; without even the implied warranty of\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n## GNU General Public License for more details.\n##\n## You should have received a copy of the GNU General Public License along\n## with this program; if not, write to the Free Software Foundation, Inc.,\n## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# USB ids of Logitech wireless receivers.\n# Only receivers supporting the HID++ protocol can go in here.\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\n\n_DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')\n\n# max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1\n# may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False\n## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right\n# re_pairs determines whether a receiver pairs by replacing existing pairings, default to False\n## currently only one receiver is so marked - should there be more?\n\n_unifying_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id, \n\t'usb_interface':2,\n\t'hid_driver':_DRIVER,\n\t'name':'Unifying Receiver'\n}\n\n_nano_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_nano_receiver_max2 = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'max_devices': 2,\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_nano_receiver_maxn = lambda product_id, max: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':1,\n\t'hid_driver':_DRIVER,\n\t'name':'Nano Receiver',\n\t'max_devices': max,\n\t'may_unpair': False,\n\t're_pairs': True \n}\n\n_lenovo_receiver = lambda product_id: {\n\t'vendor_id':0x17ef, \n\t'product_id':product_id, \n\t'usb_interface':1, \n\t'hid_driver':_DRIVER, \n\t'name':'Nano Receiver'\n}\n\n_lightspeed_receiver = lambda product_id: {\n\t'vendor_id':0x046d,\n\t'product_id':product_id,\n\t'usb_interface':2,\n\t'hid_driver':_DRIVER,\n\t'name':'Lightspeed Receiver'\n}\n\n# standard Unifying receivers (marked with the orange Unifying logo)\nUNIFYING_RECEIVER_C52B    = _unifying_receiver(0xc52b)\nUNIFYING_RECEIVER_C532    = _unifying_receiver(0xc532)\n\n# Nano receviers that support the Unifying protocol\nNANO_RECEIVER_ADVANCED    = _nano_receiver(0xc52f)\n\n# Nano receivers that don't support the Unifying protocol\nNANO_RECEIVER_C517        = _nano_receiver_maxn(0xc517,6)\nNANO_RECEIVER_C518        = _nano_receiver(0xc518)\nNANO_RECEIVER_C51A        = _nano_receiver(0xc51a)\nNANO_RECEIVER_C51B        = _nano_receiver(0xc51b)\nNANO_RECEIVER_C521        = _nano_receiver(0xc521)\nNANO_RECEIVER_C525        = _nano_receiver(0xc525)\nNANO_RECEIVER_C526        = _nano_receiver(0xc526)\nNANO_RECEIVER_C52e        = _nano_receiver(0xc52e)\nNANO_RECEIVER_C531        = _nano_receiver(0xc531)\nNANO_RECEIVER_C534        = _nano_receiver_max2(0xc534)\nNANO_RECEIVER_C537        = _nano_receiver(0xc537)\nNANO_RECEIVER_6042        = _lenovo_receiver(0x6042)\n\n# Lightspeed receivers\nLIGHTSPEED_RECEIVER_C539  = _lightspeed_receiver(0xc539)\nLIGHTSPEED_RECEIVER_C53a  = _lightspeed_receiver(0xc53a)\nLIGHTSPEED_RECEIVER_C53f  = _lightspeed_receiver(0xc53f)\nLIGHTSPEED_RECEIVER_C53d  = _lightspeed_receiver(0xc53d)\n\ndel _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n\n\nALL = (\n\t\tUNIFYING_RECEIVER_C52B,\n\t\tUNIFYING_RECEIVER_C532,\n\t\tNANO_RECEIVER_ADVANCED,\n\t\tNANO_RECEIVER_C517,\n\t\tNANO_RECEIVER_C518,\n\t\tNANO_RECEIVER_C51A,\n\t\tNANO_RECEIVER_C51B,\n\t\tNANO_RECEIVER_C521,\n\t\tNANO_RECEIVER_C525,\n\t\tNANO_RECEIVER_C526,\n\t\tNANO_RECEIVER_C52e,\n\t\tNANO_RECEIVER_C531,\n\t\tNANO_RECEIVER_C534,\n\t\tNANO_RECEIVER_C537,\n\t\tNANO_RECEIVER_6042,\n\t\tLIGHTSPEED_RECEIVER_C539,\n\t\tLIGHTSPEED_RECEIVER_C53a,\n\t\tLIGHTSPEED_RECEIVER_C53f,\n\t\tLIGHTSPEED_RECEIVER_C53d,\n\t)\n\ndef product_information(usb_id):\n\tif isinstance(usb_id,str):\n\t\tusb_id = int(usb_id,16)\n\tfor r in ALL:\n\t\tif usb_id == r.get('product_id'):\n\t\t\treturn r\n\treturn { }\n", "path": "lib/logitech_receiver/base_usb.py"}]}