func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   bool umin(T& a, T b) {     if (a > b) {       a = b;       return 1;     }     return 0;   }   template <class T>   bool umax(T& a, T b) {     if (a < b) {       a = b;       return 1;     }     return 0;   }   long long F[2][2][1009][1009];   void upd(int x, int y, long long v) {     for (int i = x; i < 1009; i += i & (-i))       for (int j = y; j < 1009; j += j & (-j))         F[x & 1][y & 1][i][j] = F[x & 1][y & 1][i][j] xor v;   }   long long tap(int x, int y) {     long long res = 0;     for (int i = x; i; i -= i & (-i))       for (int j = y; j; j -= j & (-j)) res = res xor F[x & 1][y & 1][i][j];     return res;   }   int main() {     int n, q;     scanf( %d%d , &n, &q);     while (q--) {       int type, x, x1, y1, y;       long long v;       scanf( %d%d%d%d%d , &type, &x, &y, &x1, &y1);       if (type == 2) {         scanf( %lld , &v);         upd(x, y, v);         upd(x1 + 1, y, v);         upd(x, y1 + 1, v);         upd(x1 + 1, y1 + 1, v);       } else         printf( %lld n , tap(x1, y1) xor tap(x1, y - 1) xor tap(x - 1, y1) xor                              tap(x - 1, y - 1));     }     return 0;   }   