#gw2015j. [gw2015_j]ピラミッド - 2D編

[gw2015_j]ピラミッド - 2D編

問題文

伊織ちゃんのマイブームはピラミッドである。

伊織ちゃんはピラミッドを題材にした問題を思いついた。しかし、その問題は既出の問題だということが発覚し、伊織ちゃんは拗ねてしまった。そして、伊織ちゃんは別の問題を考えることにした。

段数が無限である 22 次元のピラミッドを考える。上から i(1i)i (1 ≦ i) 段目の左から j(1ji)j (1 ≦ j ≦ i) 個目の石を石 (i,j)(i,j) と呼ぶことにする。石 (A,B)(A,B) と石 (C,D)(C,D) を取ることを考える。石 (i,j)(i,j) を取るためには、石 (i1,j1)(i-1,j-1) と石 (i1,j)(i-1,j) を先に取らなければならない(i1<1i-1 < 1 または j1<1j-1 < 1 または j>ij > i となる場合は石が最初から存在しないため取る必要はない)。石 (A,B)(A,B) と石 (C,D)(C,D) を取る方法であって、取る石の個数が最小となるような取り方は何通りあるだろうか?ただし、取り方は石を取る順番によって区別され、石を取る順番が異なる時 22 つの取り方は違う取り方であるということにする。また、同じタイミングで 22 つ以上の石を取ることはできない。


入力

入力は以下の形式で標準入力から与えられる。

TT A1A_1 B1B_1 C1C_1 D1D_1 A2A_2 B2B_2 C2C_2 D2D_2 : ATA_T BTB_T CTC_T DTD_T

  • 11 行目には、テストケースの個数を表す整数 T(1T300,000)T (1 ≦ T ≦ 300,000) が与えられる。
  • 22 行目からの TT 行には、各テストケースの情報が与えられる。このうち i(1iT)i (1 ≦ i ≦ T) 行目には、44 つの整数 $A_i (1 ≦ A_i ≦ 10^6), B_i (1 ≦ B_i ≦ A_i), C_i (1 ≦ C_i ≦ 10^6), D_i (1 ≦ D_i ≦ C_i)$ が与えられる。これは、ii 番目テストケースにおける A,B,C,DA,B,C,D の値を表す。ただし、AiCiA_i ≠ C_i または BiDiB_i ≠ D_i が成り立つことが保証されている。また、取る必要のある石の個数が 10610^6 個を超えないことも保証されている。

出力

出力は TT 行からなる。このうち i(1iT)i (1 ≦ i ≦ T) 行目には、ii 番目のテストケースの答えを 109+710^9+7 で割った余りを出力せよ。出力の末尾にも改行を入れること。


入力例1


6
2 1 2 2
1 1 1000000 1000000
3 2 5 3
5 2 4 3
2015 55 1700 1300
100 50 1000 500

出力例1


2
1
42
252
926737422
143485143

11 個目のテストケースでは以下の 22 通りの取り方がある。

  • (1,1)(1,1)、石 (2,2)(2,2)、石 (2,1)(2,1) の順に取る。
  • (1,1)(1,1)、石 (2,1)(2,1)、石 (2,2)(2,2) の順に取る。