prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Virtualenv 20.14.0 bundles broken setuptools
  **Issue**
  
  Virtualenv 20.14.0 has broken version of setuptools 61.0.0 bundled in. This causes broken installations of packages, especially missing package data files.
  
  **Environment**
  
  Various
  
  </issue>
  <code>
  [start of src/virtualenv/seed/wheels/embed/__init__.py]
  1 from __future__ import absolute_import, unicode_literals
  2 
  3 from virtualenv.seed.wheels.util import Wheel
  4 from virtualenv.util.path import Path
  5 
  6 BUNDLE_FOLDER = Path(__file__).absolute().parent
  7 BUNDLE_SUPPORT = {
  8     "3.11": {
  9         "pip": "pip-22.0.4-py3-none-any.whl",
  10         "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  11         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  12     },
  13     "3.10": {
  14         "pip": "pip-22.0.4-py3-none-any.whl",
  15         "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  16         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  17     },
  18     "3.9": {
  19         "pip": "pip-22.0.4-py3-none-any.whl",
  20         "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  21         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  22     },
  23     "3.8": {
  24         "pip": "pip-22.0.4-py3-none-any.whl",
  25         "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  26         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  27     },
  28     "3.7": {
  29         "pip": "pip-22.0.4-py3-none-any.whl",
  30         "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  31         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  32     },
  33     "3.6": {
  34         "pip": "pip-21.3.1-py3-none-any.whl",
  35         "setuptools": "setuptools-59.6.0-py3-none-any.whl",
  36         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  37     },
  38     "3.5": {
  39         "pip": "pip-20.3.4-py2.py3-none-any.whl",
  40         "setuptools": "setuptools-50.3.2-py3-none-any.whl",
  41         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  42     },
  43     "2.7": {
  44         "pip": "pip-20.3.4-py2.py3-none-any.whl",
  45         "setuptools": "setuptools-44.1.1-py2.py3-none-any.whl",
  46         "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
  47     },
  48 }
  49 MAX = "3.11"
  50 
  51 
  52 def get_embed_wheel(distribution, for_py_version):
  53     path = BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]).get(distribution)
  54     return Wheel.from_path(path)
  55 
  56 
  57 __all__ = (
  58     "get_embed_wheel",
  59     "BUNDLE_SUPPORT",
  60     "MAX",
  61     "BUNDLE_FOLDER",
  62 )
  63
  [end of src/virtualenv/seed/wheels/embed/__init__.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/src/virtualenv/seed/wheels/embed/__init__.py b/src/virtualenv/seed/wheels/embed/__init__.py
  --- a/src/virtualenv/seed/wheels/embed/__init__.py
  +++ b/src/virtualenv/seed/wheels/embed/__init__.py
  @@ -7,27 +7,27 @@
   BUNDLE_SUPPORT = {
       "3.11": {
           "pip": "pip-22.0.4-py3-none-any.whl",
  -        "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  +        "setuptools": "setuptools-62.1.0-py3-none-any.whl",
           "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
       },
       "3.10": {
           "pip": "pip-22.0.4-py3-none-any.whl",
  -        "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  +        "setuptools": "setuptools-62.1.0-py3-none-any.whl",
           "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
       },
       "3.9": {
           "pip": "pip-22.0.4-py3-none-any.whl",
  -        "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  +        "setuptools": "setuptools-62.1.0-py3-none-any.whl",
           "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
       },
       "3.8": {
           "pip": "pip-22.0.4-py3-none-any.whl",
  -        "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  +        "setuptools": "setuptools-62.1.0-py3-none-any.whl",
           "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
       },
       "3.7": {
           "pip": "pip-22.0.4-py3-none-any.whl",
  -        "setuptools": "setuptools-61.0.0-py3-none-any.whl",
  +        "setuptools": "setuptools-62.1.0-py3-none-any.whl",
           "wheel": "wheel-0.37.1-py2.py3-none-any.whl",
       },
       "3.6": {
  
verification_info: {"golden_diff": "diff --git a/src/virtualenv/seed/wheels/embed/__init__.py b/src/virtualenv/seed/wheels/embed/__init__.py\n--- a/src/virtualenv/seed/wheels/embed/__init__.py\n+++ b/src/virtualenv/seed/wheels/embed/__init__.py\n@@ -7,27 +7,27 @@\n BUNDLE_SUPPORT = {\n     \"3.11\": {\n         \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n-        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n+        \"setuptools\": \"setuptools-62.1.0-py3-none-any.whl\",\n         \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n     },\n     \"3.10\": {\n         \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n-        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n+        \"setuptools\": \"setuptools-62.1.0-py3-none-any.whl\",\n         \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n     },\n     \"3.9\": {\n         \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n-        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n+        \"setuptools\": \"setuptools-62.1.0-py3-none-any.whl\",\n         \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n     },\n     \"3.8\": {\n         \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n-        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n+        \"setuptools\": \"setuptools-62.1.0-py3-none-any.whl\",\n         \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n     },\n     \"3.7\": {\n         \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n-        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n+        \"setuptools\": \"setuptools-62.1.0-py3-none-any.whl\",\n         \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n     },\n     \"3.6\": {\n", "issue": "Virtualenv 20.14.0 bundles broken setuptools\n**Issue**\r\n\r\nVirtualenv 20.14.0 has broken version of setuptools 61.0.0 bundled in. This causes broken installations of packages, especially missing package data files.\r\n\r\n**Environment**\r\n\r\nVarious\n", "before_files": [{"content": "from __future__ import absolute_import, unicode_literals\n\nfrom virtualenv.seed.wheels.util import Wheel\nfrom virtualenv.util.path import Path\n\nBUNDLE_FOLDER = Path(__file__).absolute().parent\nBUNDLE_SUPPORT = {\n    \"3.11\": {\n        \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.10\": {\n        \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.9\": {\n        \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.8\": {\n        \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.7\": {\n        \"pip\": \"pip-22.0.4-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-61.0.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.6\": {\n        \"pip\": \"pip-21.3.1-py3-none-any.whl\",\n        \"setuptools\": \"setuptools-59.6.0-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"3.5\": {\n        \"pip\": \"pip-20.3.4-py2.py3-none-any.whl\",\n        \"setuptools\": \"setuptools-50.3.2-py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n    \"2.7\": {\n        \"pip\": \"pip-20.3.4-py2.py3-none-any.whl\",\n        \"setuptools\": \"setuptools-44.1.1-py2.py3-none-any.whl\",\n        \"wheel\": \"wheel-0.37.1-py2.py3-none-any.whl\",\n    },\n}\nMAX = \"3.11\"\n\n\ndef get_embed_wheel(distribution, for_py_version):\n    path = BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]).get(distribution)\n    return Wheel.from_path(path)\n\n\n__all__ = (\n    \"get_embed_wheel\",\n    \"BUNDLE_SUPPORT\",\n    \"MAX\",\n    \"BUNDLE_FOLDER\",\n)\n", "path": "src/virtualenv/seed/wheels/embed/__init__.py"}]}