We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Sponsor urls should be plural
<project>/sponsor/??? should be <project>/sponsors/??? except in cases where the view references a single sponsor


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `django_project/changes/urls.py`
Content:
```
1 # coding=utf-8
2 # flake8: noqa
3 """Urls for changelog application."""
4 
5 from django.conf.urls import patterns, url, include  # noqa
6 
7 from django.conf import settings
8 
9 from feeds.version import RssVersionFeed, AtomVersionFeed
10 from feeds.entry import RssEntryFeed, AtomEntryFeed
11 from views import (
12     # Category
13     CategoryDetailView,
14     CategoryDeleteView,
15     CategoryCreateView,
16     CategoryListView,
17     JSONCategoryListView,
18     CategoryUpdateView,
19     PendingCategoryListView,
20     ApproveCategoryView,
21     # Version
22     VersionMarkdownView,
23     VersionDetailView,
24     VersionThumbnailView,
25     VersionDeleteView,
26     VersionCreateView,
27     VersionListView,
28     VersionUpdateView,
29     PendingVersionListView,
30     ApproveVersionView,
31     VersionDownload,
32     VersionDownloadGnu,
33     # Entry
34     EntryDetailView,
35     EntryDeleteView,
36     EntryCreateView,
37     EntryListView,
38     EntryUpdateView,
39     PendingEntryListView,
40     ApproveEntryView,
41     # Sponsor
42     SponsorDetailView,
43     SponsorDeleteView,
44     SponsorCreateView,
45     SponsorListView,
46     SponsorWorldMapView,
47     JSONSponsorListView,
48     SponsorUpdateView,
49     PendingSponsorListView,
50     ApproveSponsorView,
51 
52     # Sponsorship Level
53 
54     SponsorshipLevelDetailView,
55     SponsorshipLevelDeleteView,
56     SponsorshipLevelCreateView,
57     SponsorshipLevelListView,
58     JSONSponsorshipLevelListView,
59     SponsorshipLevelUpdateView,
60     PendingSponsorshipLevelListView,
61     ApproveSponsorshipLevelView,
62 
63     # Sponsorship Period
64 
65     SponsorshipPeriodDetailView,
66     SponsorshipPeriodDeleteView,
67     SponsorshipPeriodCreateView,
68     SponsorshipPeriodListView,
69     JSONSponsorshipPeriodListView,
70     SponsorshipPeriodUpdateView,
71     PendingSponsorshipPeriodListView,
72     ApproveSponsorshipPeriodView,
73 )
74 
75 urlpatterns = patterns(
76     '',
77     # Category management
78 
79     # This view is only accessible via ajax
80     url(regex='^json-category/list/(?P<version>\d+)/$',
81         view=JSONCategoryListView.as_view(),
82         name='json-category-list'),
83     url(regex='^(?P<project_slug>[\w-]+)/pending-category/list/$',
84         view=PendingCategoryListView.as_view(),
85         name='pending-category-list'),
86     url(regex='^(?P<project_slug>[\w-]+)/approve-category/(?P<slug>[\w-]+)/$',
87         view=ApproveCategoryView.as_view(),
88         name='category-approve'),
89     url(regex='^(?P<project_slug>[\w-]+)/category/list/$',
90         view=CategoryListView.as_view(),
91         name='category-list'),
92     url(regex='^(?P<project_slug>[\w-]+)/category/(?P<slug>[\w-]+)/$',
93         view=CategoryDetailView.as_view(),
94         name='category-detail'),
95     url(regex='^(?P<project_slug>[\w-]+)/category/(?P<slug>[\w-]+)/delete/$',
96         view=CategoryDeleteView.as_view(),
97         name='category-delete'),
98     url(regex='^(?P<project_slug>[\w-]+)/create-category/$',
99         view=CategoryCreateView.as_view(),
100         name='category-create'),
101     url(regex='^(?P<project_slug>[\w-]+)/category/(?P<slug>[\w-]+)/update/$',
102         view=CategoryUpdateView.as_view(),
103         name='category-update'),
104 
105     # Version management
106     url(regex='^(?P<project_slug>[\w-]+)/pending-versions/list/$',
107         view=PendingVersionListView.as_view(),
108         name='pending-version-list'),
109     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/approve/$',
110         view=ApproveVersionView.as_view(),
111         name='version-approve'),
112     url(regex='^(?P<project_slug>[\w-]+)/version/list/$',
113         view=VersionListView.as_view(),
114         name='version-list'),
115     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/markdown/$',
116         view=VersionMarkdownView.as_view(),
117         name='version-markdown'),
118     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/$',
119         view=VersionDetailView.as_view(),
120         name='version-detail'),
121     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/thumbs/$',
122         view=VersionThumbnailView.as_view(),
123         name='version-thumbs'),
124     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/delete/$',
125         view=VersionDeleteView.as_view(),
126         name='version-delete'),
127     url(regex='^(?P<project_slug>[\w-]+)/create-version/$',
128         view=VersionCreateView.as_view(),
129         name='version-create'),
130     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/update/$',
131         view=VersionUpdateView.as_view(),
132         name='version-update'),
133     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/download/$',
134         view=VersionDownload.as_view(),
135         name='version-download'),
136     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<slug>[\w.-]+)/gnu/$',
137         view=VersionDownloadGnu.as_view(),
138         name='version-download-gnu'),
139 
140     # Changelog entry management
141     url(regex='^(?P<project_slug>[\w-]+)/(?P<version_slug>[\w.-]+)/'
142               'pending-entry/list/$',
143         view=PendingEntryListView.as_view(),
144         name='pending-entry-list'),
145     url(regex='^entry/approve/(?P<pk>\d+)$',
146         view=ApproveEntryView.as_view(),
147         name='entry-approve'),
148     url(regex='^(?P<project_slug>[\w-]+)/(?P<version_slug>[\w'
149               '.-]+)/entry/list/$',
150         view=EntryListView.as_view(),
151         name='entry-list'),
152     url(regex='^entry/(?P<pk>\d+)$',
153         view=EntryDetailView.as_view(),
154         name='entry-detail'),
155     url(regex='^entry/delete/(?P<pk>\d+)$',
156         view=EntryDeleteView.as_view(),
157         name='entry-delete'),
158     url(regex='^(?P<project_slug>[\w-]+)/(?P<version_slug>[\w.-]+)/'
159               'create-entry/$',
160         view=EntryCreateView.as_view(),
161         name='entry-create'),
162     url(regex='^entry/update/(?P<pk>\d+)$',
163         view=EntryUpdateView.as_view(),
164         name='entry-update'),
165 
166     # Feeds
167     url(regex='^(?P<project_slug>[\w-]+)/rss/latest-version/$',
168         view=RssVersionFeed(),
169         name='latest-version-rss-feed'),
170     url(regex='^(?P<project_slug>[\w-]+)/atom/latest-version/$',
171         view=AtomVersionFeed(),
172         name='latest-version-atom-feed'),
173     url(regex='^(?P<project_slug>[\w-]+)/rss/latest-entry/$',
174         view=RssEntryFeed(),
175         name='latest-entry-rss-feed'),
176     url(regex='^(?P<project_slug>[\w-]+)/atom/latest-entry/$',
177         view=AtomEntryFeed(),
178         name='latest-entry-atom-feed'),
179 
180     # Feeds specific version and projects
181     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<version_slug>['
182               '\w.-]+)/rss$',
183         view=RssEntryFeed(),
184         name='entry-rss-feed'),
185     url(regex='^(?P<project_slug>[\w-]+)/version/(?P<version_slug>['
186               '\w.-]+)/atom$',
187         view=AtomEntryFeed(),
188         name='entry-atom-feed'),
189 
190     # User map
191     # url(r'^user-map/', include('user_map.urls')),
192 
193     # Sponsor management
194 
195     # This view is only accessible via ajax
196     url(regex='^json-sponsor/list/(?P<version>\d+)/$',
197         view=JSONSponsorListView.as_view(),
198         name='json-sponsor-list'),
199     url(regex='^(?P<project_slug>[\w-]+)/pending-sponsor/list/$',
200         view=PendingSponsorListView.as_view(),
201         name='pending-sponsor-list'),
202     url(regex='^(?P<project_slug>[\w-]+)/approve-sponsor/(?P<slug>[\w-]+)/$',
203         view=ApproveSponsorView.as_view(),
204         name='sponsor-approve'),
205     url(regex='^(?P<project_slug>[\w-]+)/sponsor/list/$',
206         view=SponsorListView.as_view(),
207         name='sponsor-list'),
208     url(regex='^(?P<project_slug>[\w-]+)/sponsor/world-map/$',
209         view=SponsorWorldMapView.as_view(),
210         name='sponsor-world-map'),
211     url(regex='^(?P<project_slug>[\w-]+)/sponsor/(?P<slug>[\w-]+)/$',
212         view=SponsorDetailView.as_view(),
213         name='sponsor-detail'),
214     url(regex='^(?P<project_slug>[\w-]+)/sponsor/(?P<slug>[\w-]+)/delete/$',
215         view=SponsorDeleteView.as_view(),
216         name='sponsor-delete'),
217     url(regex='^(?P<project_slug>[\w-]+)/create-sponsor/$',
218         view=SponsorCreateView.as_view(),
219         name='sponsor-create'),
220     url(regex='^(?P<project_slug>[\w-]+)/sponsor/(?P<slug>[\w-]+)/update/$',
221         view=SponsorUpdateView.as_view(),
222         name='sponsor-update'),
223 
224     # Sponsorship Level management
225 
226     # This view is only accessible via ajax
227     url(regex='^json-sponsorshiplevel/list/(?P<version>\d+)/$',
228         view=JSONSponsorshipLevelListView.as_view(),
229         name='json-sponsorshiplevel-list'),
230     url(regex='^(?P<project_slug>[\w-]+)/pending-sponsorshiplevel/list/$',
231         view=PendingSponsorshipLevelListView.as_view(),
232         name='pending-sponsorshiplevel-list'),
233     url(regex='^(?P<project_slug>[\w-]+)/approve-sponsorshiplevel/(?P<slug>[\w-]+)/$',
234         view=ApproveSponsorshipLevelView.as_view(),
235         name='sponsorshiplevel-approve'),
236     url(regex='^(?P<project_slug>[\w-]+)/sponsorshiplevel/list/$',
237         view=SponsorshipLevelListView.as_view(),
238         name='sponsorshiplevel-list'),
239     url(regex='^(?P<project_slug>[\w-]+)/sponsorshiplevel/(?P<slug>[\w-]+)/$',
240         view=SponsorshipLevelDetailView.as_view(),
241         name='sponsorshiplevel-detail'),
242     url(regex='^(?P<project_slug>[\w-]+)/sponsorshiplevel/(?P<slug>[\w-]+)/delete/$',
243         view=SponsorshipLevelDeleteView.as_view(),
244         name='sponsorshiplevel-delete'),
245     url(regex='^(?P<project_slug>[\w-]+)/create-sponsorshiplevel/$',
246         view=SponsorshipLevelCreateView.as_view(),
247         name='sponsorshiplevel-create'),
248     url(regex='^(?P<project_slug>[\w-]+)/sponsorshiplevel/(?P<slug>[\w-]+)/update/$',
249         view=SponsorshipLevelUpdateView.as_view(),
250         name='sponsorshiplevel-update'),
251 
252     # Sponsorship Period management
253 
254     # This view is only accessible via ajax
255     url(regex='^json-sponsorshipperiod/list/(?P<version>\d+)/$',
256         view=JSONSponsorshipPeriodListView.as_view(),
257         name='json-sponsorshipperiod-list'),
258     url(regex='^(?P<project_slug>[\w-]+)/pending-sponsorshipperiod/list/$',
259         view=PendingSponsorshipPeriodListView.as_view(),
260         name='pending-sponsorshipperiod-list'),
261     url(regex='^(?P<project_slug>[\w-]+)/approve-sponsorshipperiod/(?P<slug>[\w-]+)/$',
262         view=ApproveSponsorshipPeriodView.as_view(),
263         name='sponsorshipperiod-approve'),
264     url(regex='^(?P<project_slug>[\w-]+)/sponsorshipperiod/list/$',
265         view=SponsorshipPeriodListView.as_view(),
266         name='sponsorshipperiod-list'),
267     url(regex='^(?P<project_slug>[\w-]+)/sponsorshipperiod/(?P<slug>[\w-]+)/$',
268         view=SponsorshipPeriodDetailView.as_view(),
269         name='sponsorshipperiod-detail'),
270     url(regex='^(?P<project_slug>[\w-]+)/sponsorshipperiod/(?P<slug>[\w-]+)/delete/$',
271         view=SponsorshipPeriodDeleteView.as_view(),
272         name='sponsorshipperiod-delete'),
273     url(regex='^(?P<project_slug>[\w-]+)/create-sponsorshipperiod/$',
274         view=SponsorshipPeriodCreateView.as_view(),
275         name='sponsorshipperiod-create'),
276     url(regex='^(?P<project_slug>[\w-]+)/sponsorshipperiod/(?P<slug>[\w-]+)/update/$',
277         view=SponsorshipPeriodUpdateView.as_view(),
278         name='sponsorshipperiod-update'),
279 )
280 
281 
282 if settings.DEBUG:
283     # static files (images, css, javascript, etc.)
284     urlpatterns += patterns(
285         '',
286         (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
287             'document_root': settings.MEDIA_ROOT}))
288
```
--- 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/django_project/changes/urls.py b/django_project/changes/urls.py
--- a/django_project/changes/urls.py
+++ b/django_project/changes/urls.py
@@ -196,16 +196,16 @@
     url(regex='^json-sponsor/list/(?P<version>\d+)/$',
         view=JSONSponsorListView.as_view(),
         name='json-sponsor-list'),
