[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
Tue Feb 25 18:00:02 UTC 2025



Sven Tennie pushed to branch wip/supersven/fix-aarch64-switch-table-jumps at Glasgow Haskell Compiler / GHC


Commits:
1706a009 by Sven Tennie at 2025-02-25T18:58:47+01:00
Add reproducer for dealloc instructions in switch table jump expressions (#25733)

Measures taken to make the test stable:

- Use 'a' as variable prefix, because X86 32bit stumbled over the
variable name 'i386'
- Flush stdout to make test output deterministic
- Use type annotations to support 32bit archs

- - - - -


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,16 @@
+{-# LANGUAGE GHCForeignImportPrim #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE UnliftedFFITypes #-}
+
+import Data.Foldable
+import GHC.Exts
+import GHC.Int
+import System.IO
+
+foreign import prim "foo" foo :: Int64# -> Int64#
+
+main :: IO ()
+main = for_ [0 .. 9] $ \(I64# x#) -> do
+  let !res = I64# (foo x#)
+  putStrLn $ "Result: " ++ show res
+  hFlush stdout


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
=====================================
@@ -0,0 +1,50 @@
+Before switch
+Inside branch 0
+Before jump 0
+Return
+Result: 0
+Before switch
+Inside branch 1
+Before jump 1
+Return
+Result: 0
+Before switch
+Inside branch 8
+Before jump 8
+Return
+Result: 0
+Before switch
+Inside default branch
+Before jump default
+Return
+Result: 6
+Before switch
+Inside branch 6
+Before jump 6
+Return
+Result: 0
+Before switch
+Inside branch 7
+Before jump 7
+Return
+Result: 2
+Before switch
+Inside branch 4
+Before jump 4
+Return
+Result: 0
+Before switch
+Inside branch 5
+Before jump 5
+Return
+Result: 4
+Before switch
+Inside branch 2
+Before jump 2
+Return
+Result: 0
+Before switch
+Inside branch 3
+Before jump 3
+Return
+Result: 0


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
=====================================
@@ -0,0 +1,76 @@
+-- | 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 a" ++ show i ++ ";"
+  putStrLn $ "  a" ++ show i ++ " = ((" ++ show i ++ " :: I64) " ++ op ++ " x) % (10 :: I64);"
+  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 ((++) "a" . show) is
+
+printCase :: Int -> IO ()
+printCase i = do
+  putStrLn $ "    case " ++ show i ++ ": {"
+  putStrLn $ "      ccall printf(\"Inside branch " ++ show i ++ "\\n\");"
+  putStrLn $ "      res = a" ++ 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 :: I64)) {"
+  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(\"Return\\n\");"
+  putStrLn "  ccall fflush(NULL);"
+  putStrLn $ "  return (res);"
+  putStrLn "}"


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
=====================================
@@ -0,0 +1,4196 @@
+// Generated by JumpTableNoStackDeallocGen.hs
+
+#include "Cmm.h"
+foo (I64 x) {
+  I64 a0;
+  a0 = ((0 :: I64) + x) % (10 :: I64);
+  I64 a1;
+  a1 = ((1 :: I64) - x) % (10 :: I64);
+  I64 a2;
+  a2 = ((2 :: I64) + x) % (10 :: I64);
+  I64 a3;
+  a3 = ((3 :: I64) - x) % (10 :: I64);
+  I64 a4;
+  a4 = ((4 :: I64) + x) % (10 :: I64);
+  I64 a5;
+  a5 = ((5 :: I64) - x) % (10 :: I64);
+  I64 a6;
+  a6 = ((6 :: I64) + x) % (10 :: I64);
+  I64 a7;
+  a7 = ((7 :: I64) - x) % (10 :: I64);
+  I64 a8;
+  a8 = ((8 :: I64) + x) % (10 :: I64);
+  I64 a9;
+  a9 = ((9 :: I64) - x) % (10 :: I64);
+  I64 a10;
+  a10 = ((10 :: I64) + x) % (10 :: I64);
+  I64 a11;
+  a11 = ((11 :: I64) - x) % (10 :: I64);
+  I64 a12;
+  a12 = ((12 :: I64) + x) % (10 :: I64);
+  I64 a13;
+  a13 = ((13 :: I64) - x) % (10 :: I64);
+  I64 a14;
+  a14 = ((14 :: I64) + x) % (10 :: I64);
+  I64 a15;
+  a15 = ((15 :: I64) - x) % (10 :: I64);
+  I64 a16;
+  a16 = ((16 :: I64) + x) % (10 :: I64);
+  I64 a17;
+  a17 = ((17 :: I64) - x) % (10 :: I64);
+  I64 a18;
+  a18 = ((18 :: I64) + x) % (10 :: I64);
+  I64 a19;
+  a19 = ((19 :: I64) - x) % (10 :: I64);
+  I64 a20;
+  a20 = ((20 :: I64) + x) % (10 :: I64);
+  I64 a21;
+  a21 = ((21 :: I64) - x) % (10 :: I64);
+  I64 a22;
+  a22 = ((22 :: I64) + x) % (10 :: I64);
+  I64 a23;
+  a23 = ((23 :: I64) - x) % (10 :: I64);
+  I64 a24;
+  a24 = ((24 :: I64) + x) % (10 :: I64);
+  I64 a25;
+  a25 = ((25 :: I64) - x) % (10 :: I64);
+  I64 a26;
+  a26 = ((26 :: I64) + x) % (10 :: I64);
+  I64 a27;
+  a27 = ((27 :: I64) - x) % (10 :: I64);
+  I64 a28;
+  a28 = ((28 :: I64) + x) % (10 :: I64);
+  I64 a29;
+  a29 = ((29 :: I64) - x) % (10 :: I64);
+  I64 a30;
+  a30 = ((30 :: I64) + x) % (10 :: I64);
+  I64 a31;
+  a31 = ((31 :: I64) - x) % (10 :: I64);
+  I64 a32;
+  a32 = ((32 :: I64) + x) % (10 :: I64);
+  I64 a33;
+  a33 = ((33 :: I64) - x) % (10 :: I64);
+  I64 a34;
+  a34 = ((34 :: I64) + x) % (10 :: I64);
+  I64 a35;
+  a35 = ((35 :: I64) - x) % (10 :: I64);
+  I64 a36;
+  a36 = ((36 :: I64) + x) % (10 :: I64);
+  I64 a37;
+  a37 = ((37 :: I64) - x) % (10 :: I64);
+  I64 a38;
+  a38 = ((38 :: I64) + x) % (10 :: I64);
+  I64 a39;
+  a39 = ((39 :: I64) - x) % (10 :: I64);
+  I64 a40;
+  a40 = ((40 :: I64) + x) % (10 :: I64);
+  I64 a41;
+  a41 = ((41 :: I64) - x) % (10 :: I64);
+  I64 a42;
+  a42 = ((42 :: I64) + x) % (10 :: I64);
+  I64 a43;
+  a43 = ((43 :: I64) - x) % (10 :: I64);
+  I64 a44;
+  a44 = ((44 :: I64) + x) % (10 :: I64);
+  I64 a45;
+  a45 = ((45 :: I64) - x) % (10 :: I64);
+  I64 a46;
+  a46 = ((46 :: I64) + x) % (10 :: I64);
+  I64 a47;
+  a47 = ((47 :: I64) - x) % (10 :: I64);
+  I64 a48;
+  a48 = ((48 :: I64) + x) % (10 :: I64);
+  I64 a49;
+  a49 = ((49 :: I64) - x) % (10 :: I64);
+  I64 a50;
+  a50 = ((50 :: I64) + x) % (10 :: I64);
+  I64 a51;
+  a51 = ((51 :: I64) - x) % (10 :: I64);
+  I64 a52;
+  a52 = ((52 :: I64) + x) % (10 :: I64);
+  I64 a53;
+  a53 = ((53 :: I64) - x) % (10 :: I64);
+  I64 a54;
+  a54 = ((54 :: I64) + x) % (10 :: I64);
+  I64 a55;
+  a55 = ((55 :: I64) - x) % (10 :: I64);
+  I64 a56;
+  a56 = ((56 :: I64) + x) % (10 :: I64);
+  I64 a57;
+  a57 = ((57 :: I64) - x) % (10 :: I64);
+  I64 a58;
+  a58 = ((58 :: I64) + x) % (10 :: I64);
+  I64 a59;
+  a59 = ((59 :: I64) - x) % (10 :: I64);
+  I64 a60;
+  a60 = ((60 :: I64) + x) % (10 :: I64);
+  I64 a61;
+  a61 = ((61 :: I64) - x) % (10 :: I64);
+  I64 a62;
+  a62 = ((62 :: I64) + x) % (10 :: I64);
+  I64 a63;
+  a63 = ((63 :: I64) - x) % (10 :: I64);
+  I64 a64;
+  a64 = ((64 :: I64) + x) % (10 :: I64);
+  I64 a65;
+  a65 = ((65 :: I64) - x) % (10 :: I64);
+  I64 a66;
+  a66 = ((66 :: I64) + x) % (10 :: I64);
+  I64 a67;
+  a67 = ((67 :: I64) - x) % (10 :: I64);
+  I64 a68;
+  a68 = ((68 :: I64) + x) % (10 :: I64);
+  I64 a69;
+  a69 = ((69 :: I64) - x) % (10 :: I64);
+  I64 a70;
+  a70 = ((70 :: I64) + x) % (10 :: I64);
+  I64 a71;
+  a71 = ((71 :: I64) - x) % (10 :: I64);
+  I64 a72;
+  a72 = ((72 :: I64) + x) % (10 :: I64);
+  I64 a73;
+  a73 = ((73 :: I64) - x) % (10 :: I64);
+  I64 a74;
+  a74 = ((74 :: I64) + x) % (10 :: I64);
+  I64 a75;
+  a75 = ((75 :: I64) - x) % (10 :: I64);
+  I64 a76;
+  a76 = ((76 :: I64) + x) % (10 :: I64);
+  I64 a77;
+  a77 = ((77 :: I64) - x) % (10 :: I64);
+  I64 a78;
+  a78 = ((78 :: I64) + x) % (10 :: I64);
+  I64 a79;
+  a79 = ((79 :: I64) - x) % (10 :: I64);
+  I64 a80;
+  a80 = ((80 :: I64) + x) % (10 :: I64);
+  I64 a81;
+  a81 = ((81 :: I64) - x) % (10 :: I64);
+  I64 a82;
+  a82 = ((82 :: I64) + x) % (10 :: I64);
+  I64 a83;
+  a83 = ((83 :: I64) - x) % (10 :: I64);
+  I64 a84;
+  a84 = ((84 :: I64) + x) % (10 :: I64);
+  I64 a85;
+  a85 = ((85 :: I64) - x) % (10 :: I64);
+  I64 a86;
+  a86 = ((86 :: I64) + x) % (10 :: I64);
+  I64 a87;
+  a87 = ((87 :: I64) - x) % (10 :: I64);
+  I64 a88;
+  a88 = ((88 :: I64) + x) % (10 :: I64);
+  I64 a89;
+  a89 = ((89 :: I64) - x) % (10 :: I64);
+  I64 a90;
+  a90 = ((90 :: I64) + x) % (10 :: I64);
+  I64 a91;
+  a91 = ((91 :: I64) - x) % (10 :: I64);
+  I64 a92;
+  a92 = ((92 :: I64) + x) % (10 :: I64);
+  I64 a93;
+  a93 = ((93 :: I64) - x) % (10 :: I64);
+  I64 a94;
+  a94 = ((94 :: I64) + x) % (10 :: I64);
+  I64 a95;
+  a95 = ((95 :: I64) - x) % (10 :: I64);
+  I64 a96;
+  a96 = ((96 :: I64) + x) % (10 :: I64);
+  I64 a97;
+  a97 = ((97 :: I64) - x) % (10 :: I64);
+  I64 a98;
+  a98 = ((98 :: I64) + x) % (10 :: I64);
+  I64 a99;
+  a99 = ((99 :: I64) - x) % (10 :: I64);
+  I64 a100;
+  a100 = ((100 :: I64) + x) % (10 :: I64);
+  I64 a101;
+  a101 = ((101 :: I64) - x) % (10 :: I64);
+  I64 a102;
+  a102 = ((102 :: I64) + x) % (10 :: I64);
+  I64 a103;
+  a103 = ((103 :: I64) - x) % (10 :: I64);
+  I64 a104;
+  a104 = ((104 :: I64) + x) % (10 :: I64);
+  I64 a105;
+  a105 = ((105 :: I64) - x) % (10 :: I64);
+  I64 a106;
+  a106 = ((106 :: I64) + x) % (10 :: I64);
+  I64 a107;
+  a107 = ((107 :: I64) - x) % (10 :: I64);
+  I64 a108;
+  a108 = ((108 :: I64) + x) % (10 :: I64);
+  I64 a109;
+  a109 = ((109 :: I64) - x) % (10 :: I64);
+  I64 a110;
+  a110 = ((110 :: I64) + x) % (10 :: I64);
+  I64 a111;
+  a111 = ((111 :: I64) - x) % (10 :: I64);
+  I64 a112;
+  a112 = ((112 :: I64) + x) % (10 :: I64);
+  I64 a113;
+  a113 = ((113 :: I64) - x) % (10 :: I64);
+  I64 a114;
+  a114 = ((114 :: I64) + x) % (10 :: I64);
+  I64 a115;
+  a115 = ((115 :: I64) - x) % (10 :: I64);
+  I64 a116;
+  a116 = ((116 :: I64) + x) % (10 :: I64);
+  I64 a117;
+  a117 = ((117 :: I64) - x) % (10 :: I64);
+  I64 a118;
+  a118 = ((118 :: I64) + x) % (10 :: I64);
+  I64 a119;
+  a119 = ((119 :: I64) - x) % (10 :: I64);
+  I64 a120;
+  a120 = ((120 :: I64) + x) % (10 :: I64);
+  I64 a121;
+  a121 = ((121 :: I64) - x) % (10 :: I64);
+  I64 a122;
+  a122 = ((122 :: I64) + x) % (10 :: I64);
+  I64 a123;
+  a123 = ((123 :: I64) - x) % (10 :: I64);
+  I64 a124;
+  a124 = ((124 :: I64) + x) % (10 :: I64);
+  I64 a125;
+  a125 = ((125 :: I64) - x) % (10 :: I64);
+  I64 a126;
+  a126 = ((126 :: I64) + x) % (10 :: I64);
+  I64 a127;
+  a127 = ((127 :: I64) - x) % (10 :: I64);
+  I64 a128;
+  a128 = ((128 :: I64) + x) % (10 :: I64);
+  I64 a129;
+  a129 = ((129 :: I64) - x) % (10 :: I64);
+  I64 a130;
+  a130 = ((130 :: I64) + x) % (10 :: I64);
+  I64 a131;
+  a131 = ((131 :: I64) - x) % (10 :: I64);
+  I64 a132;
+  a132 = ((132 :: I64) + x) % (10 :: I64);
+  I64 a133;
+  a133 = ((133 :: I64) - x) % (10 :: I64);
+  I64 a134;
+  a134 = ((134 :: I64) + x) % (10 :: I64);
+  I64 a135;
+  a135 = ((135 :: I64) - x) % (10 :: I64);
+  I64 a136;
+  a136 = ((136 :: I64) + x) % (10 :: I64);
+  I64 a137;
+  a137 = ((137 :: I64) - x) % (10 :: I64);
+  I64 a138;
+  a138 = ((138 :: I64) + x) % (10 :: I64);
+  I64 a139;
+  a139 = ((139 :: I64) - x) % (10 :: I64);
+  I64 a140;
+  a140 = ((140 :: I64) + x) % (10 :: I64);
+  I64 a141;
+  a141 = ((141 :: I64) - x) % (10 :: I64);
+  I64 a142;
+  a142 = ((142 :: I64) + x) % (10 :: I64);
+  I64 a143;
+  a143 = ((143 :: I64) - x) % (10 :: I64);
+  I64 a144;
+  a144 = ((144 :: I64) + x) % (10 :: I64);
+  I64 a145;
+  a145 = ((145 :: I64) - x) % (10 :: I64);
+  I64 a146;
+  a146 = ((146 :: I64) + x) % (10 :: I64);
+  I64 a147;
+  a147 = ((147 :: I64) - x) % (10 :: I64);
+  I64 a148;
+  a148 = ((148 :: I64) + x) % (10 :: I64);
+  I64 a149;
+  a149 = ((149 :: I64) - x) % (10 :: I64);
+  I64 a150;
+  a150 = ((150 :: I64) + x) % (10 :: I64);
+  I64 a151;
+  a151 = ((151 :: I64) - x) % (10 :: I64);
+  I64 a152;
+  a152 = ((152 :: I64) + x) % (10 :: I64);
+  I64 a153;
+  a153 = ((153 :: I64) - x) % (10 :: I64);
+  I64 a154;
+  a154 = ((154 :: I64) + x) % (10 :: I64);
+  I64 a155;
+  a155 = ((155 :: I64) - x) % (10 :: I64);
+  I64 a156;
+  a156 = ((156 :: I64) + x) % (10 :: I64);
+  I64 a157;
+  a157 = ((157 :: I64) - x) % (10 :: I64);
+  I64 a158;
+  a158 = ((158 :: I64) + x) % (10 :: I64);
+  I64 a159;
+  a159 = ((159 :: I64) - x) % (10 :: I64);
+  I64 a160;
+  a160 = ((160 :: I64) + x) % (10 :: I64);
+  I64 a161;
+  a161 = ((161 :: I64) - x) % (10 :: I64);
+  I64 a162;
+  a162 = ((162 :: I64) + x) % (10 :: I64);
+  I64 a163;
+  a163 = ((163 :: I64) - x) % (10 :: I64);
+  I64 a164;
+  a164 = ((164 :: I64) + x) % (10 :: I64);
+  I64 a165;
+  a165 = ((165 :: I64) - x) % (10 :: I64);
+  I64 a166;
+  a166 = ((166 :: I64) + x) % (10 :: I64);
+  I64 a167;
+  a167 = ((167 :: I64) - x) % (10 :: I64);
+  I64 a168;
+  a168 = ((168 :: I64) + x) % (10 :: I64);
+  I64 a169;
+  a169 = ((169 :: I64) - x) % (10 :: I64);
+  I64 a170;
+  a170 = ((170 :: I64) + x) % (10 :: I64);
+  I64 a171;
+  a171 = ((171 :: I64) - x) % (10 :: I64);
+  I64 a172;
+  a172 = ((172 :: I64) + x) % (10 :: I64);
+  I64 a173;
+  a173 = ((173 :: I64) - x) % (10 :: I64);
+  I64 a174;
+  a174 = ((174 :: I64) + x) % (10 :: I64);
+  I64 a175;
+  a175 = ((175 :: I64) - x) % (10 :: I64);
+  I64 a176;
+  a176 = ((176 :: I64) + x) % (10 :: I64);
+  I64 a177;
+  a177 = ((177 :: I64) - x) % (10 :: I64);
+  I64 a178;
+  a178 = ((178 :: I64) + x) % (10 :: I64);
+  I64 a179;
+  a179 = ((179 :: I64) - x) % (10 :: I64);
+  I64 a180;
+  a180 = ((180 :: I64) + x) % (10 :: I64);
+  I64 a181;
+  a181 = ((181 :: I64) - x) % (10 :: I64);
+  I64 a182;
+  a182 = ((182 :: I64) + x) % (10 :: I64);
+  I64 a183;
+  a183 = ((183 :: I64) - x) % (10 :: I64);
+  I64 a184;
+  a184 = ((184 :: I64) + x) % (10 :: I64);
+  I64 a185;
+  a185 = ((185 :: I64) - x) % (10 :: I64);
+  I64 a186;
+  a186 = ((186 :: I64) + x) % (10 :: I64);
+  I64 a187;
+  a187 = ((187 :: I64) - x) % (10 :: I64);
+  I64 a188;
+  a188 = ((188 :: I64) + x) % (10 :: I64);
+  I64 a189;
+  a189 = ((189 :: I64) - x) % (10 :: I64);
+  I64 a190;
+  a190 = ((190 :: I64) + x) % (10 :: I64);
+  I64 a191;
+  a191 = ((191 :: I64) - x) % (10 :: I64);
+  I64 a192;
+  a192 = ((192 :: I64) + x) % (10 :: I64);
+  I64 a193;
+  a193 = ((193 :: I64) - x) % (10 :: I64);
+  I64 a194;
+  a194 = ((194 :: I64) + x) % (10 :: I64);
+  I64 a195;
+  a195 = ((195 :: I64) - x) % (10 :: I64);
+  I64 a196;
+  a196 = ((196 :: I64) + x) % (10 :: I64);
+  I64 a197;
+  a197 = ((197 :: I64) - x) % (10 :: I64);
+  I64 a198;
+  a198 = ((198 :: I64) + x) % (10 :: I64);
+  I64 a199;
+  a199 = ((199 :: I64) - x) % (10 :: I64);
+  I64 a200;
+  a200 = ((200 :: I64) + x) % (10 :: I64);
+  I64 a201;
+  a201 = ((201 :: I64) - x) % (10 :: I64);
+  I64 a202;
+  a202 = ((202 :: I64) + x) % (10 :: I64);
+  I64 a203;
+  a203 = ((203 :: I64) - x) % (10 :: I64);
+  I64 a204;
+  a204 = ((204 :: I64) + x) % (10 :: I64);
+  I64 a205;
+  a205 = ((205 :: I64) - x) % (10 :: I64);
+  I64 a206;
+  a206 = ((206 :: I64) + x) % (10 :: I64);
+  I64 a207;
+  a207 = ((207 :: I64) - x) % (10 :: I64);
+  I64 a208;
+  a208 = ((208 :: I64) + x) % (10 :: I64);
+  I64 a209;
+  a209 = ((209 :: I64) - x) % (10 :: I64);
+  I64 a210;
+  a210 = ((210 :: I64) + x) % (10 :: I64);
+  I64 a211;
+  a211 = ((211 :: I64) - x) % (10 :: I64);
+  I64 a212;
+  a212 = ((212 :: I64) + x) % (10 :: I64);
+  I64 a213;
+  a213 = ((213 :: I64) - x) % (10 :: I64);
+  I64 a214;
+  a214 = ((214 :: I64) + x) % (10 :: I64);
+  I64 a215;
+  a215 = ((215 :: I64) - x) % (10 :: I64);
+  I64 a216;
+  a216 = ((216 :: I64) + x) % (10 :: I64);
+  I64 a217;
+  a217 = ((217 :: I64) - x) % (10 :: I64);
+  I64 a218;
+  a218 = ((218 :: I64) + x) % (10 :: I64);
+  I64 a219;
+  a219 = ((219 :: I64) - x) % (10 :: I64);
+  I64 a220;
+  a220 = ((220 :: I64) + x) % (10 :: I64);
+  I64 a221;
+  a221 = ((221 :: I64) - x) % (10 :: I64);
+  I64 a222;
+  a222 = ((222 :: I64) + x) % (10 :: I64);
+  I64 a223;
+  a223 = ((223 :: I64) - x) % (10 :: I64);
+  I64 a224;
+  a224 = ((224 :: I64) + x) % (10 :: I64);
+  I64 a225;
+  a225 = ((225 :: I64) - x) % (10 :: I64);
+  I64 a226;
+  a226 = ((226 :: I64) + x) % (10 :: I64);
+  I64 a227;
+  a227 = ((227 :: I64) - x) % (10 :: I64);
+  I64 a228;
+  a228 = ((228 :: I64) + x) % (10 :: I64);
+  I64 a229;
+  a229 = ((229 :: I64) - x) % (10 :: I64);
+  I64 a230;
+  a230 = ((230 :: I64) + x) % (10 :: I64);
+  I64 a231;
+  a231 = ((231 :: I64) - x) % (10 :: I64);
+  I64 a232;
+  a232 = ((232 :: I64) + x) % (10 :: I64);
+  I64 a233;
+  a233 = ((233 :: I64) - x) % (10 :: I64);
+  I64 a234;
+  a234 = ((234 :: I64) + x) % (10 :: I64);
+  I64 a235;
+  a235 = ((235 :: I64) - x) % (10 :: I64);
+  I64 a236;
+  a236 = ((236 :: I64) + x) % (10 :: I64);
+  I64 a237;
+  a237 = ((237 :: I64) - x) % (10 :: I64);
+  I64 a238;
+  a238 = ((238 :: I64) + x) % (10 :: I64);
+  I64 a239;
+  a239 = ((239 :: I64) - x) % (10 :: I64);
+  I64 a240;
+  a240 = ((240 :: I64) + x) % (10 :: I64);
+  I64 a241;
+  a241 = ((241 :: I64) - x) % (10 :: I64);
+  I64 a242;
+  a242 = ((242 :: I64) + x) % (10 :: I64);
+  I64 a243;
+  a243 = ((243 :: I64) - x) % (10 :: I64);
+  I64 a244;
+  a244 = ((244 :: I64) + x) % (10 :: I64);
+  I64 a245;
+  a245 = ((245 :: I64) - x) % (10 :: I64);
+  I64 a246;
+  a246 = ((246 :: I64) + x) % (10 :: I64);
+  I64 a247;
+  a247 = ((247 :: I64) - x) % (10 :: I64);
+  I64 a248;
+  a248 = ((248 :: I64) + x) % (10 :: I64);
+  I64 a249;
+  a249 = ((249 :: I64) - x) % (10 :: I64);
+  I64 a250;
+  a250 = ((250 :: I64) + x) % (10 :: I64);
+  I64 a251;
+  a251 = ((251 :: I64) - x) % (10 :: I64);
+  I64 a252;
+  a252 = ((252 :: I64) + x) % (10 :: I64);
+  I64 a253;
+  a253 = ((253 :: I64) - x) % (10 :: I64);
+  I64 a254;
+  a254 = ((254 :: I64) + x) % (10 :: I64);
+  I64 a255;
+  a255 = ((255 :: I64) - x) % (10 :: I64);
+  I64 a256;
+  a256 = ((256 :: I64) + x) % (10 :: I64);
+  I64 a257;
+  a257 = ((257 :: I64) - x) % (10 :: I64);
+  I64 a258;
+  a258 = ((258 :: I64) + x) % (10 :: I64);
+  I64 a259;
+  a259 = ((259 :: I64) - x) % (10 :: I64);
+  I64 a260;
+  a260 = ((260 :: I64) + x) % (10 :: I64);
+  I64 a261;
+  a261 = ((261 :: I64) - x) % (10 :: I64);
+  I64 a262;
+  a262 = ((262 :: I64) + x) % (10 :: I64);
+  I64 a263;
+  a263 = ((263 :: I64) - x) % (10 :: I64);
+  I64 a264;
+  a264 = ((264 :: I64) + x) % (10 :: I64);
+  I64 a265;
+  a265 = ((265 :: I64) - x) % (10 :: I64);
+  I64 a266;
+  a266 = ((266 :: I64) + x) % (10 :: I64);
+  I64 a267;
+  a267 = ((267 :: I64) - x) % (10 :: I64);
+  I64 a268;
+  a268 = ((268 :: I64) + x) % (10 :: I64);
+  I64 a269;
+  a269 = ((269 :: I64) - x) % (10 :: I64);
+  I64 a270;
+  a270 = ((270 :: I64) + x) % (10 :: I64);
+  I64 a271;
+  a271 = ((271 :: I64) - x) % (10 :: I64);
+  I64 a272;
+  a272 = ((272 :: I64) + x) % (10 :: I64);
+  I64 a273;
+  a273 = ((273 :: I64) - x) % (10 :: I64);
+  I64 a274;
+  a274 = ((274 :: I64) + x) % (10 :: I64);
+  I64 a275;
+  a275 = ((275 :: I64) - x) % (10 :: I64);
+  I64 a276;
+  a276 = ((276 :: I64) + x) % (10 :: I64);
+  I64 a277;
+  a277 = ((277 :: I64) - x) % (10 :: I64);
+  I64 a278;
+  a278 = ((278 :: I64) + x) % (10 :: I64);
+  I64 a279;
+  a279 = ((279 :: I64) - x) % (10 :: I64);
+  I64 a280;
+  a280 = ((280 :: I64) + x) % (10 :: I64);
+  I64 a281;
+  a281 = ((281 :: I64) - x) % (10 :: I64);
+  I64 a282;
+  a282 = ((282 :: I64) + x) % (10 :: I64);
+  I64 a283;
+  a283 = ((283 :: I64) - x) % (10 :: I64);
+  I64 a284;
+  a284 = ((284 :: I64) + x) % (10 :: I64);
+  I64 a285;
+  a285 = ((285 :: I64) - x) % (10 :: I64);
+  I64 a286;
+  a286 = ((286 :: I64) + x) % (10 :: I64);
+  I64 a287;
+  a287 = ((287 :: I64) - x) % (10 :: I64);
+  I64 a288;
+  a288 = ((288 :: I64) + x) % (10 :: I64);
+  I64 a289;
+  a289 = ((289 :: I64) - x) % (10 :: I64);
+  I64 a290;
+  a290 = ((290 :: I64) + x) % (10 :: I64);
+  I64 a291;
+  a291 = ((291 :: I64) - x) % (10 :: I64);
+  I64 a292;
+  a292 = ((292 :: I64) + x) % (10 :: I64);
+  I64 a293;
+  a293 = ((293 :: I64) - x) % (10 :: I64);
+  I64 a294;
+  a294 = ((294 :: I64) + x) % (10 :: I64);
+  I64 a295;
+  a295 = ((295 :: I64) - x) % (10 :: I64);
+  I64 a296;
+  a296 = ((296 :: I64) + x) % (10 :: I64);
+  I64 a297;
+  a297 = ((297 :: I64) - x) % (10 :: I64);
+  I64 a298;
+  a298 = ((298 :: I64) + x) % (10 :: I64);
+  I64 a299;
+  a299 = ((299 :: I64) - x) % (10 :: I64);
+  I64 a300;
+  a300 = ((300 :: I64) + x) % (10 :: I64);
+  I64 a301;
+  a301 = ((301 :: I64) - x) % (10 :: I64);
+  I64 a302;
+  a302 = ((302 :: I64) + x) % (10 :: I64);
+  I64 a303;
+  a303 = ((303 :: I64) - x) % (10 :: I64);
+  I64 a304;
+  a304 = ((304 :: I64) + x) % (10 :: I64);
+  I64 a305;
+  a305 = ((305 :: I64) - x) % (10 :: I64);
+  I64 a306;
+  a306 = ((306 :: I64) + x) % (10 :: I64);
+  I64 a307;
+  a307 = ((307 :: I64) - x) % (10 :: I64);
+  I64 a308;
+  a308 = ((308 :: I64) + x) % (10 :: I64);
+  I64 a309;
+  a309 = ((309 :: I64) - x) % (10 :: I64);
+  I64 a310;
+  a310 = ((310 :: I64) + x) % (10 :: I64);
+  I64 a311;
+  a311 = ((311 :: I64) - x) % (10 :: I64);
+  I64 a312;
+  a312 = ((312 :: I64) + x) % (10 :: I64);
+  I64 a313;
+  a313 = ((313 :: I64) - x) % (10 :: I64);
+  I64 a314;
+  a314 = ((314 :: I64) + x) % (10 :: I64);
+  I64 a315;
+  a315 = ((315 :: I64) - x) % (10 :: I64);
+  I64 a316;
+  a316 = ((316 :: I64) + x) % (10 :: I64);
+  I64 a317;
+  a317 = ((317 :: I64) - x) % (10 :: I64);
+  I64 a318;
+  a318 = ((318 :: I64) + x) % (10 :: I64);
+  I64 a319;
+  a319 = ((319 :: I64) - x) % (10 :: I64);
+  I64 a320;
+  a320 = ((320 :: I64) + x) % (10 :: I64);
+  I64 a321;
+  a321 = ((321 :: I64) - x) % (10 :: I64);
+  I64 a322;
+  a322 = ((322 :: I64) + x) % (10 :: I64);
+  I64 a323;
+  a323 = ((323 :: I64) - x) % (10 :: I64);
+  I64 a324;
+  a324 = ((324 :: I64) + x) % (10 :: I64);
+  I64 a325;
+  a325 = ((325 :: I64) - x) % (10 :: I64);
+  I64 a326;
+  a326 = ((326 :: I64) + x) % (10 :: I64);
+  I64 a327;
+  a327 = ((327 :: I64) - x) % (10 :: I64);
+  I64 a328;
+  a328 = ((328 :: I64) + x) % (10 :: I64);
+  I64 a329;
+  a329 = ((329 :: I64) - x) % (10 :: I64);
+  I64 a330;
+  a330 = ((330 :: I64) + x) % (10 :: I64);
+  I64 a331;
+  a331 = ((331 :: I64) - x) % (10 :: I64);
+  I64 a332;
+  a332 = ((332 :: I64) + x) % (10 :: I64);
+  I64 a333;
+  a333 = ((333 :: I64) - x) % (10 :: I64);
+  I64 a334;
+  a334 = ((334 :: I64) + x) % (10 :: I64);
+  I64 a335;
+  a335 = ((335 :: I64) - x) % (10 :: I64);
+  I64 a336;
+  a336 = ((336 :: I64) + x) % (10 :: I64);
+  I64 a337;
+  a337 = ((337 :: I64) - x) % (10 :: I64);
+  I64 a338;
+  a338 = ((338 :: I64) + x) % (10 :: I64);
+  I64 a339;
+  a339 = ((339 :: I64) - x) % (10 :: I64);
+  I64 a340;
+  a340 = ((340 :: I64) + x) % (10 :: I64);
+  I64 a341;
+  a341 = ((341 :: I64) - x) % (10 :: I64);
+  I64 a342;
+  a342 = ((342 :: I64) + x) % (10 :: I64);
+  I64 a343;
+  a343 = ((343 :: I64) - x) % (10 :: I64);
+  I64 a344;
+  a344 = ((344 :: I64) + x) % (10 :: I64);
+  I64 a345;
+  a345 = ((345 :: I64) - x) % (10 :: I64);
+  I64 a346;
+  a346 = ((346 :: I64) + x) % (10 :: I64);
+  I64 a347;
+  a347 = ((347 :: I64) - x) % (10 :: I64);
+  I64 a348;
+  a348 = ((348 :: I64) + x) % (10 :: I64);
+  I64 a349;
+  a349 = ((349 :: I64) - x) % (10 :: I64);
+  I64 a350;
+  a350 = ((350 :: I64) + x) % (10 :: I64);
+  I64 a351;
+  a351 = ((351 :: I64) - x) % (10 :: I64);
+  I64 a352;
+  a352 = ((352 :: I64) + x) % (10 :: I64);
+  I64 a353;
+  a353 = ((353 :: I64) - x) % (10 :: I64);
+  I64 a354;
+  a354 = ((354 :: I64) + x) % (10 :: I64);
+  I64 a355;
+  a355 = ((355 :: I64) - x) % (10 :: I64);
+  I64 a356;
+  a356 = ((356 :: I64) + x) % (10 :: I64);
+  I64 a357;
+  a357 = ((357 :: I64) - x) % (10 :: I64);
+  I64 a358;
+  a358 = ((358 :: I64) + x) % (10 :: I64);
+  I64 a359;
+  a359 = ((359 :: I64) - x) % (10 :: I64);
+  I64 a360;
+  a360 = ((360 :: I64) + x) % (10 :: I64);
+  I64 a361;
+  a361 = ((361 :: I64) - x) % (10 :: I64);
+  I64 a362;
+  a362 = ((362 :: I64) + x) % (10 :: I64);
+  I64 a363;
+  a363 = ((363 :: I64) - x) % (10 :: I64);
+  I64 a364;
+  a364 = ((364 :: I64) + x) % (10 :: I64);
+  I64 a365;
+  a365 = ((365 :: I64) - x) % (10 :: I64);
+  I64 a366;
+  a366 = ((366 :: I64) + x) % (10 :: I64);
+  I64 a367;
+  a367 = ((367 :: I64) - x) % (10 :: I64);
+  I64 a368;
+  a368 = ((368 :: I64) + x) % (10 :: I64);
+  I64 a369;
+  a369 = ((369 :: I64) - x) % (10 :: I64);
+  I64 a370;
+  a370 = ((370 :: I64) + x) % (10 :: I64);
+  I64 a371;
+  a371 = ((371 :: I64) - x) % (10 :: I64);
+  I64 a372;
+  a372 = ((372 :: I64) + x) % (10 :: I64);
+  I64 a373;
+  a373 = ((373 :: I64) - x) % (10 :: I64);
+  I64 a374;
+  a374 = ((374 :: I64) + x) % (10 :: I64);
+  I64 a375;
+  a375 = ((375 :: I64) - x) % (10 :: I64);
+  I64 a376;
+  a376 = ((376 :: I64) + x) % (10 :: I64);
+  I64 a377;
+  a377 = ((377 :: I64) - x) % (10 :: I64);
+  I64 a378;
+  a378 = ((378 :: I64) + x) % (10 :: I64);
+  I64 a379;
+  a379 = ((379 :: I64) - x) % (10 :: I64);
+  I64 a380;
+  a380 = ((380 :: I64) + x) % (10 :: I64);
+  I64 a381;
+  a381 = ((381 :: I64) - x) % (10 :: I64);
+  I64 a382;
+  a382 = ((382 :: I64) + x) % (10 :: I64);
+  I64 a383;
+  a383 = ((383 :: I64) - x) % (10 :: I64);
+  I64 a384;
+  a384 = ((384 :: I64) + x) % (10 :: I64);
+  I64 a385;
+  a385 = ((385 :: I64) - x) % (10 :: I64);
+  I64 a386;
+  a386 = ((386 :: I64) + x) % (10 :: I64);
+  I64 a387;
+  a387 = ((387 :: I64) - x) % (10 :: I64);
+  I64 a388;
+  a388 = ((388 :: I64) + x) % (10 :: I64);
+  I64 a389;
+  a389 = ((389 :: I64) - x) % (10 :: I64);
+  I64 a390;
+  a390 = ((390 :: I64) + x) % (10 :: I64);
+  I64 a391;
+  a391 = ((391 :: I64) - x) % (10 :: I64);
+  I64 a392;
+  a392 = ((392 :: I64) + x) % (10 :: I64);
+  I64 a393;
+  a393 = ((393 :: I64) - x) % (10 :: I64);
+  I64 a394;
+  a394 = ((394 :: I64) + x) % (10 :: I64);
+  I64 a395;
+  a395 = ((395 :: I64) - x) % (10 :: I64);
+  I64 a396;
+  a396 = ((396 :: I64) + x) % (10 :: I64);
+  I64 a397;
+  a397 = ((397 :: I64) - x) % (10 :: I64);
+  I64 a398;
+  a398 = ((398 :: I64) + x) % (10 :: I64);
+  I64 a399;
+  a399 = ((399 :: I64) - x) % (10 :: I64);
+  I64 a400;
+  a400 = ((400 :: I64) + x) % (10 :: I64);
+  I64 a401;
+  a401 = ((401 :: I64) - x) % (10 :: I64);
+  I64 a402;
+  a402 = ((402 :: I64) + x) % (10 :: I64);
+  I64 a403;
+  a403 = ((403 :: I64) - x) % (10 :: I64);
+  I64 a404;
+  a404 = ((404 :: I64) + x) % (10 :: I64);
+  I64 a405;
+  a405 = ((405 :: I64) - x) % (10 :: I64);
+  I64 a406;
+  a406 = ((406 :: I64) + x) % (10 :: I64);
+  I64 a407;
+  a407 = ((407 :: I64) - x) % (10 :: I64);
+  I64 a408;
+  a408 = ((408 :: I64) + x) % (10 :: I64);
+  I64 a409;
+  a409 = ((409 :: I64) - x) % (10 :: I64);
+  I64 a410;
+  a410 = ((410 :: I64) + x) % (10 :: I64);
+  I64 a411;
+  a411 = ((411 :: I64) - x) % (10 :: I64);
+  I64 a412;
+  a412 = ((412 :: I64) + x) % (10 :: I64);
+  I64 a413;
+  a413 = ((413 :: I64) - x) % (10 :: I64);
+  I64 a414;
+  a414 = ((414 :: I64) + x) % (10 :: I64);
+  I64 a415;
+  a415 = ((415 :: I64) - x) % (10 :: I64);
+  I64 a416;
+  a416 = ((416 :: I64) + x) % (10 :: I64);
+  I64 a417;
+  a417 = ((417 :: I64) - x) % (10 :: I64);
+  I64 a418;
+  a418 = ((418 :: I64) + x) % (10 :: I64);
+  I64 a419;
+  a419 = ((419 :: I64) - x) % (10 :: I64);
+  I64 a420;
+  a420 = ((420 :: I64) + x) % (10 :: I64);
+  I64 a421;
+  a421 = ((421 :: I64) - x) % (10 :: I64);
+  I64 a422;
+  a422 = ((422 :: I64) + x) % (10 :: I64);
+  I64 a423;
+  a423 = ((423 :: I64) - x) % (10 :: I64);
+  I64 a424;
+  a424 = ((424 :: I64) + x) % (10 :: I64);
+  I64 a425;
+  a425 = ((425 :: I64) - x) % (10 :: I64);
+  I64 a426;
+  a426 = ((426 :: I64) + x) % (10 :: I64);
+  I64 a427;
+  a427 = ((427 :: I64) - x) % (10 :: I64);
+  I64 a428;
+  a428 = ((428 :: I64) + x) % (10 :: I64);
+  I64 a429;
+  a429 = ((429 :: I64) - x) % (10 :: I64);
+  I64 a430;
+  a430 = ((430 :: I64) + x) % (10 :: I64);
+  I64 a431;
+  a431 = ((431 :: I64) - x) % (10 :: I64);
+  I64 a432;
+  a432 = ((432 :: I64) + x) % (10 :: I64);
+  I64 a433;
+  a433 = ((433 :: I64) - x) % (10 :: I64);
+  I64 a434;
+  a434 = ((434 :: I64) + x) % (10 :: I64);
+  I64 a435;
+  a435 = ((435 :: I64) - x) % (10 :: I64);
+  I64 a436;
+  a436 = ((436 :: I64) + x) % (10 :: I64);
+  I64 a437;
+  a437 = ((437 :: I64) - x) % (10 :: I64);
+  I64 a438;
+  a438 = ((438 :: I64) + x) % (10 :: I64);
+  I64 a439;
+  a439 = ((439 :: I64) - x) % (10 :: I64);
+  I64 a440;
+  a440 = ((440 :: I64) + x) % (10 :: I64);
+  I64 a441;
+  a441 = ((441 :: I64) - x) % (10 :: I64);
+  I64 a442;
+  a442 = ((442 :: I64) + x) % (10 :: I64);
+  I64 a443;
+  a443 = ((443 :: I64) - x) % (10 :: I64);
+  I64 a444;
+  a444 = ((444 :: I64) + x) % (10 :: I64);
+  I64 a445;
+  a445 = ((445 :: I64) - x) % (10 :: I64);
+  I64 a446;
+  a446 = ((446 :: I64) + x) % (10 :: I64);
+  I64 a447;
+  a447 = ((447 :: I64) - x) % (10 :: I64);
+  I64 a448;
+  a448 = ((448 :: I64) + x) % (10 :: I64);
+  I64 a449;
+  a449 = ((449 :: I64) - x) % (10 :: I64);
+  I64 a450;
+  a450 = ((450 :: I64) + x) % (10 :: I64);
+  I64 a451;
+  a451 = ((451 :: I64) - x) % (10 :: I64);
+  I64 a452;
+  a452 = ((452 :: I64) + x) % (10 :: I64);
+  I64 a453;
+  a453 = ((453 :: I64) - x) % (10 :: I64);
+  I64 a454;
+  a454 = ((454 :: I64) + x) % (10 :: I64);
+  I64 a455;
+  a455 = ((455 :: I64) - x) % (10 :: I64);
+  I64 a456;
+  a456 = ((456 :: I64) + x) % (10 :: I64);
+  I64 a457;
+  a457 = ((457 :: I64) - x) % (10 :: I64);
+  I64 a458;
+  a458 = ((458 :: I64) + x) % (10 :: I64);
+  I64 a459;
+  a459 = ((459 :: I64) - x) % (10 :: I64);
+  I64 a460;
+  a460 = ((460 :: I64) + x) % (10 :: I64);
+  I64 a461;
+  a461 = ((461 :: I64) - x) % (10 :: I64);
+  I64 a462;
+  a462 = ((462 :: I64) + x) % (10 :: I64);
+  I64 a463;
+  a463 = ((463 :: I64) - x) % (10 :: I64);
+  I64 a464;
+  a464 = ((464 :: I64) + x) % (10 :: I64);
+  I64 a465;
+  a465 = ((465 :: I64) - x) % (10 :: I64);
+  I64 a466;
+  a466 = ((466 :: I64) + x) % (10 :: I64);
+  I64 a467;
+  a467 = ((467 :: I64) - x) % (10 :: I64);
+  I64 a468;
+  a468 = ((468 :: I64) + x) % (10 :: I64);
+  I64 a469;
+  a469 = ((469 :: I64) - x) % (10 :: I64);
+  I64 a470;
+  a470 = ((470 :: I64) + x) % (10 :: I64);
+  I64 a471;
+  a471 = ((471 :: I64) - x) % (10 :: I64);
+  I64 a472;
+  a472 = ((472 :: I64) + x) % (10 :: I64);
+  I64 a473;
+  a473 = ((473 :: I64) - x) % (10 :: I64);
+  I64 a474;
+  a474 = ((474 :: I64) + x) % (10 :: I64);
+  I64 a475;
+  a475 = ((475 :: I64) - x) % (10 :: I64);
+  I64 a476;
+  a476 = ((476 :: I64) + x) % (10 :: I64);
+  I64 a477;
+  a477 = ((477 :: I64) - x) % (10 :: I64);
+  I64 a478;
+  a478 = ((478 :: I64) + x) % (10 :: I64);
+  I64 a479;
+  a479 = ((479 :: I64) - x) % (10 :: I64);
+  I64 a480;
+  a480 = ((480 :: I64) + x) % (10 :: I64);
+  I64 a481;
+  a481 = ((481 :: I64) - x) % (10 :: I64);
+  I64 a482;
+  a482 = ((482 :: I64) + x) % (10 :: I64);
+  I64 a483;
+  a483 = ((483 :: I64) - x) % (10 :: I64);
+  I64 a484;
+  a484 = ((484 :: I64) + x) % (10 :: I64);
+  I64 a485;
+  a485 = ((485 :: I64) - x) % (10 :: I64);
+  I64 a486;
+  a486 = ((486 :: I64) + x) % (10 :: I64);
+  I64 a487;
+  a487 = ((487 :: I64) - x) % (10 :: I64);
+  I64 a488;
+  a488 = ((488 :: I64) + x) % (10 :: I64);
+  I64 a489;
+  a489 = ((489 :: I64) - x) % (10 :: I64);
+  I64 a490;
+  a490 = ((490 :: I64) + x) % (10 :: I64);
+  I64 a491;
+  a491 = ((491 :: I64) - x) % (10 :: I64);
+  I64 a492;
+  a492 = ((492 :: I64) + x) % (10 :: I64);
+  I64 a493;
+  a493 = ((493 :: I64) - x) % (10 :: I64);
+  I64 a494;
+  a494 = ((494 :: I64) + x) % (10 :: I64);
+  I64 a495;
+  a495 = ((495 :: I64) - x) % (10 :: I64);
+  I64 a496;
+  a496 = ((496 :: I64) + x) % (10 :: I64);
+  I64 a497;
+  a497 = ((497 :: I64) - x) % (10 :: I64);
+  I64 a498;
+  a498 = ((498 :: I64) + x) % (10 :: I64);
+  I64 a499;
+  a499 = ((499 :: I64) - x) % (10 :: I64);
+  I64 a500;
+  a500 = ((500 :: I64) + x) % (10 :: I64);
+  I64 a501;
+  a501 = ((501 :: I64) - x) % (10 :: I64);
+  I64 a502;
+  a502 = ((502 :: I64) + x) % (10 :: I64);
+  I64 a503;
+  a503 = ((503 :: I64) - x) % (10 :: I64);
+  I64 a504;
+  a504 = ((504 :: I64) + x) % (10 :: I64);
+  I64 a505;
+  a505 = ((505 :: I64) - x) % (10 :: I64);
+  I64 a506;
+  a506 = ((506 :: I64) + x) % (10 :: I64);
+  I64 a507;
+  a507 = ((507 :: I64) - x) % (10 :: I64);
+  I64 a508;
+  a508 = ((508 :: I64) + x) % (10 :: I64);
+  I64 a509;
+  a509 = ((509 :: I64) - x) % (10 :: I64);
+  I64 a510;
+  a510 = ((510 :: I64) + x) % (10 :: I64);
+  I64 a511;
+  a511 = ((511 :: I64) - x) % (10 :: I64);
+  I64 a512;
+  a512 = ((512 :: I64) + x) % (10 :: I64);
+  I64 a513;
+  a513 = ((513 :: I64) - x) % (10 :: I64);
+  I64 a514;
+  a514 = ((514 :: I64) + x) % (10 :: I64);
+  I64 a515;
+  a515 = ((515 :: I64) - x) % (10 :: I64);
+  I64 a516;
+  a516 = ((516 :: I64) + x) % (10 :: I64);
+  I64 a517;
+  a517 = ((517 :: I64) - x) % (10 :: I64);
+  I64 a518;
+  a518 = ((518 :: I64) + x) % (10 :: I64);
+  I64 a519;
+  a519 = ((519 :: I64) - x) % (10 :: I64);
+  I64 a520;
+  a520 = ((520 :: I64) + x) % (10 :: I64);
+  I64 a521;
+  a521 = ((521 :: I64) - x) % (10 :: I64);
+  I64 a522;
+  a522 = ((522 :: I64) + x) % (10 :: I64);
+  I64 a523;
+  a523 = ((523 :: I64) - x) % (10 :: I64);
+  I64 a524;
+  a524 = ((524 :: I64) + x) % (10 :: I64);
+  I64 a525;
+  a525 = ((525 :: I64) - x) % (10 :: I64);
+  I64 a526;
+  a526 = ((526 :: I64) + x) % (10 :: I64);
+  I64 a527;
+  a527 = ((527 :: I64) - x) % (10 :: I64);
+  I64 a528;
+  a528 = ((528 :: I64) + x) % (10 :: I64);
+  I64 a529;
+  a529 = ((529 :: I64) - x) % (10 :: I64);
+  I64 a530;
+  a530 = ((530 :: I64) + x) % (10 :: I64);
+  I64 a531;
+  a531 = ((531 :: I64) - x) % (10 :: I64);
+  I64 a532;
+  a532 = ((532 :: I64) + x) % (10 :: I64);
+  I64 a533;
+  a533 = ((533 :: I64) - x) % (10 :: I64);
+  I64 a534;
+  a534 = ((534 :: I64) + x) % (10 :: I64);
+  I64 a535;
+  a535 = ((535 :: I64) - x) % (10 :: I64);
+  I64 a536;
+  a536 = ((536 :: I64) + x) % (10 :: I64);
+  I64 a537;
+  a537 = ((537 :: I64) - x) % (10 :: I64);
+  I64 a538;
+  a538 = ((538 :: I64) + x) % (10 :: I64);
+  I64 a539;
+  a539 = ((539 :: I64) - x) % (10 :: I64);
+  I64 a540;
+  a540 = ((540 :: I64) + x) % (10 :: I64);
+  I64 a541;
+  a541 = ((541 :: I64) - x) % (10 :: I64);
+  I64 a542;
+  a542 = ((542 :: I64) + x) % (10 :: I64);
+  I64 a543;
+  a543 = ((543 :: I64) - x) % (10 :: I64);
+  I64 a544;
+  a544 = ((544 :: I64) + x) % (10 :: I64);
+  I64 a545;
+  a545 = ((545 :: I64) - x) % (10 :: I64);
+  I64 a546;
+  a546 = ((546 :: I64) + x) % (10 :: I64);
+  I64 a547;
+  a547 = ((547 :: I64) - x) % (10 :: I64);
+  I64 a548;
+  a548 = ((548 :: I64) + x) % (10 :: I64);
+  I64 a549;
+  a549 = ((549 :: I64) - x) % (10 :: I64);
+  I64 a550;
+  a550 = ((550 :: I64) + x) % (10 :: I64);
+  I64 a551;
+  a551 = ((551 :: I64) - x) % (10 :: I64);
+  I64 a552;
+  a552 = ((552 :: I64) + x) % (10 :: I64);
+  I64 a553;
+  a553 = ((553 :: I64) - x) % (10 :: I64);
+  I64 a554;
+  a554 = ((554 :: I64) + x) % (10 :: I64);
+  I64 a555;
+  a555 = ((555 :: I64) - x) % (10 :: I64);
+  I64 a556;
+  a556 = ((556 :: I64) + x) % (10 :: I64);
+  I64 a557;
+  a557 = ((557 :: I64) - x) % (10 :: I64);
+  I64 a558;
+  a558 = ((558 :: I64) + x) % (10 :: I64);
+  I64 a559;
+  a559 = ((559 :: I64) - x) % (10 :: I64);
+  I64 a560;
+  a560 = ((560 :: I64) + x) % (10 :: I64);
+  I64 a561;
+  a561 = ((561 :: I64) - x) % (10 :: I64);
+  I64 a562;
+  a562 = ((562 :: I64) + x) % (10 :: I64);
+  I64 a563;
+  a563 = ((563 :: I64) - x) % (10 :: I64);
+  I64 a564;
+  a564 = ((564 :: I64) + x) % (10 :: I64);
+  I64 a565;
+  a565 = ((565 :: I64) - x) % (10 :: I64);
+  I64 a566;
+  a566 = ((566 :: I64) + x) % (10 :: I64);
+  I64 a567;
+  a567 = ((567 :: I64) - x) % (10 :: I64);
+  I64 a568;
+  a568 = ((568 :: I64) + x) % (10 :: I64);
+  I64 a569;
+  a569 = ((569 :: I64) - x) % (10 :: I64);
+  I64 a570;
+  a570 = ((570 :: I64) + x) % (10 :: I64);
+  I64 a571;
+  a571 = ((571 :: I64) - x) % (10 :: I64);
+  I64 a572;
+  a572 = ((572 :: I64) + x) % (10 :: I64);
+  I64 a573;
+  a573 = ((573 :: I64) - x) % (10 :: I64);
+  I64 a574;
+  a574 = ((574 :: I64) + x) % (10 :: I64);
+  I64 a575;
+  a575 = ((575 :: I64) - x) % (10 :: I64);
+  I64 a576;
+  a576 = ((576 :: I64) + x) % (10 :: I64);
+  I64 a577;
+  a577 = ((577 :: I64) - x) % (10 :: I64);
+  I64 a578;
+  a578 = ((578 :: I64) + x) % (10 :: I64);
+  I64 a579;
+  a579 = ((579 :: I64) - x) % (10 :: I64);
+  I64 a580;
+  a580 = ((580 :: I64) + x) % (10 :: I64);
+  I64 a581;
+  a581 = ((581 :: I64) - x) % (10 :: I64);
+  I64 a582;
+  a582 = ((582 :: I64) + x) % (10 :: I64);
+  I64 a583;
+  a583 = ((583 :: I64) - x) % (10 :: I64);
+  I64 a584;
+  a584 = ((584 :: I64) + x) % (10 :: I64);
+  I64 a585;
+  a585 = ((585 :: I64) - x) % (10 :: I64);
+  I64 a586;
+  a586 = ((586 :: I64) + x) % (10 :: I64);
+  I64 a587;
+  a587 = ((587 :: I64) - x) % (10 :: I64);
+  I64 a588;
+  a588 = ((588 :: I64) + x) % (10 :: I64);
+  I64 a589;
+  a589 = ((589 :: I64) - x) % (10 :: I64);
+  I64 a590;
+  a590 = ((590 :: I64) + x) % (10 :: I64);
+  I64 a591;
+  a591 = ((591 :: I64) - x) % (10 :: I64);
+  I64 a592;
+  a592 = ((592 :: I64) + x) % (10 :: I64);
+  I64 a593;
+  a593 = ((593 :: I64) - x) % (10 :: I64);
+  I64 a594;
+  a594 = ((594 :: I64) + x) % (10 :: I64);
+  I64 a595;
+  a595 = ((595 :: I64) - x) % (10 :: I64);
+  I64 a596;
+  a596 = ((596 :: I64) + x) % (10 :: I64);
+  I64 a597;
+  a597 = ((597 :: I64) - x) % (10 :: I64);
+  I64 a598;
+  a598 = ((598 :: I64) + x) % (10 :: I64);
+  I64 a599;
+  a599 = ((599 :: I64) - x) % (10 :: I64);
+  I64 a600;
+  a600 = ((600 :: I64) + x) % (10 :: I64);
+  I64 a601;
+  a601 = ((601 :: I64) - x) % (10 :: I64);
+  I64 a602;
+  a602 = ((602 :: I64) + x) % (10 :: I64);
+  I64 a603;
+  a603 = ((603 :: I64) - x) % (10 :: I64);
+  I64 a604;
+  a604 = ((604 :: I64) + x) % (10 :: I64);
+  I64 a605;
+  a605 = ((605 :: I64) - x) % (10 :: I64);
+  I64 a606;
+  a606 = ((606 :: I64) + x) % (10 :: I64);
+  I64 a607;
+  a607 = ((607 :: I64) - x) % (10 :: I64);
+  I64 a608;
+  a608 = ((608 :: I64) + x) % (10 :: I64);
+  I64 a609;
+  a609 = ((609 :: I64) - x) % (10 :: I64);
+  I64 a610;
+  a610 = ((610 :: I64) + x) % (10 :: I64);
+  I64 a611;
+  a611 = ((611 :: I64) - x) % (10 :: I64);
+  I64 a612;
+  a612 = ((612 :: I64) + x) % (10 :: I64);
+  I64 a613;
+  a613 = ((613 :: I64) - x) % (10 :: I64);
+  I64 a614;
+  a614 = ((614 :: I64) + x) % (10 :: I64);
+  I64 a615;
+  a615 = ((615 :: I64) - x) % (10 :: I64);
+  I64 a616;
+  a616 = ((616 :: I64) + x) % (10 :: I64);
+  I64 a617;
+  a617 = ((617 :: I64) - x) % (10 :: I64);
+  I64 a618;
+  a618 = ((618 :: I64) + x) % (10 :: I64);
+  I64 a619;
+  a619 = ((619 :: I64) - x) % (10 :: I64);
+  I64 a620;
+  a620 = ((620 :: I64) + x) % (10 :: I64);
+  I64 a621;
+  a621 = ((621 :: I64) - x) % (10 :: I64);
+  I64 a622;
+  a622 = ((622 :: I64) + x) % (10 :: I64);
+  I64 a623;
+  a623 = ((623 :: I64) - x) % (10 :: I64);
+  I64 a624;
+  a624 = ((624 :: I64) + x) % (10 :: I64);
+  I64 a625;
+  a625 = ((625 :: I64) - x) % (10 :: I64);
+  I64 a626;
+  a626 = ((626 :: I64) + x) % (10 :: I64);
+  I64 a627;
+  a627 = ((627 :: I64) - x) % (10 :: I64);
+  I64 a628;
+  a628 = ((628 :: I64) + x) % (10 :: I64);
+  I64 a629;
+  a629 = ((629 :: I64) - x) % (10 :: I64);
+  I64 a630;
+  a630 = ((630 :: I64) + x) % (10 :: I64);
+  I64 a631;
+  a631 = ((631 :: I64) - x) % (10 :: I64);
+  I64 a632;
+  a632 = ((632 :: I64) + x) % (10 :: I64);
+  I64 a633;
+  a633 = ((633 :: I64) - x) % (10 :: I64);
+  I64 a634;
+  a634 = ((634 :: I64) + x) % (10 :: I64);
+  I64 a635;
+  a635 = ((635 :: I64) - x) % (10 :: I64);
+  I64 a636;
+  a636 = ((636 :: I64) + x) % (10 :: I64);
+  I64 a637;
+  a637 = ((637 :: I64) - x) % (10 :: I64);
+  I64 a638;
+  a638 = ((638 :: I64) + x) % (10 :: I64);
+  I64 a639;
+  a639 = ((639 :: I64) - x) % (10 :: I64);
+  I64 a640;
+  a640 = ((640 :: I64) + x) % (10 :: I64);
+  I64 a641;
+  a641 = ((641 :: I64) - x) % (10 :: I64);
+  I64 a642;
+  a642 = ((642 :: I64) + x) % (10 :: I64);
+  I64 a643;
+  a643 = ((643 :: I64) - x) % (10 :: I64);
+  I64 a644;
+  a644 = ((644 :: I64) + x) % (10 :: I64);
+  I64 a645;
+  a645 = ((645 :: I64) - x) % (10 :: I64);
+  I64 a646;
+  a646 = ((646 :: I64) + x) % (10 :: I64);
+  I64 a647;
+  a647 = ((647 :: I64) - x) % (10 :: I64);
+  I64 a648;
+  a648 = ((648 :: I64) + x) % (10 :: I64);
+  I64 a649;
+  a649 = ((649 :: I64) - x) % (10 :: I64);
+  I64 a650;
+  a650 = ((650 :: I64) + x) % (10 :: I64);
+  I64 a651;
+  a651 = ((651 :: I64) - x) % (10 :: I64);
+  I64 a652;
+  a652 = ((652 :: I64) + x) % (10 :: I64);
+  I64 a653;
+  a653 = ((653 :: I64) - x) % (10 :: I64);
+  I64 a654;
+  a654 = ((654 :: I64) + x) % (10 :: I64);
+  I64 a655;
+  a655 = ((655 :: I64) - x) % (10 :: I64);
+  I64 a656;
+  a656 = ((656 :: I64) + x) % (10 :: I64);
+  I64 a657;
+  a657 = ((657 :: I64) - x) % (10 :: I64);
+  I64 a658;
+  a658 = ((658 :: I64) + x) % (10 :: I64);
+  I64 a659;
+  a659 = ((659 :: I64) - x) % (10 :: I64);
+  I64 a660;
+  a660 = ((660 :: I64) + x) % (10 :: I64);
+  I64 a661;
+  a661 = ((661 :: I64) - x) % (10 :: I64);
+  I64 a662;
+  a662 = ((662 :: I64) + x) % (10 :: I64);
+  I64 a663;
+  a663 = ((663 :: I64) - x) % (10 :: I64);
+  I64 a664;
+  a664 = ((664 :: I64) + x) % (10 :: I64);
+  I64 a665;
+  a665 = ((665 :: I64) - x) % (10 :: I64);
+  I64 a666;
+  a666 = ((666 :: I64) + x) % (10 :: I64);
+  I64 a667;
+  a667 = ((667 :: I64) - x) % (10 :: I64);
+  I64 a668;
+  a668 = ((668 :: I64) + x) % (10 :: I64);
+  I64 a669;
+  a669 = ((669 :: I64) - x) % (10 :: I64);
+  I64 a670;
+  a670 = ((670 :: I64) + x) % (10 :: I64);
+  I64 a671;
+  a671 = ((671 :: I64) - x) % (10 :: I64);
+  I64 a672;
+  a672 = ((672 :: I64) + x) % (10 :: I64);
+  I64 a673;
+  a673 = ((673 :: I64) - x) % (10 :: I64);
+  I64 a674;
+  a674 = ((674 :: I64) + x) % (10 :: I64);
+  I64 a675;
+  a675 = ((675 :: I64) - x) % (10 :: I64);
+  I64 a676;
+  a676 = ((676 :: I64) + x) % (10 :: I64);
+  I64 a677;
+  a677 = ((677 :: I64) - x) % (10 :: I64);
+  I64 a678;
+  a678 = ((678 :: I64) + x) % (10 :: I64);
+  I64 a679;
+  a679 = ((679 :: I64) - x) % (10 :: I64);
+  I64 a680;
+  a680 = ((680 :: I64) + x) % (10 :: I64);
+  I64 a681;
+  a681 = ((681 :: I64) - x) % (10 :: I64);
+  I64 a682;
+  a682 = ((682 :: I64) + x) % (10 :: I64);
+  I64 a683;
+  a683 = ((683 :: I64) - x) % (10 :: I64);
+  I64 a684;
+  a684 = ((684 :: I64) + x) % (10 :: I64);
+  I64 a685;
+  a685 = ((685 :: I64) - x) % (10 :: I64);
+  I64 a686;
+  a686 = ((686 :: I64) + x) % (10 :: I64);
+  I64 a687;
+  a687 = ((687 :: I64) - x) % (10 :: I64);
+  I64 a688;
+  a688 = ((688 :: I64) + x) % (10 :: I64);
+  I64 a689;
+  a689 = ((689 :: I64) - x) % (10 :: I64);
+  I64 a690;
+  a690 = ((690 :: I64) + x) % (10 :: I64);
+  I64 a691;
+  a691 = ((691 :: I64) - x) % (10 :: I64);
+  I64 a692;
+  a692 = ((692 :: I64) + x) % (10 :: I64);
+  I64 a693;
+  a693 = ((693 :: I64) - x) % (10 :: I64);
+  I64 a694;
+  a694 = ((694 :: I64) + x) % (10 :: I64);
+  I64 a695;
+  a695 = ((695 :: I64) - x) % (10 :: I64);
+  I64 a696;
+  a696 = ((696 :: I64) + x) % (10 :: I64);
+  I64 a697;
+  a697 = ((697 :: I64) - x) % (10 :: I64);
+  I64 a698;
+  a698 = ((698 :: I64) + x) % (10 :: I64);
+  I64 a699;
+  a699 = ((699 :: I64) - x) % (10 :: I64);
+  I64 a700;
+  a700 = ((700 :: I64) + x) % (10 :: I64);
+  I64 a701;
+  a701 = ((701 :: I64) - x) % (10 :: I64);
+  I64 a702;
+  a702 = ((702 :: I64) + x) % (10 :: I64);
+  I64 a703;
+  a703 = ((703 :: I64) - x) % (10 :: I64);
+  I64 a704;
+  a704 = ((704 :: I64) + x) % (10 :: I64);
+  I64 a705;
+  a705 = ((705 :: I64) - x) % (10 :: I64);
+  I64 a706;
+  a706 = ((706 :: I64) + x) % (10 :: I64);
+  I64 a707;
+  a707 = ((707 :: I64) - x) % (10 :: I64);
+  I64 a708;
+  a708 = ((708 :: I64) + x) % (10 :: I64);
+  I64 a709;
+  a709 = ((709 :: I64) - x) % (10 :: I64);
+  I64 a710;
+  a710 = ((710 :: I64) + x) % (10 :: I64);
+  I64 a711;
+  a711 = ((711 :: I64) - x) % (10 :: I64);
+  I64 a712;
+  a712 = ((712 :: I64) + x) % (10 :: I64);
+  I64 a713;
+  a713 = ((713 :: I64) - x) % (10 :: I64);
+  I64 a714;
+  a714 = ((714 :: I64) + x) % (10 :: I64);
+  I64 a715;
+  a715 = ((715 :: I64) - x) % (10 :: I64);
+  I64 a716;
+  a716 = ((716 :: I64) + x) % (10 :: I64);
+  I64 a717;
+  a717 = ((717 :: I64) - x) % (10 :: I64);
+  I64 a718;
+  a718 = ((718 :: I64) + x) % (10 :: I64);
+  I64 a719;
+  a719 = ((719 :: I64) - x) % (10 :: I64);
+  I64 a720;
+  a720 = ((720 :: I64) + x) % (10 :: I64);
+  I64 a721;
+  a721 = ((721 :: I64) - x) % (10 :: I64);
+  I64 a722;
+  a722 = ((722 :: I64) + x) % (10 :: I64);
+  I64 a723;
+  a723 = ((723 :: I64) - x) % (10 :: I64);
+  I64 a724;
+  a724 = ((724 :: I64) + x) % (10 :: I64);
+  I64 a725;
+  a725 = ((725 :: I64) - x) % (10 :: I64);
+  I64 a726;
+  a726 = ((726 :: I64) + x) % (10 :: I64);
+  I64 a727;
+  a727 = ((727 :: I64) - x) % (10 :: I64);
+  I64 a728;
+  a728 = ((728 :: I64) + x) % (10 :: I64);
+  I64 a729;
+  a729 = ((729 :: I64) - x) % (10 :: I64);
+  I64 a730;
+  a730 = ((730 :: I64) + x) % (10 :: I64);
+  I64 a731;
+  a731 = ((731 :: I64) - x) % (10 :: I64);
+  I64 a732;
+  a732 = ((732 :: I64) + x) % (10 :: I64);
+  I64 a733;
+  a733 = ((733 :: I64) - x) % (10 :: I64);
+  I64 a734;
+  a734 = ((734 :: I64) + x) % (10 :: I64);
+  I64 a735;
+  a735 = ((735 :: I64) - x) % (10 :: I64);
+  I64 a736;
+  a736 = ((736 :: I64) + x) % (10 :: I64);
+  I64 a737;
+  a737 = ((737 :: I64) - x) % (10 :: I64);
+  I64 a738;
+  a738 = ((738 :: I64) + x) % (10 :: I64);
+  I64 a739;
+  a739 = ((739 :: I64) - x) % (10 :: I64);
+  I64 a740;
+  a740 = ((740 :: I64) + x) % (10 :: I64);
+  I64 a741;
+  a741 = ((741 :: I64) - x) % (10 :: I64);
+  I64 a742;
+  a742 = ((742 :: I64) + x) % (10 :: I64);
+  I64 a743;
+  a743 = ((743 :: I64) - x) % (10 :: I64);
+  I64 a744;
+  a744 = ((744 :: I64) + x) % (10 :: I64);
+  I64 a745;
+  a745 = ((745 :: I64) - x) % (10 :: I64);
+  I64 a746;
+  a746 = ((746 :: I64) + x) % (10 :: I64);
+  I64 a747;
+  a747 = ((747 :: I64) - x) % (10 :: I64);
+  I64 a748;
+  a748 = ((748 :: I64) + x) % (10 :: I64);
+  I64 a749;
+  a749 = ((749 :: I64) - x) % (10 :: I64);
+  I64 a750;
+  a750 = ((750 :: I64) + x) % (10 :: I64);
+  I64 a751;
+  a751 = ((751 :: I64) - x) % (10 :: I64);
+  I64 a752;
+  a752 = ((752 :: I64) + x) % (10 :: I64);
+  I64 a753;
+  a753 = ((753 :: I64) - x) % (10 :: I64);
+  I64 a754;
+  a754 = ((754 :: I64) + x) % (10 :: I64);
+  I64 a755;
+  a755 = ((755 :: I64) - x) % (10 :: I64);
+  I64 a756;
+  a756 = ((756 :: I64) + x) % (10 :: I64);
+  I64 a757;
+  a757 = ((757 :: I64) - x) % (10 :: I64);
+  I64 a758;
+  a758 = ((758 :: I64) + x) % (10 :: I64);
+  I64 a759;
+  a759 = ((759 :: I64) - x) % (10 :: I64);
+  I64 a760;
+  a760 = ((760 :: I64) + x) % (10 :: I64);
+  I64 a761;
+  a761 = ((761 :: I64) - x) % (10 :: I64);
+  I64 a762;
+  a762 = ((762 :: I64) + x) % (10 :: I64);
+  I64 a763;
+  a763 = ((763 :: I64) - x) % (10 :: I64);
+  I64 a764;
+  a764 = ((764 :: I64) + x) % (10 :: I64);
+  I64 a765;
+  a765 = ((765 :: I64) - x) % (10 :: I64);
+  I64 a766;
+  a766 = ((766 :: I64) + x) % (10 :: I64);
+  I64 a767;
+  a767 = ((767 :: I64) - x) % (10 :: I64);
+  I64 a768;
+  a768 = ((768 :: I64) + x) % (10 :: I64);
+  I64 a769;
+  a769 = ((769 :: I64) - x) % (10 :: I64);
+  I64 a770;
+  a770 = ((770 :: I64) + x) % (10 :: I64);
+  I64 a771;
+  a771 = ((771 :: I64) - x) % (10 :: I64);
+  I64 a772;
+  a772 = ((772 :: I64) + x) % (10 :: I64);
+  I64 a773;
+  a773 = ((773 :: I64) - x) % (10 :: I64);
+  I64 a774;
+  a774 = ((774 :: I64) + x) % (10 :: I64);
+  I64 a775;
+  a775 = ((775 :: I64) - x) % (10 :: I64);
+  I64 a776;
+  a776 = ((776 :: I64) + x) % (10 :: I64);
+  I64 a777;
+  a777 = ((777 :: I64) - x) % (10 :: I64);
+  I64 a778;
+  a778 = ((778 :: I64) + x) % (10 :: I64);
+  I64 a779;
+  a779 = ((779 :: I64) - x) % (10 :: I64);
+  I64 a780;
+  a780 = ((780 :: I64) + x) % (10 :: I64);
+  I64 a781;
+  a781 = ((781 :: I64) - x) % (10 :: I64);
+  I64 a782;
+  a782 = ((782 :: I64) + x) % (10 :: I64);
+  I64 a783;
+  a783 = ((783 :: I64) - x) % (10 :: I64);
+  I64 a784;
+  a784 = ((784 :: I64) + x) % (10 :: I64);
+  I64 a785;
+  a785 = ((785 :: I64) - x) % (10 :: I64);
+  I64 a786;
+  a786 = ((786 :: I64) + x) % (10 :: I64);
+  I64 a787;
+  a787 = ((787 :: I64) - x) % (10 :: I64);
+  I64 a788;
+  a788 = ((788 :: I64) + x) % (10 :: I64);
+  I64 a789;
+  a789 = ((789 :: I64) - x) % (10 :: I64);
+  I64 a790;
+  a790 = ((790 :: I64) + x) % (10 :: I64);
+  I64 a791;
+  a791 = ((791 :: I64) - x) % (10 :: I64);
+  I64 a792;
+  a792 = ((792 :: I64) + x) % (10 :: I64);
+  I64 a793;
+  a793 = ((793 :: I64) - x) % (10 :: I64);
+  I64 a794;
+  a794 = ((794 :: I64) + x) % (10 :: I64);
+  I64 a795;
+  a795 = ((795 :: I64) - x) % (10 :: I64);
+  I64 a796;
+  a796 = ((796 :: I64) + x) % (10 :: I64);
+  I64 a797;
+  a797 = ((797 :: I64) - x) % (10 :: I64);
+  I64 a798;
+  a798 = ((798 :: I64) + x) % (10 :: I64);
+  I64 a799;
+  a799 = ((799 :: I64) - x) % (10 :: I64);
+  I64 a800;
+  a800 = ((800 :: I64) + x) % (10 :: I64);
+  I64 a801;
+  a801 = ((801 :: I64) - x) % (10 :: I64);
+  I64 a802;
+  a802 = ((802 :: I64) + x) % (10 :: I64);
+  I64 a803;
+  a803 = ((803 :: I64) - x) % (10 :: I64);
+  I64 a804;
+  a804 = ((804 :: I64) + x) % (10 :: I64);
+  I64 a805;
+  a805 = ((805 :: I64) - x) % (10 :: I64);
+  I64 a806;
+  a806 = ((806 :: I64) + x) % (10 :: I64);
+  I64 a807;
+  a807 = ((807 :: I64) - x) % (10 :: I64);
+  I64 a808;
+  a808 = ((808 :: I64) + x) % (10 :: I64);
+  I64 a809;
+  a809 = ((809 :: I64) - x) % (10 :: I64);
+  I64 a810;
+  a810 = ((810 :: I64) + x) % (10 :: I64);
+  I64 a811;
+  a811 = ((811 :: I64) - x) % (10 :: I64);
+  I64 a812;
+  a812 = ((812 :: I64) + x) % (10 :: I64);
+  I64 a813;
+  a813 = ((813 :: I64) - x) % (10 :: I64);
+  I64 a814;
+  a814 = ((814 :: I64) + x) % (10 :: I64);
+  I64 a815;
+  a815 = ((815 :: I64) - x) % (10 :: I64);
+  I64 a816;
+  a816 = ((816 :: I64) + x) % (10 :: I64);
+  I64 a817;
+  a817 = ((817 :: I64) - x) % (10 :: I64);
+  I64 a818;
+  a818 = ((818 :: I64) + x) % (10 :: I64);
+  I64 a819;
+  a819 = ((819 :: I64) - x) % (10 :: I64);
+  I64 a820;
+  a820 = ((820 :: I64) + x) % (10 :: I64);
+  I64 a821;
+  a821 = ((821 :: I64) - x) % (10 :: I64);
+  I64 a822;
+  a822 = ((822 :: I64) + x) % (10 :: I64);
+  I64 a823;
+  a823 = ((823 :: I64) - x) % (10 :: I64);
+  I64 a824;
+  a824 = ((824 :: I64) + x) % (10 :: I64);
+  I64 a825;
+  a825 = ((825 :: I64) - x) % (10 :: I64);
+  I64 a826;
+  a826 = ((826 :: I64) + x) % (10 :: I64);
+  I64 a827;
+  a827 = ((827 :: I64) - x) % (10 :: I64);
+  I64 a828;
+  a828 = ((828 :: I64) + x) % (10 :: I64);
+  I64 a829;
+  a829 = ((829 :: I64) - x) % (10 :: I64);
+  I64 a830;
+  a830 = ((830 :: I64) + x) % (10 :: I64);
+  I64 a831;
+  a831 = ((831 :: I64) - x) % (10 :: I64);
+  I64 a832;
+  a832 = ((832 :: I64) + x) % (10 :: I64);
+  I64 a833;
+  a833 = ((833 :: I64) - x) % (10 :: I64);
+  I64 a834;
+  a834 = ((834 :: I64) + x) % (10 :: I64);
+  I64 a835;
+  a835 = ((835 :: I64) - x) % (10 :: I64);
+  I64 a836;
+  a836 = ((836 :: I64) + x) % (10 :: I64);
+  I64 a837;
+  a837 = ((837 :: I64) - x) % (10 :: I64);
+  I64 a838;
+  a838 = ((838 :: I64) + x) % (10 :: I64);
+  I64 a839;
+  a839 = ((839 :: I64) - x) % (10 :: I64);
+  I64 a840;
+  a840 = ((840 :: I64) + x) % (10 :: I64);
+  I64 a841;
+  a841 = ((841 :: I64) - x) % (10 :: I64);
+  I64 a842;
+  a842 = ((842 :: I64) + x) % (10 :: I64);
+  I64 a843;
+  a843 = ((843 :: I64) - x) % (10 :: I64);
+  I64 a844;
+  a844 = ((844 :: I64) + x) % (10 :: I64);
+  I64 a845;
+  a845 = ((845 :: I64) - x) % (10 :: I64);
+  I64 a846;
+  a846 = ((846 :: I64) + x) % (10 :: I64);
+  I64 a847;
+  a847 = ((847 :: I64) - x) % (10 :: I64);
+  I64 a848;
+  a848 = ((848 :: I64) + x) % (10 :: I64);
+  I64 a849;
+  a849 = ((849 :: I64) - x) % (10 :: I64);
+  I64 a850;
+  a850 = ((850 :: I64) + x) % (10 :: I64);
+  I64 a851;
+  a851 = ((851 :: I64) - x) % (10 :: I64);
+  I64 a852;
+  a852 = ((852 :: I64) + x) % (10 :: I64);
+  I64 a853;
+  a853 = ((853 :: I64) - x) % (10 :: I64);
+  I64 a854;
+  a854 = ((854 :: I64) + x) % (10 :: I64);
+  I64 a855;
+  a855 = ((855 :: I64) - x) % (10 :: I64);
+  I64 a856;
+  a856 = ((856 :: I64) + x) % (10 :: I64);
+  I64 a857;
+  a857 = ((857 :: I64) - x) % (10 :: I64);
+  I64 a858;
+  a858 = ((858 :: I64) + x) % (10 :: I64);
+  I64 a859;
+  a859 = ((859 :: I64) - x) % (10 :: I64);
+  I64 a860;
+  a860 = ((860 :: I64) + x) % (10 :: I64);
+  I64 a861;
+  a861 = ((861 :: I64) - x) % (10 :: I64);
+  I64 a862;
+  a862 = ((862 :: I64) + x) % (10 :: I64);
+  I64 a863;
+  a863 = ((863 :: I64) - x) % (10 :: I64);
+  I64 a864;
+  a864 = ((864 :: I64) + x) % (10 :: I64);
+  I64 a865;
+  a865 = ((865 :: I64) - x) % (10 :: I64);
+  I64 a866;
+  a866 = ((866 :: I64) + x) % (10 :: I64);
+  I64 a867;
+  a867 = ((867 :: I64) - x) % (10 :: I64);
+  I64 a868;
+  a868 = ((868 :: I64) + x) % (10 :: I64);
+  I64 a869;
+  a869 = ((869 :: I64) - x) % (10 :: I64);
+  I64 a870;
+  a870 = ((870 :: I64) + x) % (10 :: I64);
+  I64 a871;
+  a871 = ((871 :: I64) - x) % (10 :: I64);
+  I64 a872;
+  a872 = ((872 :: I64) + x) % (10 :: I64);
+  I64 a873;
+  a873 = ((873 :: I64) - x) % (10 :: I64);
+  I64 a874;
+  a874 = ((874 :: I64) + x) % (10 :: I64);
+  I64 a875;
+  a875 = ((875 :: I64) - x) % (10 :: I64);
+  I64 a876;
+  a876 = ((876 :: I64) + x) % (10 :: I64);
+  I64 a877;
+  a877 = ((877 :: I64) - x) % (10 :: I64);
+  I64 a878;
+  a878 = ((878 :: I64) + x) % (10 :: I64);
+  I64 a879;
+  a879 = ((879 :: I64) - x) % (10 :: I64);
+  I64 a880;
+  a880 = ((880 :: I64) + x) % (10 :: I64);
+  I64 a881;
+  a881 = ((881 :: I64) - x) % (10 :: I64);
+  I64 a882;
+  a882 = ((882 :: I64) + x) % (10 :: I64);
+  I64 a883;
+  a883 = ((883 :: I64) - x) % (10 :: I64);
+  I64 a884;
+  a884 = ((884 :: I64) + x) % (10 :: I64);
+  I64 a885;
+  a885 = ((885 :: I64) - x) % (10 :: I64);
+  I64 a886;
+  a886 = ((886 :: I64) + x) % (10 :: I64);
+  I64 a887;
+  a887 = ((887 :: I64) - x) % (10 :: I64);
+  I64 a888;
+  a888 = ((888 :: I64) + x) % (10 :: I64);
+  I64 a889;
+  a889 = ((889 :: I64) - x) % (10 :: I64);
+  I64 a890;
+  a890 = ((890 :: I64) + x) % (10 :: I64);
+  I64 a891;
+  a891 = ((891 :: I64) - x) % (10 :: I64);
+  I64 a892;
+  a892 = ((892 :: I64) + x) % (10 :: I64);
+  I64 a893;
+  a893 = ((893 :: I64) - x) % (10 :: I64);
+  I64 a894;
+  a894 = ((894 :: I64) + x) % (10 :: I64);
+  I64 a895;
+  a895 = ((895 :: I64) - x) % (10 :: I64);
+  I64 a896;
+  a896 = ((896 :: I64) + x) % (10 :: I64);
+  I64 a897;
+  a897 = ((897 :: I64) - x) % (10 :: I64);
+  I64 a898;
+  a898 = ((898 :: I64) + x) % (10 :: I64);
+  I64 a899;
+  a899 = ((899 :: I64) - x) % (10 :: I64);
+  I64 a900;
+  a900 = ((900 :: I64) + x) % (10 :: I64);
+  I64 a901;
+  a901 = ((901 :: I64) - x) % (10 :: I64);
+  I64 a902;
+  a902 = ((902 :: I64) + x) % (10 :: I64);
+  I64 a903;
+  a903 = ((903 :: I64) - x) % (10 :: I64);
+  I64 a904;
+  a904 = ((904 :: I64) + x) % (10 :: I64);
+  I64 a905;
+  a905 = ((905 :: I64) - x) % (10 :: I64);
+  I64 a906;
+  a906 = ((906 :: I64) + x) % (10 :: I64);
+  I64 a907;
+  a907 = ((907 :: I64) - x) % (10 :: I64);
+  I64 a908;
+  a908 = ((908 :: I64) + x) % (10 :: I64);
+  I64 a909;
+  a909 = ((909 :: I64) - x) % (10 :: I64);
+  I64 a910;
+  a910 = ((910 :: I64) + x) % (10 :: I64);
+  I64 a911;
+  a911 = ((911 :: I64) - x) % (10 :: I64);
+  I64 a912;
+  a912 = ((912 :: I64) + x) % (10 :: I64);
+  I64 a913;
+  a913 = ((913 :: I64) - x) % (10 :: I64);
+  I64 a914;
+  a914 = ((914 :: I64) + x) % (10 :: I64);
+  I64 a915;
+  a915 = ((915 :: I64) - x) % (10 :: I64);
+  I64 a916;
+  a916 = ((916 :: I64) + x) % (10 :: I64);
+  I64 a917;
+  a917 = ((917 :: I64) - x) % (10 :: I64);
+  I64 a918;
+  a918 = ((918 :: I64) + x) % (10 :: I64);
+  I64 a919;
+  a919 = ((919 :: I64) - x) % (10 :: I64);
+  I64 a920;
+  a920 = ((920 :: I64) + x) % (10 :: I64);
+  I64 a921;
+  a921 = ((921 :: I64) - x) % (10 :: I64);
+  I64 a922;
+  a922 = ((922 :: I64) + x) % (10 :: I64);
+  I64 a923;
+  a923 = ((923 :: I64) - x) % (10 :: I64);
+  I64 a924;
+  a924 = ((924 :: I64) + x) % (10 :: I64);
+  I64 a925;
+  a925 = ((925 :: I64) - x) % (10 :: I64);
+  I64 a926;
+  a926 = ((926 :: I64) + x) % (10 :: I64);
+  I64 a927;
+  a927 = ((927 :: I64) - x) % (10 :: I64);
+  I64 a928;
+  a928 = ((928 :: I64) + x) % (10 :: I64);
+  I64 a929;
+  a929 = ((929 :: I64) - x) % (10 :: I64);
+  I64 a930;
+  a930 = ((930 :: I64) + x) % (10 :: I64);
+  I64 a931;
+  a931 = ((931 :: I64) - x) % (10 :: I64);
+  I64 a932;
+  a932 = ((932 :: I64) + x) % (10 :: I64);
+  I64 a933;
+  a933 = ((933 :: I64) - x) % (10 :: I64);
+  I64 a934;
+  a934 = ((934 :: I64) + x) % (10 :: I64);
+  I64 a935;
+  a935 = ((935 :: I64) - x) % (10 :: I64);
+  I64 a936;
+  a936 = ((936 :: I64) + x) % (10 :: I64);
+  I64 a937;
+  a937 = ((937 :: I64) - x) % (10 :: I64);
+  I64 a938;
+  a938 = ((938 :: I64) + x) % (10 :: I64);
+  I64 a939;
+  a939 = ((939 :: I64) - x) % (10 :: I64);
+  I64 a940;
+  a940 = ((940 :: I64) + x) % (10 :: I64);
+  I64 a941;
+  a941 = ((941 :: I64) - x) % (10 :: I64);
+  I64 a942;
+  a942 = ((942 :: I64) + x) % (10 :: I64);
+  I64 a943;
+  a943 = ((943 :: I64) - x) % (10 :: I64);
+  I64 a944;
+  a944 = ((944 :: I64) + x) % (10 :: I64);
+  I64 a945;
+  a945 = ((945 :: I64) - x) % (10 :: I64);
+  I64 a946;
+  a946 = ((946 :: I64) + x) % (10 :: I64);
+  I64 a947;
+  a947 = ((947 :: I64) - x) % (10 :: I64);
+  I64 a948;
+  a948 = ((948 :: I64) + x) % (10 :: I64);
+  I64 a949;
+  a949 = ((949 :: I64) - x) % (10 :: I64);
+  I64 a950;
+  a950 = ((950 :: I64) + x) % (10 :: I64);
+  I64 a951;
+  a951 = ((951 :: I64) - x) % (10 :: I64);
+  I64 a952;
+  a952 = ((952 :: I64) + x) % (10 :: I64);
+  I64 a953;
+  a953 = ((953 :: I64) - x) % (10 :: I64);
+  I64 a954;
+  a954 = ((954 :: I64) + x) % (10 :: I64);
+  I64 a955;
+  a955 = ((955 :: I64) - x) % (10 :: I64);
+  I64 a956;
+  a956 = ((956 :: I64) + x) % (10 :: I64);
+  I64 a957;
+  a957 = ((957 :: I64) - x) % (10 :: I64);
+  I64 a958;
+  a958 = ((958 :: I64) + x) % (10 :: I64);
+  I64 a959;
+  a959 = ((959 :: I64) - x) % (10 :: I64);
+  I64 a960;
+  a960 = ((960 :: I64) + x) % (10 :: I64);
+  I64 a961;
+  a961 = ((961 :: I64) - x) % (10 :: I64);
+  I64 a962;
+  a962 = ((962 :: I64) + x) % (10 :: I64);
+  I64 a963;
+  a963 = ((963 :: I64) - x) % (10 :: I64);
+  I64 a964;
+  a964 = ((964 :: I64) + x) % (10 :: I64);
+  I64 a965;
+  a965 = ((965 :: I64) - x) % (10 :: I64);
+  I64 a966;
+  a966 = ((966 :: I64) + x) % (10 :: I64);
+  I64 a967;
+  a967 = ((967 :: I64) - x) % (10 :: I64);
+  I64 a968;
+  a968 = ((968 :: I64) + x) % (10 :: I64);
+  I64 a969;
+  a969 = ((969 :: I64) - x) % (10 :: I64);
+  I64 a970;
+  a970 = ((970 :: I64) + x) % (10 :: I64);
+  I64 a971;
+  a971 = ((971 :: I64) - x) % (10 :: I64);
+  I64 a972;
+  a972 = ((972 :: I64) + x) % (10 :: I64);
+  I64 a973;
+  a973 = ((973 :: I64) - x) % (10 :: I64);
+  I64 a974;
+  a974 = ((974 :: I64) + x) % (10 :: I64);
+  I64 a975;
+  a975 = ((975 :: I64) - x) % (10 :: I64);
+  I64 a976;
+  a976 = ((976 :: I64) + x) % (10 :: I64);
+  I64 a977;
+  a977 = ((977 :: I64) - x) % (10 :: I64);
+  I64 a978;
+  a978 = ((978 :: I64) + x) % (10 :: I64);
+  I64 a979;
+  a979 = ((979 :: I64) - x) % (10 :: I64);
+  I64 a980;
+  a980 = ((980 :: I64) + x) % (10 :: I64);
+  I64 a981;
+  a981 = ((981 :: I64) - x) % (10 :: I64);
+  I64 a982;
+  a982 = ((982 :: I64) + x) % (10 :: I64);
+  I64 a983;
+  a983 = ((983 :: I64) - x) % (10 :: I64);
+  I64 a984;
+  a984 = ((984 :: I64) + x) % (10 :: I64);
+  I64 a985;
+  a985 = ((985 :: I64) - x) % (10 :: I64);
+  I64 a986;
+  a986 = ((986 :: I64) + x) % (10 :: I64);
+  I64 a987;
+  a987 = ((987 :: I64) - x) % (10 :: I64);
+  I64 a988;
+  a988 = ((988 :: I64) + x) % (10 :: I64);
+  I64 a989;
+  a989 = ((989 :: I64) - x) % (10 :: I64);
+  I64 a990;
+  a990 = ((990 :: I64) + x) % (10 :: I64);
+  I64 a991;
+  a991 = ((991 :: I64) - x) % (10 :: I64);
+  I64 a992;
+  a992 = ((992 :: I64) + x) % (10 :: I64);
+  I64 a993;
+  a993 = ((993 :: I64) - x) % (10 :: I64);
+  I64 a994;
+  a994 = ((994 :: I64) + x) % (10 :: I64);
+  I64 a995;
+  a995 = ((995 :: I64) - x) % (10 :: I64);
+  I64 a996;
+  a996 = ((996 :: I64) + x) % (10 :: I64);
+  I64 a997;
+  a997 = ((997 :: I64) - x) % (10 :: I64);
+  I64 a998;
+  a998 = ((998 :: I64) + x) % (10 :: I64);
+  I64 a999;
+  a999 = ((999 :: I64) - x) % (10 :: I64);
+  I64 a1000;
+  a1000 = ((1000 :: I64) + x) % (10 :: I64);
+  I64 a1001;
+  a1001 = ((1001 :: I64) - x) % (10 :: I64);
+  I64 a1002;
+  a1002 = ((1002 :: I64) + x) % (10 :: I64);
+  I64 a1003;
+  a1003 = ((1003 :: I64) - x) % (10 :: I64);
+  I64 a1004;
+  a1004 = ((1004 :: I64) + x) % (10 :: I64);
+  I64 a1005;
+  a1005 = ((1005 :: I64) - x) % (10 :: I64);
+  I64 a1006;
+  a1006 = ((1006 :: I64) + x) % (10 :: I64);
+  I64 a1007;
+  a1007 = ((1007 :: I64) - x) % (10 :: I64);
+  I64 a1008;
+  a1008 = ((1008 :: I64) + x) % (10 :: I64);
+  I64 a1009;
+  a1009 = ((1009 :: I64) - x) % (10 :: I64);
+  I64 a1010;
+  a1010 = ((1010 :: I64) + x) % (10 :: I64);
+  I64 a1011;
+  a1011 = ((1011 :: I64) - x) % (10 :: I64);
+  I64 a1012;
+  a1012 = ((1012 :: I64) + x) % (10 :: I64);
+  I64 a1013;
+  a1013 = ((1013 :: I64) - x) % (10 :: I64);
+  I64 a1014;
+  a1014 = ((1014 :: I64) + x) % (10 :: I64);
+  I64 a1015;
+  a1015 = ((1015 :: I64) - x) % (10 :: I64);
+  I64 a1016;
+  a1016 = ((1016 :: I64) + x) % (10 :: I64);
+  I64 a1017;
+  a1017 = ((1017 :: I64) - x) % (10 :: I64);
+  I64 a1018;
+  a1018 = ((1018 :: I64) + x) % (10 :: I64);
+  I64 a1019;
+  a1019 = ((1019 :: I64) - x) % (10 :: I64);
+  I64 a1020;
+  a1020 = ((1020 :: I64) + x) % (10 :: I64);
+  I64 a1021;
+  a1021 = ((1021 :: I64) - x) % (10 :: I64);
+  I64 a1022;
+  a1022 = ((1022 :: I64) + x) % (10 :: I64);
+  I64 a1023;
+  a1023 = ((1023 :: I64) - x) % (10 :: I64);
+  I64 a1024;
+  a1024 = ((1024 :: I64) + x) % (10 :: I64);
+  I64 a1025;
+  a1025 = ((1025 :: I64) - x) % (10 :: I64);
+  I64 a1026;
+  a1026 = ((1026 :: I64) + x) % (10 :: I64);
+  I64 a1027;
+  a1027 = ((1027 :: I64) - x) % (10 :: I64);
+  I64 a1028;
+  a1028 = ((1028 :: I64) + x) % (10 :: I64);
+  I64 a1029;
+  a1029 = ((1029 :: I64) - x) % (10 :: I64);
+  I64 a1030;
+  a1030 = ((1030 :: I64) + x) % (10 :: I64);
+  I64 a1031;
+  a1031 = ((1031 :: I64) - x) % (10 :: I64);
+  I64 a1032;
+  a1032 = ((1032 :: I64) + x) % (10 :: I64);
+  I64 a1033;
+  a1033 = ((1033 :: I64) - x) % (10 :: I64);
+  I64 a1034;
+  a1034 = ((1034 :: I64) + x) % (10 :: I64);
+  I64 a1035;
+  a1035 = ((1035 :: I64) - x) % (10 :: I64);
+  I64 a1036;
+  a1036 = ((1036 :: I64) + x) % (10 :: I64);
+  I64 a1037;
+  a1037 = ((1037 :: I64) - x) % (10 :: I64);
+  I64 a1038;
+  a1038 = ((1038 :: I64) + x) % (10 :: I64);
+  I64 a1039;
+  a1039 = ((1039 :: I64) - x) % (10 :: I64);
+  I64 a1040;
+  a1040 = ((1040 :: I64) + x) % (10 :: I64);
+  I64 a1041;
+  a1041 = ((1041 :: I64) - x) % (10 :: I64);
+  I64 a1042;
+  a1042 = ((1042 :: I64) + x) % (10 :: I64);
+  I64 a1043;
+  a1043 = ((1043 :: I64) - x) % (10 :: I64);
+  I64 a1044;
+  a1044 = ((1044 :: I64) + x) % (10 :: I64);
+  I64 a1045;
+  a1045 = ((1045 :: I64) - x) % (10 :: I64);
+  I64 a1046;
+  a1046 = ((1046 :: I64) + x) % (10 :: I64);
+  I64 a1047;
+  a1047 = ((1047 :: I64) - x) % (10 :: I64);
+  I64 a1048;
+  a1048 = ((1048 :: I64) + x) % (10 :: I64);
+  I64 a1049;
+  a1049 = ((1049 :: I64) - x) % (10 :: I64);
+  I64 a1050;
+  a1050 = ((1050 :: I64) + x) % (10 :: I64);
+  I64 a1051;
+  a1051 = ((1051 :: I64) - x) % (10 :: I64);
+  I64 a1052;
+  a1052 = ((1052 :: I64) + x) % (10 :: I64);
+  I64 a1053;
+  a1053 = ((1053 :: I64) - x) % (10 :: I64);
+  I64 a1054;
+  a1054 = ((1054 :: I64) + x) % (10 :: I64);
+  I64 a1055;
+  a1055 = ((1055 :: I64) - x) % (10 :: I64);
+  I64 a1056;
+  a1056 = ((1056 :: I64) + x) % (10 :: I64);
+  I64 a1057;
+  a1057 = ((1057 :: I64) - x) % (10 :: I64);
+  I64 a1058;
+  a1058 = ((1058 :: I64) + x) % (10 :: I64);
+  I64 a1059;
+  a1059 = ((1059 :: I64) - x) % (10 :: I64);
+  I64 a1060;
+  a1060 = ((1060 :: I64) + x) % (10 :: I64);
+  I64 a1061;
+  a1061 = ((1061 :: I64) - x) % (10 :: I64);
+  I64 a1062;
+  a1062 = ((1062 :: I64) + x) % (10 :: I64);
+  I64 a1063;
+  a1063 = ((1063 :: I64) - x) % (10 :: I64);
+  I64 a1064;
+  a1064 = ((1064 :: I64) + x) % (10 :: I64);
+  I64 a1065;
+  a1065 = ((1065 :: I64) - x) % (10 :: I64);
+  I64 a1066;
+  a1066 = ((1066 :: I64) + x) % (10 :: I64);
+  I64 a1067;
+  a1067 = ((1067 :: I64) - x) % (10 :: I64);
+  I64 a1068;
+  a1068 = ((1068 :: I64) + x) % (10 :: I64);
+  I64 a1069;
+  a1069 = ((1069 :: I64) - x) % (10 :: I64);
+  I64 a1070;
+  a1070 = ((1070 :: I64) + x) % (10 :: I64);
+  I64 a1071;
+  a1071 = ((1071 :: I64) - x) % (10 :: I64);
+  I64 a1072;
+  a1072 = ((1072 :: I64) + x) % (10 :: I64);
+  I64 a1073;
+  a1073 = ((1073 :: I64) - x) % (10 :: I64);
+  I64 a1074;
+  a1074 = ((1074 :: I64) + x) % (10 :: I64);
+  I64 a1075;
+  a1075 = ((1075 :: I64) - x) % (10 :: I64);
+  I64 a1076;
+  a1076 = ((1076 :: I64) + x) % (10 :: I64);
+  I64 a1077;
+  a1077 = ((1077 :: I64) - x) % (10 :: I64);
+  I64 a1078;
+  a1078 = ((1078 :: I64) + x) % (10 :: I64);
+  I64 a1079;
+  a1079 = ((1079 :: I64) - x) % (10 :: I64);
+  I64 a1080;
+  a1080 = ((1080 :: I64) + x) % (10 :: I64);
+  I64 a1081;
+  a1081 = ((1081 :: I64) - x) % (10 :: I64);
+  I64 a1082;
+  a1082 = ((1082 :: I64) + x) % (10 :: I64);
+  I64 a1083;
+  a1083 = ((1083 :: I64) - x) % (10 :: I64);
+  I64 a1084;
+  a1084 = ((1084 :: I64) + x) % (10 :: I64);
+  I64 a1085;
+  a1085 = ((1085 :: I64) - x) % (10 :: I64);
+  I64 a1086;
+  a1086 = ((1086 :: I64) + x) % (10 :: I64);
+  I64 a1087;
+  a1087 = ((1087 :: I64) - x) % (10 :: I64);
+  I64 a1088;
+  a1088 = ((1088 :: I64) + x) % (10 :: I64);
+  I64 a1089;
+  a1089 = ((1089 :: I64) - x) % (10 :: I64);
+  I64 a1090;
+  a1090 = ((1090 :: I64) + x) % (10 :: I64);
+  I64 a1091;
+  a1091 = ((1091 :: I64) - x) % (10 :: I64);
+  I64 a1092;
+  a1092 = ((1092 :: I64) + x) % (10 :: I64);
+  I64 a1093;
+  a1093 = ((1093 :: I64) - x) % (10 :: I64);
+  I64 a1094;
+  a1094 = ((1094 :: I64) + x) % (10 :: I64);
+  I64 a1095;
+  a1095 = ((1095 :: I64) - x) % (10 :: I64);
+  I64 a1096;
+  a1096 = ((1096 :: I64) + x) % (10 :: I64);
+  I64 a1097;
+  a1097 = ((1097 :: I64) - x) % (10 :: I64);
+  I64 a1098;
+  a1098 = ((1098 :: I64) + x) % (10 :: I64);
+  I64 a1099;
+  a1099 = ((1099 :: I64) - x) % (10 :: I64);
+  I64 a1100;
+  a1100 = ((1100 :: I64) + x) % (10 :: I64);
+  I64 a1101;
+  a1101 = ((1101 :: I64) - x) % (10 :: I64);
+  I64 a1102;
+  a1102 = ((1102 :: I64) + x) % (10 :: I64);
+  I64 a1103;
+  a1103 = ((1103 :: I64) - x) % (10 :: I64);
+  I64 a1104;
+  a1104 = ((1104 :: I64) + x) % (10 :: I64);
+  I64 a1105;
+  a1105 = ((1105 :: I64) - x) % (10 :: I64);
+  I64 a1106;
+  a1106 = ((1106 :: I64) + x) % (10 :: I64);
+  I64 a1107;
+  a1107 = ((1107 :: I64) - x) % (10 :: I64);
+  I64 a1108;
+  a1108 = ((1108 :: I64) + x) % (10 :: I64);
+  I64 a1109;
+  a1109 = ((1109 :: I64) - x) % (10 :: I64);
+  I64 a1110;
+  a1110 = ((1110 :: I64) + x) % (10 :: I64);
+  I64 a1111;
+  a1111 = ((1111 :: I64) - x) % (10 :: I64);
+  I64 a1112;
+  a1112 = ((1112 :: I64) + x) % (10 :: I64);
+  I64 a1113;
+  a1113 = ((1113 :: I64) - x) % (10 :: I64);
+  I64 a1114;
+  a1114 = ((1114 :: I64) + x) % (10 :: I64);
+  I64 a1115;
+  a1115 = ((1115 :: I64) - x) % (10 :: I64);
+  I64 a1116;
+  a1116 = ((1116 :: I64) + x) % (10 :: I64);
+  I64 a1117;
+  a1117 = ((1117 :: I64) - x) % (10 :: I64);
+  I64 a1118;
+  a1118 = ((1118 :: I64) + x) % (10 :: I64);
+  I64 a1119;
+  a1119 = ((1119 :: I64) - x) % (10 :: I64);
+  I64 a1120;
+  a1120 = ((1120 :: I64) + x) % (10 :: I64);
+  I64 a1121;
+  a1121 = ((1121 :: I64) - x) % (10 :: I64);
+  I64 a1122;
+  a1122 = ((1122 :: I64) + x) % (10 :: I64);
+  I64 a1123;
+  a1123 = ((1123 :: I64) - x) % (10 :: I64);
+  I64 a1124;
+  a1124 = ((1124 :: I64) + x) % (10 :: I64);
+  I64 a1125;
+  a1125 = ((1125 :: I64) - x) % (10 :: I64);
+  I64 a1126;
+  a1126 = ((1126 :: I64) + x) % (10 :: I64);
+  I64 a1127;
+  a1127 = ((1127 :: I64) - x) % (10 :: I64);
+  I64 a1128;
+  a1128 = ((1128 :: I64) + x) % (10 :: I64);
+  I64 a1129;
+  a1129 = ((1129 :: I64) - x) % (10 :: I64);
+  I64 a1130;
+  a1130 = ((1130 :: I64) + x) % (10 :: I64);
+  I64 a1131;
+  a1131 = ((1131 :: I64) - x) % (10 :: I64);
+  I64 a1132;
+  a1132 = ((1132 :: I64) + x) % (10 :: I64);
+  I64 a1133;
+  a1133 = ((1133 :: I64) - x) % (10 :: I64);
+  I64 a1134;
+  a1134 = ((1134 :: I64) + x) % (10 :: I64);
+  I64 a1135;
+  a1135 = ((1135 :: I64) - x) % (10 :: I64);
+  I64 a1136;
+  a1136 = ((1136 :: I64) + x) % (10 :: I64);
+  I64 a1137;
+  a1137 = ((1137 :: I64) - x) % (10 :: I64);
+  I64 a1138;
+  a1138 = ((1138 :: I64) + x) % (10 :: I64);
+  I64 a1139;
+  a1139 = ((1139 :: I64) - x) % (10 :: I64);
+  I64 a1140;
+  a1140 = ((1140 :: I64) + x) % (10 :: I64);
+  I64 a1141;
+  a1141 = ((1141 :: I64) - x) % (10 :: I64);
+  I64 a1142;
+  a1142 = ((1142 :: I64) + x) % (10 :: I64);
+  I64 a1143;
+  a1143 = ((1143 :: I64) - x) % (10 :: I64);
+  I64 a1144;
+  a1144 = ((1144 :: I64) + x) % (10 :: I64);
+  I64 a1145;
+  a1145 = ((1145 :: I64) - x) % (10 :: I64);
+  I64 a1146;
+  a1146 = ((1146 :: I64) + x) % (10 :: I64);
+  I64 a1147;
+  a1147 = ((1147 :: I64) - x) % (10 :: I64);
+  I64 a1148;
+  a1148 = ((1148 :: I64) + x) % (10 :: I64);
+  I64 a1149;
+  a1149 = ((1149 :: I64) - x) % (10 :: I64);
+  I64 a1150;
+  a1150 = ((1150 :: I64) + x) % (10 :: I64);
+  I64 a1151;
+  a1151 = ((1151 :: I64) - x) % (10 :: I64);
+  I64 a1152;
+  a1152 = ((1152 :: I64) + x) % (10 :: I64);
+  I64 a1153;
+  a1153 = ((1153 :: I64) - x) % (10 :: I64);
+  I64 a1154;
+  a1154 = ((1154 :: I64) + x) % (10 :: I64);
+  I64 a1155;
+  a1155 = ((1155 :: I64) - x) % (10 :: I64);
+  I64 a1156;
+  a1156 = ((1156 :: I64) + x) % (10 :: I64);
+  I64 a1157;
+  a1157 = ((1157 :: I64) - x) % (10 :: I64);
+  I64 a1158;
+  a1158 = ((1158 :: I64) + x) % (10 :: I64);
+  I64 a1159;
+  a1159 = ((1159 :: I64) - x) % (10 :: I64);
+  I64 a1160;
+  a1160 = ((1160 :: I64) + x) % (10 :: I64);
+  I64 a1161;
+  a1161 = ((1161 :: I64) - x) % (10 :: I64);
+  I64 a1162;
+  a1162 = ((1162 :: I64) + x) % (10 :: I64);
+  I64 a1163;
+  a1163 = ((1163 :: I64) - x) % (10 :: I64);
+  I64 a1164;
+  a1164 = ((1164 :: I64) + x) % (10 :: I64);
+  I64 a1165;
+  a1165 = ((1165 :: I64) - x) % (10 :: I64);
+  I64 a1166;
+  a1166 = ((1166 :: I64) + x) % (10 :: I64);
+  I64 a1167;
+  a1167 = ((1167 :: I64) - x) % (10 :: I64);
+  I64 a1168;
+  a1168 = ((1168 :: I64) + x) % (10 :: I64);
+  I64 a1169;
+  a1169 = ((1169 :: I64) - x) % (10 :: I64);
+  I64 a1170;
+  a1170 = ((1170 :: I64) + x) % (10 :: I64);
+  I64 a1171;
+  a1171 = ((1171 :: I64) - x) % (10 :: I64);
+  I64 a1172;
+  a1172 = ((1172 :: I64) + x) % (10 :: I64);
+  I64 a1173;
+  a1173 = ((1173 :: I64) - x) % (10 :: I64);
+  I64 a1174;
+  a1174 = ((1174 :: I64) + x) % (10 :: I64);
+  I64 a1175;
+  a1175 = ((1175 :: I64) - x) % (10 :: I64);
+  I64 a1176;
+  a1176 = ((1176 :: I64) + x) % (10 :: I64);
+  I64 a1177;
+  a1177 = ((1177 :: I64) - x) % (10 :: I64);
+  I64 a1178;
+  a1178 = ((1178 :: I64) + x) % (10 :: I64);
+  I64 a1179;
+  a1179 = ((1179 :: I64) - x) % (10 :: I64);
+  I64 a1180;
+  a1180 = ((1180 :: I64) + x) % (10 :: I64);
+  I64 a1181;
+  a1181 = ((1181 :: I64) - x) % (10 :: I64);
+  I64 a1182;
+  a1182 = ((1182 :: I64) + x) % (10 :: I64);
+  I64 a1183;
+  a1183 = ((1183 :: I64) - x) % (10 :: I64);
+  I64 a1184;
+  a1184 = ((1184 :: I64) + x) % (10 :: I64);
+  I64 a1185;
+  a1185 = ((1185 :: I64) - x) % (10 :: I64);
+  I64 a1186;
+  a1186 = ((1186 :: I64) + x) % (10 :: I64);
+  I64 a1187;
+  a1187 = ((1187 :: I64) - x) % (10 :: I64);
+  I64 a1188;
+  a1188 = ((1188 :: I64) + x) % (10 :: I64);
+  I64 a1189;
+  a1189 = ((1189 :: I64) - x) % (10 :: I64);
+  I64 a1190;
+  a1190 = ((1190 :: I64) + x) % (10 :: I64);
+  I64 a1191;
+  a1191 = ((1191 :: I64) - x) % (10 :: I64);
+  I64 a1192;
+  a1192 = ((1192 :: I64) + x) % (10 :: I64);
+  I64 a1193;
+  a1193 = ((1193 :: I64) - x) % (10 :: I64);
+  I64 a1194;
+  a1194 = ((1194 :: I64) + x) % (10 :: I64);
+  I64 a1195;
+  a1195 = ((1195 :: I64) - x) % (10 :: I64);
+  I64 a1196;
+  a1196 = ((1196 :: I64) + x) % (10 :: I64);
+  I64 a1197;
+  a1197 = ((1197 :: I64) - x) % (10 :: I64);
+  I64 a1198;
+  a1198 = ((1198 :: I64) + x) % (10 :: I64);
+  I64 a1199;
+  a1199 = ((1199 :: I64) - x) % (10 :: I64);
+  I64 a1200;
+  a1200 = ((1200 :: I64) + x) % (10 :: I64);
+  I64 a1201;
+  a1201 = ((1201 :: I64) - x) % (10 :: I64);
+  I64 a1202;
+  a1202 = ((1202 :: I64) + x) % (10 :: I64);
+  I64 a1203;
+  a1203 = ((1203 :: I64) - x) % (10 :: I64);
+  I64 a1204;
+  a1204 = ((1204 :: I64) + x) % (10 :: I64);
+  I64 a1205;
+  a1205 = ((1205 :: I64) - x) % (10 :: I64);
+  I64 a1206;
+  a1206 = ((1206 :: I64) + x) % (10 :: I64);
+  I64 a1207;
+  a1207 = ((1207 :: I64) - x) % (10 :: I64);
+  I64 a1208;
+  a1208 = ((1208 :: I64) + x) % (10 :: I64);
+  I64 a1209;
+  a1209 = ((1209 :: I64) - x) % (10 :: I64);
+  I64 a1210;
+  a1210 = ((1210 :: I64) + x) % (10 :: I64);
+  I64 a1211;
+  a1211 = ((1211 :: I64) - x) % (10 :: I64);
+  I64 a1212;
+  a1212 = ((1212 :: I64) + x) % (10 :: I64);
+  I64 a1213;
+  a1213 = ((1213 :: I64) - x) % (10 :: I64);
+  I64 a1214;
+  a1214 = ((1214 :: I64) + x) % (10 :: I64);
+  I64 a1215;
+  a1215 = ((1215 :: I64) - x) % (10 :: I64);
+  I64 a1216;
+  a1216 = ((1216 :: I64) + x) % (10 :: I64);
+  I64 a1217;
+  a1217 = ((1217 :: I64) - x) % (10 :: I64);
+  I64 a1218;
+  a1218 = ((1218 :: I64) + x) % (10 :: I64);
+  I64 a1219;
+  a1219 = ((1219 :: I64) - x) % (10 :: I64);
+  I64 a1220;
+  a1220 = ((1220 :: I64) + x) % (10 :: I64);
+  I64 a1221;
+  a1221 = ((1221 :: I64) - x) % (10 :: I64);
+  I64 a1222;
+  a1222 = ((1222 :: I64) + x) % (10 :: I64);
+  I64 a1223;
+  a1223 = ((1223 :: I64) - x) % (10 :: I64);
+  I64 a1224;
+  a1224 = ((1224 :: I64) + x) % (10 :: I64);
+  I64 a1225;
+  a1225 = ((1225 :: I64) - x) % (10 :: I64);
+  I64 a1226;
+  a1226 = ((1226 :: I64) + x) % (10 :: I64);
+  I64 a1227;
+  a1227 = ((1227 :: I64) - x) % (10 :: I64);
+  I64 a1228;
+  a1228 = ((1228 :: I64) + x) % (10 :: I64);
+  I64 a1229;
+  a1229 = ((1229 :: I64) - x) % (10 :: I64);
+  I64 a1230;
+  a1230 = ((1230 :: I64) + x) % (10 :: I64);
+  I64 a1231;
+  a1231 = ((1231 :: I64) - x) % (10 :: I64);
+  I64 a1232;
+  a1232 = ((1232 :: I64) + x) % (10 :: I64);
+  I64 a1233;
+  a1233 = ((1233 :: I64) - x) % (10 :: I64);
+  I64 a1234;
+  a1234 = ((1234 :: I64) + x) % (10 :: I64);
+  I64 a1235;
+  a1235 = ((1235 :: I64) - x) % (10 :: I64);
+  I64 a1236;
+  a1236 = ((1236 :: I64) + x) % (10 :: I64);
+  I64 a1237;
+  a1237 = ((1237 :: I64) - x) % (10 :: I64);
+  I64 a1238;
+  a1238 = ((1238 :: I64) + x) % (10 :: I64);
+  I64 a1239;
+  a1239 = ((1239 :: I64) - x) % (10 :: I64);
+  I64 a1240;
+  a1240 = ((1240 :: I64) + x) % (10 :: I64);
+  I64 a1241;
+  a1241 = ((1241 :: I64) - x) % (10 :: I64);
+  I64 a1242;
+  a1242 = ((1242 :: I64) + x) % (10 :: I64);
+  I64 a1243;
+  a1243 = ((1243 :: I64) - x) % (10 :: I64);
+  I64 a1244;
+  a1244 = ((1244 :: I64) + x) % (10 :: I64);
+  I64 a1245;
+  a1245 = ((1245 :: I64) - x) % (10 :: I64);
+  I64 a1246;
+  a1246 = ((1246 :: I64) + x) % (10 :: I64);
+  I64 a1247;
+  a1247 = ((1247 :: I64) - x) % (10 :: I64);
+  I64 a1248;
+  a1248 = ((1248 :: I64) + x) % (10 :: I64);
+  I64 a1249;
+  a1249 = ((1249 :: I64) - x) % (10 :: I64);
+  I64 a1250;
+  a1250 = ((1250 :: I64) + x) % (10 :: I64);
+  I64 a1251;
+  a1251 = ((1251 :: I64) - x) % (10 :: I64);
+  I64 a1252;
+  a1252 = ((1252 :: I64) + x) % (10 :: I64);
+  I64 a1253;
+  a1253 = ((1253 :: I64) - x) % (10 :: I64);
+  I64 a1254;
+  a1254 = ((1254 :: I64) + x) % (10 :: I64);
+  I64 a1255;
+  a1255 = ((1255 :: I64) - x) % (10 :: I64);
+  I64 a1256;
+  a1256 = ((1256 :: I64) + x) % (10 :: I64);
+  I64 a1257;
+  a1257 = ((1257 :: I64) - x) % (10 :: I64);
+  I64 a1258;
+  a1258 = ((1258 :: I64) + x) % (10 :: I64);
+  I64 a1259;
+  a1259 = ((1259 :: I64) - x) % (10 :: I64);
+  I64 a1260;
+  a1260 = ((1260 :: I64) + x) % (10 :: I64);
+  I64 a1261;
+  a1261 = ((1261 :: I64) - x) % (10 :: I64);
+  I64 a1262;
+  a1262 = ((1262 :: I64) + x) % (10 :: I64);
+  I64 a1263;
+  a1263 = ((1263 :: I64) - x) % (10 :: I64);
+  I64 a1264;
+  a1264 = ((1264 :: I64) + x) % (10 :: I64);
+  I64 a1265;
+  a1265 = ((1265 :: I64) - x) % (10 :: I64);
+  I64 a1266;
+  a1266 = ((1266 :: I64) + x) % (10 :: I64);
+  I64 a1267;
+  a1267 = ((1267 :: I64) - x) % (10 :: I64);
+  I64 a1268;
+  a1268 = ((1268 :: I64) + x) % (10 :: I64);
+  I64 a1269;
+  a1269 = ((1269 :: I64) - x) % (10 :: I64);
+  I64 a1270;
+  a1270 = ((1270 :: I64) + x) % (10 :: I64);
+  I64 a1271;
+  a1271 = ((1271 :: I64) - x) % (10 :: I64);
+  I64 a1272;
+  a1272 = ((1272 :: I64) + x) % (10 :: I64);
+  I64 a1273;
+  a1273 = ((1273 :: I64) - x) % (10 :: I64);
+  I64 a1274;
+  a1274 = ((1274 :: I64) + x) % (10 :: I64);
+  I64 a1275;
+  a1275 = ((1275 :: I64) - x) % (10 :: I64);
+  I64 a1276;
+  a1276 = ((1276 :: I64) + x) % (10 :: I64);
+  I64 a1277;
+  a1277 = ((1277 :: I64) - x) % (10 :: I64);
+  I64 a1278;
+  a1278 = ((1278 :: I64) + x) % (10 :: I64);
+  I64 a1279;
+  a1279 = ((1279 :: I64) - x) % (10 :: I64);
+  I64 a1280;
+  a1280 = ((1280 :: I64) + x) % (10 :: I64);
+  I64 a1281;
+  a1281 = ((1281 :: I64) - x) % (10 :: I64);
+  I64 a1282;
+  a1282 = ((1282 :: I64) + x) % (10 :: I64);
+  I64 a1283;
+  a1283 = ((1283 :: I64) - x) % (10 :: I64);
+  I64 a1284;
+  a1284 = ((1284 :: I64) + x) % (10 :: I64);
+  I64 a1285;
+  a1285 = ((1285 :: I64) - x) % (10 :: I64);
+  I64 a1286;
+  a1286 = ((1286 :: I64) + x) % (10 :: I64);
+  I64 a1287;
+  a1287 = ((1287 :: I64) - x) % (10 :: I64);
+  I64 a1288;
+  a1288 = ((1288 :: I64) + x) % (10 :: I64);
+  I64 a1289;
+  a1289 = ((1289 :: I64) - x) % (10 :: I64);
+  I64 a1290;
+  a1290 = ((1290 :: I64) + x) % (10 :: I64);
+  I64 a1291;
+  a1291 = ((1291 :: I64) - x) % (10 :: I64);
+  I64 a1292;
+  a1292 = ((1292 :: I64) + x) % (10 :: I64);
+  I64 a1293;
+  a1293 = ((1293 :: I64) - x) % (10 :: I64);
+  I64 a1294;
+  a1294 = ((1294 :: I64) + x) % (10 :: I64);
+  I64 a1295;
+  a1295 = ((1295 :: I64) - x) % (10 :: I64);
+  I64 a1296;
+  a1296 = ((1296 :: I64) + x) % (10 :: I64);
+  I64 a1297;
+  a1297 = ((1297 :: I64) - x) % (10 :: I64);
+  I64 a1298;
+  a1298 = ((1298 :: I64) + x) % (10 :: I64);
+  I64 a1299;
+  a1299 = ((1299 :: I64) - x) % (10 :: I64);
+  I64 a1300;
+  a1300 = ((1300 :: I64) + x) % (10 :: I64);
+  I64 a1301;
+  a1301 = ((1301 :: I64) - x) % (10 :: I64);
+  I64 a1302;
+  a1302 = ((1302 :: I64) + x) % (10 :: I64);
+  I64 a1303;
+  a1303 = ((1303 :: I64) - x) % (10 :: I64);
+  I64 a1304;
+  a1304 = ((1304 :: I64) + x) % (10 :: I64);
+  I64 a1305;
+  a1305 = ((1305 :: I64) - x) % (10 :: I64);
+  I64 a1306;
+  a1306 = ((1306 :: I64) + x) % (10 :: I64);
+  I64 a1307;
+  a1307 = ((1307 :: I64) - x) % (10 :: I64);
+  I64 a1308;
+  a1308 = ((1308 :: I64) + x) % (10 :: I64);
+  I64 a1309;
+  a1309 = ((1309 :: I64) - x) % (10 :: I64);
+  I64 a1310;
+  a1310 = ((1310 :: I64) + x) % (10 :: I64);
+  I64 a1311;
+  a1311 = ((1311 :: I64) - x) % (10 :: I64);
+  I64 a1312;
+  a1312 = ((1312 :: I64) + x) % (10 :: I64);
+  I64 a1313;
+  a1313 = ((1313 :: I64) - x) % (10 :: I64);
+  I64 a1314;
+  a1314 = ((1314 :: I64) + x) % (10 :: I64);
+  I64 a1315;
+  a1315 = ((1315 :: I64) - x) % (10 :: I64);
+  I64 a1316;
+  a1316 = ((1316 :: I64) + x) % (10 :: I64);
+  I64 a1317;
+  a1317 = ((1317 :: I64) - x) % (10 :: I64);
+  I64 a1318;
+  a1318 = ((1318 :: I64) + x) % (10 :: I64);
+  I64 a1319;
+  a1319 = ((1319 :: I64) - x) % (10 :: I64);
+  I64 a1320;
+  a1320 = ((1320 :: I64) + x) % (10 :: I64);
+  I64 a1321;
+  a1321 = ((1321 :: I64) - x) % (10 :: I64);
+  I64 a1322;
+  a1322 = ((1322 :: I64) + x) % (10 :: I64);
+  I64 a1323;
+  a1323 = ((1323 :: I64) - x) % (10 :: I64);
+  I64 a1324;
+  a1324 = ((1324 :: I64) + x) % (10 :: I64);
+  I64 a1325;
+  a1325 = ((1325 :: I64) - x) % (10 :: I64);
+  I64 a1326;
+  a1326 = ((1326 :: I64) + x) % (10 :: I64);
+  I64 a1327;
+  a1327 = ((1327 :: I64) - x) % (10 :: I64);
+  I64 a1328;
+  a1328 = ((1328 :: I64) + x) % (10 :: I64);
+  I64 a1329;
+  a1329 = ((1329 :: I64) - x) % (10 :: I64);
+  I64 a1330;
+  a1330 = ((1330 :: I64) + x) % (10 :: I64);
+  I64 a1331;
+  a1331 = ((1331 :: I64) - x) % (10 :: I64);
+  I64 a1332;
+  a1332 = ((1332 :: I64) + x) % (10 :: I64);
+  I64 a1333;
+  a1333 = ((1333 :: I64) - x) % (10 :: I64);
+  I64 a1334;
+  a1334 = ((1334 :: I64) + x) % (10 :: I64);
+  I64 a1335;
+  a1335 = ((1335 :: I64) - x) % (10 :: I64);
+  I64 a1336;
+  a1336 = ((1336 :: I64) + x) % (10 :: I64);
+  I64 a1337;
+  a1337 = ((1337 :: I64) - x) % (10 :: I64);
+  I64 a1338;
+  a1338 = ((1338 :: I64) + x) % (10 :: I64);
+  I64 a1339;
+  a1339 = ((1339 :: I64) - x) % (10 :: I64);
+  I64 a1340;
+  a1340 = ((1340 :: I64) + x) % (10 :: I64);
+  I64 a1341;
+  a1341 = ((1341 :: I64) - x) % (10 :: I64);
+  I64 a1342;
+  a1342 = ((1342 :: I64) + x) % (10 :: I64);
+  I64 a1343;
+  a1343 = ((1343 :: I64) - x) % (10 :: I64);
+  I64 a1344;
+  a1344 = ((1344 :: I64) + x) % (10 :: I64);
+  I64 a1345;
+  a1345 = ((1345 :: I64) - x) % (10 :: I64);
+  I64 a1346;
+  a1346 = ((1346 :: I64) + x) % (10 :: I64);
+  I64 a1347;
+  a1347 = ((1347 :: I64) - x) % (10 :: I64);
+  I64 a1348;
+  a1348 = ((1348 :: I64) + x) % (10 :: I64);
+  I64 a1349;
+  a1349 = ((1349 :: I64) - x) % (10 :: I64);
+  I64 a1350;
+  a1350 = ((1350 :: I64) + x) % (10 :: I64);
+  I64 a1351;
+  a1351 = ((1351 :: I64) - x) % (10 :: I64);
+  I64 a1352;
+  a1352 = ((1352 :: I64) + x) % (10 :: I64);
+  I64 a1353;
+  a1353 = ((1353 :: I64) - x) % (10 :: I64);
+  I64 a1354;
+  a1354 = ((1354 :: I64) + x) % (10 :: I64);
+  I64 a1355;
+  a1355 = ((1355 :: I64) - x) % (10 :: I64);
+  I64 a1356;
+  a1356 = ((1356 :: I64) + x) % (10 :: I64);
+  I64 a1357;
+  a1357 = ((1357 :: I64) - x) % (10 :: I64);
+  I64 a1358;
+  a1358 = ((1358 :: I64) + x) % (10 :: I64);
+  I64 a1359;
+  a1359 = ((1359 :: I64) - x) % (10 :: I64);
+  I64 a1360;
+  a1360 = ((1360 :: I64) + x) % (10 :: I64);
+  I64 a1361;
+  a1361 = ((1361 :: I64) - x) % (10 :: I64);
+  I64 a1362;
+  a1362 = ((1362 :: I64) + x) % (10 :: I64);
+  I64 a1363;
+  a1363 = ((1363 :: I64) - x) % (10 :: I64);
+  I64 a1364;
+  a1364 = ((1364 :: I64) + x) % (10 :: I64);
+  I64 a1365;
+  a1365 = ((1365 :: I64) - x) % (10 :: I64);
+  I64 a1366;
+  a1366 = ((1366 :: I64) + x) % (10 :: I64);
+  I64 a1367;
+  a1367 = ((1367 :: I64) - x) % (10 :: I64);
+  I64 a1368;
+  a1368 = ((1368 :: I64) + x) % (10 :: I64);
+  I64 a1369;
+  a1369 = ((1369 :: I64) - x) % (10 :: I64);
+  I64 a1370;
+  a1370 = ((1370 :: I64) + x) % (10 :: I64);
+  I64 a1371;
+  a1371 = ((1371 :: I64) - x) % (10 :: I64);
+  I64 a1372;
+  a1372 = ((1372 :: I64) + x) % (10 :: I64);
+  I64 a1373;
+  a1373 = ((1373 :: I64) - x) % (10 :: I64);
+  I64 a1374;
+  a1374 = ((1374 :: I64) + x) % (10 :: I64);
+  I64 a1375;
+  a1375 = ((1375 :: I64) - x) % (10 :: I64);
+  I64 a1376;
+  a1376 = ((1376 :: I64) + x) % (10 :: I64);
+  I64 a1377;
+  a1377 = ((1377 :: I64) - x) % (10 :: I64);
+  I64 a1378;
+  a1378 = ((1378 :: I64) + x) % (10 :: I64);
+  I64 a1379;
+  a1379 = ((1379 :: I64) - x) % (10 :: I64);
+  I64 a1380;
+  a1380 = ((1380 :: I64) + x) % (10 :: I64);
+  I64 a1381;
+  a1381 = ((1381 :: I64) - x) % (10 :: I64);
+  I64 a1382;
+  a1382 = ((1382 :: I64) + x) % (10 :: I64);
+  I64 a1383;
+  a1383 = ((1383 :: I64) - x) % (10 :: I64);
+  I64 a1384;
+  a1384 = ((1384 :: I64) + x) % (10 :: I64);
+  I64 a1385;
+  a1385 = ((1385 :: I64) - x) % (10 :: I64);
+  I64 a1386;
+  a1386 = ((1386 :: I64) + x) % (10 :: I64);
+  I64 a1387;
+  a1387 = ((1387 :: I64) - x) % (10 :: I64);
+  I64 a1388;
+  a1388 = ((1388 :: I64) + x) % (10 :: I64);
+  I64 a1389;
+  a1389 = ((1389 :: I64) - x) % (10 :: I64);
+  I64 a1390;
+  a1390 = ((1390 :: I64) + x) % (10 :: I64);
+  I64 a1391;
+  a1391 = ((1391 :: I64) - x) % (10 :: I64);
+  I64 a1392;
+  a1392 = ((1392 :: I64) + x) % (10 :: I64);
+  I64 a1393;
+  a1393 = ((1393 :: I64) - x) % (10 :: I64);
+  I64 a1394;
+  a1394 = ((1394 :: I64) + x) % (10 :: I64);
+  I64 a1395;
+  a1395 = ((1395 :: I64) - x) % (10 :: I64);
+  I64 a1396;
+  a1396 = ((1396 :: I64) + x) % (10 :: I64);
+  I64 a1397;
+  a1397 = ((1397 :: I64) - x) % (10 :: I64);
+  I64 a1398;
+  a1398 = ((1398 :: I64) + x) % (10 :: I64);
+  I64 a1399;
+  a1399 = ((1399 :: I64) - x) % (10 :: I64);
+  I64 a1400;
+  a1400 = ((1400 :: I64) + x) % (10 :: I64);
+  I64 a1401;
+  a1401 = ((1401 :: I64) - x) % (10 :: I64);
+  I64 a1402;
+  a1402 = ((1402 :: I64) + x) % (10 :: I64);
+  I64 a1403;
+  a1403 = ((1403 :: I64) - x) % (10 :: I64);
+  I64 a1404;
+  a1404 = ((1404 :: I64) + x) % (10 :: I64);
+  I64 a1405;
+  a1405 = ((1405 :: I64) - x) % (10 :: I64);
+  I64 a1406;
+  a1406 = ((1406 :: I64) + x) % (10 :: I64);
+  I64 a1407;
+  a1407 = ((1407 :: I64) - x) % (10 :: I64);
+  I64 a1408;
+  a1408 = ((1408 :: I64) + x) % (10 :: I64);
+  I64 a1409;
+  a1409 = ((1409 :: I64) - x) % (10 :: I64);
+  I64 a1410;
+  a1410 = ((1410 :: I64) + x) % (10 :: I64);
+  I64 a1411;
+  a1411 = ((1411 :: I64) - x) % (10 :: I64);
+  I64 a1412;
+  a1412 = ((1412 :: I64) + x) % (10 :: I64);
+  I64 a1413;
+  a1413 = ((1413 :: I64) - x) % (10 :: I64);
+  I64 a1414;
+  a1414 = ((1414 :: I64) + x) % (10 :: I64);
+  I64 a1415;
+  a1415 = ((1415 :: I64) - x) % (10 :: I64);
+  I64 a1416;
+  a1416 = ((1416 :: I64) + x) % (10 :: I64);
+  I64 a1417;
+  a1417 = ((1417 :: I64) - x) % (10 :: I64);
+  I64 a1418;
+  a1418 = ((1418 :: I64) + x) % (10 :: I64);
+  I64 a1419;
+  a1419 = ((1419 :: I64) - x) % (10 :: I64);
+  I64 a1420;
+  a1420 = ((1420 :: I64) + x) % (10 :: I64);
+  I64 a1421;
+  a1421 = ((1421 :: I64) - x) % (10 :: I64);
+  I64 a1422;
+  a1422 = ((1422 :: I64) + x) % (10 :: I64);
+  I64 a1423;
+  a1423 = ((1423 :: I64) - x) % (10 :: I64);
+  I64 a1424;
+  a1424 = ((1424 :: I64) + x) % (10 :: I64);
+  I64 a1425;
+  a1425 = ((1425 :: I64) - x) % (10 :: I64);
+  I64 a1426;
+  a1426 = ((1426 :: I64) + x) % (10 :: I64);
+  I64 a1427;
+  a1427 = ((1427 :: I64) - x) % (10 :: I64);
+  I64 a1428;
+  a1428 = ((1428 :: I64) + x) % (10 :: I64);
+  I64 a1429;
+  a1429 = ((1429 :: I64) - x) % (10 :: I64);
+  I64 a1430;
+  a1430 = ((1430 :: I64) + x) % (10 :: I64);
+  I64 a1431;
+  a1431 = ((1431 :: I64) - x) % (10 :: I64);
+  I64 a1432;
+  a1432 = ((1432 :: I64) + x) % (10 :: I64);
+  I64 a1433;
+  a1433 = ((1433 :: I64) - x) % (10 :: I64);
+  I64 a1434;
+  a1434 = ((1434 :: I64) + x) % (10 :: I64);
+  I64 a1435;
+  a1435 = ((1435 :: I64) - x) % (10 :: I64);
+  I64 a1436;
+  a1436 = ((1436 :: I64) + x) % (10 :: I64);
+  I64 a1437;
+  a1437 = ((1437 :: I64) - x) % (10 :: I64);
+  I64 a1438;
+  a1438 = ((1438 :: I64) + x) % (10 :: I64);
+  I64 a1439;
+  a1439 = ((1439 :: I64) - x) % (10 :: I64);
+  I64 a1440;
+  a1440 = ((1440 :: I64) + x) % (10 :: I64);
+  I64 a1441;
+  a1441 = ((1441 :: I64) - x) % (10 :: I64);
+  I64 a1442;
+  a1442 = ((1442 :: I64) + x) % (10 :: I64);
+  I64 a1443;
+  a1443 = ((1443 :: I64) - x) % (10 :: I64);
+  I64 a1444;
+  a1444 = ((1444 :: I64) + x) % (10 :: I64);
+  I64 a1445;
+  a1445 = ((1445 :: I64) - x) % (10 :: I64);
+  I64 a1446;
+  a1446 = ((1446 :: I64) + x) % (10 :: I64);
+  I64 a1447;
+  a1447 = ((1447 :: I64) - x) % (10 :: I64);
+  I64 a1448;
+  a1448 = ((1448 :: I64) + x) % (10 :: I64);
+  I64 a1449;
+  a1449 = ((1449 :: I64) - x) % (10 :: I64);
+  I64 a1450;
+  a1450 = ((1450 :: I64) + x) % (10 :: I64);
+  I64 a1451;
+  a1451 = ((1451 :: I64) - x) % (10 :: I64);
+  I64 a1452;
+  a1452 = ((1452 :: I64) + x) % (10 :: I64);
+  I64 a1453;
+  a1453 = ((1453 :: I64) - x) % (10 :: I64);
+  I64 a1454;
+  a1454 = ((1454 :: I64) + x) % (10 :: I64);
+  I64 a1455;
+  a1455 = ((1455 :: I64) - x) % (10 :: I64);
+  I64 a1456;
+  a1456 = ((1456 :: I64) + x) % (10 :: I64);
+  I64 a1457;
+  a1457 = ((1457 :: I64) - x) % (10 :: I64);
+  I64 a1458;
+  a1458 = ((1458 :: I64) + x) % (10 :: I64);
+  I64 a1459;
+  a1459 = ((1459 :: I64) - x) % (10 :: I64);
+  I64 a1460;
+  a1460 = ((1460 :: I64) + x) % (10 :: I64);
+  I64 a1461;
+  a1461 = ((1461 :: I64) - x) % (10 :: I64);
+  I64 a1462;
+  a1462 = ((1462 :: I64) + x) % (10 :: I64);
+  I64 a1463;
+  a1463 = ((1463 :: I64) - x) % (10 :: I64);
+  I64 a1464;
+  a1464 = ((1464 :: I64) + x) % (10 :: I64);
+  I64 a1465;
+  a1465 = ((1465 :: I64) - x) % (10 :: I64);
+  I64 a1466;
+  a1466 = ((1466 :: I64) + x) % (10 :: I64);
+  I64 a1467;
+  a1467 = ((1467 :: I64) - x) % (10 :: I64);
+  I64 a1468;
+  a1468 = ((1468 :: I64) + x) % (10 :: I64);
+  I64 a1469;
+  a1469 = ((1469 :: I64) - x) % (10 :: I64);
+  I64 a1470;
+  a1470 = ((1470 :: I64) + x) % (10 :: I64);
+  I64 a1471;
+  a1471 = ((1471 :: I64) - x) % (10 :: I64);
+  I64 a1472;
+  a1472 = ((1472 :: I64) + x) % (10 :: I64);
+  I64 a1473;
+  a1473 = ((1473 :: I64) - x) % (10 :: I64);
+  I64 a1474;
+  a1474 = ((1474 :: I64) + x) % (10 :: I64);
+  I64 a1475;
+  a1475 = ((1475 :: I64) - x) % (10 :: I64);
+  I64 a1476;
+  a1476 = ((1476 :: I64) + x) % (10 :: I64);
+  I64 a1477;
+  a1477 = ((1477 :: I64) - x) % (10 :: I64);
+  I64 a1478;
+  a1478 = ((1478 :: I64) + x) % (10 :: I64);
+  I64 a1479;
+  a1479 = ((1479 :: I64) - x) % (10 :: I64);
+  I64 a1480;
+  a1480 = ((1480 :: I64) + x) % (10 :: I64);
+  I64 a1481;
+  a1481 = ((1481 :: I64) - x) % (10 :: I64);
+  I64 a1482;
+  a1482 = ((1482 :: I64) + x) % (10 :: I64);
+  I64 a1483;
+  a1483 = ((1483 :: I64) - x) % (10 :: I64);
+  I64 a1484;
+  a1484 = ((1484 :: I64) + x) % (10 :: I64);
+  I64 a1485;
+  a1485 = ((1485 :: I64) - x) % (10 :: I64);
+  I64 a1486;
+  a1486 = ((1486 :: I64) + x) % (10 :: I64);
+  I64 a1487;
+  a1487 = ((1487 :: I64) - x) % (10 :: I64);
+  I64 a1488;
+  a1488 = ((1488 :: I64) + x) % (10 :: I64);
+  I64 a1489;
+  a1489 = ((1489 :: I64) - x) % (10 :: I64);
+  I64 a1490;
+  a1490 = ((1490 :: I64) + x) % (10 :: I64);
+  I64 a1491;
+  a1491 = ((1491 :: I64) - x) % (10 :: I64);
+  I64 a1492;
+  a1492 = ((1492 :: I64) + x) % (10 :: I64);
+  I64 a1493;
+  a1493 = ((1493 :: I64) - x) % (10 :: I64);
+  I64 a1494;
+  a1494 = ((1494 :: I64) + x) % (10 :: I64);
+  I64 a1495;
+  a1495 = ((1495 :: I64) - x) % (10 :: I64);
+  I64 a1496;
+  a1496 = ((1496 :: I64) + x) % (10 :: I64);
+  I64 a1497;
+  a1497 = ((1497 :: I64) - x) % (10 :: I64);
+  I64 a1498;
+  a1498 = ((1498 :: I64) + x) % (10 :: I64);
+  I64 a1499;
+  a1499 = ((1499 :: I64) - x) % (10 :: I64);
+  I64 a1500;
+  a1500 = ((1500 :: I64) + x) % (10 :: I64);
+  I64 a1501;
+  a1501 = ((1501 :: I64) - x) % (10 :: I64);
+  I64 a1502;
+  a1502 = ((1502 :: I64) + x) % (10 :: I64);
+  I64 a1503;
+  a1503 = ((1503 :: I64) - x) % (10 :: I64);
+  I64 a1504;
+  a1504 = ((1504 :: I64) + x) % (10 :: I64);
+  I64 a1505;
+  a1505 = ((1505 :: I64) - x) % (10 :: I64);
+  I64 a1506;
+  a1506 = ((1506 :: I64) + x) % (10 :: I64);
+  I64 a1507;
+  a1507 = ((1507 :: I64) - x) % (10 :: I64);
+  I64 a1508;
+  a1508 = ((1508 :: I64) + x) % (10 :: I64);
+  I64 a1509;
+  a1509 = ((1509 :: I64) - x) % (10 :: I64);
+  I64 a1510;
+  a1510 = ((1510 :: I64) + x) % (10 :: I64);
+  I64 a1511;
+  a1511 = ((1511 :: I64) - x) % (10 :: I64);
+  I64 a1512;
+  a1512 = ((1512 :: I64) + x) % (10 :: I64);
+  I64 a1513;
+  a1513 = ((1513 :: I64) - x) % (10 :: I64);
+  I64 a1514;
+  a1514 = ((1514 :: I64) + x) % (10 :: I64);
+  I64 a1515;
+  a1515 = ((1515 :: I64) - x) % (10 :: I64);
+  I64 a1516;
+  a1516 = ((1516 :: I64) + x) % (10 :: I64);
+  I64 a1517;
+  a1517 = ((1517 :: I64) - x) % (10 :: I64);
+  I64 a1518;
+  a1518 = ((1518 :: I64) + x) % (10 :: I64);
+  I64 a1519;
+  a1519 = ((1519 :: I64) - x) % (10 :: I64);
+  I64 a1520;
+  a1520 = ((1520 :: I64) + x) % (10 :: I64);
+  I64 a1521;
+  a1521 = ((1521 :: I64) - x) % (10 :: I64);
+  I64 a1522;
+  a1522 = ((1522 :: I64) + x) % (10 :: I64);
+  I64 a1523;
+  a1523 = ((1523 :: I64) - x) % (10 :: I64);
+  I64 a1524;
+  a1524 = ((1524 :: I64) + x) % (10 :: I64);
+  I64 a1525;
+  a1525 = ((1525 :: I64) - x) % (10 :: I64);
+  I64 a1526;
+  a1526 = ((1526 :: I64) + x) % (10 :: I64);
+  I64 a1527;
+  a1527 = ((1527 :: I64) - x) % (10 :: I64);
+  I64 a1528;
+  a1528 = ((1528 :: I64) + x) % (10 :: I64);
+  I64 a1529;
+  a1529 = ((1529 :: I64) - x) % (10 :: I64);
+  I64 a1530;
+  a1530 = ((1530 :: I64) + x) % (10 :: I64);
+  I64 a1531;
+  a1531 = ((1531 :: I64) - x) % (10 :: I64);
+  I64 a1532;
+  a1532 = ((1532 :: I64) + x) % (10 :: I64);
+  I64 a1533;
+  a1533 = ((1533 :: I64) - x) % (10 :: I64);
+  I64 a1534;
+  a1534 = ((1534 :: I64) + x) % (10 :: I64);
+  I64 a1535;
+  a1535 = ((1535 :: I64) - x) % (10 :: I64);
+  I64 a1536;
+  a1536 = ((1536 :: I64) + x) % (10 :: I64);
+  I64 a1537;
+  a1537 = ((1537 :: I64) - x) % (10 :: I64);
+  I64 a1538;
+  a1538 = ((1538 :: I64) + x) % (10 :: I64);
+  I64 a1539;
+  a1539 = ((1539 :: I64) - x) % (10 :: I64);
+  I64 a1540;
+  a1540 = ((1540 :: I64) + x) % (10 :: I64);
+  I64 a1541;
+  a1541 = ((1541 :: I64) - x) % (10 :: I64);
+  I64 a1542;
+  a1542 = ((1542 :: I64) + x) % (10 :: I64);
+  I64 a1543;
+  a1543 = ((1543 :: I64) - x) % (10 :: I64);
+  I64 a1544;
+  a1544 = ((1544 :: I64) + x) % (10 :: I64);
+  I64 a1545;
+  a1545 = ((1545 :: I64) - x) % (10 :: I64);
+  I64 a1546;
+  a1546 = ((1546 :: I64) + x) % (10 :: I64);
+  I64 a1547;
+  a1547 = ((1547 :: I64) - x) % (10 :: I64);
+  I64 a1548;
+  a1548 = ((1548 :: I64) + x) % (10 :: I64);
+  I64 a1549;
+  a1549 = ((1549 :: I64) - x) % (10 :: I64);
+  I64 a1550;
+  a1550 = ((1550 :: I64) + x) % (10 :: I64);
+  I64 a1551;
+  a1551 = ((1551 :: I64) - x) % (10 :: I64);
+  I64 a1552;
+  a1552 = ((1552 :: I64) + x) % (10 :: I64);
+  I64 a1553;
+  a1553 = ((1553 :: I64) - x) % (10 :: I64);
+  I64 a1554;
+  a1554 = ((1554 :: I64) + x) % (10 :: I64);
+  I64 a1555;
+  a1555 = ((1555 :: I64) - x) % (10 :: I64);
+  I64 a1556;
+  a1556 = ((1556 :: I64) + x) % (10 :: I64);
+  I64 a1557;
+  a1557 = ((1557 :: I64) - x) % (10 :: I64);
+  I64 a1558;
+  a1558 = ((1558 :: I64) + x) % (10 :: I64);
+  I64 a1559;
+  a1559 = ((1559 :: I64) - x) % (10 :: I64);
+  I64 a1560;
+  a1560 = ((1560 :: I64) + x) % (10 :: I64);
+  I64 a1561;
+  a1561 = ((1561 :: I64) - x) % (10 :: I64);
+  I64 a1562;
+  a1562 = ((1562 :: I64) + x) % (10 :: I64);
+  I64 a1563;
+  a1563 = ((1563 :: I64) - x) % (10 :: I64);
+  I64 a1564;
+  a1564 = ((1564 :: I64) + x) % (10 :: I64);
+  I64 a1565;
+  a1565 = ((1565 :: I64) - x) % (10 :: I64);
+  I64 a1566;
+  a1566 = ((1566 :: I64) + x) % (10 :: I64);
+  I64 a1567;
+  a1567 = ((1567 :: I64) - x) % (10 :: I64);
+  I64 a1568;
+  a1568 = ((1568 :: I64) + x) % (10 :: I64);
+  I64 a1569;
+  a1569 = ((1569 :: I64) - x) % (10 :: I64);
+  I64 a1570;
+  a1570 = ((1570 :: I64) + x) % (10 :: I64);
+  I64 a1571;
+  a1571 = ((1571 :: I64) - x) % (10 :: I64);
+  I64 a1572;
+  a1572 = ((1572 :: I64) + x) % (10 :: I64);
+  I64 a1573;
+  a1573 = ((1573 :: I64) - x) % (10 :: I64);
+  I64 a1574;
+  a1574 = ((1574 :: I64) + x) % (10 :: I64);
+  I64 a1575;
+  a1575 = ((1575 :: I64) - x) % (10 :: I64);
+  I64 a1576;
+  a1576 = ((1576 :: I64) + x) % (10 :: I64);
+  I64 a1577;
+  a1577 = ((1577 :: I64) - x) % (10 :: I64);
+  I64 a1578;
+  a1578 = ((1578 :: I64) + x) % (10 :: I64);
+  I64 a1579;
+  a1579 = ((1579 :: I64) - x) % (10 :: I64);
+  I64 a1580;
+  a1580 = ((1580 :: I64) + x) % (10 :: I64);
+  I64 a1581;
+  a1581 = ((1581 :: I64) - x) % (10 :: I64);
+  I64 a1582;
+  a1582 = ((1582 :: I64) + x) % (10 :: I64);
+  I64 a1583;
+  a1583 = ((1583 :: I64) - x) % (10 :: I64);
+  I64 a1584;
+  a1584 = ((1584 :: I64) + x) % (10 :: I64);
+  I64 a1585;
+  a1585 = ((1585 :: I64) - x) % (10 :: I64);
+  I64 a1586;
+  a1586 = ((1586 :: I64) + x) % (10 :: I64);
+  I64 a1587;
+  a1587 = ((1587 :: I64) - x) % (10 :: I64);
+  I64 a1588;
+  a1588 = ((1588 :: I64) + x) % (10 :: I64);
+  I64 a1589;
+  a1589 = ((1589 :: I64) - x) % (10 :: I64);
+  I64 a1590;
+  a1590 = ((1590 :: I64) + x) % (10 :: I64);
+  I64 a1591;
+  a1591 = ((1591 :: I64) - x) % (10 :: I64);
+  I64 a1592;
+  a1592 = ((1592 :: I64) + x) % (10 :: I64);
+  I64 a1593;
+  a1593 = ((1593 :: I64) - x) % (10 :: I64);
+  I64 a1594;
+  a1594 = ((1594 :: I64) + x) % (10 :: I64);
+  I64 a1595;
+  a1595 = ((1595 :: I64) - x) % (10 :: I64);
+  I64 a1596;
+  a1596 = ((1596 :: I64) + x) % (10 :: I64);
+  I64 a1597;
+  a1597 = ((1597 :: I64) - x) % (10 :: I64);
+  I64 a1598;
+  a1598 = ((1598 :: I64) + x) % (10 :: I64);
+  I64 a1599;
+  a1599 = ((1599 :: I64) - x) % (10 :: I64);
+  I64 a1600;
+  a1600 = ((1600 :: I64) + x) % (10 :: I64);
+  I64 a1601;
+  a1601 = ((1601 :: I64) - x) % (10 :: I64);
+  I64 a1602;
+  a1602 = ((1602 :: I64) + x) % (10 :: I64);
+  I64 a1603;
+  a1603 = ((1603 :: I64) - x) % (10 :: I64);
+  I64 a1604;
+  a1604 = ((1604 :: I64) + x) % (10 :: I64);
+  I64 a1605;
+  a1605 = ((1605 :: I64) - x) % (10 :: I64);
+  I64 a1606;
+  a1606 = ((1606 :: I64) + x) % (10 :: I64);
+  I64 a1607;
+  a1607 = ((1607 :: I64) - x) % (10 :: I64);
+  I64 a1608;
+  a1608 = ((1608 :: I64) + x) % (10 :: I64);
+  I64 a1609;
+  a1609 = ((1609 :: I64) - x) % (10 :: I64);
+  I64 a1610;
+  a1610 = ((1610 :: I64) + x) % (10 :: I64);
+  I64 a1611;
+  a1611 = ((1611 :: I64) - x) % (10 :: I64);
+  I64 a1612;
+  a1612 = ((1612 :: I64) + x) % (10 :: I64);
+  I64 a1613;
+  a1613 = ((1613 :: I64) - x) % (10 :: I64);
+  I64 a1614;
+  a1614 = ((1614 :: I64) + x) % (10 :: I64);
+  I64 a1615;
+  a1615 = ((1615 :: I64) - x) % (10 :: I64);
+  I64 a1616;
+  a1616 = ((1616 :: I64) + x) % (10 :: I64);
+  I64 a1617;
+  a1617 = ((1617 :: I64) - x) % (10 :: I64);
+  I64 a1618;
+  a1618 = ((1618 :: I64) + x) % (10 :: I64);
+  I64 a1619;
+  a1619 = ((1619 :: I64) - x) % (10 :: I64);
+  I64 a1620;
+  a1620 = ((1620 :: I64) + x) % (10 :: I64);
+  I64 a1621;
+  a1621 = ((1621 :: I64) - x) % (10 :: I64);
+  I64 a1622;
+  a1622 = ((1622 :: I64) + x) % (10 :: I64);
+  I64 a1623;
+  a1623 = ((1623 :: I64) - x) % (10 :: I64);
+  I64 a1624;
+  a1624 = ((1624 :: I64) + x) % (10 :: I64);
+  I64 a1625;
+  a1625 = ((1625 :: I64) - x) % (10 :: I64);
+  I64 a1626;
+  a1626 = ((1626 :: I64) + x) % (10 :: I64);
+  I64 a1627;
+  a1627 = ((1627 :: I64) - x) % (10 :: I64);
+  I64 a1628;
+  a1628 = ((1628 :: I64) + x) % (10 :: I64);
+  I64 a1629;
+  a1629 = ((1629 :: I64) - x) % (10 :: I64);
+  I64 a1630;
+  a1630 = ((1630 :: I64) + x) % (10 :: I64);
+  I64 a1631;
+  a1631 = ((1631 :: I64) - x) % (10 :: I64);
+  I64 a1632;
+  a1632 = ((1632 :: I64) + x) % (10 :: I64);
+  I64 a1633;
+  a1633 = ((1633 :: I64) - x) % (10 :: I64);
+  I64 a1634;
+  a1634 = ((1634 :: I64) + x) % (10 :: I64);
+  I64 a1635;
+  a1635 = ((1635 :: I64) - x) % (10 :: I64);
+  I64 a1636;
+  a1636 = ((1636 :: I64) + x) % (10 :: I64);
+  I64 a1637;
+  a1637 = ((1637 :: I64) - x) % (10 :: I64);
+  I64 a1638;
+  a1638 = ((1638 :: I64) + x) % (10 :: I64);
+  I64 a1639;
+  a1639 = ((1639 :: I64) - x) % (10 :: I64);
+  I64 a1640;
+  a1640 = ((1640 :: I64) + x) % (10 :: I64);
+  I64 a1641;
+  a1641 = ((1641 :: I64) - x) % (10 :: I64);
+  I64 a1642;
+  a1642 = ((1642 :: I64) + x) % (10 :: I64);
+  I64 a1643;
+  a1643 = ((1643 :: I64) - x) % (10 :: I64);
+  I64 a1644;
+  a1644 = ((1644 :: I64) + x) % (10 :: I64);
+  I64 a1645;
+  a1645 = ((1645 :: I64) - x) % (10 :: I64);
+  I64 a1646;
+  a1646 = ((1646 :: I64) + x) % (10 :: I64);
+  I64 a1647;
+  a1647 = ((1647 :: I64) - x) % (10 :: I64);
+  I64 a1648;
+  a1648 = ((1648 :: I64) + x) % (10 :: I64);
+  I64 a1649;
+  a1649 = ((1649 :: I64) - x) % (10 :: I64);
+  I64 a1650;
+  a1650 = ((1650 :: I64) + x) % (10 :: I64);
+  I64 a1651;
+  a1651 = ((1651 :: I64) - x) % (10 :: I64);
+  I64 a1652;
+  a1652 = ((1652 :: I64) + x) % (10 :: I64);
+  I64 a1653;
+  a1653 = ((1653 :: I64) - x) % (10 :: I64);
+  I64 a1654;
+  a1654 = ((1654 :: I64) + x) % (10 :: I64);
+  I64 a1655;
+  a1655 = ((1655 :: I64) - x) % (10 :: I64);
+  I64 a1656;
+  a1656 = ((1656 :: I64) + x) % (10 :: I64);
+  I64 a1657;
+  a1657 = ((1657 :: I64) - x) % (10 :: I64);
+  I64 a1658;
+  a1658 = ((1658 :: I64) + x) % (10 :: I64);
+  I64 a1659;
+  a1659 = ((1659 :: I64) - x) % (10 :: I64);
+  I64 a1660;
+  a1660 = ((1660 :: I64) + x) % (10 :: I64);
+  I64 a1661;
+  a1661 = ((1661 :: I64) - x) % (10 :: I64);
+  I64 a1662;
+  a1662 = ((1662 :: I64) + x) % (10 :: I64);
+  I64 a1663;
+  a1663 = ((1663 :: I64) - x) % (10 :: I64);
+  I64 a1664;
+  a1664 = ((1664 :: I64) + x) % (10 :: I64);
+  I64 a1665;
+  a1665 = ((1665 :: I64) - x) % (10 :: I64);
+  I64 a1666;
+  a1666 = ((1666 :: I64) + x) % (10 :: I64);
+  I64 a1667;
+  a1667 = ((1667 :: I64) - x) % (10 :: I64);
+  I64 a1668;
+  a1668 = ((1668 :: I64) + x) % (10 :: I64);
+  I64 a1669;
+  a1669 = ((1669 :: I64) - x) % (10 :: I64);
+  I64 a1670;
+  a1670 = ((1670 :: I64) + x) % (10 :: I64);
+  I64 a1671;
+  a1671 = ((1671 :: I64) - x) % (10 :: I64);
+  I64 a1672;
+  a1672 = ((1672 :: I64) + x) % (10 :: I64);
+  I64 a1673;
+  a1673 = ((1673 :: I64) - x) % (10 :: I64);
+  I64 a1674;
+  a1674 = ((1674 :: I64) + x) % (10 :: I64);
+  I64 a1675;
+  a1675 = ((1675 :: I64) - x) % (10 :: I64);
+  I64 a1676;
+  a1676 = ((1676 :: I64) + x) % (10 :: I64);
+  I64 a1677;
+  a1677 = ((1677 :: I64) - x) % (10 :: I64);
+  I64 a1678;
+  a1678 = ((1678 :: I64) + x) % (10 :: I64);
+  I64 a1679;
+  a1679 = ((1679 :: I64) - x) % (10 :: I64);
+  I64 a1680;
+  a1680 = ((1680 :: I64) + x) % (10 :: I64);
+  I64 a1681;
+  a1681 = ((1681 :: I64) - x) % (10 :: I64);
+  I64 a1682;
+  a1682 = ((1682 :: I64) + x) % (10 :: I64);
+  I64 a1683;
+  a1683 = ((1683 :: I64) - x) % (10 :: I64);
+  I64 a1684;
+  a1684 = ((1684 :: I64) + x) % (10 :: I64);
+  I64 a1685;
+  a1685 = ((1685 :: I64) - x) % (10 :: I64);
+  I64 a1686;
+  a1686 = ((1686 :: I64) + x) % (10 :: I64);
+  I64 a1687;
+  a1687 = ((1687 :: I64) - x) % (10 :: I64);
+  I64 a1688;
+  a1688 = ((1688 :: I64) + x) % (10 :: I64);
+  I64 a1689;
+  a1689 = ((1689 :: I64) - x) % (10 :: I64);
+  I64 a1690;
+  a1690 = ((1690 :: I64) + x) % (10 :: I64);
+  I64 a1691;
+  a1691 = ((1691 :: I64) - x) % (10 :: I64);
+  I64 a1692;
+  a1692 = ((1692 :: I64) + x) % (10 :: I64);
+  I64 a1693;
+  a1693 = ((1693 :: I64) - x) % (10 :: I64);
+  I64 a1694;
+  a1694 = ((1694 :: I64) + x) % (10 :: I64);
+  I64 a1695;
+  a1695 = ((1695 :: I64) - x) % (10 :: I64);
+  I64 a1696;
+  a1696 = ((1696 :: I64) + x) % (10 :: I64);
+  I64 a1697;
+  a1697 = ((1697 :: I64) - x) % (10 :: I64);
+  I64 a1698;
+  a1698 = ((1698 :: I64) + x) % (10 :: I64);
+  I64 a1699;
+  a1699 = ((1699 :: I64) - x) % (10 :: I64);
+  I64 a1700;
+  a1700 = ((1700 :: I64) + x) % (10 :: I64);
+  I64 a1701;
+  a1701 = ((1701 :: I64) - x) % (10 :: I64);
+  I64 a1702;
+  a1702 = ((1702 :: I64) + x) % (10 :: I64);
+  I64 a1703;
+  a1703 = ((1703 :: I64) - x) % (10 :: I64);
+  I64 a1704;
+  a1704 = ((1704 :: I64) + x) % (10 :: I64);
+  I64 a1705;
+  a1705 = ((1705 :: I64) - x) % (10 :: I64);
+  I64 a1706;
+  a1706 = ((1706 :: I64) + x) % (10 :: I64);
+  I64 a1707;
+  a1707 = ((1707 :: I64) - x) % (10 :: I64);
+  I64 a1708;
+  a1708 = ((1708 :: I64) + x) % (10 :: I64);
+  I64 a1709;
+  a1709 = ((1709 :: I64) - x) % (10 :: I64);
+  I64 a1710;
+  a1710 = ((1710 :: I64) + x) % (10 :: I64);
+  I64 a1711;
+  a1711 = ((1711 :: I64) - x) % (10 :: I64);
+  I64 a1712;
+  a1712 = ((1712 :: I64) + x) % (10 :: I64);
+  I64 a1713;
+  a1713 = ((1713 :: I64) - x) % (10 :: I64);
+  I64 a1714;
+  a1714 = ((1714 :: I64) + x) % (10 :: I64);
+  I64 a1715;
+  a1715 = ((1715 :: I64) - x) % (10 :: I64);
+  I64 a1716;
+  a1716 = ((1716 :: I64) + x) % (10 :: I64);
+  I64 a1717;
+  a1717 = ((1717 :: I64) - x) % (10 :: I64);
+  I64 a1718;
+  a1718 = ((1718 :: I64) + x) % (10 :: I64);
+  I64 a1719;
+  a1719 = ((1719 :: I64) - x) % (10 :: I64);
+  I64 a1720;
+  a1720 = ((1720 :: I64) + x) % (10 :: I64);
+  I64 a1721;
+  a1721 = ((1721 :: I64) - x) % (10 :: I64);
+  I64 a1722;
+  a1722 = ((1722 :: I64) + x) % (10 :: I64);
+  I64 a1723;
+  a1723 = ((1723 :: I64) - x) % (10 :: I64);
+  I64 a1724;
+  a1724 = ((1724 :: I64) + x) % (10 :: I64);
+  I64 a1725;
+  a1725 = ((1725 :: I64) - x) % (10 :: I64);
+  I64 a1726;
+  a1726 = ((1726 :: I64) + x) % (10 :: I64);
+  I64 a1727;
+  a1727 = ((1727 :: I64) - x) % (10 :: I64);
+  I64 a1728;
+  a1728 = ((1728 :: I64) + x) % (10 :: I64);
+  I64 a1729;
+  a1729 = ((1729 :: I64) - x) % (10 :: I64);
+  I64 a1730;
+  a1730 = ((1730 :: I64) + x) % (10 :: I64);
+  I64 a1731;
+  a1731 = ((1731 :: I64) - x) % (10 :: I64);
+  I64 a1732;
+  a1732 = ((1732 :: I64) + x) % (10 :: I64);
+  I64 a1733;
+  a1733 = ((1733 :: I64) - x) % (10 :: I64);
+  I64 a1734;
+  a1734 = ((1734 :: I64) + x) % (10 :: I64);
+  I64 a1735;
+  a1735 = ((1735 :: I64) - x) % (10 :: I64);
+  I64 a1736;
+  a1736 = ((1736 :: I64) + x) % (10 :: I64);
+  I64 a1737;
+  a1737 = ((1737 :: I64) - x) % (10 :: I64);
+  I64 a1738;
+  a1738 = ((1738 :: I64) + x) % (10 :: I64);
+  I64 a1739;
+  a1739 = ((1739 :: I64) - x) % (10 :: I64);
+  I64 a1740;
+  a1740 = ((1740 :: I64) + x) % (10 :: I64);
+  I64 a1741;
+  a1741 = ((1741 :: I64) - x) % (10 :: I64);
+  I64 a1742;
+  a1742 = ((1742 :: I64) + x) % (10 :: I64);
+  I64 a1743;
+  a1743 = ((1743 :: I64) - x) % (10 :: I64);
+  I64 a1744;
+  a1744 = ((1744 :: I64) + x) % (10 :: I64);
+  I64 a1745;
+  a1745 = ((1745 :: I64) - x) % (10 :: I64);
+  I64 a1746;
+  a1746 = ((1746 :: I64) + x) % (10 :: I64);
+  I64 a1747;
+  a1747 = ((1747 :: I64) - x) % (10 :: I64);
+  I64 a1748;
+  a1748 = ((1748 :: I64) + x) % (10 :: I64);
+  I64 a1749;
+  a1749 = ((1749 :: I64) - x) % (10 :: I64);
+  I64 a1750;
+  a1750 = ((1750 :: I64) + x) % (10 :: I64);
+  I64 a1751;
+  a1751 = ((1751 :: I64) - x) % (10 :: I64);
+  I64 a1752;
+  a1752 = ((1752 :: I64) + x) % (10 :: I64);
+  I64 a1753;
+  a1753 = ((1753 :: I64) - x) % (10 :: I64);
+  I64 a1754;
+  a1754 = ((1754 :: I64) + x) % (10 :: I64);
+  I64 a1755;
+  a1755 = ((1755 :: I64) - x) % (10 :: I64);
+  I64 a1756;
+  a1756 = ((1756 :: I64) + x) % (10 :: I64);
+  I64 a1757;
+  a1757 = ((1757 :: I64) - x) % (10 :: I64);
+  I64 a1758;
+  a1758 = ((1758 :: I64) + x) % (10 :: I64);
+  I64 a1759;
+  a1759 = ((1759 :: I64) - x) % (10 :: I64);
+  I64 a1760;
+  a1760 = ((1760 :: I64) + x) % (10 :: I64);
+  I64 a1761;
+  a1761 = ((1761 :: I64) - x) % (10 :: I64);
+  I64 a1762;
+  a1762 = ((1762 :: I64) + x) % (10 :: I64);
+  I64 a1763;
+  a1763 = ((1763 :: I64) - x) % (10 :: I64);
+  I64 a1764;
+  a1764 = ((1764 :: I64) + x) % (10 :: I64);
+  I64 a1765;
+  a1765 = ((1765 :: I64) - x) % (10 :: I64);
+  I64 a1766;
+  a1766 = ((1766 :: I64) + x) % (10 :: I64);
+  I64 a1767;
+  a1767 = ((1767 :: I64) - x) % (10 :: I64);
+  I64 a1768;
+  a1768 = ((1768 :: I64) + x) % (10 :: I64);
+  I64 a1769;
+  a1769 = ((1769 :: I64) - x) % (10 :: I64);
+  I64 a1770;
+  a1770 = ((1770 :: I64) + x) % (10 :: I64);
+  I64 a1771;
+  a1771 = ((1771 :: I64) - x) % (10 :: I64);
+  I64 a1772;
+  a1772 = ((1772 :: I64) + x) % (10 :: I64);
+  I64 a1773;
+  a1773 = ((1773 :: I64) - x) % (10 :: I64);
+  I64 a1774;
+  a1774 = ((1774 :: I64) + x) % (10 :: I64);
+  I64 a1775;
+  a1775 = ((1775 :: I64) - x) % (10 :: I64);
+  I64 a1776;
+  a1776 = ((1776 :: I64) + x) % (10 :: I64);
+  I64 a1777;
+  a1777 = ((1777 :: I64) - x) % (10 :: I64);
+  I64 a1778;
+  a1778 = ((1778 :: I64) + x) % (10 :: I64);
+  I64 a1779;
+  a1779 = ((1779 :: I64) - x) % (10 :: I64);
+  I64 a1780;
+  a1780 = ((1780 :: I64) + x) % (10 :: I64);
+  I64 a1781;
+  a1781 = ((1781 :: I64) - x) % (10 :: I64);
+  I64 a1782;
+  a1782 = ((1782 :: I64) + x) % (10 :: I64);
+  I64 a1783;
+  a1783 = ((1783 :: I64) - x) % (10 :: I64);
+  I64 a1784;
+  a1784 = ((1784 :: I64) + x) % (10 :: I64);
+  I64 a1785;
+  a1785 = ((1785 :: I64) - x) % (10 :: I64);
+  I64 a1786;
+  a1786 = ((1786 :: I64) + x) % (10 :: I64);
+  I64 a1787;
+  a1787 = ((1787 :: I64) - x) % (10 :: I64);
+  I64 a1788;
+  a1788 = ((1788 :: I64) + x) % (10 :: I64);
+  I64 a1789;
+  a1789 = ((1789 :: I64) - x) % (10 :: I64);
+  I64 a1790;
+  a1790 = ((1790 :: I64) + x) % (10 :: I64);
+  I64 a1791;
+  a1791 = ((1791 :: I64) - x) % (10 :: I64);
+  I64 a1792;
+  a1792 = ((1792 :: I64) + x) % (10 :: I64);
+  I64 a1793;
+  a1793 = ((1793 :: I64) - x) % (10 :: I64);
+  I64 a1794;
+  a1794 = ((1794 :: I64) + x) % (10 :: I64);
+  I64 a1795;
+  a1795 = ((1795 :: I64) - x) % (10 :: I64);
+  I64 a1796;
+  a1796 = ((1796 :: I64) + x) % (10 :: I64);
+  I64 a1797;
+  a1797 = ((1797 :: I64) - x) % (10 :: I64);
+  I64 a1798;
+  a1798 = ((1798 :: I64) + x) % (10 :: I64);
+  I64 a1799;
+  a1799 = ((1799 :: I64) - x) % (10 :: I64);
+  I64 a1800;
+  a1800 = ((1800 :: I64) + x) % (10 :: I64);
+  I64 a1801;
+  a1801 = ((1801 :: I64) - x) % (10 :: I64);
+  I64 a1802;
+  a1802 = ((1802 :: I64) + x) % (10 :: I64);
+  I64 a1803;
+  a1803 = ((1803 :: I64) - x) % (10 :: I64);
+  I64 a1804;
+  a1804 = ((1804 :: I64) + x) % (10 :: I64);
+  I64 a1805;
+  a1805 = ((1805 :: I64) - x) % (10 :: I64);
+  I64 a1806;
+  a1806 = ((1806 :: I64) + x) % (10 :: I64);
+  I64 a1807;
+  a1807 = ((1807 :: I64) - x) % (10 :: I64);
+  I64 a1808;
+  a1808 = ((1808 :: I64) + x) % (10 :: I64);
+  I64 a1809;
+  a1809 = ((1809 :: I64) - x) % (10 :: I64);
+  I64 a1810;
+  a1810 = ((1810 :: I64) + x) % (10 :: I64);
+  I64 a1811;
+  a1811 = ((1811 :: I64) - x) % (10 :: I64);
+  I64 a1812;
+  a1812 = ((1812 :: I64) + x) % (10 :: I64);
+  I64 a1813;
+  a1813 = ((1813 :: I64) - x) % (10 :: I64);
+  I64 a1814;
+  a1814 = ((1814 :: I64) + x) % (10 :: I64);
+  I64 a1815;
+  a1815 = ((1815 :: I64) - x) % (10 :: I64);
+  I64 a1816;
+  a1816 = ((1816 :: I64) + x) % (10 :: I64);
+  I64 a1817;
+  a1817 = ((1817 :: I64) - x) % (10 :: I64);
+  I64 a1818;
+  a1818 = ((1818 :: I64) + x) % (10 :: I64);
+  I64 a1819;
+  a1819 = ((1819 :: I64) - x) % (10 :: I64);
+  I64 a1820;
+  a1820 = ((1820 :: I64) + x) % (10 :: I64);
+  I64 a1821;
+  a1821 = ((1821 :: I64) - x) % (10 :: I64);
+  I64 a1822;
+  a1822 = ((1822 :: I64) + x) % (10 :: I64);
+  I64 a1823;
+  a1823 = ((1823 :: I64) - x) % (10 :: I64);
+  I64 a1824;
+  a1824 = ((1824 :: I64) + x) % (10 :: I64);
+  I64 a1825;
+  a1825 = ((1825 :: I64) - x) % (10 :: I64);
+  I64 a1826;
+  a1826 = ((1826 :: I64) + x) % (10 :: I64);
+  I64 a1827;
+  a1827 = ((1827 :: I64) - x) % (10 :: I64);
+  I64 a1828;
+  a1828 = ((1828 :: I64) + x) % (10 :: I64);
+  I64 a1829;
+  a1829 = ((1829 :: I64) - x) % (10 :: I64);
+  I64 a1830;
+  a1830 = ((1830 :: I64) + x) % (10 :: I64);
+  I64 a1831;
+  a1831 = ((1831 :: I64) - x) % (10 :: I64);
+  I64 a1832;
+  a1832 = ((1832 :: I64) + x) % (10 :: I64);
+  I64 a1833;
+  a1833 = ((1833 :: I64) - x) % (10 :: I64);
+  I64 a1834;
+  a1834 = ((1834 :: I64) + x) % (10 :: I64);
+  I64 a1835;
+  a1835 = ((1835 :: I64) - x) % (10 :: I64);
+  I64 a1836;
+  a1836 = ((1836 :: I64) + x) % (10 :: I64);
+  I64 a1837;
+  a1837 = ((1837 :: I64) - x) % (10 :: I64);
+  I64 a1838;
+  a1838 = ((1838 :: I64) + x) % (10 :: I64);
+  I64 a1839;
+  a1839 = ((1839 :: I64) - x) % (10 :: I64);
+  I64 a1840;
+  a1840 = ((1840 :: I64) + x) % (10 :: I64);
+  I64 a1841;
+  a1841 = ((1841 :: I64) - x) % (10 :: I64);
+  I64 a1842;
+  a1842 = ((1842 :: I64) + x) % (10 :: I64);
+  I64 a1843;
+  a1843 = ((1843 :: I64) - x) % (10 :: I64);
+  I64 a1844;
+  a1844 = ((1844 :: I64) + x) % (10 :: I64);
+  I64 a1845;
+  a1845 = ((1845 :: I64) - x) % (10 :: I64);
+  I64 a1846;
+  a1846 = ((1846 :: I64) + x) % (10 :: I64);
+  I64 a1847;
+  a1847 = ((1847 :: I64) - x) % (10 :: I64);
+  I64 a1848;
+  a1848 = ((1848 :: I64) + x) % (10 :: I64);
+  I64 a1849;
+  a1849 = ((1849 :: I64) - x) % (10 :: I64);
+  I64 a1850;
+  a1850 = ((1850 :: I64) + x) % (10 :: I64);
+  I64 a1851;
+  a1851 = ((1851 :: I64) - x) % (10 :: I64);
+  I64 a1852;
+  a1852 = ((1852 :: I64) + x) % (10 :: I64);
+  I64 a1853;
+  a1853 = ((1853 :: I64) - x) % (10 :: I64);
+  I64 a1854;
+  a1854 = ((1854 :: I64) + x) % (10 :: I64);
+  I64 a1855;
+  a1855 = ((1855 :: I64) - x) % (10 :: I64);
+  I64 a1856;
+  a1856 = ((1856 :: I64) + x) % (10 :: I64);
+  I64 a1857;
+  a1857 = ((1857 :: I64) - x) % (10 :: I64);
+  I64 a1858;
+  a1858 = ((1858 :: I64) + x) % (10 :: I64);
+  I64 a1859;
+  a1859 = ((1859 :: I64) - x) % (10 :: I64);
+  I64 a1860;
+  a1860 = ((1860 :: I64) + x) % (10 :: I64);
+  I64 a1861;
+  a1861 = ((1861 :: I64) - x) % (10 :: I64);
+  I64 a1862;
+  a1862 = ((1862 :: I64) + x) % (10 :: I64);
+  I64 a1863;
+  a1863 = ((1863 :: I64) - x) % (10 :: I64);
+  I64 a1864;
+  a1864 = ((1864 :: I64) + x) % (10 :: I64);
+  I64 a1865;
+  a1865 = ((1865 :: I64) - x) % (10 :: I64);
+  I64 a1866;
+  a1866 = ((1866 :: I64) + x) % (10 :: I64);
+  I64 a1867;
+  a1867 = ((1867 :: I64) - x) % (10 :: I64);
+  I64 a1868;
+  a1868 = ((1868 :: I64) + x) % (10 :: I64);
+  I64 a1869;
+  a1869 = ((1869 :: I64) - x) % (10 :: I64);
+  I64 a1870;
+  a1870 = ((1870 :: I64) + x) % (10 :: I64);
+  I64 a1871;
+  a1871 = ((1871 :: I64) - x) % (10 :: I64);
+  I64 a1872;
+  a1872 = ((1872 :: I64) + x) % (10 :: I64);
+  I64 a1873;
+  a1873 = ((1873 :: I64) - x) % (10 :: I64);
+  I64 a1874;
+  a1874 = ((1874 :: I64) + x) % (10 :: I64);
+  I64 a1875;
+  a1875 = ((1875 :: I64) - x) % (10 :: I64);
+  I64 a1876;
+  a1876 = ((1876 :: I64) + x) % (10 :: I64);
+  I64 a1877;
+  a1877 = ((1877 :: I64) - x) % (10 :: I64);
+  I64 a1878;
+  a1878 = ((1878 :: I64) + x) % (10 :: I64);
+  I64 a1879;
+  a1879 = ((1879 :: I64) - x) % (10 :: I64);
+  I64 a1880;
+  a1880 = ((1880 :: I64) + x) % (10 :: I64);
+  I64 a1881;
+  a1881 = ((1881 :: I64) - x) % (10 :: I64);
+  I64 a1882;
+  a1882 = ((1882 :: I64) + x) % (10 :: I64);
+  I64 a1883;
+  a1883 = ((1883 :: I64) - x) % (10 :: I64);
+  I64 a1884;
+  a1884 = ((1884 :: I64) + x) % (10 :: I64);
+  I64 a1885;
+  a1885 = ((1885 :: I64) - x) % (10 :: I64);
+  I64 a1886;
+  a1886 = ((1886 :: I64) + x) % (10 :: I64);
+  I64 a1887;
+  a1887 = ((1887 :: I64) - x) % (10 :: I64);
+  I64 a1888;
+  a1888 = ((1888 :: I64) + x) % (10 :: I64);
+  I64 a1889;
+  a1889 = ((1889 :: I64) - x) % (10 :: I64);
+  I64 a1890;
+  a1890 = ((1890 :: I64) + x) % (10 :: I64);
+  I64 a1891;
+  a1891 = ((1891 :: I64) - x) % (10 :: I64);
+  I64 a1892;
+  a1892 = ((1892 :: I64) + x) % (10 :: I64);
+  I64 a1893;
+  a1893 = ((1893 :: I64) - x) % (10 :: I64);
+  I64 a1894;
+  a1894 = ((1894 :: I64) + x) % (10 :: I64);
+  I64 a1895;
+  a1895 = ((1895 :: I64) - x) % (10 :: I64);
+  I64 a1896;
+  a1896 = ((1896 :: I64) + x) % (10 :: I64);
+  I64 a1897;
+  a1897 = ((1897 :: I64) - x) % (10 :: I64);
+  I64 a1898;
+  a1898 = ((1898 :: I64) + x) % (10 :: I64);
+  I64 a1899;
+  a1899 = ((1899 :: I64) - x) % (10 :: I64);
+  I64 a1900;
+  a1900 = ((1900 :: I64) + x) % (10 :: I64);
+  I64 a1901;
+  a1901 = ((1901 :: I64) - x) % (10 :: I64);
+  I64 a1902;
+  a1902 = ((1902 :: I64) + x) % (10 :: I64);
+  I64 a1903;
+  a1903 = ((1903 :: I64) - x) % (10 :: I64);
+  I64 a1904;
+  a1904 = ((1904 :: I64) + x) % (10 :: I64);
+  I64 a1905;
+  a1905 = ((1905 :: I64) - x) % (10 :: I64);
+  I64 a1906;
+  a1906 = ((1906 :: I64) + x) % (10 :: I64);
+  I64 a1907;
+  a1907 = ((1907 :: I64) - x) % (10 :: I64);
+  I64 a1908;
+  a1908 = ((1908 :: I64) + x) % (10 :: I64);
+  I64 a1909;
+  a1909 = ((1909 :: I64) - x) % (10 :: I64);
+  I64 a1910;
+  a1910 = ((1910 :: I64) + x) % (10 :: I64);
+  I64 a1911;
+  a1911 = ((1911 :: I64) - x) % (10 :: I64);
+  I64 a1912;
+  a1912 = ((1912 :: I64) + x) % (10 :: I64);
+  I64 a1913;
+  a1913 = ((1913 :: I64) - x) % (10 :: I64);
+  I64 a1914;
+  a1914 = ((1914 :: I64) + x) % (10 :: I64);
+  I64 a1915;
+  a1915 = ((1915 :: I64) - x) % (10 :: I64);
+  I64 a1916;
+  a1916 = ((1916 :: I64) + x) % (10 :: I64);
+  I64 a1917;
+  a1917 = ((1917 :: I64) - x) % (10 :: I64);
+  I64 a1918;
+  a1918 = ((1918 :: I64) + x) % (10 :: I64);
+  I64 a1919;
+  a1919 = ((1919 :: I64) - x) % (10 :: I64);
+  I64 a1920;
+  a1920 = ((1920 :: I64) + x) % (10 :: I64);
+  I64 a1921;
+  a1921 = ((1921 :: I64) - x) % (10 :: I64);
+  I64 a1922;
+  a1922 = ((1922 :: I64) + x) % (10 :: I64);
+  I64 a1923;
+  a1923 = ((1923 :: I64) - x) % (10 :: I64);
+  I64 a1924;
+  a1924 = ((1924 :: I64) + x) % (10 :: I64);
+  I64 a1925;
+  a1925 = ((1925 :: I64) - x) % (10 :: I64);
+  I64 a1926;
+  a1926 = ((1926 :: I64) + x) % (10 :: I64);
+  I64 a1927;
+  a1927 = ((1927 :: I64) - x) % (10 :: I64);
+  I64 a1928;
+  a1928 = ((1928 :: I64) + x) % (10 :: I64);
+  I64 a1929;
+  a1929 = ((1929 :: I64) - x) % (10 :: I64);
+  I64 a1930;
+  a1930 = ((1930 :: I64) + x) % (10 :: I64);
+  I64 a1931;
+  a1931 = ((1931 :: I64) - x) % (10 :: I64);
+  I64 a1932;
+  a1932 = ((1932 :: I64) + x) % (10 :: I64);
+  I64 a1933;
+  a1933 = ((1933 :: I64) - x) % (10 :: I64);
+  I64 a1934;
+  a1934 = ((1934 :: I64) + x) % (10 :: I64);
+  I64 a1935;
+  a1935 = ((1935 :: I64) - x) % (10 :: I64);
+  I64 a1936;
+  a1936 = ((1936 :: I64) + x) % (10 :: I64);
+  I64 a1937;
+  a1937 = ((1937 :: I64) - x) % (10 :: I64);
+  I64 a1938;
+  a1938 = ((1938 :: I64) + x) % (10 :: I64);
+  I64 a1939;
+  a1939 = ((1939 :: I64) - x) % (10 :: I64);
+  I64 a1940;
+  a1940 = ((1940 :: I64) + x) % (10 :: I64);
+  I64 a1941;
+  a1941 = ((1941 :: I64) - x) % (10 :: I64);
+  I64 a1942;
+  a1942 = ((1942 :: I64) + x) % (10 :: I64);
+  I64 a1943;
+  a1943 = ((1943 :: I64) - x) % (10 :: I64);
+  I64 a1944;
+  a1944 = ((1944 :: I64) + x) % (10 :: I64);
+  I64 a1945;
+  a1945 = ((1945 :: I64) - x) % (10 :: I64);
+  I64 a1946;
+  a1946 = ((1946 :: I64) + x) % (10 :: I64);
+  I64 a1947;
+  a1947 = ((1947 :: I64) - x) % (10 :: I64);
+  I64 a1948;
+  a1948 = ((1948 :: I64) + x) % (10 :: I64);
+  I64 a1949;
+  a1949 = ((1949 :: I64) - x) % (10 :: I64);
+  I64 a1950;
+  a1950 = ((1950 :: I64) + x) % (10 :: I64);
+  I64 a1951;
+  a1951 = ((1951 :: I64) - x) % (10 :: I64);
+  I64 a1952;
+  a1952 = ((1952 :: I64) + x) % (10 :: I64);
+  I64 a1953;
+  a1953 = ((1953 :: I64) - x) % (10 :: I64);
+  I64 a1954;
+  a1954 = ((1954 :: I64) + x) % (10 :: I64);
+  I64 a1955;
+  a1955 = ((1955 :: I64) - x) % (10 :: I64);
+  I64 a1956;
+  a1956 = ((1956 :: I64) + x) % (10 :: I64);
+  I64 a1957;
+  a1957 = ((1957 :: I64) - x) % (10 :: I64);
+  I64 a1958;
+  a1958 = ((1958 :: I64) + x) % (10 :: I64);
+  I64 a1959;
+  a1959 = ((1959 :: I64) - x) % (10 :: I64);
+  I64 a1960;
+  a1960 = ((1960 :: I64) + x) % (10 :: I64);
+  I64 a1961;
+  a1961 = ((1961 :: I64) - x) % (10 :: I64);
+  I64 a1962;
+  a1962 = ((1962 :: I64) + x) % (10 :: I64);
+  I64 a1963;
+  a1963 = ((1963 :: I64) - x) % (10 :: I64);
+  I64 a1964;
+  a1964 = ((1964 :: I64) + x) % (10 :: I64);
+  I64 a1965;
+  a1965 = ((1965 :: I64) - x) % (10 :: I64);
+  I64 a1966;
+  a1966 = ((1966 :: I64) + x) % (10 :: I64);
+  I64 a1967;
+  a1967 = ((1967 :: I64) - x) % (10 :: I64);
+  I64 a1968;
+  a1968 = ((1968 :: I64) + x) % (10 :: I64);
+  I64 a1969;
+  a1969 = ((1969 :: I64) - x) % (10 :: I64);
+  I64 a1970;
+  a1970 = ((1970 :: I64) + x) % (10 :: I64);
+  I64 a1971;
+  a1971 = ((1971 :: I64) - x) % (10 :: I64);
+  I64 a1972;
+  a1972 = ((1972 :: I64) + x) % (10 :: I64);
+  I64 a1973;
+  a1973 = ((1973 :: I64) - x) % (10 :: I64);
+  I64 a1974;
+  a1974 = ((1974 :: I64) + x) % (10 :: I64);
+  I64 a1975;
+  a1975 = ((1975 :: I64) - x) % (10 :: I64);
+  I64 a1976;
+  a1976 = ((1976 :: I64) + x) % (10 :: I64);
+  I64 a1977;
+  a1977 = ((1977 :: I64) - x) % (10 :: I64);
+  I64 a1978;
+  a1978 = ((1978 :: I64) + x) % (10 :: I64);
+  I64 a1979;
+  a1979 = ((1979 :: I64) - x) % (10 :: I64);
+  I64 a1980;
+  a1980 = ((1980 :: I64) + x) % (10 :: I64);
+  I64 a1981;
+  a1981 = ((1981 :: I64) - x) % (10 :: I64);
+  I64 a1982;
+  a1982 = ((1982 :: I64) + x) % (10 :: I64);
+  I64 a1983;
+  a1983 = ((1983 :: I64) - x) % (10 :: I64);
+  I64 a1984;
+  a1984 = ((1984 :: I64) + x) % (10 :: I64);
+  I64 a1985;
+  a1985 = ((1985 :: I64) - x) % (10 :: I64);
+  I64 a1986;
+  a1986 = ((1986 :: I64) + x) % (10 :: I64);
+  I64 a1987;
+  a1987 = ((1987 :: I64) - x) % (10 :: I64);
+  I64 a1988;
+  a1988 = ((1988 :: I64) + x) % (10 :: I64);
+  I64 a1989;
+  a1989 = ((1989 :: I64) - x) % (10 :: I64);
+  I64 a1990;
+  a1990 = ((1990 :: I64) + x) % (10 :: I64);
+  I64 a1991;
+  a1991 = ((1991 :: I64) - x) % (10 :: I64);
+  I64 a1992;
+  a1992 = ((1992 :: I64) + x) % (10 :: I64);
+  I64 a1993;
+  a1993 = ((1993 :: I64) - x) % (10 :: I64);
+  I64 a1994;
+  a1994 = ((1994 :: I64) + x) % (10 :: I64);
+  I64 a1995;
+  a1995 = ((1995 :: I64) - x) % (10 :: I64);
+  I64 a1996;
+  a1996 = ((1996 :: I64) + x) % (10 :: I64);
+  I64 a1997;
+  a1997 = ((1997 :: I64) - x) % (10 :: I64);
+  I64 a1998;
+  a1998 = ((1998 :: I64) + x) % (10 :: I64);
+  I64 a1999;
+  a1999 = ((1999 :: I64) - x) % (10 :: I64);
+  I64 a2000;
+  a2000 = ((2000 :: I64) + x) % (10 :: I64);
+  I64 a2001;
+  a2001 = ((2001 :: I64) - x) % (10 :: I64);
+  I64 a2002;
+  a2002 = ((2002 :: I64) + x) % (10 :: I64);
+  I64 a2003;
+  a2003 = ((2003 :: I64) - x) % (10 :: I64);
+  I64 a2004;
+  a2004 = ((2004 :: I64) + x) % (10 :: I64);
+  I64 a2005;
+  a2005 = ((2005 :: I64) - x) % (10 :: I64);
+  I64 a2006;
+  a2006 = ((2006 :: I64) + x) % (10 :: I64);
+  I64 a2007;
+  a2007 = ((2007 :: I64) - x) % (10 :: I64);
+  I64 a2008;
+  a2008 = ((2008 :: I64) + x) % (10 :: I64);
+  I64 a2009;
+  a2009 = ((2009 :: I64) - x) % (10 :: I64);
+  I64 a2010;
+  a2010 = ((2010 :: I64) + x) % (10 :: I64);
+  I64 a2011;
+  a2011 = ((2011 :: I64) - x) % (10 :: I64);
+  I64 a2012;
+  a2012 = ((2012 :: I64) + x) % (10 :: I64);
+  I64 a2013;
+  a2013 = ((2013 :: I64) - x) % (10 :: I64);
+  I64 a2014;
+  a2014 = ((2014 :: I64) + x) % (10 :: I64);
+  I64 a2015;
+  a2015 = ((2015 :: I64) - x) % (10 :: I64);
+  I64 a2016;
+  a2016 = ((2016 :: I64) + x) % (10 :: I64);
+  I64 a2017;
+  a2017 = ((2017 :: I64) - x) % (10 :: I64);
+  I64 a2018;
+  a2018 = ((2018 :: I64) + x) % (10 :: I64);
+  I64 a2019;
+  a2019 = ((2019 :: I64) - x) % (10 :: I64);
+  I64 a2020;
+  a2020 = ((2020 :: I64) + x) % (10 :: I64);
+  I64 a2021;
+  a2021 = ((2021 :: I64) - x) % (10 :: I64);
+  I64 a2022;
+  a2022 = ((2022 :: I64) + x) % (10 :: I64);
+  I64 a2023;
+  a2023 = ((2023 :: I64) - x) % (10 :: I64);
+  I64 a2024;
+  a2024 = ((2024 :: I64) + x) % (10 :: I64);
+  I64 a2025;
+  a2025 = ((2025 :: I64) - x) % (10 :: I64);
+  I64 a2026;
+  a2026 = ((2026 :: I64) + x) % (10 :: I64);
+  I64 a2027;
+  a2027 = ((2027 :: I64) - x) % (10 :: I64);
+  I64 a2028;
+  a2028 = ((2028 :: I64) + x) % (10 :: I64);
+  I64 a2029;
+  a2029 = ((2029 :: I64) - x) % (10 :: I64);
+  I64 a2030;
+  a2030 = ((2030 :: I64) + x) % (10 :: I64);
+  I64 a2031;
+  a2031 = ((2031 :: I64) - x) % (10 :: I64);
+  I64 a2032;
+  a2032 = ((2032 :: I64) + x) % (10 :: I64);
+  I64 a2033;
+  a2033 = ((2033 :: I64) - x) % (10 :: I64);
+  I64 a2034;
+  a2034 = ((2034 :: I64) + x) % (10 :: I64);
+  I64 a2035;
+  a2035 = ((2035 :: I64) - x) % (10 :: I64);
+  I64 a2036;
+  a2036 = ((2036 :: I64) + x) % (10 :: I64);
+  I64 a2037;
+  a2037 = ((2037 :: I64) - x) % (10 :: I64);
+  I64 a2038;
+  a2038 = ((2038 :: I64) + x) % (10 :: I64);
+  I64 a2039;
+  a2039 = ((2039 :: I64) - x) % (10 :: I64);
+  I64 a2040;
+  a2040 = ((2040 :: I64) + x) % (10 :: I64);
+  I64 a2041;
+  a2041 = ((2041 :: I64) - x) % (10 :: I64);
+  I64 a2042;
+  a2042 = ((2042 :: I64) + x) % (10 :: I64);
+  I64 a2043;
+  a2043 = ((2043 :: I64) - x) % (10 :: I64);
+  I64 a2044;
+  a2044 = ((2044 :: I64) + x) % (10 :: I64);
+  I64 a2045;
+  a2045 = ((2045 :: I64) - x) % (10 :: I64);
+  I64 a2046;
+  a2046 = ((2046 :: I64) + x) % (10 :: I64);
+  I64 a2047;
+  a2047 = ((2047 :: I64) - x) % (10 :: I64);
+  I64 a2048;
+  a2048 = ((2048 :: I64) + x) % (10 :: I64);
+  I64 a2049;
+  a2049 = ((2049 :: I64) - x) % (10 :: I64);
+  I64 a2050;
+  a2050 = ((2050 :: I64) + x) % (10 :: I64);
+  I64 a2051;
+  a2051 = ((2051 :: I64) - x) % (10 :: I64);
+  I64 a2052;
+  a2052 = ((2052 :: I64) + x) % (10 :: I64);
+  I64 a2053;
+  a2053 = ((2053 :: I64) - x) % (10 :: I64);
+  I64 a2054;
+  a2054 = ((2054 :: I64) + x) % (10 :: I64);
+  I64 a2055;
+  a2055 = ((2055 :: I64) - x) % (10 :: I64);
+  I64 a2056;
+  a2056 = ((2056 :: I64) + x) % (10 :: I64);
+  I64 a2057;
+  a2057 = ((2057 :: I64) - x) % (10 :: I64);
+  I64 a2058;
+  a2058 = ((2058 :: I64) + x) % (10 :: I64);
+  I64 a2059;
+  a2059 = ((2059 :: I64) - x) % (10 :: I64);
+  I64 a2060;
+  a2060 = ((2060 :: I64) + x) % (10 :: I64);
+
+  I64 res;
+  ccall printf("Before switch\n");
+  switch [0 .. 9] ((a0+a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15+a16+a17+a18+a19+a20+a21+a22+a23+a24+a25+a26+a27+a28+a29+a30+a31+a32+a33+a34+a35+a36+a37+a38+a39+a40+a41+a42+a43+a44+a45+a46+a47+a48+a49+a50+a51+a52+a53+a54+a55+a56+a57+a58+a59+a60+a61+a62+a63+a64+a65+a66+a67+a68+a69+a70+a71+a72+a73+a74+a75+a76+a77+a78+a79+a80+a81+a82+a83+a84+a85+a86+a87+a88+a89+a90+a91+a92+a93+a94+a95+a96+a97+a98+a99+a100+a101+a102+a103+a104+a105+a106+a107+a108+a109+a110+a111+a112+a113+a114+a115+a116+a117+a118+a119+a120+a121+a122+a123+a124+a125+a126+a127+a128+a129+a130+a131+a132+a133+a134+a135+a136+a137+a138+a139+a140+a141+a142+a143+a144+a145+a146+a147+a148+a149+a150+a151+a152+a153+a154+a155+a156+a157+a158+a159+a160+a161+a162+a163+a164+a165+a166+a167+a168+a169+a170+a171+a172+a173+a174+a175+a176+a177+a178+a179+a180+a181+a182+a183+a184+a185+a186+a187+a188+a189+a190+a191+a192+a193+a194+a195+a196+a197+a198+a199+a200+a201+a202+a203+a204+a205+a206+a207+a208+a209+a210+a211+a212+a213+a214+a215+a216+a217+a218+a219+a220+a221+a222+a223+a224+a225+a226+a227+a228+a229+a230+a231+a232+a233+a234+a235+a236+a237+a238+a239+a240+a241+a242+a243+a244+a245+a246+a247+a248+a249+a250+a251+a252+a253+a254+a255+a256+a257+a258+a259+a260+a261+a262+a263+a264+a265+a266+a267+a268+a269+a270+a271+a272+a273+a274+a275+a276+a277+a278+a279+a280+a281+a282+a283+a284+a285+a286+a287+a288+a289+a290+a291+a292+a293+a294+a295+a296+a297+a298+a299+a300+a301+a302+a303+a304+a305+a306+a307+a308+a309+a310+a311+a312+a313+a314+a315+a316+a317+a318+a319+a320+a321+a322+a323+a324+a325+a326+a327+a328+a329+a330+a331+a332+a333+a334+a335+a336+a337+a338+a339+a340+a341+a342+a343+a344+a345+a346+a347+a348+a349+a350+a351+a352+a353+a354+a355+a356+a357+a358+a359+a360+a361+a362+a363+a364+a365+a366+a367+a368+a369+a370+a371+a372+a373+a374+a375+a376+a377+a378+a379+a380+a381+a382+a383+a384+a385+a386+a387+a388+a389+a390+a391+a392+a393+a394+a395+a396+a397+a398+a399+a400+a401+a402+a403+a404+a405+a406+a407+a408+a409+a410+a411+a412+a413+a414+a415+a416+a417+a418+a419+a420+a421+a422+a423+a424+a425+a426+a427+a428+a429+a430+a431+a432+a433+a434+a435+a436+a437+a438+a439+a440+a441+a442+a443+a444+a445+a446+a447+a448+a449+a450+a451+a452+a453+a454+a455+a456+a457+a458+a459+a460+a461+a462+a463+a464+a465+a466+a467+a468+a469+a470+a471+a472+a473+a474+a475+a476+a477+a478+a479+a480+a481+a482+a483+a484+a485+a486+a487+a488+a489+a490+a491+a492+a493+a494+a495+a496+a497+a498+a499+a500+a501+a502+a503+a504+a505+a506+a507+a508+a509+a510+a511+a512+a513+a514+a515+a516+a517+a518+a519+a520+a521+a522+a523+a524+a525+a526+a527+a528+a529+a530+a531+a532+a533+a534+a535+a536+a537+a538+a539+a540+a541+a542+a543+a544+a545+a546+a547+a548+a549+a550+a551+a552+a553+a554+a555+a556+a557+a558+a559+a560+a561+a562+a563+a564+a565+a566+a567+a568+a569+a570+a571+a572+a573+a574+a575+a576+a577+a578+a579+a580+a581+a582+a583+a584+a585+a586+a587+a588+a589+a590+a591+a592+a593+a594+a595+a596+a597+a598+a599+a600+a601+a602+a603+a604+a605+a606+a607+a608+a609+a610+a611+a612+a613+a614+a615+a616+a617+a618+a619+a620+a621+a622+a623+a624+a625+a626+a627+a628+a629+a630+a631+a632+a633+a634+a635+a636+a637+a638+a639+a640+a641+a642+a643+a644+a645+a646+a647+a648+a649+a650+a651+a652+a653+a654+a655+a656+a657+a658+a659+a660+a661+a662+a663+a664+a665+a666+a667+a668+a669+a670+a671+a672+a673+a674+a675+a676+a677+a678+a679+a680+a681+a682+a683+a684+a685+a686+a687+a688+a689+a690+a691+a692+a693+a694+a695+a696+a697+a698+a699+a700+a701+a702+a703+a704+a705+a706+a707+a708+a709+a710+a711+a712+a713+a714+a715+a716+a717+a718+a719+a720+a721+a722+a723+a724+a725+a726+a727+a728+a729+a730+a731+a732+a733+a734+a735+a736+a737+a738+a739+a740+a741+a742+a743+a744+a745+a746+a747+a748+a749+a750+a751+a752+a753+a754+a755+a756+a757+a758+a759+a760+a761+a762+a763+a764+a765+a766+a767+a768+a769+a770+a771+a772+a773+a774+a775+a776+a777+a778+a779+a780+a781+a782+a783+a784+a785+a786+a787+a788+a789+a790+a791+a792+a793+a794+a795+a796+a797+a798+a799+a800+a801+a802+a803+a804+a805+a806+a807+a808+a809+a810+a811+a812+a813+a814+a815+a816+a817+a818+a819+a820+a821+a822+a823+a824+a825+a826+a827+a828+a829+a830+a831+a832+a833+a834+a835+a836+a837+a838+a839+a840+a841+a842+a843+a844+a845+a846+a847+a848+a849+a850+a851+a852+a853+a854+a855+a856+a857+a858+a859+a860+a861+a862+a863+a864+a865+a866+a867+a868+a869+a870+a871+a872+a873+a874+a875+a876+a877+a878+a879+a880+a881+a882+a883+a884+a885+a886+a887+a888+a889+a890+a891+a892+a893+a894+a895+a896+a897+a898+a899+a900+a901+a902+a903+a904+a905+a906+a907+a908+a909+a910+a911+a912+a913+a914+a915+a916+a917+a918+a919+a920+a921+a922+a923+a924+a925+a926+a927+a928+a929+a930+a931+a932+a933+a934+a935+a936+a937+a938+a939+a940+a941+a942+a943+a944+a945+a946+a947+a948+a949+a950+a951+a952+a953+a954+a955+a956+a957+a958+a959+a960+a961+a962+a963+a964+a965+a966+a967+a968+a969+a970+a971+a972+a973+a974+a975+a976+a977+a978+a979+a980+a981+a982+a983+a984+a985+a986+a987+a988+a989+a990+a991+a992+a993+a994+a995+a996+a997+a998+a999+a1000+a1001+a1002+a1003+a1004+a1005+a1006+a1007+a1008+a1009+a1010+a1011+a1012+a1013+a1014+a1015+a1016+a1017+a1018+a1019+a1020+a1021+a1022+a1023+a1024+a1025+a1026+a1027+a1028+a1029+a1030+a1031+a1032+a1033+a1034+a1035+a1036+a1037+a1038+a1039+a1040+a1041+a1042+a1043+a1044+a1045+a1046+a1047+a1048+a1049+a1050+a1051+a1052+a1053+a1054+a1055+a1056+a1057+a1058+a1059+a1060+a1061+a1062+a1063+a1064+a1065+a1066+a1067+a1068+a1069+a1070+a1071+a1072+a1073+a1074+a1075+a1076+a1077+a1078+a1079+a1080+a1081+a1082+a1083+a1084+a1085+a1086+a1087+a1088+a1089+a1090+a1091+a1092+a1093+a1094+a1095+a1096+a1097+a1098+a1099+a1100+a1101+a1102+a1103+a1104+a1105+a1106+a1107+a1108+a1109+a1110+a1111+a1112+a1113+a1114+a1115+a1116+a1117+a1118+a1119+a1120+a1121+a1122+a1123+a1124+a1125+a1126+a1127+a1128+a1129+a1130+a1131+a1132+a1133+a1134+a1135+a1136+a1137+a1138+a1139+a1140+a1141+a1142+a1143+a1144+a1145+a1146+a1147+a1148+a1149+a1150+a1151+a1152+a1153+a1154+a1155+a1156+a1157+a1158+a1159+a1160+a1161+a1162+a1163+a1164+a1165+a1166+a1167+a1168+a1169+a1170+a1171+a1172+a1173+a1174+a1175+a1176+a1177+a1178+a1179+a1180+a1181+a1182+a1183+a1184+a1185+a1186+a1187+a1188+a1189+a1190+a1191+a1192+a1193+a1194+a1195+a1196+a1197+a1198+a1199+a1200+a1201+a1202+a1203+a1204+a1205+a1206+a1207+a1208+a1209+a1210+a1211+a1212+a1213+a1214+a1215+a1216+a1217+a1218+a1219+a1220+a1221+a1222+a1223+a1224+a1225+a1226+a1227+a1228+a1229+a1230+a1231+a1232+a1233+a1234+a1235+a1236+a1237+a1238+a1239+a1240+a1241+a1242+a1243+a1244+a1245+a1246+a1247+a1248+a1249+a1250+a1251+a1252+a1253+a1254+a1255+a1256+a1257+a1258+a1259+a1260+a1261+a1262+a1263+a1264+a1265+a1266+a1267+a1268+a1269+a1270+a1271+a1272+a1273+a1274+a1275+a1276+a1277+a1278+a1279+a1280+a1281+a1282+a1283+a1284+a1285+a1286+a1287+a1288+a1289+a1290+a1291+a1292+a1293+a1294+a1295+a1296+a1297+a1298+a1299+a1300+a1301+a1302+a1303+a1304+a1305+a1306+a1307+a1308+a1309+a1310+a1311+a1312+a1313+a1314+a1315+a1316+a1317+a1318+a1319+a1320+a1321+a1322+a1323+a1324+a1325+a1326+a1327+a1328+a1329+a1330+a1331+a1332+a1333+a1334+a1335+a1336+a1337+a1338+a1339+a1340+a1341+a1342+a1343+a1344+a1345+a1346+a1347+a1348+a1349+a1350+a1351+a1352+a1353+a1354+a1355+a1356+a1357+a1358+a1359+a1360+a1361+a1362+a1363+a1364+a1365+a1366+a1367+a1368+a1369+a1370+a1371+a1372+a1373+a1374+a1375+a1376+a1377+a1378+a1379+a1380+a1381+a1382+a1383+a1384+a1385+a1386+a1387+a1388+a1389+a1390+a1391+a1392+a1393+a1394+a1395+a1396+a1397+a1398+a1399+a1400+a1401+a1402+a1403+a1404+a1405+a1406+a1407+a1408+a1409+a1410+a1411+a1412+a1413+a1414+a1415+a1416+a1417+a1418+a1419+a1420+a1421+a1422+a1423+a1424+a1425+a1426+a1427+a1428+a1429+a1430+a1431+a1432+a1433+a1434+a1435+a1436+a1437+a1438+a1439+a1440+a1441+a1442+a1443+a1444+a1445+a1446+a1447+a1448+a1449+a1450+a1451+a1452+a1453+a1454+a1455+a1456+a1457+a1458+a1459+a1460+a1461+a1462+a1463+a1464+a1465+a1466+a1467+a1468+a1469+a1470+a1471+a1472+a1473+a1474+a1475+a1476+a1477+a1478+a1479+a1480+a1481+a1482+a1483+a1484+a1485+a1486+a1487+a1488+a1489+a1490+a1491+a1492+a1493+a1494+a1495+a1496+a1497+a1498+a1499+a1500+a1501+a1502+a1503+a1504+a1505+a1506+a1507+a1508+a1509+a1510+a1511+a1512+a1513+a1514+a1515+a1516+a1517+a1518+a1519+a1520+a1521+a1522+a1523+a1524+a1525+a1526+a1527+a1528+a1529+a1530+a1531+a1532+a1533+a1534+a1535+a1536+a1537+a1538+a1539+a1540+a1541+a1542+a1543+a1544+a1545+a1546+a1547+a1548+a1549+a1550+a1551+a1552+a1553+a1554+a1555+a1556+a1557+a1558+a1559+a1560+a1561+a1562+a1563+a1564+a1565+a1566+a1567+a1568+a1569+a1570+a1571+a1572+a1573+a1574+a1575+a1576+a1577+a1578+a1579+a1580+a1581+a1582+a1583+a1584+a1585+a1586+a1587+a1588+a1589+a1590+a1591+a1592+a1593+a1594+a1595+a1596+a1597+a1598+a1599+a1600+a1601+a1602+a1603+a1604+a1605+a1606+a1607+a1608+a1609+a1610+a1611+a1612+a1613+a1614+a1615+a1616+a1617+a1618+a1619+a1620+a1621+a1622+a1623+a1624+a1625+a1626+a1627+a1628+a1629+a1630+a1631+a1632+a1633+a1634+a1635+a1636+a1637+a1638+a1639+a1640+a1641+a1642+a1643+a1644+a1645+a1646+a1647+a1648+a1649+a1650+a1651+a1652+a1653+a1654+a1655+a1656+a1657+a1658+a1659+a1660+a1661+a1662+a1663+a1664+a1665+a1666+a1667+a1668+a1669+a1670+a1671+a1672+a1673+a1674+a1675+a1676+a1677+a1678+a1679+a1680+a1681+a1682+a1683+a1684+a1685+a1686+a1687+a1688+a1689+a1690+a1691+a1692+a1693+a1694+a1695+a1696+a1697+a1698+a1699+a1700+a1701+a1702+a1703+a1704+a1705+a1706+a1707+a1708+a1709+a1710+a1711+a1712+a1713+a1714+a1715+a1716+a1717+a1718+a1719+a1720+a1721+a1722+a1723+a1724+a1725+a1726+a1727+a1728+a1729+a1730+a1731+a1732+a1733+a1734+a1735+a1736+a1737+a1738+a1739+a1740+a1741+a1742+a1743+a1744+a1745+a1746+a1747+a1748+a1749+a1750+a1751+a1752+a1753+a1754+a1755+a1756+a1757+a1758+a1759+a1760+a1761+a1762+a1763+a1764+a1765+a1766+a1767+a1768+a1769+a1770+a1771+a1772+a1773+a1774+a1775+a1776+a1777+a1778+a1779+a1780+a1781+a1782+a1783+a1784+a1785+a1786+a1787+a1788+a1789+a1790+a1791+a1792+a1793+a1794+a1795+a1796+a1797+a1798+a1799+a1800+a1801+a1802+a1803+a1804+a1805+a1806+a1807+a1808+a1809+a1810+a1811+a1812+a1813+a1814+a1815+a1816+a1817+a1818+a1819+a1820+a1821+a1822+a1823+a1824+a1825+a1826+a1827+a1828+a1829+a1830+a1831+a1832+a1833+a1834+a1835+a1836+a1837+a1838+a1839+a1840+a1841+a1842+a1843+a1844+a1845+a1846+a1847+a1848+a1849+a1850+a1851+a1852+a1853+a1854+a1855+a1856+a1857+a1858+a1859+a1860+a1861+a1862+a1863+a1864+a1865+a1866+a1867+a1868+a1869+a1870+a1871+a1872+a1873+a1874+a1875+a1876+a1877+a1878+a1879+a1880+a1881+a1882+a1883+a1884+a1885+a1886+a1887+a1888+a1889+a1890+a1891+a1892+a1893+a1894+a1895+a1896+a1897+a1898+a1899+a1900+a1901+a1902+a1903+a1904+a1905+a1906+a1907+a1908+a1909+a1910+a1911+a1912+a1913+a1914+a1915+a1916+a1917+a1918+a1919+a1920+a1921+a1922+a1923+a1924+a1925+a1926+a1927+a1928+a1929+a1930+a1931+a1932+a1933+a1934+a1935+a1936+a1937+a1938+a1939+a1940+a1941+a1942+a1943+a1944+a1945+a1946+a1947+a1948+a1949+a1950+a1951+a1952+a1953+a1954+a1955+a1956+a1957+a1958+a1959+a1960+a1961+a1962+a1963+a1964+a1965+a1966+a1967+a1968+a1969+a1970+a1971+a1972+a1973+a1974+a1975+a1976+a1977+a1978+a1979+a1980+a1981+a1982+a1983+a1984+a1985+a1986+a1987+a1988+a1989+a1990+a1991+a1992+a1993+a1994+a1995+a1996+a1997+a1998+a1999+a2000+a2001+a2002+a2003+a2004+a2005+a2006+a2007+a2008+a2009+a2010+a2011+a2012+a2013+a2014+a2015+a2016+a2017+a2018+a2019+a2020+a2021+a2022+a2023+a2024+a2025+a2026+a2027+a2028+a2029+a2030+a2031+a2032+a2033+a2034+a2035+a2036+a2037+a2038+a2039+a2040+a2041+a2042+a2043+a2044+a2045+a2046+a2047+a2048+a2049+a2050+a2051+a2052+a2053+a2054+a2055+a2056+a2057+a2058+a2059+a2060) % (10 :: I64)) {
+    case 0: {
+      ccall printf("Inside branch 0\n");
+      res = a0;
+      ccall printf("Before jump 0\n");
+      goto END;
+    }
+    case 1: {
+      ccall printf("Inside branch 1\n");
+      res = a1;
+      ccall printf("Before jump 1\n");
+      goto END;
+    }
+    case 2: {
+      ccall printf("Inside branch 2\n");
+      res = a2;
+      ccall printf("Before jump 2\n");
+      goto END;
+    }
+    case 3: {
+      ccall printf("Inside branch 3\n");
+      res = a3;
+      ccall printf("Before jump 3\n");
+      goto END;
+    }
+    case 4: {
+      ccall printf("Inside branch 4\n");
+      res = a4;
+      ccall printf("Before jump 4\n");
+      goto END;
+    }
+    case 5: {
+      ccall printf("Inside branch 5\n");
+      res = a5;
+      ccall printf("Before jump 5\n");
+      goto END;
+    }
+    case 6: {
+      ccall printf("Inside branch 6\n");
+      res = a6;
+      ccall printf("Before jump 6\n");
+      goto END;
+    }
+    case 7: {
+      ccall printf("Inside branch 7\n");
+      res = a7;
+      ccall printf("Before jump 7\n");
+      goto END;
+    }
+    case 8: {
+      ccall printf("Inside branch 8\n");
+      res = a8;
+      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("Return\n");
+  ccall fflush(NULL);
+  return (res);
+}


=====================================
testsuite/tests/cmm/should_run/all.T
=====================================
@@ -31,6 +31,15 @@ test('T22871',
      multi_compile_and_run,
      ['T22871', [('T22871_cmm.cmm', '')], ''])
 
+test('JumpTableNoStackDealloc',
+     [    extra_run_opts('"' + config.libdir + '"')
+     ,    req_cmm 
+     ,    when(arch('wasm32'), skip) # wasm32 doesn't support the printf() calls
+     ,    when(arch('i386'), skip) # i386 doesn't support `MO_U_Rem W64` (`_c1::I64 % 10 :: W64`)
+     ],
+     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/1706a009c7c6cf24d60836a403825819a0632b8d

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1706a009c7c6cf24d60836a403825819a0632b8d
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/20250225/af789bb8/attachment-0001.html>


More information about the ghc-commits mailing list