1{
2  for (int c0 = a1; c0 <= min(a2 - 1, b1); c0 += 1)
3    for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1)
4      s0(c0, c1_0);
5  if (c2 >= d2 + 1) {
6    for (int c0 = max(a1, a2); c0 <= min(b2, b1); c0 += 1)
7      for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1)
8        s0(c0, c1_0);
9  } else
10    for (int c0 = a2; c0 <= b2; c0 += 1) {
11      if (c0 >= a1 && b1 >= c0)
12        for (int c1_0 = c1; c1_0 <= min(c2 - 1, d1); c1_0 += 1)
13          s0(c0, c1_0);
14      for (int c1_0 = c2; c1_0 <= d2; c1_0 += 1) {
15        if (c0 >= a1 && b1 >= c0 && c1_0 >= c1 && d1 >= c1_0)
16          s0(c0, c1_0);
17        s1(c0, c1_0);
18      }
19      if (c0 >= a1 && b1 >= c0)
20        for (int c1_0 = max(d2 + 1, c1); c1_0 <= d1; c1_0 += 1)
21          s0(c0, c1_0);
22    }
23  for (int c0 = max(max(a1, a2), b2 + 1); c0 <= b1; c0 += 1)
24    for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1)
25      s0(c0, c1_0);
26}
27