prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  update ansible to 2.6.18 or later due to CVE-2019-10156
  ## Description
  
  We should update Ansible to version 2.6.18 or later due to [CVE-2019-10156](https://nvd.nist.gov/vuln/detail/CVE-2019-10156). This is a templating vulnerability that would require an attacker to first insert malicious templates into the Admin workstation so the impact is minimal for SecureDrop. Nevertheless, to reduce alert noise and not be using dependencies with known vulnerabilities, we should update. 
  
  </issue>
  <code>
  [start of install_files/ansible-base/callback_plugins/ansible_version_check.py]
  1 # -*- encoding:utf-8 -*-
  2 from __future__ import absolute_import, division, print_function, \
  3         unicode_literals
  4 
  5 import sys
  6 
  7 import ansible
  8 
  9 try:
  10     # Version 2.0+
  11     from ansible.plugins.callback import CallbackBase
  12 except ImportError:
  13     CallbackBase = object
  14 
  15 
  16 def print_red_bold(text):
  17     print('\x1b[31;1m' + text + '\x1b[0m')
  18 
  19 
  20 class CallbackModule(CallbackBase):
  21     def __init__(self):
  22         # Can't use `on_X` because this isn't forwards compatible
  23         # with Ansible 2.0+
  24         required_version = '2.6.14'  # Keep synchronized with requirements files
  25         if not ansible.__version__.startswith(required_version):
  26             print_red_bold(
  27                 "SecureDrop restriction: only Ansible {version}.*"
  28                 "is supported."
  29                 .format(version=required_version)
  30             )
  31             sys.exit(1)
  32
  [end of install_files/ansible-base/callback_plugins/ansible_version_check.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/install_files/ansible-base/callback_plugins/ansible_version_check.py b/install_files/ansible-base/callback_plugins/ansible_version_check.py
  --- a/install_files/ansible-base/callback_plugins/ansible_version_check.py
  +++ b/install_files/ansible-base/callback_plugins/ansible_version_check.py
  @@ -21,7 +21,7 @@
       def __init__(self):
           # Can't use `on_X` because this isn't forwards compatible
           # with Ansible 2.0+
  -        required_version = '2.6.14'  # Keep synchronized with requirements files
  +        required_version = '2.6.19'  # Keep synchronized with requirements files
           if not ansible.__version__.startswith(required_version):
               print_red_bold(
                   "SecureDrop restriction: only Ansible {version}.*"
  
verification_info: {"golden_diff": "diff --git a/install_files/ansible-base/callback_plugins/ansible_version_check.py b/install_files/ansible-base/callback_plugins/ansible_version_check.py\n--- a/install_files/ansible-base/callback_plugins/ansible_version_check.py\n+++ b/install_files/ansible-base/callback_plugins/ansible_version_check.py\n@@ -21,7 +21,7 @@\n     def __init__(self):\n         # Can't use `on_X` because this isn't forwards compatible\n         # with Ansible 2.0+\n-        required_version = '2.6.14'  # Keep synchronized with requirements files\n+        required_version = '2.6.19'  # Keep synchronized with requirements files\n         if not ansible.__version__.startswith(required_version):\n             print_red_bold(\n                 \"SecureDrop restriction: only Ansible {version}.*\"\n", "issue": "update ansible to 2.6.18 or later due to CVE-2019-10156\n## Description\r\n\r\nWe should update Ansible to version 2.6.18 or later due to [CVE-2019-10156](https://nvd.nist.gov/vuln/detail/CVE-2019-10156). This is a templating vulnerability that would require an attacker to first insert malicious templates into the Admin workstation so the impact is minimal for SecureDrop. Nevertheless, to reduce alert noise and not be using dependencies with known vulnerabilities, we should update. \n", "before_files": [{"content": "# -*- encoding:utf-8 -*-\nfrom __future__ import absolute_import, division, print_function, \\\n        unicode_literals\n\nimport sys\n\nimport ansible\n\ntry:\n    # Version 2.0+\n    from ansible.plugins.callback import CallbackBase\nexcept ImportError:\n    CallbackBase = object\n\n\ndef print_red_bold(text):\n    print('\\x1b[31;1m' + text + '\\x1b[0m')\n\n\nclass CallbackModule(CallbackBase):\n    def __init__(self):\n        # Can't use `on_X` because this isn't forwards compatible\n        # with Ansible 2.0+\n        required_version = '2.6.14'  # Keep synchronized with requirements files\n        if not ansible.__version__.startswith(required_version):\n            print_red_bold(\n                \"SecureDrop restriction: only Ansible {version}.*\"\n                \"is supported.\"\n                .format(version=required_version)\n            )\n            sys.exit(1)\n", "path": "install_files/ansible-base/callback_plugins/ansible_version_check.py"}]}