prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
   Insertion du smiley >_<
  On obtient `&gt;_&lt;`
  
  Solution 1 : Modifier le code ici : https://github.com/zestedesavoir/zds-site/blob/4ae0431bbf199e318dd6f2b1301ac7b6adc40198/assets/js/editor.js#L132 Vérifier qu'il n'y a pas un bug/fail avec ">" et "<".
  
  Solution 2 : On peut ajouter l'alias `X/` pour ce smiley et remplacer le code dans l'éditeur. https://github.com/zestedesavoir/zds-site/blob/56a5b2e8b524848efa2d328c0a46365a44c1d43e/zds/utils/templatetags/smileys_def.py#L26
  
  </issue>
  <code>
  [start of zds/utils/templatetags/smileys_def.py]
  1 import os
  2 from django.conf import settings
  3 
  4 SMILEYS_BASE_PATH = os.path.join(settings.BASE_DIR, 'dist/smileys')
  5 LICENSES_BASE_PATH = os.path.join(settings.BASE_DIR, 'dist/licenses')
  6 SMILEYS_BASE_URL = os.path.join(settings.STATIC_URL, 'smileys')
  7 
  8 SMILEYS_BASE = {
  9     'smile.png': (':)', ':-)', ),
  10     'heureux.png': (':D', ':-D', ),
  11     'clin.png': (';)', ';-)', ),
  12     'langue.png': (':p', ':P', ':-p', ':-P', ),
  13     'rire.gif': (':lol:', ),
  14     'unsure.gif': (':euh:', ),
  15     'triste.png': (':(', ':-(', ),
  16     'huh.png': (':o', ':-o', ':O', ':-O', ),
  17     'mechant.png': (':colere2:', ),
  18     'blink.gif': ('o_O', 'O_o', ),
  19     'hihi.png': ('^^', ),
  20     'siffle.png': (':-°', ':°', ),
  21     'ange.png': (':ange:', ),
  22     'angry.gif': (':colere:', ),
  23     'diable.png': (':diable:', ),
  24     'magicien.png': (':magicien:', ),
  25     'ninja.gif': (':ninja:', ),
  26     'pinch.png': ('>_<', ),
  27     'pirate.png': (':pirate:', ),
  28     'pleure.png': (":'(", ),
  29     'rouge.png': (':honte:', ),
  30     'soleil.png': (':soleil:', ),
  31     'waw.png': (':waw:', ),
  32     'zorro.png': (':zorro:', ),
  33     'cthulhu.png': ('^(;,;)^', ),
  34 }
  35 
  36 smileys = {}
  37 for image_file, symbols in SMILEYS_BASE.items():
  38     for symbol in symbols:
  39         smileys[symbol] = os.path.join(SMILEYS_BASE_URL, image_file)
  40
  [end of zds/utils/templatetags/smileys_def.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/zds/utils/templatetags/smileys_def.py b/zds/utils/templatetags/smileys_def.py
  --- a/zds/utils/templatetags/smileys_def.py
  +++ b/zds/utils/templatetags/smileys_def.py
  @@ -23,7 +23,7 @@
       'diable.png': (':diable:', ),
       'magicien.png': (':magicien:', ),
       'ninja.gif': (':ninja:', ),
  -    'pinch.png': ('>_<', ),
  +    'pinch.png': ('>_<', 'X/'),
       'pirate.png': (':pirate:', ),
       'pleure.png': (":'(", ),
       'rouge.png': (':honte:', ),
  
verification_info: {"golden_diff": "diff --git a/zds/utils/templatetags/smileys_def.py b/zds/utils/templatetags/smileys_def.py\n--- a/zds/utils/templatetags/smileys_def.py\n+++ b/zds/utils/templatetags/smileys_def.py\n@@ -23,7 +23,7 @@\n     'diable.png': (':diable:', ),\n     'magicien.png': (':magicien:', ),\n     'ninja.gif': (':ninja:', ),\n-    'pinch.png': ('>_<', ),\n+    'pinch.png': ('>_<', 'X/'),\n     'pirate.png': (':pirate:', ),\n     'pleure.png': (\":'(\", ),\n     'rouge.png': (':honte:', ),\n", "issue": " Insertion du smiley >_<\nOn obtient `&gt;_&lt;`\r\n\r\nSolution 1 : Modifier le code ici : https://github.com/zestedesavoir/zds-site/blob/4ae0431bbf199e318dd6f2b1301ac7b6adc40198/assets/js/editor.js#L132 V\u00e9rifier qu'il n'y a pas un bug/fail avec \">\" et \"<\".\r\n\r\nSolution 2 : On peut ajouter l'alias `X/` pour ce smiley et remplacer le code dans l'\u00e9diteur. https://github.com/zestedesavoir/zds-site/blob/56a5b2e8b524848efa2d328c0a46365a44c1d43e/zds/utils/templatetags/smileys_def.py#L26\n", "before_files": [{"content": "import os\nfrom django.conf import settings\n\nSMILEYS_BASE_PATH = os.path.join(settings.BASE_DIR, 'dist/smileys')\nLICENSES_BASE_PATH = os.path.join(settings.BASE_DIR, 'dist/licenses')\nSMILEYS_BASE_URL = os.path.join(settings.STATIC_URL, 'smileys')\n\nSMILEYS_BASE = {\n    'smile.png': (':)', ':-)', ),\n    'heureux.png': (':D', ':-D', ),\n    'clin.png': (';)', ';-)', ),\n    'langue.png': (':p', ':P', ':-p', ':-P', ),\n    'rire.gif': (':lol:', ),\n    'unsure.gif': (':euh:', ),\n    'triste.png': (':(', ':-(', ),\n    'huh.png': (':o', ':-o', ':O', ':-O', ),\n    'mechant.png': (':colere2:', ),\n    'blink.gif': ('o_O', 'O_o', ),\n    'hihi.png': ('^^', ),\n    'siffle.png': (':-\u00b0', ':\u00b0', ),\n    'ange.png': (':ange:', ),\n    'angry.gif': (':colere:', ),\n    'diable.png': (':diable:', ),\n    'magicien.png': (':magicien:', ),\n    'ninja.gif': (':ninja:', ),\n    'pinch.png': ('>_<', ),\n    'pirate.png': (':pirate:', ),\n    'pleure.png': (\":'(\", ),\n    'rouge.png': (':honte:', ),\n    'soleil.png': (':soleil:', ),\n    'waw.png': (':waw:', ),\n    'zorro.png': (':zorro:', ),\n    'cthulhu.png': ('^(;,;)^', ),\n}\n\nsmileys = {}\nfor image_file, symbols in SMILEYS_BASE.items():\n    for symbol in symbols:\n        smileys[symbol] = os.path.join(SMILEYS_BASE_URL, image_file)\n", "path": "zds/utils/templatetags/smileys_def.py"}]}