func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long N = 1e6 + 10, P = 1e9 + 7, U = 1e6 - 1;   long long f1[N], f2[N], f3[N], n, A[N], t[N], val[N], bit[N], ans;   int main() {     cin >> n;     for (long long i = bit[0] = 1; i <= 6; i++) bit[i] = 10 * bit[i - 1];     for (long long i = t[0] = 1; i <= n; i++) t[i] = 2ll * t[i - 1] % P;     for (long long i = 1, x; i <= n; i++)       scanf( %lld , &x), f1[x]++, (f2[x] += x) %= P,           (f3[x] += 1ll * x * x % P) %= P;     for (long long j = 0; j < 6; j++)       for (long long i = U; i >= 0; i--)         if (i / bit[j] % 10 < 9) {           f1[i] += f1[i + bit[j]];           (f2[i] += f2[i + bit[j]]) %= P;           (f3[i] += f3[i + bit[j]]) %= P;         }     for (long long i = 0; i <= U; i++) {       long long res = (f2[i] * f2[i] % P - f3[i] + P) % P * (P / 2 + 1) % P;       if (f1[i]) val[i] = (t[f1[i] - 1] * (f3[i] + res) % P + P) % P;     }     for (long long j = 0; j < 6; j++)       for (long long i = 0; i <= U; i++)         if (i / bit[j] % 10 < 9) (val[i] += P - val[i + bit[j]]) %= P;     for (long long i = 0; i <= U; i++) ans ^= val[i] * i;     cout << ans << endl;   }   