We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
twisted.web.pages.errorPage docstring has a typo
> Use [IResource.putChild()](https://docs.twisted.org/en/stable/api/twisted.web.resource.IResource.html#putChild) override specific path.

Should be:

> Use [IResource.putChild()](https://docs.twisted.org/en/stable/api/twisted.web.resource.IResource.html#putChild) override **a** specific path.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/twisted/web/pages.py`
Content:
```
1 # -*- test-case-name: twisted.web.test.test_pages -*-
2 # Copyright (c) Twisted Matrix Laboratories.
3 # See LICENSE for details.
4 
5 """
6 Utility implementations of L{IResource}.
7 """
8 
9 __all__ = (
10     "errorPage",
11     "notFound",
12     "forbidden",
13 )
14 
15 from typing import cast
16 
17 from twisted.web import http
18 from twisted.web.iweb import IRenderable, IRequest
19 from twisted.web.resource import IResource, Resource
20 from twisted.web.template import renderElement, tags
21 
22 
23 class _ErrorPage(Resource):
24     """
25     L{_ErrorPage} is a resource that responds to all requests with a particular
26     (parameterized) HTTP status code and an HTML body containing some
27     descriptive text. This is useful for rendering simple error pages.
28 
29     @see: L{twisted.web.pages.errorPage}
30 
31     @ivar _code: An integer HTTP status code which will be used for the
32         response.
33 
34     @ivar _brief: A short string which will be included in the response body as
35         the page title.
36 
37     @ivar _detail: A longer string which will be included in the response body.
38     """
39 
40     def __init__(self, code: int, brief: str, detail: str) -> None:
41         super().__init__()
42         self._code: int = code
43         self._brief: str = brief
44         self._detail: str = detail
45 
46     def render(self, request: IRequest) -> object:
47         """
48         Respond to all requests with the given HTTP status code and an HTML
49         document containing the explanatory strings.
50         """
51         request.setResponseCode(self._code)
52         request.setHeader(b"content-type", b"text/html; charset=utf-8")
53         return renderElement(
54             request,
55             # cast because the type annotations here seem off; Tag isn't an
56             # IRenderable but also probably should be? See
57             # https://github.com/twisted/twisted/issues/4982
58             cast(
59                 IRenderable,
60                 tags.html(
61                     tags.head(tags.title(f"{self._code} - {self._brief}")),
62                     tags.body(tags.h1(self._brief), tags.p(self._detail)),
63                 ),
64             ),
65         )
66 
67     def getChild(self, path: bytes, request: IRequest) -> Resource:
68         """
69         Handle all requests for which L{_ErrorPage} lacks a child by returning
70         this error page.
71 
72         @param path: A path segment.
73 
74         @param request: HTTP request
75         """
76         return self
77 
78 
79 def errorPage(code: int, brief: str, detail: str) -> IResource:
80     """
81     Build a resource that responds to all requests with a particular HTTP
82     status code and an HTML body containing some descriptive text. This is
83     useful for rendering simple error pages.
84 
85     The resource dynamically handles all paths below it. Use
86     L{IResource.putChild()} override specific path.
87 
88     @param code: An integer HTTP status code which will be used for the
89         response.
90 
91     @param brief: A short string which will be included in the response
92         body as the page title.
93 
94     @param detail: A longer string which will be included in the
95         response body.
96 
97     @returns: An L{IResource}
98     """
99     return _ErrorPage(code, brief, detail)
100 
101 
102 def notFound(
103     brief: str = "No Such Resource",
104     message: str = "Sorry. No luck finding that resource.",
105 ) -> IResource:
106     """
107     Generate an L{IResource} with a 404 Not Found status code.
108 
109     @see: L{twisted.web.pages.errorPage}
110 
111     @param brief: A short string displayed as the page title.
112 
113     @param brief: A longer string displayed in the page body.
114 
115     @returns: An L{IResource}
116     """
117     return _ErrorPage(http.NOT_FOUND, brief, message)
118 
119 
120 def forbidden(
121     brief: str = "Forbidden Resource", message: str = "Sorry, resource is forbidden."
122 ) -> IResource:
123     """
124     Generate an L{IResource} with a 403 Forbidden status code.
125 
126     @see: L{twisted.web.pages.errorPage}
127 
128     @param brief: A short string displayed as the page title.
129 
130     @param brief: A longer string displayed in the page body.
131 
132     @returns: An L{IResource}
133     """
134     return _ErrorPage(http.FORBIDDEN, brief, message)
135
```
--- 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/src/twisted/web/pages.py b/src/twisted/web/pages.py
--- a/src/twisted/web/pages.py
+++ b/src/twisted/web/pages.py
@@ -83,7 +83,7 @@
     useful for rendering simple error pages.
 
     The resource dynamically handles all paths below it. Use
-    L{IResource.putChild()} override specific path.
+    L{IResource.putChild()} to override a specific path.
 
     @param code: An integer HTTP status code which will be used for the
         response.

{"golden_diff": "diff --git a/src/twisted/web/pages.py b/src/twisted/web/pages.py\n--- a/src/twisted/web/pages.py\n+++ b/src/twisted/web/pages.py\n@@ -83,7 +83,7 @@\n     useful for rendering simple error pages.\n \n     The resource dynamically handles all paths below it. Use\n-    L{IResource.putChild()} override specific path.\n+    L{IResource.putChild()} to override a specific path.\n \n     @param code: An integer HTTP status code which will be used for the\n         response.\n", "issue": "twisted.web.pages.errorPage docstring has a typo\n> Use [IResource.putChild()](https://docs.twisted.org/en/stable/api/twisted.web.resource.IResource.html#putChild) override specific path.\r\n\r\nShould be:\r\n\r\n> Use [IResource.putChild()](https://docs.twisted.org/en/stable/api/twisted.web.resource.IResource.html#putChild) override **a** specific path.\n", "before_files": [{"content": "# -*- test-case-name: twisted.web.test.test_pages -*-\n# Copyright (c) Twisted Matrix Laboratories.\n# See LICENSE for details.\n\n\"\"\"\nUtility implementations of L{IResource}.\n\"\"\"\n\n__all__ = (\n    \"errorPage\",\n    \"notFound\",\n    \"forbidden\",\n)\n\nfrom typing import cast\n\nfrom twisted.web import http\nfrom twisted.web.iweb import IRenderable, IRequest\nfrom twisted.web.resource import IResource, Resource\nfrom twisted.web.template import renderElement, tags\n\n\nclass _ErrorPage(Resource):\n    \"\"\"\n    L{_ErrorPage} is a resource that responds to all requests with a particular\n    (parameterized) HTTP status code and an HTML body containing some\n    descriptive text. This is useful for rendering simple error pages.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @ivar _code: An integer HTTP status code which will be used for the\n        response.\n\n    @ivar _brief: A short string which will be included in the response body as\n        the page title.\n\n    @ivar _detail: A longer string which will be included in the response body.\n    \"\"\"\n\n    def __init__(self, code: int, brief: str, detail: str) -> None:\n        super().__init__()\n        self._code: int = code\n        self._brief: str = brief\n        self._detail: str = detail\n\n    def render(self, request: IRequest) -> object:\n        \"\"\"\n        Respond to all requests with the given HTTP status code and an HTML\n        document containing the explanatory strings.\n        \"\"\"\n        request.setResponseCode(self._code)\n        request.setHeader(b\"content-type\", b\"text/html; charset=utf-8\")\n        return renderElement(\n            request,\n            # cast because the type annotations here seem off; Tag isn't an\n            # IRenderable but also probably should be? See\n            # https://github.com/twisted/twisted/issues/4982\n            cast(\n                IRenderable,\n                tags.html(\n                    tags.head(tags.title(f\"{self._code} - {self._brief}\")),\n                    tags.body(tags.h1(self._brief), tags.p(self._detail)),\n                ),\n            ),\n        )\n\n    def getChild(self, path: bytes, request: IRequest) -> Resource:\n        \"\"\"\n        Handle all requests for which L{_ErrorPage} lacks a child by returning\n        this error page.\n\n        @param path: A path segment.\n\n        @param request: HTTP request\n        \"\"\"\n        return self\n\n\ndef errorPage(code: int, brief: str, detail: str) -> IResource:\n    \"\"\"\n    Build a resource that responds to all requests with a particular HTTP\n    status code and an HTML body containing some descriptive text. This is\n    useful for rendering simple error pages.\n\n    The resource dynamically handles all paths below it. Use\n    L{IResource.putChild()} override specific path.\n\n    @param code: An integer HTTP status code which will be used for the\n        response.\n\n    @param brief: A short string which will be included in the response\n        body as the page title.\n\n    @param detail: A longer string which will be included in the\n        response body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(code, brief, detail)\n\n\ndef notFound(\n    brief: str = \"No Such Resource\",\n    message: str = \"Sorry. No luck finding that resource.\",\n) -> IResource:\n    \"\"\"\n    Generate an L{IResource} with a 404 Not Found status code.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @param brief: A short string displayed as the page title.\n\n    @param brief: A longer string displayed in the page body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(http.NOT_FOUND, brief, message)\n\n\ndef forbidden(\n    brief: str = \"Forbidden Resource\", message: str = \"Sorry, resource is forbidden.\"\n) -> IResource:\n    \"\"\"\n    Generate an L{IResource} with a 403 Forbidden status code.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @param brief: A short string displayed as the page title.\n\n    @param brief: A longer string displayed in the page body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(http.FORBIDDEN, brief, message)\n", "path": "src/twisted/web/pages.py"}], "after_files": [{"content": "# -*- test-case-name: twisted.web.test.test_pages -*-\n# Copyright (c) Twisted Matrix Laboratories.\n# See LICENSE for details.\n\n\"\"\"\nUtility implementations of L{IResource}.\n\"\"\"\n\n__all__ = (\n    \"errorPage\",\n    \"notFound\",\n    \"forbidden\",\n)\n\nfrom typing import cast\n\nfrom twisted.web import http\nfrom twisted.web.iweb import IRenderable, IRequest\nfrom twisted.web.resource import IResource, Resource\nfrom twisted.web.template import renderElement, tags\n\n\nclass _ErrorPage(Resource):\n    \"\"\"\n    L{_ErrorPage} is a resource that responds to all requests with a particular\n    (parameterized) HTTP status code and an HTML body containing some\n    descriptive text. This is useful for rendering simple error pages.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @ivar _code: An integer HTTP status code which will be used for the\n        response.\n\n    @ivar _brief: A short string which will be included in the response body as\n        the page title.\n\n    @ivar _detail: A longer string which will be included in the response body.\n    \"\"\"\n\n    def __init__(self, code: int, brief: str, detail: str) -> None:\n        super().__init__()\n        self._code: int = code\n        self._brief: str = brief\n        self._detail: str = detail\n\n    def render(self, request: IRequest) -> object:\n        \"\"\"\n        Respond to all requests with the given HTTP status code and an HTML\n        document containing the explanatory strings.\n        \"\"\"\n        request.setResponseCode(self._code)\n        request.setHeader(b\"content-type\", b\"text/html; charset=utf-8\")\n        return renderElement(\n            request,\n            # cast because the type annotations here seem off; Tag isn't an\n            # IRenderable but also probably should be? See\n            # https://github.com/twisted/twisted/issues/4982\n            cast(\n                IRenderable,\n                tags.html(\n                    tags.head(tags.title(f\"{self._code} - {self._brief}\")),\n                    tags.body(tags.h1(self._brief), tags.p(self._detail)),\n                ),\n            ),\n        )\n\n    def getChild(self, path: bytes, request: IRequest) -> Resource:\n        \"\"\"\n        Handle all requests for which L{_ErrorPage} lacks a child by returning\n        this error page.\n\n        @param path: A path segment.\n\n        @param request: HTTP request\n        \"\"\"\n        return self\n\n\ndef errorPage(code: int, brief: str, detail: str) -> IResource:\n    \"\"\"\n    Build a resource that responds to all requests with a particular HTTP\n    status code and an HTML body containing some descriptive text. This is\n    useful for rendering simple error pages.\n\n    The resource dynamically handles all paths below it. Use\n    L{IResource.putChild()} to override a specific path.\n\n    @param code: An integer HTTP status code which will be used for the\n        response.\n\n    @param brief: A short string which will be included in the response\n        body as the page title.\n\n    @param detail: A longer string which will be included in the\n        response body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(code, brief, detail)\n\n\ndef notFound(\n    brief: str = \"No Such Resource\",\n    message: str = \"Sorry. No luck finding that resource.\",\n) -> IResource:\n    \"\"\"\n    Generate an L{IResource} with a 404 Not Found status code.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @param brief: A short string displayed as the page title.\n\n    @param brief: A longer string displayed in the page body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(http.NOT_FOUND, brief, message)\n\n\ndef forbidden(\n    brief: str = \"Forbidden Resource\", message: str = \"Sorry, resource is forbidden.\"\n) -> IResource:\n    \"\"\"\n    Generate an L{IResource} with a 403 Forbidden status code.\n\n    @see: L{twisted.web.pages.errorPage}\n\n    @param brief: A short string displayed as the page title.\n\n    @param brief: A longer string displayed in the page body.\n\n    @returns: An L{IResource}\n    \"\"\"\n    return _ErrorPage(http.FORBIDDEN, brief, message)\n", "path": "src/twisted/web/pages.py"}]}