We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
LiveContributorRelationship.__call__() returns a list of RedditorList if caller have 'manage' permission
## Issue Description

As the title said. To reproduce:

```
>>> import praw
>>> reddit = praw.Reddit(...)
>>> thread = reddit.live(...)  # thread I created 
>>> thread.contributor()
[<praw.models.list.redditor.RedditorList object at 0x101865d50>, <praw.models.list.redditor.RedditorList object at 0x100be6f90>]
```

JSON (copied from browser):

```
[
    {
        "kind": "UserList",
        "data": {
            "children": [
                {
                    "permissions": [
                        "all"
                    ],
                    "id": "t2_ll32z",
                    "name": "nmtake"
                }
            ]
        }
    },
    {
        "kind": "UserList",
        "data": {
            "children": [ ]
        }
    }
]
```

It seems that latter UserList reprsents invited users who didn't accept invitation yet: ([source](https://github.com/reddit/reddit-plugin-liveupdate/blob/a7cde1cf917c4118c4cb114c73a92f272e439816/reddit_liveupdate/controllers.py#L515-L540))

## System Information

    PRAW Version:  50516a
    Python Version: 2.7.13
    Operating System: OS X 10.11.6

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `praw/models/reddit/live.py`
Content:
```
1 """Provide the LiveThread class."""
2 from ...const import API_PATH
3 from ..listing.generator import ListingGenerator
4 from .base import RedditBase
5 from .redditor import Redditor
6 
7 
8 class LiveThread(RedditBase):
9     """An individual LiveThread object."""
10 
11     STR_FIELD = 'id'
12 
13     @property
14     def contributor(self):
15         """An instance of :class:`.LiveContributorRelationship`.
16 
17         Usage:
18 
19         .. code-block:: python
20 
21            thread = reddit.live('ukaeu1ik4sw5')
22            for contributor in thread.contributor():
23                print(contributor)
24 
25         """
26         if self._contributor is None:
27             self._contributor = LiveContributorRelationship(self)
28         return self._contributor
29 
30     def __eq__(self, other):
31         """Return whether the other instance equals the current.
32 
33         .. note:: This comparison is case sensitive.
34         """
35         if isinstance(other, str):
36             return other == str(self)
37         return (isinstance(other, self.__class__) and
38                 str(self) == str(other))
39 
40     def __getitem__(self, update_id):
41         """Return a lazy :class:`.LiveUpdate` instance.
42 
43         .. warning:: At this time, accesing lazy attributes, whose value
44            have not loaded, raises ``AttributeError``.
45 
46         :param update_id: A live update ID, e.g.,
47             ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.
48 
49         Usage:
50 
51         .. code-block:: python
52 
53            thread = reddit.live('ukaeu1ik4sw5')
54            update = thread['7827987a-c998-11e4-a0b9-22000b6a88d2']
55            update.thread     # LiveThread(id='ukaeu1ik4sw5')
56            update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'
57            update.author     # raise ``AttributeError``
58         """
59         return LiveUpdate(self._reddit, self.id, update_id)
60 
61     def __hash__(self):
62         """Return the hash of the current instance."""
63         return hash(self.__class__.__name__) ^ hash(str(self))
64 
65     def __init__(self, reddit, id=None,  # pylint: disable=redefined-builtin
66                  _data=None):
67         """Initialize a lazy :class:`.LiveThread` instance.
68 
69         :param reddit: An instance of :class:`.Reddit`.
70         :param id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``
71         """
72         if bool(id) == bool(_data):
73             raise TypeError('Either `id` or `_data` must be provided.')
74         super(LiveThread, self).__init__(reddit, _data)
75         if id:
76             self.id = id  # pylint: disable=invalid-name
77         self._contributor = None
78 
79     def _info_path(self):
80         return API_PATH['liveabout'].format(id=self.id)
81 
82     def updates(self, **generator_kwargs):
83         """Return a :class:`.ListingGenerator` yields :class:`.LiveUpdate` s.
84 
85         :param generator_kwargs: keyword arguments passed to
86             :class:`.ListingGenerator` constructor.
87         :returns: A :class:`.ListingGenerator` object which yields
88             :class:`.LiveUpdate` object.
89         """
90         url = API_PATH['live_updates'].format(id=self.id)
91         for update in ListingGenerator(self._reddit, url,
92                                        **generator_kwargs):
93             update._thread = self
94             yield update
95 
96 
97 class LiveContributorRelationship(object):
98     """Provide methods to interact with live threads' contributors."""
99 
100     def __call__(self):
101         """Return a :class:`.RedditorList` for live threads' contributors.
102 
103         Usage:
104 
105         .. code-block:: python
106 
107            thread = reddit.live('ukaeu1ik4sw5')
108            for contributor in thread.contributor():
109                print(contributor)
110 
111         """
112         url = API_PATH['live_contributors'].format(id=self.thread.id)
113         return self.thread._reddit.get(url)
114 
115     def __init__(self, thread):
116         """Create a LiveContributorRelationship instance.
117 
118         :param thread: An instance of :class:`.LiveThread`.
119 
120         """
121         self.thread = thread
122 
123 
124 class LiveUpdate(RedditBase):
125     """An individual :class:`.LiveUpdate` object."""
126 
127     STR_FIELD = 'id'
128 
129     @property
130     def thread(self):
131         """Return :class:`.LiveThread` object the update object belongs to."""
132         return self._thread
133 
134     def __init__(self, reddit, thread_id=None, update_id=None, _data=None):
135         """Initialize a lazy :class:`.LiveUpdate` instance.
136 
137         Either ``thread_id`` and ``update_id``, or ``_data`` must be
138         provided.
139 
140         .. warning:: At this time, accesing lazy attributes, whose value
141            have not loaded, raises ``AttributeError``.
142 
143         :param reddit: An instance of :class:`.Reddit`.
144         :param thread_id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``.
145         :param update_id: A live update ID, e.g.,
146             ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.
147 
148         Usage:
149 
150         .. code-block:: python
151 
152            update = LiveUpdate(reddit, 'ukaeu1ik4sw5',
153                                '7827987a-c998-11e4-a0b9-22000b6a88d2')
154            update.thread     # LiveThread(id='ukaeu1ik4sw5')
155            update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'
156            update.author     # raise ``AttributeError``
157         """
158         if _data is not None:
159             super(LiveUpdate, self).__init__(reddit, _data)
160             self._fetched = True
161         elif thread_id and update_id:
162             super(LiveUpdate, self).__init__(reddit, None)
163             self._thread = LiveThread(self._reddit, thread_id)
164             self.id = update_id  # pylint: disable=invalid-name
165             self._fetched = True
166         else:
167             raise TypeError('Either `thread_id` and `update_id`, or '
168                             '`_data` must be provided.')
169 
170     def __setattr__(self, attribute, value):
171         """Objectify author."""
172         if attribute == 'author':
173             value = Redditor(self._reddit, name=value)
174         super(LiveUpdate, self).__setattr__(attribute, value)
175
```
--- 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/praw/models/reddit/live.py b/praw/models/reddit/live.py
--- a/praw/models/reddit/live.py
+++ b/praw/models/reddit/live.py
@@ -1,6 +1,7 @@
 """Provide the LiveThread class."""
 from ...const import API_PATH
 from ..listing.generator import ListingGenerator