-    url(regex='^(?P<project_slug>[\w-]+)/pending-sponsor/list/$',
+    url(regex='^(?P<project_slug>[\w-]+)/pending-sponsors/list/$',
         view=PendingSponsorListView.as_view(),
         name='pending-sponsor-list'),
     url(regex='^(?P<project_slug>[\w-]+)/approve-sponsor/(?P<slug>[\w-]+)/$',
         view=ApproveSponsorView.as_view(),
         name='sponsor-approve'),
-    url(regex='^(?P<project_slug>[\w-]+)/sponsor/list/$',
+    url(regex='^(?P<project_slug>[\w-]+)/sponsors/list/$',
         view=SponsorListView.as_view(),
         name='sponsor-list'),
-    url(regex='^(?P<project_slug>[\w-]+)/sponsor/world-map/$',
+    url(regex='^(?P<project_slug>[\w-]+)/sponsors/world-map/$',
         view=SponsorWorldMapView.as_view(),
         name='sponsor-world-map'),
     url(regex='^(?P<project_slug>[\w-]+)/sponsor/(?P<slug>[\w-]+)/$',

{"golden_diff": "diff --git a/django_project/changes/urls.py b/django_project/changes/urls.py\n--- a/django_project/changes/urls.py\n+++ b/django_project/changes/urls.py\n@@ -196,16 +196,16 @@\n     url(regex='^json-sponsor/list/(?P<version>\\d+)/$',\n         view=JSONSponsorListView.as_view(),\n         name='json-sponsor-list'),\n-    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsor/list/$',\n+    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsors/list/$',\n         view=PendingSponsorListView.as_view(),\n         name='pending-sponsor-list'),\n     url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsor/(?P<slug>[\\w-]+)/$',\n         view=ApproveSponsorView.as_view(),\n         name='sponsor-approve'),\n-    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/list/$',\n+    url(regex='^(?P<project_slug>[\\w-]+)/sponsors/list/$',\n         view=SponsorListView.as_view(),\n         name='sponsor-list'),\n-    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/world-map/$',\n+    url(regex='^(?P<project_slug>[\\w-]+)/sponsors/world-map/$',\n         view=SponsorWorldMapView.as_view(),\n         name='sponsor-world-map'),\n     url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/$',\n", "issue": "Sponsor urls should be plural\n<project>/sponsor/??? should be <project>/sponsors/??? except in cases where the view references a single sponsor\n\n", "before_files": [{"content": "# coding=utf-8\n# flake8: noqa\n\"\"\"Urls for changelog application.\"\"\"\n\nfrom django.conf.urls import patterns, url, include  # noqa\n\nfrom django.conf import settings\n\nfrom feeds.version import RssVersionFeed, AtomVersionFeed\nfrom feeds.entry import RssEntryFeed, AtomEntryFeed\nfrom views import (\n    # Category\n    CategoryDetailView,\n    CategoryDeleteView,\n    CategoryCreateView,\n    CategoryListView,\n    JSONCategoryListView,\n    CategoryUpdateView,\n    PendingCategoryListView,\n    ApproveCategoryView,\n    # Version\n    VersionMarkdownView,\n    VersionDetailView,\n    VersionThumbnailView,\n    VersionDeleteView,\n    VersionCreateView,\n    VersionListView,\n    VersionUpdateView,\n    PendingVersionListView,\n    ApproveVersionView,\n    VersionDownload,\n    VersionDownloadGnu,\n    # Entry\n    EntryDetailView,\n    EntryDeleteView,\n    EntryCreateView,\n    EntryListView,\n    EntryUpdateView,\n    PendingEntryListView,\n    ApproveEntryView,\n    # Sponsor\n    SponsorDetailView,\n    SponsorDeleteView,\n    SponsorCreateView,\n    SponsorListView,\n    SponsorWorldMapView,\n    JSONSponsorListView,\n    SponsorUpdateView,\n    PendingSponsorListView,\n    ApproveSponsorView,\n\n    # Sponsorship Level\n\n    SponsorshipLevelDetailView,\n    SponsorshipLevelDeleteView,\n    SponsorshipLevelCreateView,\n    SponsorshipLevelListView,\n    JSONSponsorshipLevelListView,\n    SponsorshipLevelUpdateView,\n    PendingSponsorshipLevelListView,\n    ApproveSponsorshipLevelView,\n\n    # Sponsorship Period\n\n    SponsorshipPeriodDetailView,\n    SponsorshipPeriodDeleteView,\n    SponsorshipPeriodCreateView,\n    SponsorshipPeriodListView,\n    JSONSponsorshipPeriodListView,\n    SponsorshipPeriodUpdateView,\n    PendingSponsorshipPeriodListView,\n    ApproveSponsorshipPeriodView,\n)\n\nurlpatterns = patterns(\n    '',\n    # Category management\n\n    # This view is only accessible via ajax\n    url(regex='^json-category/list/(?P<version>\\d+)/$',\n        view=JSONCategoryListView.as_view(),\n        name='json-category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-category/list/$',\n        view=PendingCategoryListView.as_view(),\n        name='pending-category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-category/(?P<slug>[\\w-]+)/$',\n        view=ApproveCategoryView.as_view(),\n        name='category-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/list/$',\n        view=CategoryListView.as_view(),\n        name='category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/$',\n        view=CategoryDetailView.as_view(),\n        name='category-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/delete/$',\n        view=CategoryDeleteView.as_view(),\n        name='category-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-category/$',\n        view=CategoryCreateView.as_view(),\n        name='category-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/update/$',\n        view=CategoryUpdateView.as_view(),\n        name='category-update'),\n\n    # Version management\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-versions/list/$',\n        view=PendingVersionListView.as_view(),\n        name='pending-version-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/approve/$',\n        view=ApproveVersionView.as_view(),\n        name='version-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/list/$',\n        view=VersionListView.as_view(),\n        name='version-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/markdown/$',\n        view=VersionMarkdownView.as_view(),\n        name='version-markdown'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/$',\n        view=VersionDetailView.as_view(),\n        name='version-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/thumbs/$',\n        view=VersionThumbnailView.as_view(),\n        name='version-thumbs'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/delete/$',\n        view=VersionDeleteView.as_view(),\n        name='version-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-version/$',\n        view=VersionCreateView.as_view(),\n        name='version-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/update/$',\n        view=VersionUpdateView.as_view(),\n        name='version-update'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/download/$',\n        view=VersionDownload.as_view(),\n        name='version-download'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/gnu/$',\n        view=VersionDownloadGnu.as_view(),\n        name='version-download-gnu'),\n\n    # Changelog entry management\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w.-]+)/'\n              'pending-entry/list/$',\n        view=PendingEntryListView.as_view(),\n        name='pending-entry-list'),\n    url(regex='^entry/approve/(?P<pk>\\d+)$',\n        view=ApproveEntryView.as_view(),\n        name='entry-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w'\n              '.-]+)/entry/list/$',\n        view=EntryListView.as_view(),\n        name='entry-list'),\n    url(regex='^entry/(?P<pk>\\d+)$',\n        view=EntryDetailView.as_view(),\n        name='entry-detail'),\n    url(regex='^entry/delete/(?P<pk>\\d+)$',\n        view=EntryDeleteView.as_view(),\n        name='entry-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w.-]+)/'\n              'create-entry/$',\n        view=EntryCreateView.as_view(),\n        name='entry-create'),\n    url(regex='^entry/update/(?P<pk>\\d+)$',\n        view=EntryUpdateView.as_view(),\n        name='entry-update'),\n\n    # Feeds\n    url(regex='^(?P<project_slug>[\\w-]+)/rss/latest-version/$',\n        view=RssVersionFeed(),\n        name='latest-version-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/atom/latest-version/$',\n        view=AtomVersionFeed(),\n        name='latest-version-atom-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/rss/latest-entry/$',\n        view=RssEntryFeed(),\n        name='latest-entry-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/atom/latest-entry/$',\n        view=AtomEntryFeed(),\n        name='latest-entry-atom-feed'),\n\n    # Feeds specific version and projects\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<version_slug>['\n              '\\w.-]+)/rss$',\n        view=RssEntryFeed(),\n        name='entry-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<version_slug>['\n              '\\w.-]+)/atom$',\n        view=AtomEntryFeed(),\n        name='entry-atom-feed'),\n\n    # User map\n    # url(r'^user-map/', include('user_map.urls')),\n\n    # Sponsor management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsor/list/(?P<version>\\d+)/$',\n        view=JSONSponsorListView.as_view(),\n        name='json-sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsor/list/$',\n        view=PendingSponsorListView.as_view(),\n        name='pending-sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsor/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorView.as_view(),\n        name='sponsor-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/list/$',\n        view=SponsorListView.as_view(),\n        name='sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/world-map/$',\n        view=SponsorWorldMapView.as_view(),\n        name='sponsor-world-map'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/$',\n        view=SponsorDetailView.as_view(),\n        name='sponsor-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorDeleteView.as_view(),\n        name='sponsor-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsor/$',\n        view=SponsorCreateView.as_view(),\n        name='sponsor-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorUpdateView.as_view(),\n        name='sponsor-update'),\n\n    # Sponsorship Level management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsorshiplevel/list/(?P<version>\\d+)/$',\n        view=JSONSponsorshipLevelListView.as_view(),\n        name='json-sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsorshiplevel/list/$',\n        view=PendingSponsorshipLevelListView.as_view(),\n        name='pending-sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsorshiplevel/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorshipLevelView.as_view(),\n        name='sponsorshiplevel-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/list/$',\n        view=SponsorshipLevelListView.as_view(),\n        name='sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/$',\n        view=SponsorshipLevelDetailView.as_view(),\n        name='sponsorshiplevel-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorshipLevelDeleteView.as_view(),\n        name='sponsorshiplevel-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsorshiplevel/$',\n        view=SponsorshipLevelCreateView.as_view(),\n        name='sponsorshiplevel-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorshipLevelUpdateView.as_view(),\n        name='sponsorshiplevel-update'),\n\n    # Sponsorship Period management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsorshipperiod/list/(?P<version>\\d+)/$',\n        view=JSONSponsorshipPeriodListView.as_view(),\n        name='json-sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsorshipperiod/list/$',\n        view=PendingSponsorshipPeriodListView.as_view(),\n        name='pending-sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsorshipperiod/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorshipPeriodView.as_view(),\n        name='sponsorshipperiod-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/list/$',\n        view=SponsorshipPeriodListView.as_view(),\n        name='sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/$',\n        view=SponsorshipPeriodDetailView.as_view(),\n        name='sponsorshipperiod-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorshipPeriodDeleteView.as_view(),\n        name='sponsorshipperiod-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsorshipperiod/$',\n        view=SponsorshipPeriodCreateView.as_view(),\n        name='sponsorshipperiod-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorshipPeriodUpdateView.as_view(),\n        name='sponsorshipperiod-update'),\n)\n\n\nif settings.DEBUG:\n    # static files (images, css, javascript, etc.)\n    urlpatterns += patterns(\n        '',\n        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {\n            'document_root': settings.MEDIA_ROOT}))\n", "path": "django_project/changes/urls.py"}], "after_files": [{"content": "# coding=utf-8\n# flake8: noqa\n\"\"\"Urls for changelog application.\"\"\"\n\nfrom django.conf.urls import patterns, url, include  # noqa\n\nfrom django.conf import settings\n\nfrom feeds.version import RssVersionFeed, AtomVersionFeed\nfrom feeds.entry import RssEntryFeed, AtomEntryFeed\nfrom views import (\n    # Category\n    CategoryDetailView,\n    CategoryDeleteView,\n    CategoryCreateView,\n    CategoryListView,\n    JSONCategoryListView,\n    CategoryUpdateView,\n    PendingCategoryListView,\n    ApproveCategoryView,\n    # Version\n    VersionMarkdownView,\n    VersionDetailView,\n    VersionThumbnailView,\n    VersionDeleteView,\n    VersionCreateView,\n    VersionListView,\n    VersionUpdateView,\n    PendingVersionListView,\n    ApproveVersionView,\n    VersionDownload,\n    VersionDownloadGnu,\n    # Entry\n    EntryDetailView,\n    EntryDeleteView,\n    EntryCreateView,\n    EntryListView,\n    EntryUpdateView,\n    PendingEntryListView,\n    ApproveEntryView,\n    # Sponsor\n    SponsorDetailView,\n    SponsorDeleteView,\n    SponsorCreateView,\n    SponsorListView,\n    SponsorWorldMapView,\n    JSONSponsorListView,\n    SponsorUpdateView,\n    PendingSponsorListView,\n    ApproveSponsorView,\n\n    # Sponsorship Level\n\n    SponsorshipLevelDetailView,\n    SponsorshipLevelDeleteView,\n    SponsorshipLevelCreateView,\n    SponsorshipLevelListView,\n    JSONSponsorshipLevelListView,\n    SponsorshipLevelUpdateView,\n    PendingSponsorshipLevelListView,\n    ApproveSponsorshipLevelView,\n\n    # Sponsorship Period\n\n    SponsorshipPeriodDetailView,\n    SponsorshipPeriodDeleteView,\n    SponsorshipPeriodCreateView,\n    SponsorshipPeriodListView,\n    JSONSponsorshipPeriodListView,\n    SponsorshipPeriodUpdateView,\n    PendingSponsorshipPeriodListView,\n    ApproveSponsorshipPeriodView,\n)\n\nurlpatterns = patterns(\n    '',\n    # Category management\n\n    # This view is only accessible via ajax\n    url(regex='^json-category/list/(?P<version>\\d+)/$',\n        view=JSONCategoryListView.as_view(),\n        name='json-category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-category/list/$',\n        view=PendingCategoryListView.as_view(),\n        name='pending-category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-category/(?P<slug>[\\w-]+)/$',\n        view=ApproveCategoryView.as_view(),\n        name='category-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/list/$',\n        view=CategoryListView.as_view(),\n        name='category-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/$',\n        view=CategoryDetailView.as_view(),\n        name='category-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/delete/$',\n        view=CategoryDeleteView.as_view(),\n        name='category-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-category/$',\n        view=CategoryCreateView.as_view(),\n        name='category-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/category/(?P<slug>[\\w-]+)/update/$',\n        view=CategoryUpdateView.as_view(),\n        name='category-update'),\n\n    # Version management\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-versions/list/$',\n        view=PendingVersionListView.as_view(),\n        name='pending-version-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/approve/$',\n        view=ApproveVersionView.as_view(),\n        name='version-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/list/$',\n        view=VersionListView.as_view(),\n        name='version-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/markdown/$',\n        view=VersionMarkdownView.as_view(),\n        name='version-markdown'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/$',\n        view=VersionDetailView.as_view(),\n        name='version-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/thumbs/$',\n        view=VersionThumbnailView.as_view(),\n        name='version-thumbs'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/delete/$',\n        view=VersionDeleteView.as_view(),\n        name='version-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-version/$',\n        view=VersionCreateView.as_view(),\n        name='version-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/update/$',\n        view=VersionUpdateView.as_view(),\n        name='version-update'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/download/$',\n        view=VersionDownload.as_view(),\n        name='version-download'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<slug>[\\w.-]+)/gnu/$',\n        view=VersionDownloadGnu.as_view(),\n        name='version-download-gnu'),\n\n    # Changelog entry management\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w.-]+)/'\n              'pending-entry/list/$',\n        view=PendingEntryListView.as_view(),\n        name='pending-entry-list'),\n    url(regex='^entry/approve/(?P<pk>\\d+)$',\n        view=ApproveEntryView.as_view(),\n        name='entry-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w'\n              '.-]+)/entry/list/$',\n        view=EntryListView.as_view(),\n        name='entry-list'),\n    url(regex='^entry/(?P<pk>\\d+)$',\n        view=EntryDetailView.as_view(),\n        name='entry-detail'),\n    url(regex='^entry/delete/(?P<pk>\\d+)$',\n        view=EntryDeleteView.as_view(),\n        name='entry-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/(?P<version_slug>[\\w.-]+)/'\n              'create-entry/$',\n        view=EntryCreateView.as_view(),\n        name='entry-create'),\n    url(regex='^entry/update/(?P<pk>\\d+)$',\n        view=EntryUpdateView.as_view(),\n        name='entry-update'),\n\n    # Feeds\n    url(regex='^(?P<project_slug>[\\w-]+)/rss/latest-version/$',\n        view=RssVersionFeed(),\n        name='latest-version-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/atom/latest-version/$',\n        view=AtomVersionFeed(),\n        name='latest-version-atom-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/rss/latest-entry/$',\n        view=RssEntryFeed(),\n        name='latest-entry-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/atom/latest-entry/$',\n        view=AtomEntryFeed(),\n        name='latest-entry-atom-feed'),\n\n    # Feeds specific version and projects\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<version_slug>['\n              '\\w.-]+)/rss$',\n        view=RssEntryFeed(),\n        name='entry-rss-feed'),\n    url(regex='^(?P<project_slug>[\\w-]+)/version/(?P<version_slug>['\n              '\\w.-]+)/atom$',\n        view=AtomEntryFeed(),\n        name='entry-atom-feed'),\n\n    # User map\n    # url(r'^user-map/', include('user_map.urls')),\n\n    # Sponsor management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsor/list/(?P<version>\\d+)/$',\n        view=JSONSponsorListView.as_view(),\n        name='json-sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsors/list/$',\n        view=PendingSponsorListView.as_view(),\n        name='pending-sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsor/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorView.as_view(),\n        name='sponsor-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsors/list/$',\n        view=SponsorListView.as_view(),\n        name='sponsor-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsors/world-map/$',\n        view=SponsorWorldMapView.as_view(),\n        name='sponsor-world-map'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/$',\n        view=SponsorDetailView.as_view(),\n        name='sponsor-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorDeleteView.as_view(),\n        name='sponsor-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsor/$',\n        view=SponsorCreateView.as_view(),\n        name='sponsor-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsor/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorUpdateView.as_view(),\n        name='sponsor-update'),\n\n    # Sponsorship Level management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsorshiplevel/list/(?P<version>\\d+)/$',\n        view=JSONSponsorshipLevelListView.as_view(),\n        name='json-sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsorshiplevel/list/$',\n        view=PendingSponsorshipLevelListView.as_view(),\n        name='pending-sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsorshiplevel/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorshipLevelView.as_view(),\n        name='sponsorshiplevel-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/list/$',\n        view=SponsorshipLevelListView.as_view(),\n        name='sponsorshiplevel-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/$',\n        view=SponsorshipLevelDetailView.as_view(),\n        name='sponsorshiplevel-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorshipLevelDeleteView.as_view(),\n        name='sponsorshiplevel-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsorshiplevel/$',\n        view=SponsorshipLevelCreateView.as_view(),\n        name='sponsorshiplevel-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshiplevel/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorshipLevelUpdateView.as_view(),\n        name='sponsorshiplevel-update'),\n\n    # Sponsorship Period management\n\n    # This view is only accessible via ajax\n    url(regex='^json-sponsorshipperiod/list/(?P<version>\\d+)/$',\n        view=JSONSponsorshipPeriodListView.as_view(),\n        name='json-sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/pending-sponsorshipperiod/list/$',\n        view=PendingSponsorshipPeriodListView.as_view(),\n        name='pending-sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/approve-sponsorshipperiod/(?P<slug>[\\w-]+)/$',\n        view=ApproveSponsorshipPeriodView.as_view(),\n        name='sponsorshipperiod-approve'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/list/$',\n        view=SponsorshipPeriodListView.as_view(),\n        name='sponsorshipperiod-list'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/$',\n        view=SponsorshipPeriodDetailView.as_view(),\n        name='sponsorshipperiod-detail'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/delete/$',\n        view=SponsorshipPeriodDeleteView.as_view(),\n        name='sponsorshipperiod-delete'),\n    url(regex='^(?P<project_slug>[\\w-]+)/create-sponsorshipperiod/$',\n        view=SponsorshipPeriodCreateView.as_view(),\n        name='sponsorshipperiod-create'),\n    url(regex='^(?P<project_slug>[\\w-]+)/sponsorshipperiod/(?P<slug>[\\w-]+)/update/$',\n        view=SponsorshipPeriodUpdateView.as_view(),\n        name='sponsorshipperiod-update'),\n)\n\n\nif settings.DEBUG:\n    # static files (images, css, javascript, etc.)\n    urlpatterns += patterns(\n        '',\n        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {\n            'document_root': settings.MEDIA_ROOT}))\n", "path": "django_project/changes/urls.py"}]}