[Git][ghc/ghc][wip/supersven/fix-aarch64-switch-table-jumps] Add reproducer for dealloc instructions in switch table jump expressions (#25733)
Sven Tennie (@supersven)
gitlab at gitlab.haskell.org
Sun Feb 23 18:00:06 UTC 2025
Sven Tennie pushed to branch wip/supersven/fix-aarch64-switch-table-jumps at Glasgow Haskell Compiler / GHC
Commits:
09edcb68 by Sven Tennie at 2025-02-23T18:58:03+01:00
Add reproducer for dealloc instructions in switch table jump expressions (#25733)
- - - - -
5 changed files:
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
- + testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
- testsuite/tests/cmm/should_run/all.T
Changes:
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
=====================================
@@ -0,0 +1,12 @@
+{-# LANGUAGE GHCForeignImportPrim #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE UnliftedFFITypes #-}
+
+import Data.Foldable
+import GHC.Exts
+import GHC.Int
+
+foreign import prim "foo" foo :: Int64# -> Int64#
+
+main :: IO ()
+main = for_ [0 .. 9] $ \(I64# x#) -> print $ I64# (foo x#)
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
=====================================
@@ -0,0 +1,50 @@
+0
+0
+0
+6
+0
+2
+0
+4
+0
+0
+Before switch
+Inside branch 0
+Before jump 0
+End :)
+Before switch
+Inside branch 1
+Before jump 1
+End :)
+Before switch
+Inside branch 8
+Before jump 8
+End :)
+Before switch
+Inside default branch
+Before jump default
+End :)
+Before switch
+Inside branch 6
+Before jump 6
+End :)
+Before switch
+Inside branch 7
+Before jump 7
+End :)
+Before switch
+Inside branch 4
+Before jump 4
+End :)
+Before switch
+Inside branch 5
+Before jump 5
+End :)
+Before switch
+Inside branch 2
+Before jump 2
+End :)
+Before switch
+Inside branch 3
+Before jump 3
+End :)
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
=====================================
@@ -0,0 +1,75 @@
+-- | Generates the JumpTableNoStackDealloc test
+--
+-- The test is a reproducer of #25733 where stack spill slots where wrongly
+-- deallocated for switch table jumps. This only happened when the initial
+-- stack (RESERVED_C_STACK_BYTES, 2048 * SIZEOF_LONG, 16k on most 64bit
+-- architectures) was full. I.e. we were breaking the assumptions explained in
+-- Note [extra spill slots].
+--
+-- The strategy of this test is to first fill the C stack by having many local
+-- variables that are used later. This leads to stack spilling. In the broken
+-- implemetation of the CodeGen, the invalid stack pointer led to a
+-- segmentation fault / core dump. Its absence, i.e. a suceessful run of this
+-- test, shows that the stack pointer is intact.
+--
+-- The calculations in this test are pretty randomly choosen: They are only
+-- made to prevent inlining and constant folding.
+--
+-- The real test can be generated by running:
+-- `ghc JumpTableNoStackDeallocGen.hs && ./JumpTableNoStackDeallocGen > JumpTableNoStackDealloc_cmm.cmm`
+module Main where
+
+import Control.Monad
+import Data.List
+
+printVarDecl :: Int -> IO ()
+printVarDecl i = do
+ putStrLn $ " I64 i" ++ show i ++ ";"
+ putStrLn $ " i" ++ show i ++ " = (" ++ show i ++ " " ++ op ++ " x) % 10;"
+ where
+ -- Add some variance. Otherwise, GHC inlines the expressions.
+ op = case i of
+ _
+ | even i -> "+"
+ | odd i -> "-"
+
+addVars :: [Int] -> String
+addVars = opVars "+"
+ where
+ opVars :: String -> [Int] -> String
+ opVars op is = concat $ intersperse op $ map ((++) "i" . show) is
+
+printCase :: Int -> IO ()
+printCase i = do
+ putStrLn $ " case " ++ show i ++ ": {"
+ putStrLn $ " ccall printf(\"Inside branch " ++ show i ++ "\\n\");"
+ putStrLn $ " res = i" ++ show i ++ ";"
+ putStrLn $ " ccall printf(\"Before jump " ++ show i ++ "\\n\");"
+ putStrLn $ " goto END;"
+ putStrLn $ " }"
+
+main :: IO ()
+main = do
+ -- This number depends on the amount of available registers. 2048 works for
+ -- AArch64, adding a bit more to be safe in case an architecture has more
+ -- free fregisters.
+ let varNums = [0 .. 2060]
+ putStrLn "// Generated by JumpTableNoStackDeallocGen.hs\n"
+ putStrLn "#include \"Cmm.h\""
+ putStrLn "foo (I64 x) {"
+ forM_ varNums printVarDecl
+ putStrLn "\n I64 res;"
+ putStrLn " ccall printf(\"Before switch\\n\");"
+ putStrLn $ " switch [0 .. 9] ((" ++ addVars varNums ++ ") % 10) {"
+ forM_ [0 .. 8] printCase
+ putStrLn " default: {"
+ putStrLn " ccall printf(\"Inside default branch\\n\");"
+ putStrLn " res = x * (2 :: I64);"
+ putStrLn " ccall printf(\"Before jump default\\n\");"
+ putStrLn " goto END;"
+ putStrLn " }"
+ putStrLn " }"
+ putStrLn "END:"
+ putStrLn " ccall printf(\"End :) \\n\");"
+ putStrLn $ " return (res);"
+ putStrLn "}"
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
=====================================
@@ -0,0 +1,4195 @@
+// Generated by JumpTableNoStackDeallocGen.hs
+
+#include "Cmm.h"
+foo (I64 x) {
+ I64 i0;
+ i0 = (0 + x) % 10;
+ I64 i1;
+ i1 = (1 - x) % 10;
+ I64 i2;
+ i2 = (2 + x) % 10;
+ I64 i3;
+ i3 = (3 - x) % 10;
+ I64 i4;
+ i4 = (4 + x) % 10;
+ I64 i5;
+ i5 = (5 - x) % 10;
+ I64 i6;
+ i6 = (6 + x) % 10;
+ I64 i7;
+ i7 = (7 - x) % 10;
+ I64 i8;
+ i8 = (8 + x) % 10;
+ I64 i9;
+ i9 = (9 - x) % 10;
+ I64 i10;
+ i10 = (10 + x) % 10;
+ I64 i11;
+ i11 = (11 - x) % 10;
+ I64 i12;
+ i12 = (12 + x) % 10;
+ I64 i13;
+ i13 = (13 - x) % 10;
+ I64 i14;
+ i14 = (14 + x) % 10;
+ I64 i15;
+ i15 = (15 - x) % 10;
+ I64 i16;
+ i16 = (16 + x) % 10;
+ I64 i17;
+ i17 = (17 - x) % 10;
+ I64 i18;
+ i18 = (18 + x) % 10;
+ I64 i19;
+ i19 = (19 - x) % 10;
+ I64 i20;
+ i20 = (20 + x) % 10;
+ I64 i21;
+ i21 = (21 - x) % 10;
+ I64 i22;
+ i22 = (22 + x) % 10;
+ I64 i23;
+ i23 = (23 - x) % 10;
+ I64 i24;
+ i24 = (24 + x) % 10;
+ I64 i25;
+ i25 = (25 - x) % 10;
+ I64 i26;
+ i26 = (26 + x) % 10;
+ I64 i27;
+ i27 = (27 - x) % 10;
+ I64 i28;
+ i28 = (28 + x) % 10;
+ I64 i29;
+ i29 = (29 - x) % 10;
+ I64 i30;
+ i30 = (30 + x) % 10;
+ I64 i31;
+ i31 = (31 - x) % 10;
+ I64 i32;
+ i32 = (32 + x) % 10;
+ I64 i33;
+ i33 = (33 - x) % 10;
+ I64 i34;
+ i34 = (34 + x) % 10;
+ I64 i35;
+ i35 = (35 - x) % 10;
+ I64 i36;
+ i36 = (36 + x) % 10;
+ I64 i37;
+ i37 = (37 - x) % 10;
+ I64 i38;
+ i38 = (38 + x) % 10;
+ I64 i39;
+ i39 = (39 - x) % 10;
+ I64 i40;
+ i40 = (40 + x) % 10;
+ I64 i41;
+ i41 = (41 - x) % 10;
+ I64 i42;
+ i42 = (42 + x) % 10;
+ I64 i43;
+ i43 = (43 - x) % 10;
+ I64 i44;
+ i44 = (44 + x) % 10;
+ I64 i45;
+ i45 = (45 - x) % 10;
+ I64 i46;
+ i46 = (46 + x) % 10;
+ I64 i47;
+ i47 = (47 - x) % 10;
+ I64 i48;
+ i48 = (48 + x) % 10;
+ I64 i49;
+ i49 = (49 - x) % 10;
+ I64 i50;
+ i50 = (50 + x) % 10;
+ I64 i51;
+ i51 = (51 - x) % 10;
+ I64 i52;
+ i52 = (52 + x) % 10;
+ I64 i53;
+ i53 = (53 - x) % 10;
+ I64 i54;
+ i54 = (54 + x) % 10;
+ I64 i55;
+ i55 = (55 - x) % 10;
+ I64 i56;
+ i56 = (56 + x) % 10;
+ I64 i57;
+ i57 = (57 - x) % 10;
+ I64 i58;
+ i58 = (58 + x) % 10;
+ I64 i59;
+ i59 = (59 - x) % 10;
+ I64 i60;
+ i60 = (60 + x) % 10;
+ I64 i61;
+ i61 = (61 - x) % 10;
+ I64 i62;
+ i62 = (62 + x) % 10;
+ I64 i63;
+ i63 = (63 - x) % 10;
+ I64 i64;
+ i64 = (64 + x) % 10;
+ I64 i65;
+ i65 = (65 - x) % 10;
+ I64 i66;
+ i66 = (66 + x) % 10;
+ I64 i67;
+ i67 = (67 - x) % 10;
+ I64 i68;
+ i68 = (68 + x) % 10;
+ I64 i69;
+ i69 = (69 - x) % 10;
+ I64 i70;
+ i70 = (70 + x) % 10;
+ I64 i71;
+ i71 = (71 - x) % 10;
+ I64 i72;
+ i72 = (72 + x) % 10;
+ I64 i73;
+ i73 = (73 - x) % 10;
+ I64 i74;
+ i74 = (74 + x) % 10;
+ I64 i75;
+ i75 = (75 - x) % 10;
+ I64 i76;
+ i76 = (76 + x) % 10;
+ I64 i77;
+ i77 = (77 - x) % 10;
+ I64 i78;
+ i78 = (78 + x) % 10;
+ I64 i79;
+ i79 = (79 - x) % 10;
+ I64 i80;
+ i80 = (80 + x) % 10;
+ I64 i81;
+ i81 = (81 - x) % 10;
+ I64 i82;
+ i82 = (82 + x) % 10;
+ I64 i83;
+ i83 = (83 - x) % 10;
+ I64 i84;
+ i84 = (84 + x) % 10;
+ I64 i85;
+ i85 = (85 - x) % 10;
+ I64 i86;
+ i86 = (86 + x) % 10;
+ I64 i87;
+ i87 = (87 - x) % 10;
+ I64 i88;
+ i88 = (88 + x) % 10;
+ I64 i89;
+ i89 = (89 - x) % 10;
+ I64 i90;
+ i90 = (90 + x) % 10;
+ I64 i91;
+ i91 = (91 - x) % 10;
+ I64 i92;
+ i92 = (92 + x) % 10;
+ I64 i93;
+ i93 = (93 - x) % 10;
+ I64 i94;
+ i94 = (94 + x) % 10;
+ I64 i95;
+ i95 = (95 - x) % 10;
+ I64 i96;
+ i96 = (96 + x) % 10;
+ I64 i97;
+ i97 = (97 - x) % 10;
+ I64 i98;
+ i98 = (98 + x) % 10;
+ I64 i99;
+ i99 = (99 - x) % 10;
+ I64 i100;
+ i100 = (100 + x) % 10;
+ I64 i101;
+ i101 = (101 - x) % 10;
+ I64 i102;
+ i102 = (102 + x) % 10;
+ I64 i103;
+ i103 = (103 - x) % 10;
+ I64 i104;
+ i104 = (104 + x) % 10;
+ I64 i105;
+ i105 = (105 - x) % 10;
+ I64 i106;
+ i106 = (106 + x) % 10;
+ I64 i107;
+ i107 = (107 - x) % 10;
+ I64 i108;
+ i108 = (108 + x) % 10;
+ I64 i109;
+ i109 = (109 - x) % 10;
+ I64 i110;
+ i110 = (110 + x) % 10;
+ I64 i111;
+ i111 = (111 - x) % 10;
+ I64 i112;
+ i112 = (112 + x) % 10;
+ I64 i113;
+ i113 = (113 - x) % 10;
+ I64 i114;
+ i114 = (114 + x) % 10;
+ I64 i115;
+ i115 = (115 - x) % 10;
+ I64 i116;
+ i116 = (116 + x) % 10;
+ I64 i117;
+ i117 = (117 - x) % 10;
+ I64 i118;
+ i118 = (118 + x) % 10;
+ I64 i119;
+ i119 = (119 - x) % 10;
+ I64 i120;
+ i120 = (120 + x) % 10;
+ I64 i121;
+ i121 = (121 - x) % 10;
+ I64 i122;
+ i122 = (122 + x) % 10;
+ I64 i123;
+ i123 = (123 - x) % 10;
+ I64 i124;
+ i124 = (124 + x) % 10;
+ I64 i125;
+ i125 = (125 - x) % 10;
+ I64 i126;
+ i126 = (126 + x) % 10;
+ I64 i127;
+ i127 = (127 - x) % 10;
+ I64 i128;
+ i128 = (128 + x) % 10;
+ I64 i129;
+ i129 = (129 - x) % 10;
+ I64 i130;
+ i130 = (130 + x) % 10;
+ I64 i131;
+ i131 = (131 - x) % 10;
+ I64 i132;
+ i132 = (132 + x) % 10;
+ I64 i133;
+ i133 = (133 - x) % 10;
+ I64 i134;
+ i134 = (134 + x) % 10;
+ I64 i135;
+ i135 = (135 - x) % 10;
+ I64 i136;
+ i136 = (136 + x) % 10;
+ I64 i137;
+ i137 = (137 - x) % 10;
+ I64 i138;
+ i138 = (138 + x) % 10;
+ I64 i139;
+ i139 = (139 - x) % 10;
+ I64 i140;
+ i140 = (140 + x) % 10;
+ I64 i141;
+ i141 = (141 - x) % 10;
+ I64 i142;
+ i142 = (142 + x) % 10;
+ I64 i143;
+ i143 = (143 - x) % 10;
+ I64 i144;
+ i144 = (144 + x) % 10;
+ I64 i145;
+ i145 = (145 - x) % 10;
+ I64 i146;
+ i146 = (146 + x) % 10;
+ I64 i147;
+ i147 = (147 - x) % 10;
+ I64 i148;
+ i148 = (148 + x) % 10;
+ I64 i149;
+ i149 = (149 - x) % 10;
+ I64 i150;
+ i150 = (150 + x) % 10;
+ I64 i151;
+ i151 = (151 - x) % 10;
+ I64 i152;
+ i152 = (152 + x) % 10;
+ I64 i153;
+ i153 = (153 - x) % 10;
+ I64 i154;
+ i154 = (154 + x) % 10;
+ I64 i155;
+ i155 = (155 - x) % 10;
+ I64 i156;
+ i156 = (156 + x) % 10;
+ I64 i157;
+ i157 = (157 - x) % 10;
+ I64 i158;
+ i158 = (158 + x) % 10;
+ I64 i159;
+ i159 = (159 - x) % 10;
+ I64 i160;
+ i160 = (160 + x) % 10;
+ I64 i161;
+ i161 = (161 - x) % 10;
+ I64 i162;
+ i162 = (162 + x) % 10;
+ I64 i163;
+ i163 = (163 - x) % 10;
+ I64 i164;
+ i164 = (164 + x) % 10;
+ I64 i165;
+ i165 = (165 - x) % 10;
+ I64 i166;
+ i166 = (166 + x) % 10;
+ I64 i167;
+ i167 = (167 - x) % 10;
+ I64 i168;
+ i168 = (168 + x) % 10;
+ I64 i169;
+ i169 = (169 - x) % 10;
+ I64 i170;
+ i170 = (170 + x) % 10;
+ I64 i171;
+ i171 = (171 - x) % 10;
+ I64 i172;
+ i172 = (172 + x) % 10;
+ I64 i173;
+ i173 = (173 - x) % 10;
+ I64 i174;
+ i174 = (174 + x) % 10;
+ I64 i175;
+ i175 = (175 - x) % 10;
+ I64 i176;
+ i176 = (176 + x) % 10;
+ I64 i177;
+ i177 = (177 - x) % 10;
+ I64 i178;
+ i178 = (178 + x) % 10;
+ I64 i179;
+ i179 = (179 - x) % 10;
+ I64 i180;
+ i180 = (180 + x) % 10;
+ I64 i181;
+ i181 = (181 - x) % 10;
+ I64 i182;
+ i182 = (182 + x) % 10;
+ I64 i183;
+ i183 = (183 - x) % 10;
+ I64 i184;
+ i184 = (184 + x) % 10;
+ I64 i185;
+ i185 = (185 - x) % 10;
+ I64 i186;
+ i186 = (186 + x) % 10;
+ I64 i187;
+ i187 = (187 - x) % 10;
+ I64 i188;
+ i188 = (188 + x) % 10;
+ I64 i189;
+ i189 = (189 - x) % 10;
+ I64 i190;
+ i190 = (190 + x) % 10;
+ I64 i191;
+ i191 = (191 - x) % 10;
+ I64 i192;
+ i192 = (192 + x) % 10;
+ I64 i193;
+ i193 = (193 - x) % 10;
+ I64 i194;
+ i194 = (194 + x) % 10;
+ I64 i195;
+ i195 = (195 - x) % 10;
+ I64 i196;
+ i196 = (196 + x) % 10;
+ I64 i197;
+ i197 = (197 - x) % 10;
+ I64 i198;
+ i198 = (198 + x) % 10;
+ I64 i199;
+ i199 = (199 - x) % 10;
+ I64 i200;
+ i200 = (200 + x) % 10;
+ I64 i201;
+ i201 = (201 - x) % 10;
+ I64 i202;
+ i202 = (202 + x) % 10;
+ I64 i203;
+ i203 = (203 - x) % 10;
+ I64 i204;
+ i204 = (204 + x) % 10;
+ I64 i205;
+ i205 = (205 - x) % 10;
+ I64 i206;
+ i206 = (206 + x) % 10;
+ I64 i207;
+ i207 = (207 - x) % 10;
+ I64 i208;
+ i208 = (208 + x) % 10;
+ I64 i209;
+ i209 = (209 - x) % 10;
+ I64 i210;
+ i210 = (210 + x) % 10;
+ I64 i211;
+ i211 = (211 - x) % 10;
+ I64 i212;
+ i212 = (212 + x) % 10;
+ I64 i213;
+ i213 = (213 - x) % 10;
+ I64 i214;
+ i214 = (214 + x) % 10;
+ I64 i215;
+ i215 = (215 - x) % 10;
+ I64 i216;
+ i216 = (216 + x) % 10;
+ I64 i217;
+ i217 = (217 - x) % 10;
+ I64 i218;
+ i218 = (218 + x) % 10;
+ I64 i219;
+ i219 = (219 - x) % 10;
+ I64 i220;
+ i220 = (220 + x) % 10;
+ I64 i221;
+ i221 = (221 - x) % 10;
+ I64 i222;
+ i222 = (222 + x) % 10;
+ I64 i223;
+ i223 = (223 - x) % 10;
+ I64 i224;
+ i224 = (224 + x) % 10;
+ I64 i225;
+ i225 = (225 - x) % 10;
+ I64 i226;
+ i226 = (226 + x) % 10;
+ I64 i227;
+ i227 = (227 - x) % 10;
+ I64 i228;
+ i228 = (228 + x) % 10;
+ I64 i229;
+ i229 = (229 - x) % 10;
+ I64 i230;
+ i230 = (230 + x) % 10;
+ I64 i231;
+ i231 = (231 - x) % 10;
+ I64 i232;
+ i232 = (232 + x) % 10;
+ I64 i233;
+ i233 = (233 - x) % 10;
+ I64 i234;
+ i234 = (234 + x) % 10;
+ I64 i235;
+ i235 = (235 - x) % 10;
+ I64 i236;
+ i236 = (236 + x) % 10;
+ I64 i237;
+ i237 = (237 - x) % 10;
+ I64 i238;
+ i238 = (238 + x) % 10;
+ I64 i239;
+ i239 = (239 - x) % 10;
+ I64 i240;
+ i240 = (240 + x) % 10;
+ I64 i241;
+ i241 = (241 - x) % 10;
+ I64 i242;
+ i242 = (242 + x) % 10;
+ I64 i243;
+ i243 = (243 - x) % 10;
+ I64 i244;
+ i244 = (244 + x) % 10;
+ I64 i245;
+ i245 = (245 - x) % 10;
+ I64 i246;
+ i246 = (246 + x) % 10;
+ I64 i247;
+ i247 = (247 - x) % 10;
+ I64 i248;
+ i248 = (248 + x) % 10;
+ I64 i249;
+ i249 = (249 - x) % 10;
+ I64 i250;
+ i250 = (250 + x) % 10;
+ I64 i251;
+ i251 = (251 - x) % 10;
+ I64 i252;
+ i252 = (252 + x) % 10;
+ I64 i253;
+ i253 = (253 - x) % 10;
+ I64 i254;
+ i254 = (254 + x) % 10;
+ I64 i255;
+ i255 = (255 - x) % 10;
+ I64 i256;
+ i256 = (256 + x) % 10;
+ I64 i257;
+ i257 = (257 - x) % 10;
+ I64 i258;
+ i258 = (258 + x) % 10;
+ I64 i259;
+ i259 = (259 - x) % 10;
+ I64 i260;
+ i260 = (260 + x) % 10;
+ I64 i261;
+ i261 = (261 - x) % 10;
+ I64 i262;
+ i262 = (262 + x) % 10;
+ I64 i263;
+ i263 = (263 - x) % 10;
+ I64 i264;
+ i264 = (264 + x) % 10;
+ I64 i265;
+ i265 = (265 - x) % 10;
+ I64 i266;
+ i266 = (266 + x) % 10;
+ I64 i267;
+ i267 = (267 - x) % 10;
+ I64 i268;
+ i268 = (268 + x) % 10;
+ I64 i269;
+ i269 = (269 - x) % 10;
+ I64 i270;
+ i270 = (270 + x) % 10;
+ I64 i271;
+ i271 = (271 - x) % 10;
+ I64 i272;
+ i272 = (272 + x) % 10;
+ I64 i273;
+ i273 = (273 - x) % 10;
+ I64 i274;
+ i274 = (274 + x) % 10;
+ I64 i275;
+ i275 = (275 - x) % 10;
+ I64 i276;
+ i276 = (276 + x) % 10;
+ I64 i277;
+ i277 = (277 - x) % 10;
+ I64 i278;
+ i278 = (278 + x) % 10;
+ I64 i279;
+ i279 = (279 - x) % 10;
+ I64 i280;
+ i280 = (280 + x) % 10;
+ I64 i281;
+ i281 = (281 - x) % 10;
+ I64 i282;
+ i282 = (282 + x) % 10;
+ I64 i283;
+ i283 = (283 - x) % 10;
+ I64 i284;
+ i284 = (284 + x) % 10;
+ I64 i285;
+ i285 = (285 - x) % 10;
+ I64 i286;
+ i286 = (286 + x) % 10;
+ I64 i287;
+ i287 = (287 - x) % 10;
+ I64 i288;
+ i288 = (288 + x) % 10;
+ I64 i289;
+ i289 = (289 - x) % 10;
+ I64 i290;
+ i290 = (290 + x) % 10;
+ I64 i291;
+ i291 = (291 - x) % 10;
+ I64 i292;
+ i292 = (292 + x) % 10;
+ I64 i293;
+ i293 = (293 - x) % 10;
+ I64 i294;
+ i294 = (294 + x) % 10;
+ I64 i295;
+ i295 = (295 - x) % 10;
+ I64 i296;
+ i296 = (296 + x) % 10;
+ I64 i297;
+ i297 = (297 - x) % 10;
+ I64 i298;
+ i298 = (298 + x) % 10;
+ I64 i299;
+ i299 = (299 - x) % 10;
+ I64 i300;
+ i300 = (300 + x) % 10;
+ I64 i301;
+ i301 = (301 - x) % 10;
+ I64 i302;
+ i302 = (302 + x) % 10;
+ I64 i303;
+ i303 = (303 - x) % 10;
+ I64 i304;
+ i304 = (304 + x) % 10;
+ I64 i305;
+ i305 = (305 - x) % 10;
+ I64 i306;
+ i306 = (306 + x) % 10;
+ I64 i307;
+ i307 = (307 - x) % 10;
+ I64 i308;
+ i308 = (308 + x) % 10;
+ I64 i309;
+ i309 = (309 - x) % 10;
+ I64 i310;
+ i310 = (310 + x) % 10;
+ I64 i311;
+ i311 = (311 - x) % 10;
+ I64 i312;
+ i312 = (312 + x) % 10;
+ I64 i313;
+ i313 = (313 - x) % 10;
+ I64 i314;
+ i314 = (314 + x) % 10;
+ I64 i315;
+ i315 = (315 - x) % 10;
+ I64 i316;
+ i316 = (316 + x) % 10;
+ I64 i317;
+ i317 = (317 - x) % 10;
+ I64 i318;
+ i318 = (318 + x) % 10;
+ I64 i319;
+ i319 = (319 - x) % 10;
+ I64 i320;
+ i320 = (320 + x) % 10;
+ I64 i321;
+ i321 = (321 - x) % 10;
+ I64 i322;
+ i322 = (322 + x) % 10;
+ I64 i323;
+ i323 = (323 - x) % 10;
+ I64 i324;
+ i324 = (324 + x) % 10;
+ I64 i325;
+ i325 = (325 - x) % 10;
+ I64 i326;
+ i326 = (326 + x) % 10;
+ I64 i327;
+ i327 = (327 - x) % 10;
+ I64 i328;
+ i328 = (328 + x) % 10;
+ I64 i329;
+ i329 = (329 - x) % 10;
+ I64 i330;
+ i330 = (330 + x) % 10;
+ I64 i331;
+ i331 = (331 - x) % 10;
+ I64 i332;
+ i332 = (332 + x) % 10;
+ I64 i333;
+ i333 = (333 - x) % 10;
+ I64 i334;
+ i334 = (334 + x) % 10;
+ I64 i335;
+ i335 = (335 - x) % 10;
+ I64 i336;
+ i336 = (336 + x) % 10;
+ I64 i337;
+ i337 = (337 - x) % 10;
+ I64 i338;
+ i338 = (338 + x) % 10;
+ I64 i339;
+ i339 = (339 - x) % 10;
+ I64 i340;
+ i340 = (340 + x) % 10;
+ I64 i341;
+ i341 = (341 - x) % 10;
+ I64 i342;
+ i342 = (342 + x) % 10;
+ I64 i343;
+ i343 = (343 - x) % 10;
+ I64 i344;
+ i344 = (344 + x) % 10;
+ I64 i345;
+ i345 = (345 - x) % 10;
+ I64 i346;
+ i346 = (346 + x) % 10;
+ I64 i347;
+ i347 = (347 - x) % 10;
+ I64 i348;
+ i348 = (348 + x) % 10;
+ I64 i349;
+ i349 = (349 - x) % 10;
+ I64 i350;
+ i350 = (350 + x) % 10;
+ I64 i351;
+ i351 = (351 - x) % 10;
+ I64 i352;
+ i352 = (352 + x) % 10;
+ I64 i353;
+ i353 = (353 - x) % 10;
+ I64 i354;
+ i354 = (354 + x) % 10;
+ I64 i355;
+ i355 = (355 - x) % 10;
+ I64 i356;
+ i356 = (356 + x) % 10;
+ I64 i357;
+ i357 = (357 - x) % 10;
+ I64 i358;
+ i358 = (358 + x) % 10;
+ I64 i359;
+ i359 = (359 - x) % 10;
+ I64 i360;
+ i360 = (360 + x) % 10;
+ I64 i361;
+ i361 = (361 - x) % 10;
+ I64 i362;
+ i362 = (362 + x) % 10;
+ I64 i363;
+ i363 = (363 - x) % 10;
+ I64 i364;
+ i364 = (364 + x) % 10;
+ I64 i365;
+ i365 = (365 - x) % 10;
+ I64 i366;
+ i366 = (366 + x) % 10;
+ I64 i367;
+ i367 = (367 - x) % 10;
+ I64 i368;
+ i368 = (368 + x) % 10;
+ I64 i369;
+ i369 = (369 - x) % 10;
+ I64 i370;
+ i370 = (370 + x) % 10;
+ I64 i371;
+ i371 = (371 - x) % 10;
+ I64 i372;
+ i372 = (372 + x) % 10;
+ I64 i373;
+ i373 = (373 - x) % 10;
+ I64 i374;
+ i374 = (374 + x) % 10;
+ I64 i375;
+ i375 = (375 - x) % 10;
+ I64 i376;
+ i376 = (376 + x) % 10;
+ I64 i377;
+ i377 = (377 - x) % 10;
+ I64 i378;
+ i378 = (378 + x) % 10;
+ I64 i379;
+ i379 = (379 - x) % 10;
+ I64 i380;
+ i380 = (380 + x) % 10;
+ I64 i381;
+ i381 = (381 - x) % 10;
+ I64 i382;
+ i382 = (382 + x) % 10;
+ I64 i383;
+ i383 = (383 - x) % 10;
+ I64 i384;
+ i384 = (384 + x) % 10;
+ I64 i385;
+ i385 = (385 - x) % 10;
+ I64 i386;
+ i386 = (386 + x) % 10;
+ I64 i387;
+ i387 = (387 - x) % 10;
+ I64 i388;
+ i388 = (388 + x) % 10;
+ I64 i389;
+ i389 = (389 - x) % 10;
+ I64 i390;
+ i390 = (390 + x) % 10;
+ I64 i391;
+ i391 = (391 - x) % 10;
+ I64 i392;
+ i392 = (392 + x) % 10;
+ I64 i393;
+ i393 = (393 - x) % 10;
+ I64 i394;
+ i394 = (394 + x) % 10;
+ I64 i395;
+ i395 = (395 - x) % 10;
+ I64 i396;
+ i396 = (396 + x) % 10;
+ I64 i397;
+ i397 = (397 - x) % 10;
+ I64 i398;
+ i398 = (398 + x) % 10;
+ I64 i399;
+ i399 = (399 - x) % 10;
+ I64 i400;
+ i400 = (400 + x) % 10;
+ I64 i401;
+ i401 = (401 - x) % 10;
+ I64 i402;
+ i402 = (402 + x) % 10;
+ I64 i403;
+ i403 = (403 - x) % 10;
+ I64 i404;
+ i404 = (404 + x) % 10;
+ I64 i405;
+ i405 = (405 - x) % 10;
+ I64 i406;
+ i406 = (406 + x) % 10;
+ I64 i407;
+ i407 = (407 - x) % 10;
+ I64 i408;
+ i408 = (408 + x) % 10;
+ I64 i409;
+ i409 = (409 - x) % 10;
+ I64 i410;
+ i410 = (410 + x) % 10;
+ I64 i411;
+ i411 = (411 - x) % 10;
+ I64 i412;
+ i412 = (412 + x) % 10;
+ I64 i413;
+ i413 = (413 - x) % 10;
+ I64 i414;
+ i414 = (414 + x) % 10;
+ I64 i415;
+ i415 = (415 - x) % 10;
+ I64 i416;
+ i416 = (416 + x) % 10;
+ I64 i417;
+ i417 = (417 - x) % 10;
+ I64 i418;
+ i418 = (418 + x) % 10;
+ I64 i419;
+ i419 = (419 - x) % 10;
+ I64 i420;
+ i420 = (420 + x) % 10;
+ I64 i421;
+ i421 = (421 - x) % 10;
+ I64 i422;
+ i422 = (422 + x) % 10;
+ I64 i423;
+ i423 = (423 - x) % 10;
+ I64 i424;
+ i424 = (424 + x) % 10;
+ I64 i425;
+ i425 = (425 - x) % 10;
+ I64 i426;
+ i426 = (426 + x) % 10;
+ I64 i427;
+ i427 = (427 - x) % 10;
+ I64 i428;
+ i428 = (428 + x) % 10;
+ I64 i429;
+ i429 = (429 - x) % 10;
+ I64 i430;
+ i430 = (430 + x) % 10;
+ I64 i431;
+ i431 = (431 - x) % 10;
+ I64 i432;
+ i432 = (432 + x) % 10;
+ I64 i433;
+ i433 = (433 - x) % 10;
+ I64 i434;
+ i434 = (434 + x) % 10;
+ I64 i435;
+ i435 = (435 - x) % 10;
+ I64 i436;
+ i436 = (436 + x) % 10;
+ I64 i437;
+ i437 = (437 - x) % 10;
+ I64 i438;
+ i438 = (438 + x) % 10;
+ I64 i439;
+ i439 = (439 - x) % 10;
+ I64 i440;
+ i440 = (440 + x) % 10;
+ I64 i441;
+ i441 = (441 - x) % 10;
+ I64 i442;
+ i442 = (442 + x) % 10;
+ I64 i443;
+ i443 = (443 - x) % 10;
+ I64 i444;
+ i444 = (444 + x) % 10;
+ I64 i445;
+ i445 = (445 - x) % 10;
+ I64 i446;
+ i446 = (446 + x) % 10;
+ I64 i447;
+ i447 = (447 - x) % 10;
+ I64 i448;
+ i448 = (448 + x) % 10;
+ I64 i449;
+ i449 = (449 - x) % 10;
+ I64 i450;
+ i450 = (450 + x) % 10;
+ I64 i451;
+ i451 = (451 - x) % 10;
+ I64 i452;
+ i452 = (452 + x) % 10;
+ I64 i453;
+ i453 = (453 - x) % 10;
+ I64 i454;
+ i454 = (454 + x) % 10;
+ I64 i455;
+ i455 = (455 - x) % 10;
+ I64 i456;
+ i456 = (456 + x) % 10;
+ I64 i457;
+ i457 = (457 - x) % 10;
+ I64 i458;
+ i458 = (458 + x) % 10;
+ I64 i459;
+ i459 = (459 - x) % 10;
+ I64 i460;
+ i460 = (460 + x) % 10;
+ I64 i461;
+ i461 = (461 - x) % 10;
+ I64 i462;
+ i462 = (462 + x) % 10;
+ I64 i463;
+ i463 = (463 - x) % 10;
+ I64 i464;
+ i464 = (464 + x) % 10;
+ I64 i465;
+ i465 = (465 - x) % 10;
+ I64 i466;
+ i466 = (466 + x) % 10;
+ I64 i467;
+ i467 = (467 - x) % 10;
+ I64 i468;
+ i468 = (468 + x) % 10;
+ I64 i469;
+ i469 = (469 - x) % 10;
+ I64 i470;
+ i470 = (470 + x) % 10;
+ I64 i471;
+ i471 = (471 - x) % 10;
+ I64 i472;
+ i472 = (472 + x) % 10;
+ I64 i473;
+ i473 = (473 - x) % 10;
+ I64 i474;
+ i474 = (474 + x) % 10;
+ I64 i475;
+ i475 = (475 - x) % 10;
+ I64 i476;
+ i476 = (476 + x) % 10;
+ I64 i477;
+ i477 = (477 - x) % 10;
+ I64 i478;
+ i478 = (478 + x) % 10;
+ I64 i479;
+ i479 = (479 - x) % 10;
+ I64 i480;
+ i480 = (480 + x) % 10;
+ I64 i481;
+ i481 = (481 - x) % 10;
+ I64 i482;
+ i482 = (482 + x) % 10;
+ I64 i483;
+ i483 = (483 - x) % 10;
+ I64 i484;
+ i484 = (484 + x) % 10;
+ I64 i485;
+ i485 = (485 - x) % 10;
+ I64 i486;
+ i486 = (486 + x) % 10;
+ I64 i487;
+ i487 = (487 - x) % 10;
+ I64 i488;
+ i488 = (488 + x) % 10;
+ I64 i489;
+ i489 = (489 - x) % 10;
+ I64 i490;
+ i490 = (490 + x) % 10;
+ I64 i491;
+ i491 = (491 - x) % 10;
+ I64 i492;
+ i492 = (492 + x) % 10;
+ I64 i493;
+ i493 = (493 - x) % 10;
+ I64 i494;
+ i494 = (494 + x) % 10;
+ I64 i495;
+ i495 = (495 - x) % 10;
+ I64 i496;
+ i496 = (496 + x) % 10;
+ I64 i497;
+ i497 = (497 - x) % 10;
+ I64 i498;
+ i498 = (498 + x) % 10;
+ I64 i499;
+ i499 = (499 - x) % 10;
+ I64 i500;
+ i500 = (500 + x) % 10;
+ I64 i501;
+ i501 = (501 - x) % 10;
+ I64 i502;
+ i502 = (502 + x) % 10;
+ I64 i503;
+ i503 = (503 - x) % 10;
+ I64 i504;
+ i504 = (504 + x) % 10;
+ I64 i505;
+ i505 = (505 - x) % 10;
+ I64 i506;
+ i506 = (506 + x) % 10;
+ I64 i507;
+ i507 = (507 - x) % 10;
+ I64 i508;
+ i508 = (508 + x) % 10;
+ I64 i509;
+ i509 = (509 - x) % 10;
+ I64 i510;
+ i510 = (510 + x) % 10;
+ I64 i511;
+ i511 = (511 - x) % 10;
+ I64 i512;
+ i512 = (512 + x) % 10;
+ I64 i513;
+ i513 = (513 - x) % 10;
+ I64 i514;
+ i514 = (514 + x) % 10;
+ I64 i515;
+ i515 = (515 - x) % 10;
+ I64 i516;
+ i516 = (516 + x) % 10;
+ I64 i517;
+ i517 = (517 - x) % 10;
+ I64 i518;
+ i518 = (518 + x) % 10;
+ I64 i519;
+ i519 = (519 - x) % 10;
+ I64 i520;
+ i520 = (520 + x) % 10;
+ I64 i521;
+ i521 = (521 - x) % 10;
+ I64 i522;
+ i522 = (522 + x) % 10;
+ I64 i523;
+ i523 = (523 - x) % 10;
+ I64 i524;
+ i524 = (524 + x) % 10;
+ I64 i525;
+ i525 = (525 - x) % 10;
+ I64 i526;
+ i526 = (526 + x) % 10;
+ I64 i527;
+ i527 = (527 - x) % 10;
+ I64 i528;
+ i528 = (528 + x) % 10;
+ I64 i529;
+ i529 = (529 - x) % 10;
+ I64 i530;
+ i530 = (530 + x) % 10;
+ I64 i531;
+ i531 = (531 - x) % 10;
+ I64 i532;
+ i532 = (532 + x) % 10;
+ I64 i533;
+ i533 = (533 - x) % 10;
+ I64 i534;
+ i534 = (534 + x) % 10;
+ I64 i535;
+ i535 = (535 - x) % 10;
+ I64 i536;
+ i536 = (536 + x) % 10;
+ I64 i537;
+ i537 = (537 - x) % 10;
+ I64 i538;
+ i538 = (538 + x) % 10;
+ I64 i539;
+ i539 = (539 - x) % 10;
+ I64 i540;
+ i540 = (540 + x) % 10;
+ I64 i541;
+ i541 = (541 - x) % 10;
+ I64 i542;
+ i542 = (542 + x) % 10;
+ I64 i543;
+ i543 = (543 - x) % 10;
+ I64 i544;
+ i544 = (544 + x) % 10;
+ I64 i545;
+ i545 = (545 - x) % 10;
+ I64 i546;
+ i546 = (546 + x) % 10;
+ I64 i547;
+ i547 = (547 - x) % 10;
+ I64 i548;
+ i548 = (548 + x) % 10;
+ I64 i549;
+ i549 = (549 - x) % 10;
+ I64 i550;
+ i550 = (550 + x) % 10;
+ I64 i551;
+ i551 = (551 - x) % 10;
+ I64 i552;
+ i552 = (552 + x) % 10;
+ I64 i553;
+ i553 = (553 - x) % 10;
+ I64 i554;
+ i554 = (554 + x) % 10;
+ I64 i555;
+ i555 = (555 - x) % 10;
+ I64 i556;
+ i556 = (556 + x) % 10;
+ I64 i557;
+ i557 = (557 - x) % 10;
+ I64 i558;
+ i558 = (558 + x) % 10;
+ I64 i559;
+ i559 = (559 - x) % 10;
+ I64 i560;
+ i560 = (560 + x) % 10;
+ I64 i561;
+ i561 = (561 - x) % 10;
+ I64 i562;
+ i562 = (562 + x) % 10;
+ I64 i563;
+ i563 = (563 - x) % 10;
+ I64 i564;
+ i564 = (564 + x) % 10;
+ I64 i565;
+ i565 = (565 - x) % 10;
+ I64 i566;
+ i566 = (566 + x) % 10;
+ I64 i567;
+ i567 = (567 - x) % 10;
+ I64 i568;
+ i568 = (568 + x) % 10;
+ I64 i569;
+ i569 = (569 - x) % 10;
+ I64 i570;
+ i570 = (570 + x) % 10;
+ I64 i571;
+ i571 = (571 - x) % 10;
+ I64 i572;
+ i572 = (572 + x) % 10;
+ I64 i573;
+ i573 = (573 - x) % 10;
+ I64 i574;
+ i574 = (574 + x) % 10;
+ I64 i575;
+ i575 = (575 - x) % 10;
+ I64 i576;
+ i576 = (576 + x) % 10;
+ I64 i577;
+ i577 = (577 - x) % 10;
+ I64 i578;
+ i578 = (578 + x) % 10;
+ I64 i579;
+ i579 = (579 - x) % 10;
+ I64 i580;
+ i580 = (580 + x) % 10;
+ I64 i581;
+ i581 = (581 - x) % 10;
+ I64 i582;
+ i582 = (582 + x) % 10;
+ I64 i583;
+ i583 = (583 - x) % 10;
+ I64 i584;
+ i584 = (584 + x) % 10;
+ I64 i585;
+ i585 = (585 - x) % 10;
+ I64 i586;
+ i586 = (586 + x) % 10;
+ I64 i587;
+ i587 = (587 - x) % 10;
+ I64 i588;
+ i588 = (588 + x) % 10;
+ I64 i589;
+ i589 = (589 - x) % 10;
+ I64 i590;
+ i590 = (590 + x) % 10;
+ I64 i591;
+ i591 = (591 - x) % 10;
+ I64 i592;
+ i592 = (592 + x) % 10;
+ I64 i593;
+ i593 = (593 - x) % 10;
+ I64 i594;
+ i594 = (594 + x) % 10;
+ I64 i595;
+ i595 = (595 - x) % 10;
+ I64 i596;
+ i596 = (596 + x) % 10;
+ I64 i597;
+ i597 = (597 - x) % 10;
+ I64 i598;
+ i598 = (598 + x) % 10;
+ I64 i599;
+ i599 = (599 - x) % 10;
+ I64 i600;
+ i600 = (600 + x) % 10;
+ I64 i601;
+ i601 = (601 - x) % 10;
+ I64 i602;
+ i602 = (602 + x) % 10;
+ I64 i603;
+ i603 = (603 - x) % 10;
+ I64 i604;
+ i604 = (604 + x) % 10;
+ I64 i605;
+ i605 = (605 - x) % 10;
+ I64 i606;
+ i606 = (606 + x) % 10;
+ I64 i607;
+ i607 = (607 - x) % 10;
+ I64 i608;
+ i608 = (608 + x) % 10;
+ I64 i609;
+ i609 = (609 - x) % 10;
+ I64 i610;
+ i610 = (610 + x) % 10;
+ I64 i611;
+ i611 = (611 - x) % 10;
+ I64 i612;
+ i612 = (612 + x) % 10;
+ I64 i613;
+ i613 = (613 - x) % 10;
+ I64 i614;
+ i614 = (614 + x) % 10;
+ I64 i615;
+ i615 = (615 - x) % 10;
+ I64 i616;
+ i616 = (616 + x) % 10;
+ I64 i617;
+ i617 = (617 - x) % 10;
+ I64 i618;
+ i618 = (618 + x) % 10;
+ I64 i619;
+ i619 = (619 - x) % 10;
+ I64 i620;
+ i620 = (620 + x) % 10;
+ I64 i621;
+ i621 = (621 - x) % 10;
+ I64 i622;
+ i622 = (622 + x) % 10;
+ I64 i623;
+ i623 = (623 - x) % 10;
+ I64 i624;
+ i624 = (624 + x) % 10;
+ I64 i625;
+ i625 = (625 - x) % 10;
+ I64 i626;
+ i626 = (626 + x) % 10;
+ I64 i627;
+ i627 = (627 - x) % 10;
+ I64 i628;
+ i628 = (628 + x) % 10;
+ I64 i629;
+ i629 = (629 - x) % 10;
+ I64 i630;
+ i630 = (630 + x) % 10;
+ I64 i631;
+ i631 = (631 - x) % 10;
+ I64 i632;
+ i632 = (632 + x) % 10;
+ I64 i633;
+ i633 = (633 - x) % 10;
+ I64 i634;
+ i634 = (634 + x) % 10;
+ I64 i635;
+ i635 = (635 - x) % 10;
+ I64 i636;
+ i636 = (636 + x) % 10;
+ I64 i637;
+ i637 = (637 - x) % 10;
+ I64 i638;
+ i638 = (638 + x) % 10;
+ I64 i639;
+ i639 = (639 - x) % 10;
+ I64 i640;
+ i640 = (640 + x) % 10;
+ I64 i641;
+ i641 = (641 - x) % 10;
+ I64 i642;
+ i642 = (642 + x) % 10;
+ I64 i643;
+ i643 = (643 - x) % 10;
+ I64 i644;
+ i644 = (644 + x) % 10;
+ I64 i645;
+ i645 = (645 - x) % 10;
+ I64 i646;
+ i646 = (646 + x) % 10;
+ I64 i647;
+ i647 = (647 - x) % 10;
+ I64 i648;
+ i648 = (648 + x) % 10;
+ I64 i649;
+ i649 = (649 - x) % 10;
+ I64 i650;
+ i650 = (650 + x) % 10;
+ I64 i651;
+ i651 = (651 - x) % 10;
+ I64 i652;
+ i652 = (652 + x) % 10;
+ I64 i653;
+ i653 = (653 - x) % 10;
+ I64 i654;
+ i654 = (654 + x) % 10;
+ I64 i655;
+ i655 = (655 - x) % 10;
+ I64 i656;
+ i656 = (656 + x) % 10;
+ I64 i657;
+ i657 = (657 - x) % 10;
+ I64 i658;
+ i658 = (658 + x) % 10;
+ I64 i659;
+ i659 = (659 - x) % 10;
+ I64 i660;
+ i660 = (660 + x) % 10;
+ I64 i661;
+ i661 = (661 - x) % 10;
+ I64 i662;
+ i662 = (662 + x) % 10;
+ I64 i663;
+ i663 = (663 - x) % 10;
+ I64 i664;
+ i664 = (664 + x) % 10;
+ I64 i665;
+ i665 = (665 - x) % 10;
+ I64 i666;
+ i666 = (666 + x) % 10;
+ I64 i667;
+ i667 = (667 - x) % 10;
+ I64 i668;
+ i668 = (668 + x) % 10;
+ I64 i669;
+ i669 = (669 - x) % 10;
+ I64 i670;
+ i670 = (670 + x) % 10;
+ I64 i671;
+ i671 = (671 - x) % 10;
+ I64 i672;
+ i672 = (672 + x) % 10;
+ I64 i673;
+ i673 = (673 - x) % 10;
+ I64 i674;
+ i674 = (674 + x) % 10;
+ I64 i675;
+ i675 = (675 - x) % 10;
+ I64 i676;
+ i676 = (676 + x) % 10;
+ I64 i677;
+ i677 = (677 - x) % 10;
+ I64 i678;
+ i678 = (678 + x) % 10;
+ I64 i679;
+ i679 = (679 - x) % 10;
+ I64 i680;
+ i680 = (680 + x) % 10;
+ I64 i681;
+ i681 = (681 - x) % 10;
+ I64 i682;
+ i682 = (682 + x) % 10;
+ I64 i683;
+ i683 = (683 - x) % 10;
+ I64 i684;
+ i684 = (684 + x) % 10;
+ I64 i685;
+ i685 = (685 - x) % 10;
+ I64 i686;
+ i686 = (686 + x) % 10;
+ I64 i687;
+ i687 = (687 - x) % 10;
+ I64 i688;
+ i688 = (688 + x) % 10;
+ I64 i689;
+ i689 = (689 - x) % 10;
+ I64 i690;
+ i690 = (690 + x) % 10;
+ I64 i691;
+ i691 = (691 - x) % 10;
+ I64 i692;
+ i692 = (692 + x) % 10;
+ I64 i693;
+ i693 = (693 - x) % 10;
+ I64 i694;
+ i694 = (694 + x) % 10;
+ I64 i695;
+ i695 = (695 - x) % 10;
+ I64 i696;
+ i696 = (696 + x) % 10;
+ I64 i697;
+ i697 = (697 - x) % 10;
+ I64 i698;
+ i698 = (698 + x) % 10;
+ I64 i699;
+ i699 = (699 - x) % 10;
+ I64 i700;
+ i700 = (700 + x) % 10;
+ I64 i701;
+ i701 = (701 - x) % 10;
+ I64 i702;
+ i702 = (702 + x) % 10;
+ I64 i703;
+ i703 = (703 - x) % 10;
+ I64 i704;
+ i704 = (704 + x) % 10;
+ I64 i705;
+ i705 = (705 - x) % 10;
+ I64 i706;
+ i706 = (706 + x) % 10;
+ I64 i707;
+ i707 = (707 - x) % 10;
+ I64 i708;
+ i708 = (708 + x) % 10;
+ I64 i709;
+ i709 = (709 - x) % 10;
+ I64 i710;
+ i710 = (710 + x) % 10;
+ I64 i711;
+ i711 = (711 - x) % 10;
+ I64 i712;
+ i712 = (712 + x) % 10;
+ I64 i713;
+ i713 = (713 - x) % 10;
+ I64 i714;
+ i714 = (714 + x) % 10;
+ I64 i715;
+ i715 = (715 - x) % 10;
+ I64 i716;
+ i716 = (716 + x) % 10;
+ I64 i717;
+ i717 = (717 - x) % 10;
+ I64 i718;
+ i718 = (718 + x) % 10;
+ I64 i719;
+ i719 = (719 - x) % 10;
+ I64 i720;
+ i720 = (720 + x) % 10;
+ I64 i721;
+ i721 = (721 - x) % 10;
+ I64 i722;
+ i722 = (722 + x) % 10;
+ I64 i723;
+ i723 = (723 - x) % 10;
+ I64 i724;
+ i724 = (724 + x) % 10;
+ I64 i725;
+ i725 = (725 - x) % 10;
+ I64 i726;
+ i726 = (726 + x) % 10;
+ I64 i727;
+ i727 = (727 - x) % 10;
+ I64 i728;
+ i728 = (728 + x) % 10;
+ I64 i729;
+ i729 = (729 - x) % 10;
+ I64 i730;
+ i730 = (730 + x) % 10;
+ I64 i731;
+ i731 = (731 - x) % 10;
+ I64 i732;
+ i732 = (732 + x) % 10;
+ I64 i733;
+ i733 = (733 - x) % 10;
+ I64 i734;
+ i734 = (734 + x) % 10;
+ I64 i735;
+ i735 = (735 - x) % 10;
+ I64 i736;
+ i736 = (736 + x) % 10;
+ I64 i737;
+ i737 = (737 - x) % 10;
+ I64 i738;
+ i738 = (738 + x) % 10;
+ I64 i739;
+ i739 = (739 - x) % 10;
+ I64 i740;
+ i740 = (740 + x) % 10;
+ I64 i741;
+ i741 = (741 - x) % 10;
+ I64 i742;
+ i742 = (742 + x) % 10;
+ I64 i743;
+ i743 = (743 - x) % 10;
+ I64 i744;
+ i744 = (744 + x) % 10;
+ I64 i745;
+ i745 = (745 - x) % 10;
+ I64 i746;
+ i746 = (746 + x) % 10;
+ I64 i747;
+ i747 = (747 - x) % 10;
+ I64 i748;
+ i748 = (748 + x) % 10;
+ I64 i749;
+ i749 = (749 - x) % 10;
+ I64 i750;
+ i750 = (750 + x) % 10;
+ I64 i751;
+ i751 = (751 - x) % 10;
+ I64 i752;
+ i752 = (752 + x) % 10;
+ I64 i753;
+ i753 = (753 - x) % 10;
+ I64 i754;
+ i754 = (754 + x) % 10;
+ I64 i755;
+ i755 = (755 - x) % 10;
+ I64 i756;
+ i756 = (756 + x) % 10;
+ I64 i757;
+ i757 = (757 - x) % 10;
+ I64 i758;
+ i758 = (758 + x) % 10;
+ I64 i759;
+ i759 = (759 - x) % 10;
+ I64 i760;
+ i760 = (760 + x) % 10;
+ I64 i761;
+ i761 = (761 - x) % 10;
+ I64 i762;
+ i762 = (762 + x) % 10;
+ I64 i763;
+ i763 = (763 - x) % 10;
+ I64 i764;
+ i764 = (764 + x) % 10;
+ I64 i765;
+ i765 = (765 - x) % 10;
+ I64 i766;
+ i766 = (766 + x) % 10;
+ I64 i767;
+ i767 = (767 - x) % 10;
+ I64 i768;
+ i768 = (768 + x) % 10;
+ I64 i769;
+ i769 = (769 - x) % 10;
+ I64 i770;
+ i770 = (770 + x) % 10;
+ I64 i771;
+ i771 = (771 - x) % 10;
+ I64 i772;
+ i772 = (772 + x) % 10;
+ I64 i773;
+ i773 = (773 - x) % 10;
+ I64 i774;
+ i774 = (774 + x) % 10;
+ I64 i775;
+ i775 = (775 - x) % 10;
+ I64 i776;
+ i776 = (776 + x) % 10;
+ I64 i777;
+ i777 = (777 - x) % 10;
+ I64 i778;
+ i778 = (778 + x) % 10;
+ I64 i779;
+ i779 = (779 - x) % 10;
+ I64 i780;
+ i780 = (780 + x) % 10;
+ I64 i781;
+ i781 = (781 - x) % 10;
+ I64 i782;
+ i782 = (782 + x) % 10;
+ I64 i783;
+ i783 = (783 - x) % 10;
+ I64 i784;
+ i784 = (784 + x) % 10;
+ I64 i785;
+ i785 = (785 - x) % 10;
+ I64 i786;
+ i786 = (786 + x) % 10;
+ I64 i787;
+ i787 = (787 - x) % 10;
+ I64 i788;
+ i788 = (788 + x) % 10;
+ I64 i789;
+ i789 = (789 - x) % 10;
+ I64 i790;
+ i790 = (790 + x) % 10;
+ I64 i791;
+ i791 = (791 - x) % 10;
+ I64 i792;
+ i792 = (792 + x) % 10;
+ I64 i793;
+ i793 = (793 - x) % 10;
+ I64 i794;
+ i794 = (794 + x) % 10;
+ I64 i795;
+ i795 = (795 - x) % 10;
+ I64 i796;
+ i796 = (796 + x) % 10;
+ I64 i797;
+ i797 = (797 - x) % 10;
+ I64 i798;
+ i798 = (798 + x) % 10;
+ I64 i799;
+ i799 = (799 - x) % 10;
+ I64 i800;
+ i800 = (800 + x) % 10;
+ I64 i801;
+ i801 = (801 - x) % 10;
+ I64 i802;
+ i802 = (802 + x) % 10;
+ I64 i803;
+ i803 = (803 - x) % 10;
+ I64 i804;
+ i804 = (804 + x) % 10;
+ I64 i805;
+ i805 = (805 - x) % 10;
+ I64 i806;
+ i806 = (806 + x) % 10;
+ I64 i807;
+ i807 = (807 - x) % 10;
+ I64 i808;
+ i808 = (808 + x) % 10;
+ I64 i809;
+ i809 = (809 - x) % 10;
+ I64 i810;
+ i810 = (810 + x) % 10;
+ I64 i811;
+ i811 = (811 - x) % 10;
+ I64 i812;
+ i812 = (812 + x) % 10;
+ I64 i813;
+ i813 = (813 - x) % 10;
+ I64 i814;
+ i814 = (814 + x) % 10;
+ I64 i815;
+ i815 = (815 - x) % 10;
+ I64 i816;
+ i816 = (816 + x) % 10;
+ I64 i817;
+ i817 = (817 - x) % 10;
+ I64 i818;
+ i818 = (818 + x) % 10;
+ I64 i819;
+ i819 = (819 - x) % 10;
+ I64 i820;
+ i820 = (820 + x) % 10;
+ I64 i821;
+ i821 = (821 - x) % 10;
+ I64 i822;
+ i822 = (822 + x) % 10;
+ I64 i823;
+ i823 = (823 - x) % 10;
+ I64 i824;
+ i824 = (824 + x) % 10;
+ I64 i825;
+ i825 = (825 - x) % 10;
+ I64 i826;
+ i826 = (826 + x) % 10;
+ I64 i827;
+ i827 = (827 - x) % 10;
+ I64 i828;
+ i828 = (828 + x) % 10;
+ I64 i829;
+ i829 = (829 - x) % 10;
+ I64 i830;
+ i830 = (830 + x) % 10;
+ I64 i831;
+ i831 = (831 - x) % 10;
+ I64 i832;
+ i832 = (832 + x) % 10;
+ I64 i833;
+ i833 = (833 - x) % 10;
+ I64 i834;
+ i834 = (834 + x) % 10;
+ I64 i835;
+ i835 = (835 - x) % 10;
+ I64 i836;
+ i836 = (836 + x) % 10;
+ I64 i837;
+ i837 = (837 - x) % 10;
+ I64 i838;
+ i838 = (838 + x) % 10;
+ I64 i839;
+ i839 = (839 - x) % 10;
+ I64 i840;
+ i840 = (840 + x) % 10;
+ I64 i841;
+ i841 = (841 - x) % 10;
+ I64 i842;
+ i842 = (842 + x) % 10;
+ I64 i843;
+ i843 = (843 - x) % 10;
+ I64 i844;
+ i844 = (844 + x) % 10;
+ I64 i845;
+ i845 = (845 - x) % 10;
+ I64 i846;
+ i846 = (846 + x) % 10;
+ I64 i847;
+ i847 = (847 - x) % 10;
+ I64 i848;
+ i848 = (848 + x) % 10;
+ I64 i849;
+ i849 = (849 - x) % 10;
+ I64 i850;
+ i850 = (850 + x) % 10;
+ I64 i851;
+ i851 = (851 - x) % 10;
+ I64 i852;
+ i852 = (852 + x) % 10;
+ I64 i853;
+ i853 = (853 - x) % 10;
+ I64 i854;
+ i854 = (854 + x) % 10;
+ I64 i855;
+ i855 = (855 - x) % 10;
+ I64 i856;
+ i856 = (856 + x) % 10;
+ I64 i857;
+ i857 = (857 - x) % 10;
+ I64 i858;
+ i858 = (858 + x) % 10;
+ I64 i859;
+ i859 = (859 - x) % 10;
+ I64 i860;
+ i860 = (860 + x) % 10;
+ I64 i861;
+ i861 = (861 - x) % 10;
+ I64 i862;
+ i862 = (862 + x) % 10;
+ I64 i863;
+ i863 = (863 - x) % 10;
+ I64 i864;
+ i864 = (864 + x) % 10;
+ I64 i865;
+ i865 = (865 - x) % 10;
+ I64 i866;
+ i866 = (866 + x) % 10;
+ I64 i867;
+ i867 = (867 - x) % 10;
+ I64 i868;
+ i868 = (868 + x) % 10;
+ I64 i869;
+ i869 = (869 - x) % 10;
+ I64 i870;
+ i870 = (870 + x) % 10;
+ I64 i871;
+ i871 = (871 - x) % 10;
+ I64 i872;
+ i872 = (872 + x) % 10;
+ I64 i873;
+ i873 = (873 - x) % 10;
+ I64 i874;
+ i874 = (874 + x) % 10;
+ I64 i875;
+ i875 = (875 - x) % 10;
+ I64 i876;
+ i876 = (876 + x) % 10;
+ I64 i877;
+ i877 = (877 - x) % 10;
+ I64 i878;
+ i878 = (878 + x) % 10;
+ I64 i879;
+ i879 = (879 - x) % 10;
+ I64 i880;
+ i880 = (880 + x) % 10;
+ I64 i881;
+ i881 = (881 - x) % 10;
+ I64 i882;
+ i882 = (882 + x) % 10;
+ I64 i883;
+ i883 = (883 - x) % 10;
+ I64 i884;
+ i884 = (884 + x) % 10;
+ I64 i885;
+ i885 = (885 - x) % 10;
+ I64 i886;
+ i886 = (886 + x) % 10;
+ I64 i887;
+ i887 = (887 - x) % 10;
+ I64 i888;
+ i888 = (888 + x) % 10;
+ I64 i889;
+ i889 = (889 - x) % 10;
+ I64 i890;
+ i890 = (890 + x) % 10;
+ I64 i891;
+ i891 = (891 - x) % 10;
+ I64 i892;
+ i892 = (892 + x) % 10;
+ I64 i893;
+ i893 = (893 - x) % 10;
+ I64 i894;
+ i894 = (894 + x) % 10;
+ I64 i895;
+ i895 = (895 - x) % 10;
+ I64 i896;
+ i896 = (896 + x) % 10;
+ I64 i897;
+ i897 = (897 - x) % 10;
+ I64 i898;
+ i898 = (898 + x) % 10;
+ I64 i899;
+ i899 = (899 - x) % 10;
+ I64 i900;
+ i900 = (900 + x) % 10;
+ I64 i901;
+ i901 = (901 - x) % 10;
+ I64 i902;
+ i902 = (902 + x) % 10;
+ I64 i903;
+ i903 = (903 - x) % 10;
+ I64 i904;
+ i904 = (904 + x) % 10;
+ I64 i905;
+ i905 = (905 - x) % 10;
+ I64 i906;
+ i906 = (906 + x) % 10;
+ I64 i907;
+ i907 = (907 - x) % 10;
+ I64 i908;
+ i908 = (908 + x) % 10;
+ I64 i909;
+ i909 = (909 - x) % 10;
+ I64 i910;
+ i910 = (910 + x) % 10;
+ I64 i911;
+ i911 = (911 - x) % 10;
+ I64 i912;
+ i912 = (912 + x) % 10;
+ I64 i913;
+ i913 = (913 - x) % 10;
+ I64 i914;
+ i914 = (914 + x) % 10;
+ I64 i915;
+ i915 = (915 - x) % 10;
+ I64 i916;
+ i916 = (916 + x) % 10;
+ I64 i917;
+ i917 = (917 - x) % 10;
+ I64 i918;
+ i918 = (918 + x) % 10;
+ I64 i919;
+ i919 = (919 - x) % 10;
+ I64 i920;
+ i920 = (920 + x) % 10;
+ I64 i921;
+ i921 = (921 - x) % 10;
+ I64 i922;
+ i922 = (922 + x) % 10;
+ I64 i923;
+ i923 = (923 - x) % 10;
+ I64 i924;
+ i924 = (924 + x) % 10;
+ I64 i925;
+ i925 = (925 - x) % 10;
+ I64 i926;
+ i926 = (926 + x) % 10;
+ I64 i927;
+ i927 = (927 - x) % 10;
+ I64 i928;
+ i928 = (928 + x) % 10;
+ I64 i929;
+ i929 = (929 - x) % 10;
+ I64 i930;
+ i930 = (930 + x) % 10;
+ I64 i931;
+ i931 = (931 - x) % 10;
+ I64 i932;
+ i932 = (932 + x) % 10;
+ I64 i933;
+ i933 = (933 - x) % 10;
+ I64 i934;
+ i934 = (934 + x) % 10;
+ I64 i935;
+ i935 = (935 - x) % 10;
+ I64 i936;
+ i936 = (936 + x) % 10;
+ I64 i937;
+ i937 = (937 - x) % 10;
+ I64 i938;
+ i938 = (938 + x) % 10;
+ I64 i939;
+ i939 = (939 - x) % 10;
+ I64 i940;
+ i940 = (940 + x) % 10;
+ I64 i941;
+ i941 = (941 - x) % 10;
+ I64 i942;
+ i942 = (942 + x) % 10;
+ I64 i943;
+ i943 = (943 - x) % 10;
+ I64 i944;
+ i944 = (944 + x) % 10;
+ I64 i945;
+ i945 = (945 - x) % 10;
+ I64 i946;
+ i946 = (946 + x) % 10;
+ I64 i947;
+ i947 = (947 - x) % 10;
+ I64 i948;
+ i948 = (948 + x) % 10;
+ I64 i949;
+ i949 = (949 - x) % 10;
+ I64 i950;
+ i950 = (950 + x) % 10;
+ I64 i951;
+ i951 = (951 - x) % 10;
+ I64 i952;
+ i952 = (952 + x) % 10;
+ I64 i953;
+ i953 = (953 - x) % 10;
+ I64 i954;
+ i954 = (954 + x) % 10;
+ I64 i955;
+ i955 = (955 - x) % 10;
+ I64 i956;
+ i956 = (956 + x) % 10;
+ I64 i957;
+ i957 = (957 - x) % 10;
+ I64 i958;
+ i958 = (958 + x) % 10;
+ I64 i959;
+ i959 = (959 - x) % 10;
+ I64 i960;
+ i960 = (960 + x) % 10;
+ I64 i961;
+ i961 = (961 - x) % 10;
+ I64 i962;
+ i962 = (962 + x) % 10;
+ I64 i963;
+ i963 = (963 - x) % 10;
+ I64 i964;
+ i964 = (964 + x) % 10;
+ I64 i965;
+ i965 = (965 - x) % 10;
+ I64 i966;
+ i966 = (966 + x) % 10;
+ I64 i967;
+ i967 = (967 - x) % 10;
+ I64 i968;
+ i968 = (968 + x) % 10;
+ I64 i969;
+ i969 = (969 - x) % 10;
+ I64 i970;
+ i970 = (970 + x) % 10;
+ I64 i971;
+ i971 = (971 - x) % 10;
+ I64 i972;
+ i972 = (972 + x) % 10;
+ I64 i973;
+ i973 = (973 - x) % 10;
+ I64 i974;
+ i974 = (974 + x) % 10;
+ I64 i975;
+ i975 = (975 - x) % 10;
+ I64 i976;
+ i976 = (976 + x) % 10;
+ I64 i977;
+ i977 = (977 - x) % 10;
+ I64 i978;
+ i978 = (978 + x) % 10;
+ I64 i979;
+ i979 = (979 - x) % 10;
+ I64 i980;
+ i980 = (980 + x) % 10;
+ I64 i981;
+ i981 = (981 - x) % 10;
+ I64 i982;
+ i982 = (982 + x) % 10;
+ I64 i983;
+ i983 = (983 - x) % 10;
+ I64 i984;
+ i984 = (984 + x) % 10;
+ I64 i985;
+ i985 = (985 - x) % 10;
+ I64 i986;
+ i986 = (986 + x) % 10;
+ I64 i987;
+ i987 = (987 - x) % 10;
+ I64 i988;
+ i988 = (988 + x) % 10;
+ I64 i989;
+ i989 = (989 - x) % 10;
+ I64 i990;
+ i990 = (990 + x) % 10;
+ I64 i991;
+ i991 = (991 - x) % 10;
+ I64 i992;
+ i992 = (992 + x) % 10;
+ I64 i993;
+ i993 = (993 - x) % 10;
+ I64 i994;
+ i994 = (994 + x) % 10;
+ I64 i995;
+ i995 = (995 - x) % 10;
+ I64 i996;
+ i996 = (996 + x) % 10;
+ I64 i997;
+ i997 = (997 - x) % 10;
+ I64 i998;
+ i998 = (998 + x) % 10;
+ I64 i999;
+ i999 = (999 - x) % 10;
+ I64 i1000;
+ i1000 = (1000 + x) % 10;
+ I64 i1001;
+ i1001 = (1001 - x) % 10;
+ I64 i1002;
+ i1002 = (1002 + x) % 10;
+ I64 i1003;
+ i1003 = (1003 - x) % 10;
+ I64 i1004;
+ i1004 = (1004 + x) % 10;
+ I64 i1005;
+ i1005 = (1005 - x) % 10;
+ I64 i1006;
+ i1006 = (1006 + x) % 10;
+ I64 i1007;
+ i1007 = (1007 - x) % 10;
+ I64 i1008;
+ i1008 = (1008 + x) % 10;
+ I64 i1009;
+ i1009 = (1009 - x) % 10;
+ I64 i1010;
+ i1010 = (1010 + x) % 10;
+ I64 i1011;
+ i1011 = (1011 - x) % 10;
+ I64 i1012;
+ i1012 = (1012 + x) % 10;
+ I64 i1013;
+ i1013 = (1013 - x) % 10;
+ I64 i1014;
+ i1014 = (1014 + x) % 10;
+ I64 i1015;
+ i1015 = (1015 - x) % 10;
+ I64 i1016;
+ i1016 = (1016 + x) % 10;
+ I64 i1017;
+ i1017 = (1017 - x) % 10;
+ I64 i1018;
+ i1018 = (1018 + x) % 10;
+ I64 i1019;
+ i1019 = (1019 - x) % 10;
+ I64 i1020;
+ i1020 = (1020 + x) % 10;
+ I64 i1021;
+ i1021 = (1021 - x) % 10;
+ I64 i1022;
+ i1022 = (1022 + x) % 10;
+ I64 i1023;
+ i1023 = (1023 - x) % 10;
+ I64 i1024;
+ i1024 = (1024 + x) % 10;
+ I64 i1025;
+ i1025 = (1025 - x) % 10;
+ I64 i1026;
+ i1026 = (1026 + x) % 10;
+ I64 i1027;
+ i1027 = (1027 - x) % 10;
+ I64 i1028;
+ i1028 = (1028 + x) % 10;
+ I64 i1029;
+ i1029 = (1029 - x) % 10;
+ I64 i1030;
+ i1030 = (1030 + x) % 10;
+ I64 i1031;
+ i1031 = (1031 - x) % 10;
+ I64 i1032;
+ i1032 = (1032 + x) % 10;
+ I64 i1033;
+ i1033 = (1033 - x) % 10;
+ I64 i1034;
+ i1034 = (1034 + x) % 10;
+ I64 i1035;
+ i1035 = (1035 - x) % 10;
+ I64 i1036;
+ i1036 = (1036 + x) % 10;
+ I64 i1037;
+ i1037 = (1037 - x) % 10;
+ I64 i1038;
+ i1038 = (1038 + x) % 10;
+ I64 i1039;
+ i1039 = (1039 - x) % 10;
+ I64 i1040;
+ i1040 = (1040 + x) % 10;
+ I64 i1041;
+ i1041 = (1041 - x) % 10;
+ I64 i1042;
+ i1042 = (1042 + x) % 10;
+ I64 i1043;
+ i1043 = (1043 - x) % 10;
+ I64 i1044;
+ i1044 = (1044 + x) % 10;
+ I64 i1045;
+ i1045 = (1045 - x) % 10;
+ I64 i1046;
+ i1046 = (1046 + x) % 10;
+ I64 i1047;
+ i1047 = (1047 - x) % 10;
+ I64 i1048;
+ i1048 = (1048 + x) % 10;
+ I64 i1049;
+ i1049 = (1049 - x) % 10;
+ I64 i1050;
+ i1050 = (1050 + x) % 10;
+ I64 i1051;
+ i1051 = (1051 - x) % 10;
+ I64 i1052;
+ i1052 = (1052 + x) % 10;
+ I64 i1053;
+ i1053 = (1053 - x) % 10;
+ I64 i1054;
+ i1054 = (1054 + x) % 10;
+ I64 i1055;
+ i1055 = (1055 - x) % 10;
+ I64 i1056;
+ i1056 = (1056 + x) % 10;
+ I64 i1057;
+ i1057 = (1057 - x) % 10;
+ I64 i1058;
+ i1058 = (1058 + x) % 10;
+ I64 i1059;
+ i1059 = (1059 - x) % 10;
+ I64 i1060;
+ i1060 = (1060 + x) % 10;
+ I64 i1061;
+ i1061 = (1061 - x) % 10;
+ I64 i1062;
+ i1062 = (1062 + x) % 10;
+ I64 i1063;
+ i1063 = (1063 - x) % 10;
+ I64 i1064;
+ i1064 = (1064 + x) % 10;
+ I64 i1065;
+ i1065 = (1065 - x) % 10;
+ I64 i1066;
+ i1066 = (1066 + x) % 10;
+ I64 i1067;
+ i1067 = (1067 - x) % 10;
+ I64 i1068;
+ i1068 = (1068 + x) % 10;
+ I64 i1069;
+ i1069 = (1069 - x) % 10;
+ I64 i1070;
+ i1070 = (1070 + x) % 10;
+ I64 i1071;
+ i1071 = (1071 - x) % 10;
+ I64 i1072;
+ i1072 = (1072 + x) % 10;
+ I64 i1073;
+ i1073 = (1073 - x) % 10;
+ I64 i1074;
+ i1074 = (1074 + x) % 10;
+ I64 i1075;
+ i1075 = (1075 - x) % 10;
+ I64 i1076;
+ i1076 = (1076 + x) % 10;
+ I64 i1077;
+ i1077 = (1077 - x) % 10;
+ I64 i1078;
+ i1078 = (1078 + x) % 10;
+ I64 i1079;
+ i1079 = (1079 - x) % 10;
+ I64 i1080;
+ i1080 = (1080 + x) % 10;
+ I64 i1081;
+ i1081 = (1081 - x) % 10;
+ I64 i1082;
+ i1082 = (1082 + x) % 10;
+ I64 i1083;
+ i1083 = (1083 - x) % 10;
+ I64 i1084;
+ i1084 = (1084 + x) % 10;
+ I64 i1085;
+ i1085 = (1085 - x) % 10;
+ I64 i1086;
+ i1086 = (1086 + x) % 10;
+ I64 i1087;
+ i1087 = (1087 - x) % 10;
+ I64 i1088;
+ i1088 = (1088 + x) % 10;
+ I64 i1089;
+ i1089 = (1089 - x) % 10;
+ I64 i1090;
+ i1090 = (1090 + x) % 10;
+ I64 i1091;
+ i1091 = (1091 - x) % 10;
+ I64 i1092;
+ i1092 = (1092 + x) % 10;
+ I64 i1093;
+ i1093 = (1093 - x) % 10;
+ I64 i1094;
+ i1094 = (1094 + x) % 10;
+ I64 i1095;
+ i1095 = (1095 - x) % 10;
+ I64 i1096;
+ i1096 = (1096 + x) % 10;
+ I64 i1097;
+ i1097 = (1097 - x) % 10;
+ I64 i1098;
+ i1098 = (1098 + x) % 10;
+ I64 i1099;
+ i1099 = (1099 - x) % 10;
+ I64 i1100;
+ i1100 = (1100 + x) % 10;
+ I64 i1101;
+ i1101 = (1101 - x) % 10;
+ I64 i1102;
+ i1102 = (1102 + x) % 10;
+ I64 i1103;
+ i1103 = (1103 - x) % 10;
+ I64 i1104;
+ i1104 = (1104 + x) % 10;
+ I64 i1105;
+ i1105 = (1105 - x) % 10;
+ I64 i1106;
+ i1106 = (1106 + x) % 10;
+ I64 i1107;
+ i1107 = (1107 - x) % 10;
+ I64 i1108;
+ i1108 = (1108 + x) % 10;
+ I64 i1109;
+ i1109 = (1109 - x) % 10;
+ I64 i1110;
+ i1110 = (1110 + x) % 10;
+ I64 i1111;
+ i1111 = (1111 - x) % 10;
+ I64 i1112;
+ i1112 = (1112 + x) % 10;
+ I64 i1113;
+ i1113 = (1113 - x) % 10;
+ I64 i1114;
+ i1114 = (1114 + x) % 10;
+ I64 i1115;
+ i1115 = (1115 - x) % 10;
+ I64 i1116;
+ i1116 = (1116 + x) % 10;
+ I64 i1117;
+ i1117 = (1117 - x) % 10;
+ I64 i1118;
+ i1118 = (1118 + x) % 10;
+ I64 i1119;
+ i1119 = (1119 - x) % 10;
+ I64 i1120;
+ i1120 = (1120 + x) % 10;
+ I64 i1121;
+ i1121 = (1121 - x) % 10;
+ I64 i1122;
+ i1122 = (1122 + x) % 10;
+ I64 i1123;
+ i1123 = (1123 - x) % 10;
+ I64 i1124;
+ i1124 = (1124 + x) % 10;
+ I64 i1125;
+ i1125 = (1125 - x) % 10;
+ I64 i1126;
+ i1126 = (1126 + x) % 10;
+ I64 i1127;
+ i1127 = (1127 - x) % 10;
+ I64 i1128;
+ i1128 = (1128 + x) % 10;
+ I64 i1129;
+ i1129 = (1129 - x) % 10;
+ I64 i1130;
+ i1130 = (1130 + x) % 10;
+ I64 i1131;
+ i1131 = (1131 - x) % 10;
+ I64 i1132;
+ i1132 = (1132 + x) % 10;
+ I64 i1133;
+ i1133 = (1133 - x) % 10;
+ I64 i1134;
+ i1134 = (1134 + x) % 10;
+ I64 i1135;
+ i1135 = (1135 - x) % 10;
+ I64 i1136;
+ i1136 = (1136 + x) % 10;
+ I64 i1137;
+ i1137 = (1137 - x) % 10;
+ I64 i1138;
+ i1138 = (1138 + x) % 10;
+ I64 i1139;
+ i1139 = (1139 - x) % 10;
+ I64 i1140;
+ i1140 = (1140 + x) % 10;
+ I64 i1141;
+ i1141 = (1141 - x) % 10;
+ I64 i1142;
+ i1142 = (1142 + x) % 10;
+ I64 i1143;
+ i1143 = (1143 - x) % 10;
+ I64 i1144;
+ i1144 = (1144 + x) % 10;
+ I64 i1145;
+ i1145 = (1145 - x) % 10;
+ I64 i1146;
+ i1146 = (1146 + x) % 10;
+ I64 i1147;
+ i1147 = (1147 - x) % 10;
+ I64 i1148;
+ i1148 = (1148 + x) % 10;
+ I64 i1149;
+ i1149 = (1149 - x) % 10;
+ I64 i1150;
+ i1150 = (1150 + x) % 10;
+ I64 i1151;
+ i1151 = (1151 - x) % 10;
+ I64 i1152;
+ i1152 = (1152 + x) % 10;
+ I64 i1153;
+ i1153 = (1153 - x) % 10;
+ I64 i1154;
+ i1154 = (1154 + x) % 10;
+ I64 i1155;
+ i1155 = (1155 - x) % 10;
+ I64 i1156;
+ i1156 = (1156 + x) % 10;
+ I64 i1157;
+ i1157 = (1157 - x) % 10;
+ I64 i1158;
+ i1158 = (1158 + x) % 10;
+ I64 i1159;
+ i1159 = (1159 - x) % 10;
+ I64 i1160;
+ i1160 = (1160 + x) % 10;
+ I64 i1161;
+ i1161 = (1161 - x) % 10;
+ I64 i1162;
+ i1162 = (1162 + x) % 10;
+ I64 i1163;
+ i1163 = (1163 - x) % 10;
+ I64 i1164;
+ i1164 = (1164 + x) % 10;
+ I64 i1165;
+ i1165 = (1165 - x) % 10;
+ I64 i1166;
+ i1166 = (1166 + x) % 10;
+ I64 i1167;
+ i1167 = (1167 - x) % 10;
+ I64 i1168;
+ i1168 = (1168 + x) % 10;
+ I64 i1169;
+ i1169 = (1169 - x) % 10;
+ I64 i1170;
+ i1170 = (1170 + x) % 10;
+ I64 i1171;
+ i1171 = (1171 - x) % 10;
+ I64 i1172;
+ i1172 = (1172 + x) % 10;
+ I64 i1173;
+ i1173 = (1173 - x) % 10;
+ I64 i1174;
+ i1174 = (1174 + x) % 10;
+ I64 i1175;
+ i1175 = (1175 - x) % 10;
+ I64 i1176;
+ i1176 = (1176 + x) % 10;
+ I64 i1177;
+ i1177 = (1177 - x) % 10;
+ I64 i1178;
+ i1178 = (1178 + x) % 10;
+ I64 i1179;
+ i1179 = (1179 - x) % 10;
+ I64 i1180;
+ i1180 = (1180 + x) % 10;
+ I64 i1181;
+ i1181 = (1181 - x) % 10;
+ I64 i1182;
+ i1182 = (1182 + x) % 10;
+ I64 i1183;
+ i1183 = (1183 - x) % 10;
+ I64 i1184;
+ i1184 = (1184 + x) % 10;
+ I64 i1185;
+ i1185 = (1185 - x) % 10;
+ I64 i1186;
+ i1186 = (1186 + x) % 10;
+ I64 i1187;
+ i1187 = (1187 - x) % 10;
+ I64 i1188;
+ i1188 = (1188 + x) % 10;
+ I64 i1189;
+ i1189 = (1189 - x) % 10;
+ I64 i1190;
+ i1190 = (1190 + x) % 10;
+ I64 i1191;
+ i1191 = (1191 - x) % 10;
+ I64 i1192;
+ i1192 = (1192 + x) % 10;
+ I64 i1193;
+ i1193 = (1193 - x) % 10;
+ I64 i1194;
+ i1194 = (1194 + x) % 10;
+ I64 i1195;
+ i1195 = (1195 - x) % 10;
+ I64 i1196;
+ i1196 = (1196 + x) % 10;
+ I64 i1197;
+ i1197 = (1197 - x) % 10;
+ I64 i1198;
+ i1198 = (1198 + x) % 10;
+ I64 i1199;
+ i1199 = (1199 - x) % 10;
+ I64 i1200;
+ i1200 = (1200 + x) % 10;
+ I64 i1201;
+ i1201 = (1201 - x) % 10;
+ I64 i1202;
+ i1202 = (1202 + x) % 10;
+ I64 i1203;
+ i1203 = (1203 - x) % 10;
+ I64 i1204;
+ i1204 = (1204 + x) % 10;
+ I64 i1205;
+ i1205 = (1205 - x) % 10;
+ I64 i1206;
+ i1206 = (1206 + x) % 10;
+ I64 i1207;
+ i1207 = (1207 - x) % 10;
+ I64 i1208;
+ i1208 = (1208 + x) % 10;
+ I64 i1209;
+ i1209 = (1209 - x) % 10;
+ I64 i1210;
+ i1210 = (1210 + x) % 10;
+ I64 i1211;
+ i1211 = (1211 - x) % 10;
+ I64 i1212;
+ i1212 = (1212 + x) % 10;
+ I64 i1213;
+ i1213 = (1213 - x) % 10;
+ I64 i1214;
+ i1214 = (1214 + x) % 10;
+ I64 i1215;
+ i1215 = (1215 - x) % 10;
+ I64 i1216;
+ i1216 = (1216 + x) % 10;
+ I64 i1217;
+ i1217 = (1217 - x) % 10;
+ I64 i1218;
+ i1218 = (1218 + x) % 10;
+ I64 i1219;
+ i1219 = (1219 - x) % 10;
+ I64 i1220;
+ i1220 = (1220 + x) % 10;
+ I64 i1221;
+ i1221 = (1221 - x) % 10;
+ I64 i1222;
+ i1222 = (1222 + x) % 10;
+ I64 i1223;
+ i1223 = (1223 - x) % 10;
+ I64 i1224;
+ i1224 = (1224 + x) % 10;
+ I64 i1225;
+ i1225 = (1225 - x) % 10;
+ I64 i1226;
+ i1226 = (1226 + x) % 10;
+ I64 i1227;
+ i1227 = (1227 - x) % 10;
+ I64 i1228;
+ i1228 = (1228 + x) % 10;
+ I64 i1229;
+ i1229 = (1229 - x) % 10;
+ I64 i1230;
+ i1230 = (1230 + x) % 10;
+ I64 i1231;
+ i1231 = (1231 - x) % 10;
+ I64 i1232;
+ i1232 = (1232 + x) % 10;
+ I64 i1233;
+ i1233 = (1233 - x) % 10;
+ I64 i1234;
+ i1234 = (1234 + x) % 10;
+ I64 i1235;
+ i1235 = (1235 - x) % 10;
+ I64 i1236;
+ i1236 = (1236 + x) % 10;
+ I64 i1237;
+ i1237 = (1237 - x) % 10;
+ I64 i1238;
+ i1238 = (1238 + x) % 10;
+ I64 i1239;
+ i1239 = (1239 - x) % 10;
+ I64 i1240;
+ i1240 = (1240 + x) % 10;
+ I64 i1241;
+ i1241 = (1241 - x) % 10;
+ I64 i1242;
+ i1242 = (1242 + x) % 10;
+ I64 i1243;
+ i1243 = (1243 - x) % 10;
+ I64 i1244;
+ i1244 = (1244 + x) % 10;
+ I64 i1245;
+ i1245 = (1245 - x) % 10;
+ I64 i1246;
+ i1246 = (1246 + x) % 10;
+ I64 i1247;
+ i1247 = (1247 - x) % 10;
+ I64 i1248;
+ i1248 = (1248 + x) % 10;
+ I64 i1249;
+ i1249 = (1249 - x) % 10;
+ I64 i1250;
+ i1250 = (1250 + x) % 10;
+ I64 i1251;
+ i1251 = (1251 - x) % 10;
+ I64 i1252;
+ i1252 = (1252 + x) % 10;
+ I64 i1253;
+ i1253 = (1253 - x) % 10;
+ I64 i1254;
+ i1254 = (1254 + x) % 10;
+ I64 i1255;
+ i1255 = (1255 - x) % 10;
+ I64 i1256;
+ i1256 = (1256 + x) % 10;
+ I64 i1257;
+ i1257 = (1257 - x) % 10;
+ I64 i1258;
+ i1258 = (1258 + x) % 10;
+ I64 i1259;
+ i1259 = (1259 - x) % 10;
+ I64 i1260;
+ i1260 = (1260 + x) % 10;
+ I64 i1261;
+ i1261 = (1261 - x) % 10;
+ I64 i1262;
+ i1262 = (1262 + x) % 10;
+ I64 i1263;
+ i1263 = (1263 - x) % 10;
+ I64 i1264;
+ i1264 = (1264 + x) % 10;
+ I64 i1265;
+ i1265 = (1265 - x) % 10;
+ I64 i1266;
+ i1266 = (1266 + x) % 10;
+ I64 i1267;
+ i1267 = (1267 - x) % 10;
+ I64 i1268;
+ i1268 = (1268 + x) % 10;
+ I64 i1269;
+ i1269 = (1269 - x) % 10;
+ I64 i1270;
+ i1270 = (1270 + x) % 10;
+ I64 i1271;
+ i1271 = (1271 - x) % 10;
+ I64 i1272;
+ i1272 = (1272 + x) % 10;
+ I64 i1273;
+ i1273 = (1273 - x) % 10;
+ I64 i1274;
+ i1274 = (1274 + x) % 10;
+ I64 i1275;
+ i1275 = (1275 - x) % 10;
+ I64 i1276;
+ i1276 = (1276 + x) % 10;
+ I64 i1277;
+ i1277 = (1277 - x) % 10;
+ I64 i1278;
+ i1278 = (1278 + x) % 10;
+ I64 i1279;
+ i1279 = (1279 - x) % 10;
+ I64 i1280;
+ i1280 = (1280 + x) % 10;
+ I64 i1281;
+ i1281 = (1281 - x) % 10;
+ I64 i1282;
+ i1282 = (1282 + x) % 10;
+ I64 i1283;
+ i1283 = (1283 - x) % 10;
+ I64 i1284;
+ i1284 = (1284 + x) % 10;
+ I64 i1285;
+ i1285 = (1285 - x) % 10;
+ I64 i1286;
+ i1286 = (1286 + x) % 10;
+ I64 i1287;
+ i1287 = (1287 - x) % 10;
+ I64 i1288;
+ i1288 = (1288 + x) % 10;
+ I64 i1289;
+ i1289 = (1289 - x) % 10;
+ I64 i1290;
+ i1290 = (1290 + x) % 10;
+ I64 i1291;
+ i1291 = (1291 - x) % 10;
+ I64 i1292;
+ i1292 = (1292 + x) % 10;
+ I64 i1293;
+ i1293 = (1293 - x) % 10;
+ I64 i1294;
+ i1294 = (1294 + x) % 10;
+ I64 i1295;
+ i1295 = (1295 - x) % 10;
+ I64 i1296;
+ i1296 = (1296 + x) % 10;
+ I64 i1297;
+ i1297 = (1297 - x) % 10;
+ I64 i1298;
+ i1298 = (1298 + x) % 10;
+ I64 i1299;
+ i1299 = (1299 - x) % 10;
+ I64 i1300;
+ i1300 = (1300 + x) % 10;
+ I64 i1301;
+ i1301 = (1301 - x) % 10;
+ I64 i1302;
+ i1302 = (1302 + x) % 10;
+ I64 i1303;
+ i1303 = (1303 - x) % 10;
+ I64 i1304;
+ i1304 = (1304 + x) % 10;
+ I64 i1305;
+ i1305 = (1305 - x) % 10;
+ I64 i1306;
+ i1306 = (1306 + x) % 10;
+ I64 i1307;
+ i1307 = (1307 - x) % 10;
+ I64 i1308;
+ i1308 = (1308 + x) % 10;
+ I64 i1309;
+ i1309 = (1309 - x) % 10;
+ I64 i1310;
+ i1310 = (1310 + x) % 10;
+ I64 i1311;
+ i1311 = (1311 - x) % 10;
+ I64 i1312;
+ i1312 = (1312 + x) % 10;
+ I64 i1313;
+ i1313 = (1313 - x) % 10;
+ I64 i1314;
+ i1314 = (1314 + x) % 10;
+ I64 i1315;
+ i1315 = (1315 - x) % 10;
+ I64 i1316;
+ i1316 = (1316 + x) % 10;
+ I64 i1317;
+ i1317 = (1317 - x) % 10;
+ I64 i1318;
+ i1318 = (1318 + x) % 10;
+ I64 i1319;
+ i1319 = (1319 - x) % 10;
+ I64 i1320;
+ i1320 = (1320 + x) % 10;
+ I64 i1321;
+ i1321 = (1321 - x) % 10;
+ I64 i1322;
+ i1322 = (1322 + x) % 10;
+ I64 i1323;
+ i1323 = (1323 - x) % 10;
+ I64 i1324;
+ i1324 = (1324 + x) % 10;
+ I64 i1325;
+ i1325 = (1325 - x) % 10;
+ I64 i1326;
+ i1326 = (1326 + x) % 10;
+ I64 i1327;
+ i1327 = (1327 - x) % 10;
+ I64 i1328;
+ i1328 = (1328 + x) % 10;
+ I64 i1329;
+ i1329 = (1329 - x) % 10;
+ I64 i1330;
+ i1330 = (1330 + x) % 10;
+ I64 i1331;
+ i1331 = (1331 - x) % 10;
+ I64 i1332;
+ i1332 = (1332 + x) % 10;
+ I64 i1333;
+ i1333 = (1333 - x) % 10;
+ I64 i1334;
+ i1334 = (1334 + x) % 10;
+ I64 i1335;
+ i1335 = (1335 - x) % 10;
+ I64 i1336;
+ i1336 = (1336 + x) % 10;
+ I64 i1337;
+ i1337 = (1337 - x) % 10;
+ I64 i1338;
+ i1338 = (1338 + x) % 10;
+ I64 i1339;
+ i1339 = (1339 - x) % 10;
+ I64 i1340;
+ i1340 = (1340 + x) % 10;
+ I64 i1341;
+ i1341 = (1341 - x) % 10;
+ I64 i1342;
+ i1342 = (1342 + x) % 10;
+ I64 i1343;
+ i1343 = (1343 - x) % 10;
+ I64 i1344;
+ i1344 = (1344 + x) % 10;
+ I64 i1345;
+ i1345 = (1345 - x) % 10;
+ I64 i1346;
+ i1346 = (1346 + x) % 10;
+ I64 i1347;
+ i1347 = (1347 - x) % 10;
+ I64 i1348;
+ i1348 = (1348 + x) % 10;
+ I64 i1349;
+ i1349 = (1349 - x) % 10;
+ I64 i1350;
+ i1350 = (1350 + x) % 10;
+ I64 i1351;
+ i1351 = (1351 - x) % 10;
+ I64 i1352;
+ i1352 = (1352 + x) % 10;
+ I64 i1353;
+ i1353 = (1353 - x) % 10;
+ I64 i1354;
+ i1354 = (1354 + x) % 10;
+ I64 i1355;
+ i1355 = (1355 - x) % 10;
+ I64 i1356;
+ i1356 = (1356 + x) % 10;
+ I64 i1357;
+ i1357 = (1357 - x) % 10;
+ I64 i1358;
+ i1358 = (1358 + x) % 10;
+ I64 i1359;
+ i1359 = (1359 - x) % 10;
+ I64 i1360;
+ i1360 = (1360 + x) % 10;
+ I64 i1361;
+ i1361 = (1361 - x) % 10;
+ I64 i1362;
+ i1362 = (1362 + x) % 10;
+ I64 i1363;
+ i1363 = (1363 - x) % 10;
+ I64 i1364;
+ i1364 = (1364 + x) % 10;
+ I64 i1365;
+ i1365 = (1365 - x) % 10;
+ I64 i1366;
+ i1366 = (1366 + x) % 10;
+ I64 i1367;
+ i1367 = (1367 - x) % 10;
+ I64 i1368;
+ i1368 = (1368 + x) % 10;
+ I64 i1369;
+ i1369 = (1369 - x) % 10;
+ I64 i1370;
+ i1370 = (1370 + x) % 10;
+ I64 i1371;
+ i1371 = (1371 - x) % 10;
+ I64 i1372;
+ i1372 = (1372 + x) % 10;
+ I64 i1373;
+ i1373 = (1373 - x) % 10;
+ I64 i1374;
+ i1374 = (1374 + x) % 10;
+ I64 i1375;
+ i1375 = (1375 - x) % 10;
+ I64 i1376;
+ i1376 = (1376 + x) % 10;
+ I64 i1377;
+ i1377 = (1377 - x) % 10;
+ I64 i1378;
+ i1378 = (1378 + x) % 10;
+ I64 i1379;
+ i1379 = (1379 - x) % 10;
+ I64 i1380;
+ i1380 = (1380 + x) % 10;
+ I64 i1381;
+ i1381 = (1381 - x) % 10;
+ I64 i1382;
+ i1382 = (1382 + x) % 10;
+ I64 i1383;
+ i1383 = (1383 - x) % 10;
+ I64 i1384;
+ i1384 = (1384 + x) % 10;
+ I64 i1385;
+ i1385 = (1385 - x) % 10;
+ I64 i1386;
+ i1386 = (1386 + x) % 10;
+ I64 i1387;
+ i1387 = (1387 - x) % 10;
+ I64 i1388;
+ i1388 = (1388 + x) % 10;
+ I64 i1389;
+ i1389 = (1389 - x) % 10;
+ I64 i1390;
+ i1390 = (1390 + x) % 10;
+ I64 i1391;
+ i1391 = (1391 - x) % 10;
+ I64 i1392;
+ i1392 = (1392 + x) % 10;
+ I64 i1393;
+ i1393 = (1393 - x) % 10;
+ I64 i1394;
+ i1394 = (1394 + x) % 10;
+ I64 i1395;
+ i1395 = (1395 - x) % 10;
+ I64 i1396;
+ i1396 = (1396 + x) % 10;
+ I64 i1397;
+ i1397 = (1397 - x) % 10;
+ I64 i1398;
+ i1398 = (1398 + x) % 10;
+ I64 i1399;
+ i1399 = (1399 - x) % 10;
+ I64 i1400;
+ i1400 = (1400 + x) % 10;
+ I64 i1401;
+ i1401 = (1401 - x) % 10;
+ I64 i1402;
+ i1402 = (1402 + x) % 10;
+ I64 i1403;
+ i1403 = (1403 - x) % 10;
+ I64 i1404;
+ i1404 = (1404 + x) % 10;
+ I64 i1405;
+ i1405 = (1405 - x) % 10;
+ I64 i1406;
+ i1406 = (1406 + x) % 10;
+ I64 i1407;
+ i1407 = (1407 - x) % 10;
+ I64 i1408;
+ i1408 = (1408 + x) % 10;
+ I64 i1409;
+ i1409 = (1409 - x) % 10;
+ I64 i1410;
+ i1410 = (1410 + x) % 10;
+ I64 i1411;
+ i1411 = (1411 - x) % 10;
+ I64 i1412;
+ i1412 = (1412 + x) % 10;
+ I64 i1413;
+ i1413 = (1413 - x) % 10;
+ I64 i1414;
+ i1414 = (1414 + x) % 10;
+ I64 i1415;
+ i1415 = (1415 - x) % 10;
+ I64 i1416;
+ i1416 = (1416 + x) % 10;
+ I64 i1417;
+ i1417 = (1417 - x) % 10;
+ I64 i1418;
+ i1418 = (1418 + x) % 10;
+ I64 i1419;
+ i1419 = (1419 - x) % 10;
+ I64 i1420;
+ i1420 = (1420 + x) % 10;
+ I64 i1421;
+ i1421 = (1421 - x) % 10;
+ I64 i1422;
+ i1422 = (1422 + x) % 10;
+ I64 i1423;
+ i1423 = (1423 - x) % 10;
+ I64 i1424;
+ i1424 = (1424 + x) % 10;
+ I64 i1425;
+ i1425 = (1425 - x) % 10;
+ I64 i1426;
+ i1426 = (1426 + x) % 10;
+ I64 i1427;
+ i1427 = (1427 - x) % 10;
+ I64 i1428;
+ i1428 = (1428 + x) % 10;
+ I64 i1429;
+ i1429 = (1429 - x) % 10;
+ I64 i1430;
+ i1430 = (1430 + x) % 10;
+ I64 i1431;
+ i1431 = (1431 - x) % 10;
+ I64 i1432;
+ i1432 = (1432 + x) % 10;
+ I64 i1433;
+ i1433 = (1433 - x) % 10;
+ I64 i1434;
+ i1434 = (1434 + x) % 10;
+ I64 i1435;
+ i1435 = (1435 - x) % 10;
+ I64 i1436;
+ i1436 = (1436 + x) % 10;
+ I64 i1437;
+ i1437 = (1437 - x) % 10;
+ I64 i1438;
+ i1438 = (1438 + x) % 10;
+ I64 i1439;
+ i1439 = (1439 - x) % 10;
+ I64 i1440;
+ i1440 = (1440 + x) % 10;
+ I64 i1441;
+ i1441 = (1441 - x) % 10;
+ I64 i1442;
+ i1442 = (1442 + x) % 10;
+ I64 i1443;
+ i1443 = (1443 - x) % 10;
+ I64 i1444;
+ i1444 = (1444 + x) % 10;
+ I64 i1445;
+ i1445 = (1445 - x) % 10;
+ I64 i1446;
+ i1446 = (1446 + x) % 10;
+ I64 i1447;
+ i1447 = (1447 - x) % 10;
+ I64 i1448;
+ i1448 = (1448 + x) % 10;
+ I64 i1449;
+ i1449 = (1449 - x) % 10;
+ I64 i1450;
+ i1450 = (1450 + x) % 10;
+ I64 i1451;
+ i1451 = (1451 - x) % 10;
+ I64 i1452;
+ i1452 = (1452 + x) % 10;
+ I64 i1453;
+ i1453 = (1453 - x) % 10;
+ I64 i1454;
+ i1454 = (1454 + x) % 10;
+ I64 i1455;
+ i1455 = (1455 - x) % 10;
+ I64 i1456;
+ i1456 = (1456 + x) % 10;
+ I64 i1457;
+ i1457 = (1457 - x) % 10;
+ I64 i1458;
+ i1458 = (1458 + x) % 10;
+ I64 i1459;
+ i1459 = (1459 - x) % 10;
+ I64 i1460;
+ i1460 = (1460 + x) % 10;
+ I64 i1461;
+ i1461 = (1461 - x) % 10;
+ I64 i1462;
+ i1462 = (1462 + x) % 10;
+ I64 i1463;
+ i1463 = (1463 - x) % 10;
+ I64 i1464;
+ i1464 = (1464 + x) % 10;
+ I64 i1465;
+ i1465 = (1465 - x) % 10;
+ I64 i1466;
+ i1466 = (1466 + x) % 10;
+ I64 i1467;
+ i1467 = (1467 - x) % 10;
+ I64 i1468;
+ i1468 = (1468 + x) % 10;
+ I64 i1469;
+ i1469 = (1469 - x) % 10;
+ I64 i1470;
+ i1470 = (1470 + x) % 10;
+ I64 i1471;
+ i1471 = (1471 - x) % 10;
+ I64 i1472;
+ i1472 = (1472 + x) % 10;
+ I64 i1473;
+ i1473 = (1473 - x) % 10;
+ I64 i1474;
+ i1474 = (1474 + x) % 10;
+ I64 i1475;
+ i1475 = (1475 - x) % 10;
+ I64 i1476;
+ i1476 = (1476 + x) % 10;
+ I64 i1477;
+ i1477 = (1477 - x) % 10;
+ I64 i1478;
+ i1478 = (1478 + x) % 10;
+ I64 i1479;
+ i1479 = (1479 - x) % 10;
+ I64 i1480;
+ i1480 = (1480 + x) % 10;
+ I64 i1481;
+ i1481 = (1481 - x) % 10;
+ I64 i1482;
+ i1482 = (1482 + x) % 10;
+ I64 i1483;
+ i1483 = (1483 - x) % 10;
+ I64 i1484;
+ i1484 = (1484 + x) % 10;
+ I64 i1485;
+ i1485 = (1485 - x) % 10;
+ I64 i1486;
+ i1486 = (1486 + x) % 10;
+ I64 i1487;
+ i1487 = (1487 - x) % 10;
+ I64 i1488;
+ i1488 = (1488 + x) % 10;
+ I64 i1489;
+ i1489 = (1489 - x) % 10;
+ I64 i1490;
+ i1490 = (1490 + x) % 10;
+ I64 i1491;
+ i1491 = (1491 - x) % 10;
+ I64 i1492;
+ i1492 = (1492 + x) % 10;
+ I64 i1493;
+ i1493 = (1493 - x) % 10;
+ I64 i1494;
+ i1494 = (1494 + x) % 10;
+ I64 i1495;
+ i1495 = (1495 - x) % 10;
+ I64 i1496;
+ i1496 = (1496 + x) % 10;
+ I64 i1497;
+ i1497 = (1497 - x) % 10;
+ I64 i1498;
+ i1498 = (1498 + x) % 10;
+ I64 i1499;
+ i1499 = (1499 - x) % 10;
+ I64 i1500;
+ i1500 = (1500 + x) % 10;
+ I64 i1501;
+ i1501 = (1501 - x) % 10;
+ I64 i1502;
+ i1502 = (1502 + x) % 10;
+ I64 i1503;
+ i1503 = (1503 - x) % 10;
+ I64 i1504;
+ i1504 = (1504 + x) % 10;
+ I64 i1505;
+ i1505 = (1505 - x) % 10;
+ I64 i1506;
+ i1506 = (1506 + x) % 10;
+ I64 i1507;
+ i1507 = (1507 - x) % 10;
+ I64 i1508;
+ i1508 = (1508 + x) % 10;
+ I64 i1509;
+ i1509 = (1509 - x) % 10;
+ I64 i1510;
+ i1510 = (1510 + x) % 10;
+ I64 i1511;
+ i1511 = (1511 - x) % 10;
+ I64 i1512;
+ i1512 = (1512 + x) % 10;
+ I64 i1513;
+ i1513 = (1513 - x) % 10;
+ I64 i1514;
+ i1514 = (1514 + x) % 10;
+ I64 i1515;
+ i1515 = (1515 - x) % 10;
+ I64 i1516;
+ i1516 = (1516 + x) % 10;
+ I64 i1517;
+ i1517 = (1517 - x) % 10;
+ I64 i1518;
+ i1518 = (1518 + x) % 10;
+ I64 i1519;
+ i1519 = (1519 - x) % 10;
+ I64 i1520;
+ i1520 = (1520 + x) % 10;
+ I64 i1521;
+ i1521 = (1521 - x) % 10;
+ I64 i1522;
+ i1522 = (1522 + x) % 10;
+ I64 i1523;
+ i1523 = (1523 - x) % 10;
+ I64 i1524;
+ i1524 = (1524 + x) % 10;
+ I64 i1525;
+ i1525 = (1525 - x) % 10;
+ I64 i1526;
+ i1526 = (1526 + x) % 10;
+ I64 i1527;
+ i1527 = (1527 - x) % 10;
+ I64 i1528;
+ i1528 = (1528 + x) % 10;
+ I64 i1529;
+ i1529 = (1529 - x) % 10;
+ I64 i1530;
+ i1530 = (1530 + x) % 10;
+ I64 i1531;
+ i1531 = (1531 - x) % 10;
+ I64 i1532;
+ i1532 = (1532 + x) % 10;
+ I64 i1533;
+ i1533 = (1533 - x) % 10;
+ I64 i1534;
+ i1534 = (1534 + x) % 10;
+ I64 i1535;
+ i1535 = (1535 - x) % 10;
+ I64 i1536;
+ i1536 = (1536 + x) % 10;
+ I64 i1537;
+ i1537 = (1537 - x) % 10;
+ I64 i1538;
+ i1538 = (1538 + x) % 10;
+ I64 i1539;
+ i1539 = (1539 - x) % 10;
+ I64 i1540;
+ i1540 = (1540 + x) % 10;
+ I64 i1541;
+ i1541 = (1541 - x) % 10;
+ I64 i1542;
+ i1542 = (1542 + x) % 10;
+ I64 i1543;
+ i1543 = (1543 - x) % 10;
+ I64 i1544;
+ i1544 = (1544 + x) % 10;
+ I64 i1545;
+ i1545 = (1545 - x) % 10;
+ I64 i1546;
+ i1546 = (1546 + x) % 10;
+ I64 i1547;
+ i1547 = (1547 - x) % 10;
+ I64 i1548;
+ i1548 = (1548 + x) % 10;
+ I64 i1549;
+ i1549 = (1549 - x) % 10;
+ I64 i1550;
+ i1550 = (1550 + x) % 10;
+ I64 i1551;
+ i1551 = (1551 - x) % 10;
+ I64 i1552;
+ i1552 = (1552 + x) % 10;
+ I64 i1553;
+ i1553 = (1553 - x) % 10;
+ I64 i1554;
+ i1554 = (1554 + x) % 10;
+ I64 i1555;
+ i1555 = (1555 - x) % 10;
+ I64 i1556;
+ i1556 = (1556 + x) % 10;
+ I64 i1557;
+ i1557 = (1557 - x) % 10;
+ I64 i1558;
+ i1558 = (1558 + x) % 10;
+ I64 i1559;
+ i1559 = (1559 - x) % 10;
+ I64 i1560;
+ i1560 = (1560 + x) % 10;
+ I64 i1561;
+ i1561 = (1561 - x) % 10;
+ I64 i1562;
+ i1562 = (1562 + x) % 10;
+ I64 i1563;
+ i1563 = (1563 - x) % 10;
+ I64 i1564;
+ i1564 = (1564 + x) % 10;
+ I64 i1565;
+ i1565 = (1565 - x) % 10;
+ I64 i1566;
+ i1566 = (1566 + x) % 10;
+ I64 i1567;
+ i1567 = (1567 - x) % 10;
+ I64 i1568;
+ i1568 = (1568 + x) % 10;
+ I64 i1569;
+ i1569 = (1569 - x) % 10;
+ I64 i1570;
+ i1570 = (1570 + x) % 10;
+ I64 i1571;
+ i1571 = (1571 - x) % 10;
+ I64 i1572;
+ i1572 = (1572 + x) % 10;
+ I64 i1573;
+ i1573 = (1573 - x) % 10;
+ I64 i1574;
+ i1574 = (1574 + x) % 10;
+ I64 i1575;
+ i1575 = (1575 - x) % 10;
+ I64 i1576;
+ i1576 = (1576 + x) % 10;
+ I64 i1577;
+ i1577 = (1577 - x) % 10;
+ I64 i1578;
+ i1578 = (1578 + x) % 10;
+ I64 i1579;
+ i1579 = (1579 - x) % 10;
+ I64 i1580;
+ i1580 = (1580 + x) % 10;
+ I64 i1581;
+ i1581 = (1581 - x) % 10;
+ I64 i1582;
+ i1582 = (1582 + x) % 10;
+ I64 i1583;
+ i1583 = (1583 - x) % 10;
+ I64 i1584;
+ i1584 = (1584 + x) % 10;
+ I64 i1585;
+ i1585 = (1585 - x) % 10;
+ I64 i1586;
+ i1586 = (1586 + x) % 10;
+ I64 i1587;
+ i1587 = (1587 - x) % 10;
+ I64 i1588;
+ i1588 = (1588 + x) % 10;
+ I64 i1589;
+ i1589 = (1589 - x) % 10;
+ I64 i1590;
+ i1590 = (1590 + x) % 10;
+ I64 i1591;
+ i1591 = (1591 - x) % 10;
+ I64 i1592;
+ i1592 = (1592 + x) % 10;
+ I64 i1593;
+ i1593 = (1593 - x) % 10;
+ I64 i1594;
+ i1594 = (1594 + x) % 10;
+ I64 i1595;
+ i1595 = (1595 - x) % 10;
+ I64 i1596;
+ i1596 = (1596 + x) % 10;
+ I64 i1597;
+ i1597 = (1597 - x) % 10;
+ I64 i1598;
+ i1598 = (1598 + x) % 10;
+ I64 i1599;
+ i1599 = (1599 - x) % 10;
+ I64 i1600;
+ i1600 = (1600 + x) % 10;
+ I64 i1601;
+ i1601 = (1601 - x) % 10;
+ I64 i1602;
+ i1602 = (1602 + x) % 10;
+ I64 i1603;
+ i1603 = (1603 - x) % 10;
+ I64 i1604;
+ i1604 = (1604 + x) % 10;
+ I64 i1605;
+ i1605 = (1605 - x) % 10;
+ I64 i1606;
+ i1606 = (1606 + x) % 10;
+ I64 i1607;
+ i1607 = (1607 - x) % 10;
+ I64 i1608;
+ i1608 = (1608 + x) % 10;
+ I64 i1609;
+ i1609 = (1609 - x) % 10;
+ I64 i1610;
+ i1610 = (1610 + x) % 10;
+ I64 i1611;
+ i1611 = (1611 - x) % 10;
+ I64 i1612;
+ i1612 = (1612 + x) % 10;
+ I64 i1613;
+ i1613 = (1613 - x) % 10;
+ I64 i1614;
+ i1614 = (1614 + x) % 10;
+ I64 i1615;
+ i1615 = (1615 - x) % 10;
+ I64 i1616;
+ i1616 = (1616 + x) % 10;
+ I64 i1617;
+ i1617 = (1617 - x) % 10;
+ I64 i1618;
+ i1618 = (1618 + x) % 10;
+ I64 i1619;
+ i1619 = (1619 - x) % 10;
+ I64 i1620;
+ i1620 = (1620 + x) % 10;
+ I64 i1621;
+ i1621 = (1621 - x) % 10;
+ I64 i1622;
+ i1622 = (1622 + x) % 10;
+ I64 i1623;
+ i1623 = (1623 - x) % 10;
+ I64 i1624;
+ i1624 = (1624 + x) % 10;
+ I64 i1625;
+ i1625 = (1625 - x) % 10;
+ I64 i1626;
+ i1626 = (1626 + x) % 10;
+ I64 i1627;
+ i1627 = (1627 - x) % 10;
+ I64 i1628;
+ i1628 = (1628 + x) % 10;
+ I64 i1629;
+ i1629 = (1629 - x) % 10;
+ I64 i1630;
+ i1630 = (1630 + x) % 10;
+ I64 i1631;
+ i1631 = (1631 - x) % 10;
+ I64 i1632;
+ i1632 = (1632 + x) % 10;
+ I64 i1633;
+ i1633 = (1633 - x) % 10;
+ I64 i1634;
+ i1634 = (1634 + x) % 10;
+ I64 i1635;
+ i1635 = (1635 - x) % 10;
+ I64 i1636;
+ i1636 = (1636 + x) % 10;
+ I64 i1637;
+ i1637 = (1637 - x) % 10;
+ I64 i1638;
+ i1638 = (1638 + x) % 10;
+ I64 i1639;
+ i1639 = (1639 - x) % 10;
+ I64 i1640;
+ i1640 = (1640 + x) % 10;
+ I64 i1641;
+ i1641 = (1641 - x) % 10;
+ I64 i1642;
+ i1642 = (1642 + x) % 10;
+ I64 i1643;
+ i1643 = (1643 - x) % 10;
+ I64 i1644;
+ i1644 = (1644 + x) % 10;
+ I64 i1645;
+ i1645 = (1645 - x) % 10;
+ I64 i1646;
+ i1646 = (1646 + x) % 10;
+ I64 i1647;
+ i1647 = (1647 - x) % 10;
+ I64 i1648;
+ i1648 = (1648 + x) % 10;
+ I64 i1649;
+ i1649 = (1649 - x) % 10;
+ I64 i1650;
+ i1650 = (1650 + x) % 10;
+ I64 i1651;
+ i1651 = (1651 - x) % 10;
+ I64 i1652;
+ i1652 = (1652 + x) % 10;
+ I64 i1653;
+ i1653 = (1653 - x) % 10;
+ I64 i1654;
+ i1654 = (1654 + x) % 10;
+ I64 i1655;
+ i1655 = (1655 - x) % 10;
+ I64 i1656;
+ i1656 = (1656 + x) % 10;
+ I64 i1657;
+ i1657 = (1657 - x) % 10;
+ I64 i1658;
+ i1658 = (1658 + x) % 10;
+ I64 i1659;
+ i1659 = (1659 - x) % 10;
+ I64 i1660;
+ i1660 = (1660 + x) % 10;
+ I64 i1661;
+ i1661 = (1661 - x) % 10;
+ I64 i1662;
+ i1662 = (1662 + x) % 10;
+ I64 i1663;
+ i1663 = (1663 - x) % 10;
+ I64 i1664;
+ i1664 = (1664 + x) % 10;
+ I64 i1665;
+ i1665 = (1665 - x) % 10;
+ I64 i1666;
+ i1666 = (1666 + x) % 10;
+ I64 i1667;
+ i1667 = (1667 - x) % 10;
+ I64 i1668;
+ i1668 = (1668 + x) % 10;
+ I64 i1669;
+ i1669 = (1669 - x) % 10;
+ I64 i1670;
+ i1670 = (1670 + x) % 10;
+ I64 i1671;
+ i1671 = (1671 - x) % 10;
+ I64 i1672;
+ i1672 = (1672 + x) % 10;
+ I64 i1673;
+ i1673 = (1673 - x) % 10;
+ I64 i1674;
+ i1674 = (1674 + x) % 10;
+ I64 i1675;
+ i1675 = (1675 - x) % 10;
+ I64 i1676;
+ i1676 = (1676 + x) % 10;
+ I64 i1677;
+ i1677 = (1677 - x) % 10;
+ I64 i1678;
+ i1678 = (1678 + x) % 10;
+ I64 i1679;
+ i1679 = (1679 - x) % 10;
+ I64 i1680;
+ i1680 = (1680 + x) % 10;
+ I64 i1681;
+ i1681 = (1681 - x) % 10;
+ I64 i1682;
+ i1682 = (1682 + x) % 10;
+ I64 i1683;
+ i1683 = (1683 - x) % 10;
+ I64 i1684;
+ i1684 = (1684 + x) % 10;
+ I64 i1685;
+ i1685 = (1685 - x) % 10;
+ I64 i1686;
+ i1686 = (1686 + x) % 10;
+ I64 i1687;
+ i1687 = (1687 - x) % 10;
+ I64 i1688;
+ i1688 = (1688 + x) % 10;
+ I64 i1689;
+ i1689 = (1689 - x) % 10;
+ I64 i1690;
+ i1690 = (1690 + x) % 10;
+ I64 i1691;
+ i1691 = (1691 - x) % 10;
+ I64 i1692;
+ i1692 = (1692 + x) % 10;
+ I64 i1693;
+ i1693 = (1693 - x) % 10;
+ I64 i1694;
+ i1694 = (1694 + x) % 10;
+ I64 i1695;
+ i1695 = (1695 - x) % 10;
+ I64 i1696;
+ i1696 = (1696 + x) % 10;
+ I64 i1697;
+ i1697 = (1697 - x) % 10;
+ I64 i1698;
+ i1698 = (1698 + x) % 10;
+ I64 i1699;
+ i1699 = (1699 - x) % 10;
+ I64 i1700;
+ i1700 = (1700 + x) % 10;
+ I64 i1701;
+ i1701 = (1701 - x) % 10;
+ I64 i1702;
+ i1702 = (1702 + x) % 10;
+ I64 i1703;
+ i1703 = (1703 - x) % 10;
+ I64 i1704;
+ i1704 = (1704 + x) % 10;
+ I64 i1705;
+ i1705 = (1705 - x) % 10;
+ I64 i1706;
+ i1706 = (1706 + x) % 10;
+ I64 i1707;
+ i1707 = (1707 - x) % 10;
+ I64 i1708;
+ i1708 = (1708 + x) % 10;
+ I64 i1709;
+ i1709 = (1709 - x) % 10;
+ I64 i1710;
+ i1710 = (1710 + x) % 10;
+ I64 i1711;
+ i1711 = (1711 - x) % 10;
+ I64 i1712;
+ i1712 = (1712 + x) % 10;
+ I64 i1713;
+ i1713 = (1713 - x) % 10;
+ I64 i1714;
+ i1714 = (1714 + x) % 10;
+ I64 i1715;
+ i1715 = (1715 - x) % 10;
+ I64 i1716;
+ i1716 = (1716 + x) % 10;
+ I64 i1717;
+ i1717 = (1717 - x) % 10;
+ I64 i1718;
+ i1718 = (1718 + x) % 10;
+ I64 i1719;
+ i1719 = (1719 - x) % 10;
+ I64 i1720;
+ i1720 = (1720 + x) % 10;
+ I64 i1721;
+ i1721 = (1721 - x) % 10;
+ I64 i1722;
+ i1722 = (1722 + x) % 10;
+ I64 i1723;
+ i1723 = (1723 - x) % 10;
+ I64 i1724;
+ i1724 = (1724 + x) % 10;
+ I64 i1725;
+ i1725 = (1725 - x) % 10;
+ I64 i1726;
+ i1726 = (1726 + x) % 10;
+ I64 i1727;
+ i1727 = (1727 - x) % 10;
+ I64 i1728;
+ i1728 = (1728 + x) % 10;
+ I64 i1729;
+ i1729 = (1729 - x) % 10;
+ I64 i1730;
+ i1730 = (1730 + x) % 10;
+ I64 i1731;
+ i1731 = (1731 - x) % 10;
+ I64 i1732;
+ i1732 = (1732 + x) % 10;
+ I64 i1733;
+ i1733 = (1733 - x) % 10;
+ I64 i1734;
+ i1734 = (1734 + x) % 10;
+ I64 i1735;
+ i1735 = (1735 - x) % 10;
+ I64 i1736;
+ i1736 = (1736 + x) % 10;
+ I64 i1737;
+ i1737 = (1737 - x) % 10;
+ I64 i1738;
+ i1738 = (1738 + x) % 10;
+ I64 i1739;
+ i1739 = (1739 - x) % 10;
+ I64 i1740;
+ i1740 = (1740 + x) % 10;
+ I64 i1741;
+ i1741 = (1741 - x) % 10;
+ I64 i1742;
+ i1742 = (1742 + x) % 10;
+ I64 i1743;
+ i1743 = (1743 - x) % 10;
+ I64 i1744;
+ i1744 = (1744 + x) % 10;
+ I64 i1745;
+ i1745 = (1745 - x) % 10;
+ I64 i1746;
+ i1746 = (1746 + x) % 10;
+ I64 i1747;
+ i1747 = (1747 - x) % 10;
+ I64 i1748;
+ i1748 = (1748 + x) % 10;
+ I64 i1749;
+ i1749 = (1749 - x) % 10;
+ I64 i1750;
+ i1750 = (1750 + x) % 10;
+ I64 i1751;
+ i1751 = (1751 - x) % 10;
+ I64 i1752;
+ i1752 = (1752 + x) % 10;
+ I64 i1753;
+ i1753 = (1753 - x) % 10;
+ I64 i1754;
+ i1754 = (1754 + x) % 10;
+ I64 i1755;
+ i1755 = (1755 - x) % 10;
+ I64 i1756;
+ i1756 = (1756 + x) % 10;
+ I64 i1757;
+ i1757 = (1757 - x) % 10;
+ I64 i1758;
+ i1758 = (1758 + x) % 10;
+ I64 i1759;
+ i1759 = (1759 - x) % 10;
+ I64 i1760;
+ i1760 = (1760 + x) % 10;
+ I64 i1761;
+ i1761 = (1761 - x) % 10;
+ I64 i1762;
+ i1762 = (1762 + x) % 10;
+ I64 i1763;
+ i1763 = (1763 - x) % 10;
+ I64 i1764;
+ i1764 = (1764 + x) % 10;
+ I64 i1765;
+ i1765 = (1765 - x) % 10;
+ I64 i1766;
+ i1766 = (1766 + x) % 10;
+ I64 i1767;
+ i1767 = (1767 - x) % 10;
+ I64 i1768;
+ i1768 = (1768 + x) % 10;
+ I64 i1769;
+ i1769 = (1769 - x) % 10;
+ I64 i1770;
+ i1770 = (1770 + x) % 10;
+ I64 i1771;
+ i1771 = (1771 - x) % 10;
+ I64 i1772;
+ i1772 = (1772 + x) % 10;
+ I64 i1773;
+ i1773 = (1773 - x) % 10;
+ I64 i1774;
+ i1774 = (1774 + x) % 10;
+ I64 i1775;
+ i1775 = (1775 - x) % 10;
+ I64 i1776;
+ i1776 = (1776 + x) % 10;
+ I64 i1777;
+ i1777 = (1777 - x) % 10;
+ I64 i1778;
+ i1778 = (1778 + x) % 10;
+ I64 i1779;
+ i1779 = (1779 - x) % 10;
+ I64 i1780;
+ i1780 = (1780 + x) % 10;
+ I64 i1781;
+ i1781 = (1781 - x) % 10;
+ I64 i1782;
+ i1782 = (1782 + x) % 10;
+ I64 i1783;
+ i1783 = (1783 - x) % 10;
+ I64 i1784;
+ i1784 = (1784 + x) % 10;
+ I64 i1785;
+ i1785 = (1785 - x) % 10;
+ I64 i1786;
+ i1786 = (1786 + x) % 10;
+ I64 i1787;
+ i1787 = (1787 - x) % 10;
+ I64 i1788;
+ i1788 = (1788 + x) % 10;
+ I64 i1789;
+ i1789 = (1789 - x) % 10;
+ I64 i1790;
+ i1790 = (1790 + x) % 10;
+ I64 i1791;
+ i1791 = (1791 - x) % 10;
+ I64 i1792;
+ i1792 = (1792 + x) % 10;
+ I64 i1793;
+ i1793 = (1793 - x) % 10;
+ I64 i1794;
+ i1794 = (1794 + x) % 10;
+ I64 i1795;
+ i1795 = (1795 - x) % 10;
+ I64 i1796;
+ i1796 = (1796 + x) % 10;
+ I64 i1797;
+ i1797 = (1797 - x) % 10;
+ I64 i1798;
+ i1798 = (1798 + x) % 10;
+ I64 i1799;
+ i1799 = (1799 - x) % 10;
+ I64 i1800;
+ i1800 = (1800 + x) % 10;
+ I64 i1801;
+ i1801 = (1801 - x) % 10;
+ I64 i1802;
+ i1802 = (1802 + x) % 10;
+ I64 i1803;
+ i1803 = (1803 - x) % 10;
+ I64 i1804;
+ i1804 = (1804 + x) % 10;
+ I64 i1805;
+ i1805 = (1805 - x) % 10;
+ I64 i1806;
+ i1806 = (1806 + x) % 10;
+ I64 i1807;
+ i1807 = (1807 - x) % 10;
+ I64 i1808;
+ i1808 = (1808 + x) % 10;
+ I64 i1809;
+ i1809 = (1809 - x) % 10;
+ I64 i1810;
+ i1810 = (1810 + x) % 10;
+ I64 i1811;
+ i1811 = (1811 - x) % 10;
+ I64 i1812;
+ i1812 = (1812 + x) % 10;
+ I64 i1813;
+ i1813 = (1813 - x) % 10;
+ I64 i1814;
+ i1814 = (1814 + x) % 10;
+ I64 i1815;
+ i1815 = (1815 - x) % 10;
+ I64 i1816;
+ i1816 = (1816 + x) % 10;
+ I64 i1817;
+ i1817 = (1817 - x) % 10;
+ I64 i1818;
+ i1818 = (1818 + x) % 10;
+ I64 i1819;
+ i1819 = (1819 - x) % 10;
+ I64 i1820;
+ i1820 = (1820 + x) % 10;
+ I64 i1821;
+ i1821 = (1821 - x) % 10;
+ I64 i1822;
+ i1822 = (1822 + x) % 10;
+ I64 i1823;
+ i1823 = (1823 - x) % 10;
+ I64 i1824;
+ i1824 = (1824 + x) % 10;
+ I64 i1825;
+ i1825 = (1825 - x) % 10;
+ I64 i1826;
+ i1826 = (1826 + x) % 10;
+ I64 i1827;
+ i1827 = (1827 - x) % 10;
+ I64 i1828;
+ i1828 = (1828 + x) % 10;
+ I64 i1829;
+ i1829 = (1829 - x) % 10;
+ I64 i1830;
+ i1830 = (1830 + x) % 10;
+ I64 i1831;
+ i1831 = (1831 - x) % 10;
+ I64 i1832;
+ i1832 = (1832 + x) % 10;
+ I64 i1833;
+ i1833 = (1833 - x) % 10;
+ I64 i1834;
+ i1834 = (1834 + x) % 10;
+ I64 i1835;
+ i1835 = (1835 - x) % 10;
+ I64 i1836;
+ i1836 = (1836 + x) % 10;
+ I64 i1837;
+ i1837 = (1837 - x) % 10;
+ I64 i1838;
+ i1838 = (1838 + x) % 10;
+ I64 i1839;
+ i1839 = (1839 - x) % 10;
+ I64 i1840;
+ i1840 = (1840 + x) % 10;
+ I64 i1841;
+ i1841 = (1841 - x) % 10;
+ I64 i1842;
+ i1842 = (1842 + x) % 10;
+ I64 i1843;
+ i1843 = (1843 - x) % 10;
+ I64 i1844;
+ i1844 = (1844 + x) % 10;
+ I64 i1845;
+ i1845 = (1845 - x) % 10;
+ I64 i1846;
+ i1846 = (1846 + x) % 10;
+ I64 i1847;
+ i1847 = (1847 - x) % 10;
+ I64 i1848;
+ i1848 = (1848 + x) % 10;
+ I64 i1849;
+ i1849 = (1849 - x) % 10;
+ I64 i1850;
+ i1850 = (1850 + x) % 10;
+ I64 i1851;
+ i1851 = (1851 - x) % 10;
+ I64 i1852;
+ i1852 = (1852 + x) % 10;
+ I64 i1853;
+ i1853 = (1853 - x) % 10;
+ I64 i1854;
+ i1854 = (1854 + x) % 10;
+ I64 i1855;
+ i1855 = (1855 - x) % 10;
+ I64 i1856;
+ i1856 = (1856 + x) % 10;
+ I64 i1857;
+ i1857 = (1857 - x) % 10;
+ I64 i1858;
+ i1858 = (1858 + x) % 10;
+ I64 i1859;
+ i1859 = (1859 - x) % 10;
+ I64 i1860;
+ i1860 = (1860 + x) % 10;
+ I64 i1861;
+ i1861 = (1861 - x) % 10;
+ I64 i1862;
+ i1862 = (1862 + x) % 10;
+ I64 i1863;
+ i1863 = (1863 - x) % 10;
+ I64 i1864;
+ i1864 = (1864 + x) % 10;
+ I64 i1865;
+ i1865 = (1865 - x) % 10;
+ I64 i1866;
+ i1866 = (1866 + x) % 10;
+ I64 i1867;
+ i1867 = (1867 - x) % 10;
+ I64 i1868;
+ i1868 = (1868 + x) % 10;
+ I64 i1869;
+ i1869 = (1869 - x) % 10;
+ I64 i1870;
+ i1870 = (1870 + x) % 10;
+ I64 i1871;
+ i1871 = (1871 - x) % 10;
+ I64 i1872;
+ i1872 = (1872 + x) % 10;
+ I64 i1873;
+ i1873 = (1873 - x) % 10;
+ I64 i1874;
+ i1874 = (1874 + x) % 10;
+ I64 i1875;
+ i1875 = (1875 - x) % 10;
+ I64 i1876;
+ i1876 = (1876 + x) % 10;
+ I64 i1877;
+ i1877 = (1877 - x) % 10;
+ I64 i1878;
+ i1878 = (1878 + x) % 10;
+ I64 i1879;
+ i1879 = (1879 - x) % 10;
+ I64 i1880;
+ i1880 = (1880 + x) % 10;
+ I64 i1881;
+ i1881 = (1881 - x) % 10;
+ I64 i1882;
+ i1882 = (1882 + x) % 10;
+ I64 i1883;
+ i1883 = (1883 - x) % 10;
+ I64 i1884;
+ i1884 = (1884 + x) % 10;
+ I64 i1885;
+ i1885 = (1885 - x) % 10;
+ I64 i1886;
+ i1886 = (1886 + x) % 10;
+ I64 i1887;
+ i1887 = (1887 - x) % 10;
+ I64 i1888;
+ i1888 = (1888 + x) % 10;
+ I64 i1889;
+ i1889 = (1889 - x) % 10;
+ I64 i1890;
+ i1890 = (1890 + x) % 10;
+ I64 i1891;
+ i1891 = (1891 - x) % 10;
+ I64 i1892;
+ i1892 = (1892 + x) % 10;
+ I64 i1893;
+ i1893 = (1893 - x) % 10;
+ I64 i1894;
+ i1894 = (1894 + x) % 10;
+ I64 i1895;
+ i1895 = (1895 - x) % 10;
+ I64 i1896;
+ i1896 = (1896 + x) % 10;
+ I64 i1897;
+ i1897 = (1897 - x) % 10;
+ I64 i1898;
+ i1898 = (1898 + x) % 10;
+ I64 i1899;
+ i1899 = (1899 - x) % 10;
+ I64 i1900;
+ i1900 = (1900 + x) % 10;
+ I64 i1901;
+ i1901 = (1901 - x) % 10;
+ I64 i1902;
+ i1902 = (1902 + x) % 10;
+ I64 i1903;
+ i1903 = (1903 - x) % 10;
+ I64 i1904;
+ i1904 = (1904 + x) % 10;
+ I64 i1905;
+ i1905 = (1905 - x) % 10;
+ I64 i1906;
+ i1906 = (1906 + x) % 10;
+ I64 i1907;
+ i1907 = (1907 - x) % 10;
+ I64 i1908;
+ i1908 = (1908 + x) % 10;
+ I64 i1909;
+ i1909 = (1909 - x) % 10;
+ I64 i1910;
+ i1910 = (1910 + x) % 10;
+ I64 i1911;
+ i1911 = (1911 - x) % 10;
+ I64 i1912;
+ i1912 = (1912 + x) % 10;
+ I64 i1913;
+ i1913 = (1913 - x) % 10;
+ I64 i1914;
+ i1914 = (1914 + x) % 10;
+ I64 i1915;
+ i1915 = (1915 - x) % 10;
+ I64 i1916;
+ i1916 = (1916 + x) % 10;
+ I64 i1917;
+ i1917 = (1917 - x) % 10;
+ I64 i1918;
+ i1918 = (1918 + x) % 10;
+ I64 i1919;
+ i1919 = (1919 - x) % 10;
+ I64 i1920;
+ i1920 = (1920 + x) % 10;
+ I64 i1921;
+ i1921 = (1921 - x) % 10;
+ I64 i1922;
+ i1922 = (1922 + x) % 10;
+ I64 i1923;
+ i1923 = (1923 - x) % 10;
+ I64 i1924;
+ i1924 = (1924 + x) % 10;
+ I64 i1925;
+ i1925 = (1925 - x) % 10;
+ I64 i1926;
+ i1926 = (1926 + x) % 10;
+ I64 i1927;
+ i1927 = (1927 - x) % 10;
+ I64 i1928;
+ i1928 = (1928 + x) % 10;
+ I64 i1929;
+ i1929 = (1929 - x) % 10;
+ I64 i1930;
+ i1930 = (1930 + x) % 10;
+ I64 i1931;
+ i1931 = (1931 - x) % 10;
+ I64 i1932;
+ i1932 = (1932 + x) % 10;
+ I64 i1933;
+ i1933 = (1933 - x) % 10;
+ I64 i1934;
+ i1934 = (1934 + x) % 10;
+ I64 i1935;
+ i1935 = (1935 - x) % 10;
+ I64 i1936;
+ i1936 = (1936 + x) % 10;
+ I64 i1937;
+ i1937 = (1937 - x) % 10;
+ I64 i1938;
+ i1938 = (1938 + x) % 10;
+ I64 i1939;
+ i1939 = (1939 - x) % 10;
+ I64 i1940;
+ i1940 = (1940 + x) % 10;
+ I64 i1941;
+ i1941 = (1941 - x) % 10;
+ I64 i1942;
+ i1942 = (1942 + x) % 10;
+ I64 i1943;
+ i1943 = (1943 - x) % 10;
+ I64 i1944;
+ i1944 = (1944 + x) % 10;
+ I64 i1945;
+ i1945 = (1945 - x) % 10;
+ I64 i1946;
+ i1946 = (1946 + x) % 10;
+ I64 i1947;
+ i1947 = (1947 - x) % 10;
+ I64 i1948;
+ i1948 = (1948 + x) % 10;
+ I64 i1949;
+ i1949 = (1949 - x) % 10;
+ I64 i1950;
+ i1950 = (1950 + x) % 10;
+ I64 i1951;
+ i1951 = (1951 - x) % 10;
+ I64 i1952;
+ i1952 = (1952 + x) % 10;
+ I64 i1953;
+ i1953 = (1953 - x) % 10;
+ I64 i1954;
+ i1954 = (1954 + x) % 10;
+ I64 i1955;
+ i1955 = (1955 - x) % 10;
+ I64 i1956;
+ i1956 = (1956 + x) % 10;
+ I64 i1957;
+ i1957 = (1957 - x) % 10;
+ I64 i1958;
+ i1958 = (1958 + x) % 10;
+ I64 i1959;
+ i1959 = (1959 - x) % 10;
+ I64 i1960;
+ i1960 = (1960 + x) % 10;
+ I64 i1961;
+ i1961 = (1961 - x) % 10;
+ I64 i1962;
+ i1962 = (1962 + x) % 10;
+ I64 i1963;
+ i1963 = (1963 - x) % 10;
+ I64 i1964;
+ i1964 = (1964 + x) % 10;
+ I64 i1965;
+ i1965 = (1965 - x) % 10;
+ I64 i1966;
+ i1966 = (1966 + x) % 10;
+ I64 i1967;
+ i1967 = (1967 - x) % 10;
+ I64 i1968;
+ i1968 = (1968 + x) % 10;
+ I64 i1969;
+ i1969 = (1969 - x) % 10;
+ I64 i1970;
+ i1970 = (1970 + x) % 10;
+ I64 i1971;
+ i1971 = (1971 - x) % 10;
+ I64 i1972;
+ i1972 = (1972 + x) % 10;
+ I64 i1973;
+ i1973 = (1973 - x) % 10;
+ I64 i1974;
+ i1974 = (1974 + x) % 10;
+ I64 i1975;
+ i1975 = (1975 - x) % 10;
+ I64 i1976;
+ i1976 = (1976 + x) % 10;
+ I64 i1977;
+ i1977 = (1977 - x) % 10;
+ I64 i1978;
+ i1978 = (1978 + x) % 10;
+ I64 i1979;
+ i1979 = (1979 - x) % 10;
+ I64 i1980;
+ i1980 = (1980 + x) % 10;
+ I64 i1981;
+ i1981 = (1981 - x) % 10;
+ I64 i1982;
+ i1982 = (1982 + x) % 10;
+ I64 i1983;
+ i1983 = (1983 - x) % 10;
+ I64 i1984;
+ i1984 = (1984 + x) % 10;
+ I64 i1985;
+ i1985 = (1985 - x) % 10;
+ I64 i1986;
+ i1986 = (1986 + x) % 10;
+ I64 i1987;
+ i1987 = (1987 - x) % 10;
+ I64 i1988;
+ i1988 = (1988 + x) % 10;
+ I64 i1989;
+ i1989 = (1989 - x) % 10;
+ I64 i1990;
+ i1990 = (1990 + x) % 10;
+ I64 i1991;
+ i1991 = (1991 - x) % 10;
+ I64 i1992;
+ i1992 = (1992 + x) % 10;
+ I64 i1993;
+ i1993 = (1993 - x) % 10;
+ I64 i1994;
+ i1994 = (1994 + x) % 10;
+ I64 i1995;
+ i1995 = (1995 - x) % 10;
+ I64 i1996;
+ i1996 = (1996 + x) % 10;
+ I64 i1997;
+ i1997 = (1997 - x) % 10;
+ I64 i1998;
+ i1998 = (1998 + x) % 10;
+ I64 i1999;
+ i1999 = (1999 - x) % 10;
+ I64 i2000;
+ i2000 = (2000 + x) % 10;
+ I64 i2001;
+ i2001 = (2001 - x) % 10;
+ I64 i2002;
+ i2002 = (2002 + x) % 10;
+ I64 i2003;
+ i2003 = (2003 - x) % 10;
+ I64 i2004;
+ i2004 = (2004 + x) % 10;
+ I64 i2005;
+ i2005 = (2005 - x) % 10;
+ I64 i2006;
+ i2006 = (2006 + x) % 10;
+ I64 i2007;
+ i2007 = (2007 - x) % 10;
+ I64 i2008;
+ i2008 = (2008 + x) % 10;
+ I64 i2009;
+ i2009 = (2009 - x) % 10;
+ I64 i2010;
+ i2010 = (2010 + x) % 10;
+ I64 i2011;
+ i2011 = (2011 - x) % 10;
+ I64 i2012;
+ i2012 = (2012 + x) % 10;
+ I64 i2013;
+ i2013 = (2013 - x) % 10;
+ I64 i2014;
+ i2014 = (2014 + x) % 10;
+ I64 i2015;
+ i2015 = (2015 - x) % 10;
+ I64 i2016;
+ i2016 = (2016 + x) % 10;
+ I64 i2017;
+ i2017 = (2017 - x) % 10;
+ I64 i2018;
+ i2018 = (2018 + x) % 10;
+ I64 i2019;
+ i2019 = (2019 - x) % 10;
+ I64 i2020;
+ i2020 = (2020 + x) % 10;
+ I64 i2021;
+ i2021 = (2021 - x) % 10;
+ I64 i2022;
+ i2022 = (2022 + x) % 10;
+ I64 i2023;
+ i2023 = (2023 - x) % 10;
+ I64 i2024;
+ i2024 = (2024 + x) % 10;
+ I64 i2025;
+ i2025 = (2025 - x) % 10;
+ I64 i2026;
+ i2026 = (2026 + x) % 10;
+ I64 i2027;
+ i2027 = (2027 - x) % 10;
+ I64 i2028;
+ i2028 = (2028 + x) % 10;
+ I64 i2029;
+ i2029 = (2029 - x) % 10;
+ I64 i2030;
+ i2030 = (2030 + x) % 10;
+ I64 i2031;
+ i2031 = (2031 - x) % 10;
+ I64 i2032;
+ i2032 = (2032 + x) % 10;
+ I64 i2033;
+ i2033 = (2033 - x) % 10;
+ I64 i2034;
+ i2034 = (2034 + x) % 10;
+ I64 i2035;
+ i2035 = (2035 - x) % 10;
+ I64 i2036;
+ i2036 = (2036 + x) % 10;
+ I64 i2037;
+ i2037 = (2037 - x) % 10;
+ I64 i2038;
+ i2038 = (2038 + x) % 10;
+ I64 i2039;
+ i2039 = (2039 - x) % 10;
+ I64 i2040;
+ i2040 = (2040 + x) % 10;
+ I64 i2041;
+ i2041 = (2041 - x) % 10;
+ I64 i2042;
+ i2042 = (2042 + x) % 10;
+ I64 i2043;
+ i2043 = (2043 - x) % 10;
+ I64 i2044;
+ i2044 = (2044 + x) % 10;
+ I64 i2045;
+ i2045 = (2045 - x) % 10;
+ I64 i2046;
+ i2046 = (2046 + x) % 10;
+ I64 i2047;
+ i2047 = (2047 - x) % 10;
+ I64 i2048;
+ i2048 = (2048 + x) % 10;
+ I64 i2049;
+ i2049 = (2049 - x) % 10;
+ I64 i2050;
+ i2050 = (2050 + x) % 10;
+ I64 i2051;
+ i2051 = (2051 - x) % 10;
+ I64 i2052;
+ i2052 = (2052 + x) % 10;
+ I64 i2053;
+ i2053 = (2053 - x) % 10;
+ I64 i2054;
+ i2054 = (2054 + x) % 10;
+ I64 i2055;
+ i2055 = (2055 - x) % 10;
+ I64 i2056;
+ i2056 = (2056 + x) % 10;
+ I64 i2057;
+ i2057 = (2057 - x) % 10;
+ I64 i2058;
+ i2058 = (2058 + x) % 10;
+ I64 i2059;
+ i2059 = (2059 - x) % 10;
+ I64 i2060;
+ i2060 = (2060 + x) % 10;
+
+ I64 res;
+ ccall printf("Before switch\n");
+ switch [0 .. 9] ((i0+i1+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11+i12+i13+i14+i15+i16+i17+i18+i19+i20+i21+i22+i23+i24+i25+i26+i27+i28+i29+i30+i31+i32+i33+i34+i35+i36+i37+i38+i39+i40+i41+i42+i43+i44+i45+i46+i47+i48+i49+i50+i51+i52+i53+i54+i55+i56+i57+i58+i59+i60+i61+i62+i63+i64+i65+i66+i67+i68+i69+i70+i71+i72+i73+i74+i75+i76+i77+i78+i79+i80+i81+i82+i83+i84+i85+i86+i87+i88+i89+i90+i91+i92+i93+i94+i95+i96+i97+i98+i99+i100+i101+i102+i103+i104+i105+i106+i107+i108+i109+i110+i111+i112+i113+i114+i115+i116+i117+i118+i119+i120+i121+i122+i123+i124+i125+i126+i127+i128+i129+i130+i131+i132+i133+i134+i135+i136+i137+i138+i139+i140+i141+i142+i143+i144+i145+i146+i147+i148+i149+i150+i151+i152+i153+i154+i155+i156+i157+i158+i159+i160+i161+i162+i163+i164+i165+i166+i167+i168+i169+i170+i171+i172+i173+i174+i175+i176+i177+i178+i179+i180+i181+i182+i183+i184+i185+i186+i187+i188+i189+i190+i191+i192+i193+i194+i195+i196+i197+i198+i199+i200+i201+i202+i203+i204+i205+i206+i207+i208+i209+i210+i211+i212+i213+i214+i215+i216+i217+i218+i219+i220+i221+i222+i223+i224+i225+i226+i227+i228+i229+i230+i231+i232+i233+i234+i235+i236+i237+i238+i239+i240+i241+i242+i243+i244+i245+i246+i247+i248+i249+i250+i251+i252+i253+i254+i255+i256+i257+i258+i259+i260+i261+i262+i263+i264+i265+i266+i267+i268+i269+i270+i271+i272+i273+i274+i275+i276+i277+i278+i279+i280+i281+i282+i283+i284+i285+i286+i287+i288+i289+i290+i291+i292+i293+i294+i295+i296+i297+i298+i299+i300+i301+i302+i303+i304+i305+i306+i307+i308+i309+i310+i311+i312+i313+i314+i315+i316+i317+i318+i319+i320+i321+i322+i323+i324+i325+i326+i327+i328+i329+i330+i331+i332+i333+i334+i335+i336+i337+i338+i339+i340+i341+i342+i343+i344+i345+i346+i347+i348+i349+i350+i351+i352+i353+i354+i355+i356+i357+i358+i359+i360+i361+i362+i363+i364+i365+i366+i367+i368+i369+i370+i371+i372+i373+i374+i375+i376+i377+i378+i379+i380+i381+i382+i383+i384+i385+i386+i387+i388+i389+i390+i391+i392+i393+i394+i395+i396+i397+i398+i399+i400+i401+i402+i403+i404+i405+i406+i407+i408+i409+i410+i411+i412+i413+i414+i415+i416+i417+i418+i419+i420+i421+i422+i423+i424+i425+i426+i427+i428+i429+i430+i431+i432+i433+i434+i435+i436+i437+i438+i439+i440+i441+i442+i443+i444+i445+i446+i447+i448+i449+i450+i451+i452+i453+i454+i455+i456+i457+i458+i459+i460+i461+i462+i463+i464+i465+i466+i467+i468+i469+i470+i471+i472+i473+i474+i475+i476+i477+i478+i479+i480+i481+i482+i483+i484+i485+i486+i487+i488+i489+i490+i491+i492+i493+i494+i495+i496+i497+i498+i499+i500+i501+i502+i503+i504+i505+i506+i507+i508+i509+i510+i511+i512+i513+i514+i515+i516+i517+i518+i519+i520+i521+i522+i523+i524+i525+i526+i527+i528+i529+i530+i531+i532+i533+i534+i535+i536+i537+i538+i539+i540+i541+i542+i543+i544+i545+i546+i547+i548+i549+i550+i551+i552+i553+i554+i555+i556+i557+i558+i559+i560+i561+i562+i563+i564+i565+i566+i567+i568+i569+i570+i571+i572+i573+i574+i575+i576+i577+i578+i579+i580+i581+i582+i583+i584+i585+i586+i587+i588+i589+i590+i591+i592+i593+i594+i595+i596+i597+i598+i599+i600+i601+i602+i603+i604+i605+i606+i607+i608+i609+i610+i611+i612+i613+i614+i615+i616+i617+i618+i619+i620+i621+i622+i623+i624+i625+i626+i627+i628+i629+i630+i631+i632+i633+i634+i635+i636+i637+i638+i639+i640+i641+i642+i643+i644+i645+i646+i647+i648+i649+i650+i651+i652+i653+i654+i655+i656+i657+i658+i659+i660+i661+i662+i663+i664+i665+i666+i667+i668+i669+i670+i671+i672+i673+i674+i675+i676+i677+i678+i679+i680+i681+i682+i683+i684+i685+i686+i687+i688+i689+i690+i691+i692+i693+i694+i695+i696+i697+i698+i699+i700+i701+i702+i703+i704+i705+i706+i707+i708+i709+i710+i711+i712+i713+i714+i715+i716+i717+i718+i719+i720+i721+i722+i723+i724+i725+i726+i727+i728+i729+i730+i731+i732+i733+i734+i735+i736+i737+i738+i739+i740+i741+i742+i743+i744+i745+i746+i747+i748+i749+i750+i751+i752+i753+i754+i755+i756+i757+i758+i759+i760+i761+i762+i763+i764+i765+i766+i767+i768+i769+i770+i771+i772+i773+i774+i775+i776+i777+i778+i779+i780+i781+i782+i783+i784+i785+i786+i787+i788+i789+i790+i791+i792+i793+i794+i795+i796+i797+i798+i799+i800+i801+i802+i803+i804+i805+i806+i807+i808+i809+i810+i811+i812+i813+i814+i815+i816+i817+i818+i819+i820+i821+i822+i823+i824+i825+i826+i827+i828+i829+i830+i831+i832+i833+i834+i835+i836+i837+i838+i839+i840+i841+i842+i843+i844+i845+i846+i847+i848+i849+i850+i851+i852+i853+i854+i855+i856+i857+i858+i859+i860+i861+i862+i863+i864+i865+i866+i867+i868+i869+i870+i871+i872+i873+i874+i875+i876+i877+i878+i879+i880+i881+i882+i883+i884+i885+i886+i887+i888+i889+i890+i891+i892+i893+i894+i895+i896+i897+i898+i899+i900+i901+i902+i903+i904+i905+i906+i907+i908+i909+i910+i911+i912+i913+i914+i915+i916+i917+i918+i919+i920+i921+i922+i923+i924+i925+i926+i927+i928+i929+i930+i931+i932+i933+i934+i935+i936+i937+i938+i939+i940+i941+i942+i943+i944+i945+i946+i947+i948+i949+i950+i951+i952+i953+i954+i955+i956+i957+i958+i959+i960+i961+i962+i963+i964+i965+i966+i967+i968+i969+i970+i971+i972+i973+i974+i975+i976+i977+i978+i979+i980+i981+i982+i983+i984+i985+i986+i987+i988+i989+i990+i991+i992+i993+i994+i995+i996+i997+i998+i999+i1000+i1001+i1002+i1003+i1004+i1005+i1006+i1007+i1008+i1009+i1010+i1011+i1012+i1013+i1014+i1015+i1016+i1017+i1018+i1019+i1020+i1021+i1022+i1023+i1024+i1025+i1026+i1027+i1028+i1029+i1030+i1031+i1032+i1033+i1034+i1035+i1036+i1037+i1038+i1039+i1040+i1041+i1042+i1043+i1044+i1045+i1046+i1047+i1048+i1049+i1050+i1051+i1052+i1053+i1054+i1055+i1056+i1057+i1058+i1059+i1060+i1061+i1062+i1063+i1064+i1065+i1066+i1067+i1068+i1069+i1070+i1071+i1072+i1073+i1074+i1075+i1076+i1077+i1078+i1079+i1080+i1081+i1082+i1083+i1084+i1085+i1086+i1087+i1088+i1089+i1090+i1091+i1092+i1093+i1094+i1095+i1096+i1097+i1098+i1099+i1100+i1101+i1102+i1103+i1104+i1105+i1106+i1107+i1108+i1109+i1110+i1111+i1112+i1113+i1114+i1115+i1116+i1117+i1118+i1119+i1120+i1121+i1122+i1123+i1124+i1125+i1126+i1127+i1128+i1129+i1130+i1131+i1132+i1133+i1134+i1135+i1136+i1137+i1138+i1139+i1140+i1141+i1142+i1143+i1144+i1145+i1146+i1147+i1148+i1149+i1150+i1151+i1152+i1153+i1154+i1155+i1156+i1157+i1158+i1159+i1160+i1161+i1162+i1163+i1164+i1165+i1166+i1167+i1168+i1169+i1170+i1171+i1172+i1173+i1174+i1175+i1176+i1177+i1178+i1179+i1180+i1181+i1182+i1183+i1184+i1185+i1186+i1187+i1188+i1189+i1190+i1191+i1192+i1193+i1194+i1195+i1196+i1197+i1198+i1199+i1200+i1201+i1202+i1203+i1204+i1205+i1206+i1207+i1208+i1209+i1210+i1211+i1212+i1213+i1214+i1215+i1216+i1217+i1218+i1219+i1220+i1221+i1222+i1223+i1224+i1225+i1226+i1227+i1228+i1229+i1230+i1231+i1232+i1233+i1234+i1235+i1236+i1237+i1238+i1239+i1240+i1241+i1242+i1243+i1244+i1245+i1246+i1247+i1248+i1249+i1250+i1251+i1252+i1253+i1254+i1255+i1256+i1257+i1258+i1259+i1260+i1261+i1262+i1263+i1264+i1265+i1266+i1267+i1268+i1269+i1270+i1271+i1272+i1273+i1274+i1275+i1276+i1277+i1278+i1279+i1280+i1281+i1282+i1283+i1284+i1285+i1286+i1287+i1288+i1289+i1290+i1291+i1292+i1293+i1294+i1295+i1296+i1297+i1298+i1299+i1300+i1301+i1302+i1303+i1304+i1305+i1306+i1307+i1308+i1309+i1310+i1311+i1312+i1313+i1314+i1315+i1316+i1317+i1318+i1319+i1320+i1321+i1322+i1323+i1324+i1325+i1326+i1327+i1328+i1329+i1330+i1331+i1332+i1333+i1334+i1335+i1336+i1337+i1338+i1339+i1340+i1341+i1342+i1343+i1344+i1345+i1346+i1347+i1348+i1349+i1350+i1351+i1352+i1353+i1354+i1355+i1356+i1357+i1358+i1359+i1360+i1361+i1362+i1363+i1364+i1365+i1366+i1367+i1368+i1369+i1370+i1371+i1372+i1373+i1374+i1375+i1376+i1377+i1378+i1379+i1380+i1381+i1382+i1383+i1384+i1385+i1386+i1387+i1388+i1389+i1390+i1391+i1392+i1393+i1394+i1395+i1396+i1397+i1398+i1399+i1400+i1401+i1402+i1403+i1404+i1405+i1406+i1407+i1408+i1409+i1410+i1411+i1412+i1413+i1414+i1415+i1416+i1417+i1418+i1419+i1420+i1421+i1422+i1423+i1424+i1425+i1426+i1427+i1428+i1429+i1430+i1431+i1432+i1433+i1434+i1435+i1436+i1437+i1438+i1439+i1440+i1441+i1442+i1443+i1444+i1445+i1446+i1447+i1448+i1449+i1450+i1451+i1452+i1453+i1454+i1455+i1456+i1457+i1458+i1459+i1460+i1461+i1462+i1463+i1464+i1465+i1466+i1467+i1468+i1469+i1470+i1471+i1472+i1473+i1474+i1475+i1476+i1477+i1478+i1479+i1480+i1481+i1482+i1483+i1484+i1485+i1486+i1487+i1488+i1489+i1490+i1491+i1492+i1493+i1494+i1495+i1496+i1497+i1498+i1499+i1500+i1501+i1502+i1503+i1504+i1505+i1506+i1507+i1508+i1509+i1510+i1511+i1512+i1513+i1514+i1515+i1516+i1517+i1518+i1519+i1520+i1521+i1522+i1523+i1524+i1525+i1526+i1527+i1528+i1529+i1530+i1531+i1532+i1533+i1534+i1535+i1536+i1537+i1538+i1539+i1540+i1541+i1542+i1543+i1544+i1545+i1546+i1547+i1548+i1549+i1550+i1551+i1552+i1553+i1554+i1555+i1556+i1557+i1558+i1559+i1560+i1561+i1562+i1563+i1564+i1565+i1566+i1567+i1568+i1569+i1570+i1571+i1572+i1573+i1574+i1575+i1576+i1577+i1578+i1579+i1580+i1581+i1582+i1583+i1584+i1585+i1586+i1587+i1588+i1589+i1590+i1591+i1592+i1593+i1594+i1595+i1596+i1597+i1598+i1599+i1600+i1601+i1602+i1603+i1604+i1605+i1606+i1607+i1608+i1609+i1610+i1611+i1612+i1613+i1614+i1615+i1616+i1617+i1618+i1619+i1620+i1621+i1622+i1623+i1624+i1625+i1626+i1627+i1628+i1629+i1630+i1631+i1632+i1633+i1634+i1635+i1636+i1637+i1638+i1639+i1640+i1641+i1642+i1643+i1644+i1645+i1646+i1647+i1648+i1649+i1650+i1651+i1652+i1653+i1654+i1655+i1656+i1657+i1658+i1659+i1660+i1661+i1662+i1663+i1664+i1665+i1666+i1667+i1668+i1669+i1670+i1671+i1672+i1673+i1674+i1675+i1676+i1677+i1678+i1679+i1680+i1681+i1682+i1683+i1684+i1685+i1686+i1687+i1688+i1689+i1690+i1691+i1692+i1693+i1694+i1695+i1696+i1697+i1698+i1699+i1700+i1701+i1702+i1703+i1704+i1705+i1706+i1707+i1708+i1709+i1710+i1711+i1712+i1713+i1714+i1715+i1716+i1717+i1718+i1719+i1720+i1721+i1722+i1723+i1724+i1725+i1726+i1727+i1728+i1729+i1730+i1731+i1732+i1733+i1734+i1735+i1736+i1737+i1738+i1739+i1740+i1741+i1742+i1743+i1744+i1745+i1746+i1747+i1748+i1749+i1750+i1751+i1752+i1753+i1754+i1755+i1756+i1757+i1758+i1759+i1760+i1761+i1762+i1763+i1764+i1765+i1766+i1767+i1768+i1769+i1770+i1771+i1772+i1773+i1774+i1775+i1776+i1777+i1778+i1779+i1780+i1781+i1782+i1783+i1784+i1785+i1786+i1787+i1788+i1789+i1790+i1791+i1792+i1793+i1794+i1795+i1796+i1797+i1798+i1799+i1800+i1801+i1802+i1803+i1804+i1805+i1806+i1807+i1808+i1809+i1810+i1811+i1812+i1813+i1814+i1815+i1816+i1817+i1818+i1819+i1820+i1821+i1822+i1823+i1824+i1825+i1826+i1827+i1828+i1829+i1830+i1831+i1832+i1833+i1834+i1835+i1836+i1837+i1838+i1839+i1840+i1841+i1842+i1843+i1844+i1845+i1846+i1847+i1848+i1849+i1850+i1851+i1852+i1853+i1854+i1855+i1856+i1857+i1858+i1859+i1860+i1861+i1862+i1863+i1864+i1865+i1866+i1867+i1868+i1869+i1870+i1871+i1872+i1873+i1874+i1875+i1876+i1877+i1878+i1879+i1880+i1881+i1882+i1883+i1884+i1885+i1886+i1887+i1888+i1889+i1890+i1891+i1892+i1893+i1894+i1895+i1896+i1897+i1898+i1899+i1900+i1901+i1902+i1903+i1904+i1905+i1906+i1907+i1908+i1909+i1910+i1911+i1912+i1913+i1914+i1915+i1916+i1917+i1918+i1919+i1920+i1921+i1922+i1923+i1924+i1925+i1926+i1927+i1928+i1929+i1930+i1931+i1932+i1933+i1934+i1935+i1936+i1937+i1938+i1939+i1940+i1941+i1942+i1943+i1944+i1945+i1946+i1947+i1948+i1949+i1950+i1951+i1952+i1953+i1954+i1955+i1956+i1957+i1958+i1959+i1960+i1961+i1962+i1963+i1964+i1965+i1966+i1967+i1968+i1969+i1970+i1971+i1972+i1973+i1974+i1975+i1976+i1977+i1978+i1979+i1980+i1981+i1982+i1983+i1984+i1985+i1986+i1987+i1988+i1989+i1990+i1991+i1992+i1993+i1994+i1995+i1996+i1997+i1998+i1999+i2000+i2001+i2002+i2003+i2004+i2005+i2006+i2007+i2008+i2009+i2010+i2011+i2012+i2013+i2014+i2015+i2016+i2017+i2018+i2019+i2020+i2021+i2022+i2023+i2024+i2025+i2026+i2027+i2028+i2029+i2030+i2031+i2032+i2033+i2034+i2035+i2036+i2037+i2038+i2039+i2040+i2041+i2042+i2043+i2044+i2045+i2046+i2047+i2048+i2049+i2050+i2051+i2052+i2053+i2054+i2055+i2056+i2057+i2058+i2059+i2060) % 10) {
+ case 0: {
+ ccall printf("Inside branch 0\n");
+ res = i0;
+ ccall printf("Before jump 0\n");
+ goto END;
+ }
+ case 1: {
+ ccall printf("Inside branch 1\n");
+ res = i1;
+ ccall printf("Before jump 1\n");
+ goto END;
+ }
+ case 2: {
+ ccall printf("Inside branch 2\n");
+ res = i2;
+ ccall printf("Before jump 2\n");
+ goto END;
+ }
+ case 3: {
+ ccall printf("Inside branch 3\n");
+ res = i3;
+ ccall printf("Before jump 3\n");
+ goto END;
+ }
+ case 4: {
+ ccall printf("Inside branch 4\n");
+ res = i4;
+ ccall printf("Before jump 4\n");
+ goto END;
+ }
+ case 5: {
+ ccall printf("Inside branch 5\n");
+ res = i5;
+ ccall printf("Before jump 5\n");
+ goto END;
+ }
+ case 6: {
+ ccall printf("Inside branch 6\n");
+ res = i6;
+ ccall printf("Before jump 6\n");
+ goto END;
+ }
+ case 7: {
+ ccall printf("Inside branch 7\n");
+ res = i7;
+ ccall printf("Before jump 7\n");
+ goto END;
+ }
+ case 8: {
+ ccall printf("Inside branch 8\n");
+ res = i8;
+ ccall printf("Before jump 8\n");
+ goto END;
+ }
+ default: {
+ ccall printf("Inside default branch\n");
+ res = x * (2 :: I64);
+ ccall printf("Before jump default\n");
+ goto END;
+ }
+ }
+END:
+ ccall printf("End :) \n");
+ return (res);
+}
=====================================
testsuite/tests/cmm/should_run/all.T
=====================================
@@ -31,6 +31,13 @@ test('T22871',
multi_compile_and_run,
['T22871', [('T22871_cmm.cmm', '')], ''])
+test('JumpTableNoStackDealloc',
+ [ extra_run_opts('"' + config.libdir + '"')
+ , req_cmm
+ ],
+ multi_compile_and_run,
+ ['JumpTableNoStackDealloc', [('JumpTableNoStackDealloc_cmm.cmm', '')], ''])
+
test('AtomicFetch',
[ extra_run_opts('"' + config.libdir + '"')
, req_cmm
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/09edcb68ebd6d8bafd21fc23b2be51522170c3a6
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/09edcb68ebd6d8bafd21fc23b2be51522170c3a6
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20250223/ba0fd356/attachment-0001.html>
More information about the ghc-commits
mailing list