+from ..list.redditor import RedditorList
 from .base import RedditBase
 from .redditor import Redditor
 
@@ -110,7 +111,8 @@
 
         """
         url = API_PATH['live_contributors'].format(id=self.thread.id)
-        return self.thread._reddit.get(url)
+        temp = self.thread._reddit.get(url)
+        return temp if isinstance(temp, RedditorList) else temp[0]
 
     def __init__(self, thread):
         """Create a LiveContributorRelationship instance.

{"golden_diff": "diff --git a/praw/models/reddit/live.py b/praw/models/reddit/live.py\n--- a/praw/models/reddit/live.py\n+++ b/praw/models/reddit/live.py\n@@ -1,6 +1,7 @@\n \"\"\"Provide the LiveThread class.\"\"\"\n from ...const import API_PATH\n from ..listing.generator import ListingGenerator\n+from ..list.redditor import RedditorList\n from .base import RedditBase\n from .redditor import Redditor\n \n@@ -110,7 +111,8 @@\n \n         \"\"\"\n         url = API_PATH['live_contributors'].format(id=self.thread.id)\n-        return self.thread._reddit.get(url)\n+        temp = self.thread._reddit.get(url)\n+        return temp if isinstance(temp, RedditorList) else temp[0]\n \n     def __init__(self, thread):\n         \"\"\"Create a LiveContributorRelationship instance.\n", "issue": "LiveContributorRelationship.__call__() returns a list of RedditorList if caller have 'manage' permission\n## Issue Description\r\n\r\nAs the title said. To reproduce:\r\n\r\n```\r\n>>> import praw\r\n>>> reddit = praw.Reddit(...)\r\n>>> thread = reddit.live(...)  # thread I created \r\n>>> thread.contributor()\r\n[<praw.models.list.redditor.RedditorList object at 0x101865d50>, <praw.models.list.redditor.RedditorList object at 0x100be6f90>]\r\n```\r\n\r\nJSON (copied from browser):\r\n\r\n```\r\n[\r\n    {\r\n        \"kind\": \"UserList\",\r\n        \"data\": {\r\n            \"children\": [\r\n                {\r\n                    \"permissions\": [\r\n                        \"all\"\r\n                    ],\r\n                    \"id\": \"t2_ll32z\",\r\n                    \"name\": \"nmtake\"\r\n                }\r\n            ]\r\n        }\r\n    },\r\n    {\r\n        \"kind\": \"UserList\",\r\n        \"data\": {\r\n            \"children\": [ ]\r\n        }\r\n    }\r\n]\r\n```\r\n\r\nIt seems that latter UserList reprsents invited users who didn't accept invitation yet: ([source](https://github.com/reddit/reddit-plugin-liveupdate/blob/a7cde1cf917c4118c4cb114c73a92f272e439816/reddit_liveupdate/controllers.py#L515-L540))\r\n\r\n## System Information\r\n\r\n    PRAW Version:  50516a\r\n    Python Version: 2.7.13\r\n    Operating System: OS X 10.11.6\n", "before_files": [{"content": "\"\"\"Provide the LiveThread class.\"\"\"\nfrom ...const import API_PATH\nfrom ..listing.generator import ListingGenerator\nfrom .base import RedditBase\nfrom .redditor import Redditor\n\n\nclass LiveThread(RedditBase):\n    \"\"\"An individual LiveThread object.\"\"\"\n\n    STR_FIELD = 'id'\n\n    @property\n    def contributor(self):\n        \"\"\"An instance of :class:`.LiveContributorRelationship`.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           for contributor in thread.contributor():\n               print(contributor)\n\n        \"\"\"\n        if self._contributor is None:\n            self._contributor = LiveContributorRelationship(self)\n        return self._contributor\n\n    def __eq__(self, other):\n        \"\"\"Return whether the other instance equals the current.\n\n        .. note:: This comparison is case sensitive.\n        \"\"\"\n        if isinstance(other, str):\n            return other == str(self)\n        return (isinstance(other, self.__class__) and\n                str(self) == str(other))\n\n    def __getitem__(self, update_id):\n        \"\"\"Return a lazy :class:`.LiveUpdate` instance.\n\n        .. warning:: At this time, accesing lazy attributes, whose value\n           have not loaded, raises ``AttributeError``.\n\n        :param update_id: A live update ID, e.g.,\n            ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           update = thread['7827987a-c998-11e4-a0b9-22000b6a88d2']\n           update.thread     # LiveThread(id='ukaeu1ik4sw5')\n           update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'\n           update.author     # raise ``AttributeError``\n        \"\"\"\n        return LiveUpdate(self._reddit, self.id, update_id)\n\n    def __hash__(self):\n        \"\"\"Return the hash of the current instance.\"\"\"\n        return hash(self.__class__.__name__) ^ hash(str(self))\n\n    def __init__(self, reddit, id=None,  # pylint: disable=redefined-builtin\n                 _data=None):\n        \"\"\"Initialize a lazy :class:`.LiveThread` instance.\n\n        :param reddit: An instance of :class:`.Reddit`.\n        :param id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``\n        \"\"\"\n        if bool(id) == bool(_data):\n            raise TypeError('Either `id` or `_data` must be provided.')\n        super(LiveThread, self).__init__(reddit, _data)\n        if id:\n            self.id = id  # pylint: disable=invalid-name\n        self._contributor = None\n\n    def _info_path(self):\n        return API_PATH['liveabout'].format(id=self.id)\n\n    def updates(self, **generator_kwargs):\n        \"\"\"Return a :class:`.ListingGenerator` yields :class:`.LiveUpdate` s.\n\n        :param generator_kwargs: keyword arguments passed to\n            :class:`.ListingGenerator` constructor.\n        :returns: A :class:`.ListingGenerator` object which yields\n            :class:`.LiveUpdate` object.\n        \"\"\"\n        url = API_PATH['live_updates'].format(id=self.id)\n        for update in ListingGenerator(self._reddit, url,\n                                       **generator_kwargs):\n            update._thread = self\n            yield update\n\n\nclass LiveContributorRelationship(object):\n    \"\"\"Provide methods to interact with live threads' contributors.\"\"\"\n\n    def __call__(self):\n        \"\"\"Return a :class:`.RedditorList` for live threads' contributors.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           for contributor in thread.contributor():\n               print(contributor)\n\n        \"\"\"\n        url = API_PATH['live_contributors'].format(id=self.thread.id)\n        return self.thread._reddit.get(url)\n\n    def __init__(self, thread):\n        \"\"\"Create a LiveContributorRelationship instance.\n\n        :param thread: An instance of :class:`.LiveThread`.\n\n        \"\"\"\n        self.thread = thread\n\n\nclass LiveUpdate(RedditBase):\n    \"\"\"An individual :class:`.LiveUpdate` object.\"\"\"\n\n    STR_FIELD = 'id'\n\n    @property\n    def thread(self):\n        \"\"\"Return :class:`.LiveThread` object the update object belongs to.\"\"\"\n        return self._thread\n\n    def __init__(self, reddit, thread_id=None, update_id=None, _data=None):\n        \"\"\"Initialize a lazy :class:`.LiveUpdate` instance.\n\n        Either ``thread_id`` and ``update_id``, or ``_data`` must be\n        provided.\n\n        .. warning:: At this time, accesing lazy attributes, whose value\n           have not loaded, raises ``AttributeError``.\n\n        :param reddit: An instance of :class:`.Reddit`.\n        :param thread_id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``.\n        :param update_id: A live update ID, e.g.,\n            ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.\n\n        Usage:\n\n        .. code-block:: python\n\n           update = LiveUpdate(reddit, 'ukaeu1ik4sw5',\n                               '7827987a-c998-11e4-a0b9-22000b6a88d2')\n           update.thread     # LiveThread(id='ukaeu1ik4sw5')\n           update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'\n           update.author     # raise ``AttributeError``\n        \"\"\"\n        if _data is not None:\n            super(LiveUpdate, self).__init__(reddit, _data)\n            self._fetched = True\n        elif thread_id and update_id:\n            super(LiveUpdate, self).__init__(reddit, None)\n            self._thread = LiveThread(self._reddit, thread_id)\n            self.id = update_id  # pylint: disable=invalid-name\n            self._fetched = True\n        else:\n            raise TypeError('Either `thread_id` and `update_id`, or '\n                            '`_data` must be provided.')\n\n    def __setattr__(self, attribute, value):\n        \"\"\"Objectify author.\"\"\"\n        if attribute == 'author':\n            value = Redditor(self._reddit, name=value)\n        super(LiveUpdate, self).__setattr__(attribute, value)\n", "path": "praw/models/reddit/live.py"}], "after_files": [{"content": "\"\"\"Provide the LiveThread class.\"\"\"\nfrom ...const import API_PATH\nfrom ..listing.generator import ListingGenerator\nfrom ..list.redditor import RedditorList\nfrom .base import RedditBase\nfrom .redditor import Redditor\n\n\nclass LiveThread(RedditBase):\n    \"\"\"An individual LiveThread object.\"\"\"\n\n    STR_FIELD = 'id'\n\n    @property\n    def contributor(self):\n        \"\"\"An instance of :class:`.LiveContributorRelationship`.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           for contributor in thread.contributor():\n               print(contributor)\n\n        \"\"\"\n        if self._contributor is None:\n            self._contributor = LiveContributorRelationship(self)\n        return self._contributor\n\n    def __eq__(self, other):\n        \"\"\"Return whether the other instance equals the current.\n\n        .. note:: This comparison is case sensitive.\n        \"\"\"\n        if isinstance(other, str):\n            return other == str(self)\n        return (isinstance(other, self.__class__) and\n                str(self) == str(other))\n\n    def __getitem__(self, update_id):\n        \"\"\"Return a lazy :class:`.LiveUpdate` instance.\n\n        .. warning:: At this time, accesing lazy attributes, whose value\n           have not loaded, raises ``AttributeError``.\n\n        :param update_id: A live update ID, e.g.,\n            ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           update = thread['7827987a-c998-11e4-a0b9-22000b6a88d2']\n           update.thread     # LiveThread(id='ukaeu1ik4sw5')\n           update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'\n           update.author     # raise ``AttributeError``\n        \"\"\"\n        return LiveUpdate(self._reddit, self.id, update_id)\n\n    def __hash__(self):\n        \"\"\"Return the hash of the current instance.\"\"\"\n        return hash(self.__class__.__name__) ^ hash(str(self))\n\n    def __init__(self, reddit, id=None,  # pylint: disable=redefined-builtin\n                 _data=None):\n        \"\"\"Initialize a lazy :class:`.LiveThread` instance.\n\n        :param reddit: An instance of :class:`.Reddit`.\n        :param id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``\n        \"\"\"\n        if bool(id) == bool(_data):\n            raise TypeError('Either `id` or `_data` must be provided.')\n        super(LiveThread, self).__init__(reddit, _data)\n        if id:\n            self.id = id  # pylint: disable=invalid-name\n        self._contributor = None\n\n    def _info_path(self):\n        return API_PATH['liveabout'].format(id=self.id)\n\n    def updates(self, **generator_kwargs):\n        \"\"\"Return a :class:`.ListingGenerator` yields :class:`.LiveUpdate` s.\n\n        :param generator_kwargs: keyword arguments passed to\n            :class:`.ListingGenerator` constructor.\n        :returns: A :class:`.ListingGenerator` object which yields\n            :class:`.LiveUpdate` object.\n        \"\"\"\n        url = API_PATH['live_updates'].format(id=self.id)\n        for update in ListingGenerator(self._reddit, url,\n                                       **generator_kwargs):\n            update._thread = self\n            yield update\n\n\nclass LiveContributorRelationship(object):\n    \"\"\"Provide methods to interact with live threads' contributors.\"\"\"\n\n    def __call__(self):\n        \"\"\"Return a :class:`.RedditorList` for live threads' contributors.\n\n        Usage:\n\n        .. code-block:: python\n\n           thread = reddit.live('ukaeu1ik4sw5')\n           for contributor in thread.contributor():\n               print(contributor)\n\n        \"\"\"\n        url = API_PATH['live_contributors'].format(id=self.thread.id)\n        temp = self.thread._reddit.get(url)\n        return temp if isinstance(temp, RedditorList) else temp[0]\n\n    def __init__(self, thread):\n        \"\"\"Create a LiveContributorRelationship instance.\n\n        :param thread: An instance of :class:`.LiveThread`.\n\n        \"\"\"\n        self.thread = thread\n\n\nclass LiveUpdate(RedditBase):\n    \"\"\"An individual :class:`.LiveUpdate` object.\"\"\"\n\n    STR_FIELD = 'id'\n\n    @property\n    def thread(self):\n        \"\"\"Return :class:`.LiveThread` object the update object belongs to.\"\"\"\n        return self._thread\n\n    def __init__(self, reddit, thread_id=None, update_id=None, _data=None):\n        \"\"\"Initialize a lazy :class:`.LiveUpdate` instance.\n\n        Either ``thread_id`` and ``update_id``, or ``_data`` must be\n        provided.\n\n        .. warning:: At this time, accesing lazy attributes, whose value\n           have not loaded, raises ``AttributeError``.\n\n        :param reddit: An instance of :class:`.Reddit`.\n        :param thread_id: A live thread ID, e.g., ``'ukaeu1ik4sw5'``.\n        :param update_id: A live update ID, e.g.,\n            ``'7827987a-c998-11e4-a0b9-22000b6a88d2'``.\n\n        Usage:\n\n        .. code-block:: python\n\n           update = LiveUpdate(reddit, 'ukaeu1ik4sw5',\n                               '7827987a-c998-11e4-a0b9-22000b6a88d2')\n           update.thread     # LiveThread(id='ukaeu1ik4sw5')\n           update.id         # '7827987a-c998-11e4-a0b9-22000b6a88d2'\n           update.author     # raise ``AttributeError``\n        \"\"\"\n        if _data is not None:\n            super(LiveUpdate, self).__init__(reddit, _data)\n            self._fetched = True\n        elif thread_id and update_id:\n            super(LiveUpdate, self).__init__(reddit, None)\n            self._thread = LiveThread(self._reddit, thread_id)\n            self.id = update_id  # pylint: disable=invalid-name\n            self._fetched = True\n        else:\n            raise TypeError('Either `thread_id` and `update_id`, or '\n                            '`_data` must be provided.')\n\n    def __setattr__(self, attribute, value):\n        \"\"\"Objectify author.\"\"\"\n        if attribute == 'author':\n            value = Redditor(self._reddit, name=value)\n        super(LiveUpdate, self).__setattr__(attribute, value)\n", "path": "praw/models/reddit/live.py"}]}