patch 8.2.5006: asan warns for undefined behavior

Problem:    Asan warns for undefined behavior.
Solution:   Cast the shifted value to unsigned.
diff --git a/src/eval.c b/src/eval.c
index 7f90954..1aa0eae 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3089,7 +3089,7 @@
 		rettv->vval.v_number = 0;
 	    else if (type == EXPR_LSHIFT)
 		rettv->vval.v_number =
-				    rettv->vval.v_number << var2.vval.v_number;
+		      (uvarnumber_T)rettv->vval.v_number << var2.vval.v_number;
 	    else
 		rettv->vval.v_number =
 		      (uvarnumber_T)rettv->vval.v_number >> var2.vval.v_number;
diff --git a/src/version.c b/src/version.c
index f0ccd20..43390fa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    5006,
+/**/
     5005,
 /**/
     5004,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 5410aa2..217a977 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -4091,7 +4091,7 @@
 			case EXPR_LSHIFT: if (arg2 > MAX_LSHIFT_BITS)
 					      res = 0;
 					  else
-					      res = arg1 << arg2;
+					      res = (uvarnumber_T)arg1 << arg2;
 					  break;
 			case EXPR_RSHIFT: if (arg2 > MAX_LSHIFT_BITS)
 					      res = 0;
diff --git a/src/vim9expr.c b/src/vim9expr.c
index 6fb32cb..a52f2c7 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -2716,7 +2716,8 @@
 	    if (tv2->vval.v_number > MAX_LSHIFT_BITS)
 		tv1->vval.v_number = 0;
 	    else if (type == EXPR_LSHIFT)
-		tv1->vval.v_number = tv1->vval.v_number << tv2->vval.v_number;
+		tv1->vval.v_number =
+			(uvarnumber_T)tv1->vval.v_number << tv2->vval.v_number;
 	    else
 		tv1->vval.v_number =
 			(uvarnumber_T)tv1->vval.v_number >> tv2->vval.v_number;