description: CQXYM is counting permutations length of 2n.
  
  A permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (n=3 but there is 4 in the array).
  
  A permutation p(length of 2n) will be counted only if the number of i satisfying p_i<p_{i+1} is no less than n. For example:
  
    * Permutation [1, 2, 3, 4] will count, because the number of such i that p_i<p_{i+1} equals 3 (i = 1, i = 2, i = 3).
    * Permutation [3, 2, 1, 4] won't count, because the number of such i that p_i<p_{i+1} equals 1 (i = 3). 
  
  
  
  CQXYM wants you to help him to count the number of such permutations modulo 1000000007 (10^9+7).
  
  In addition, [modulo operation](https://en.wikipedia.org/wiki/Modulo_operation) is to get the remainder. For example:
  
    * 7 mod 3=1, because 7 = 3 ⋅ 2 + 1, 
    * 15 mod 4=3, because 15 = 4 ⋅ 3 + 3. 
  
  Input
  
  The input consists of multiple test cases. 
  
  The first line contains an integer t (t ≥ 1) — the number of test cases. The description of the test cases follows.
  
  Only one line of each test case contains an integer n(1 ≤ n ≤ 10^5).
  
  It is guaranteed that the sum of n over all test cases does not exceed 10^5
  
  Output
  
  For each test case, print the answer in a single line.
  
  Example
  
  Input
  
  
  4
  1
  2
  9
  91234
  
  
  Output
  
  
  1
  12
  830455698
  890287984
  
  Note
  
  n=1, there is only one permutation that satisfies the condition: [1,2].
  
  In permutation [1,2], p_1<p_2, and there is one i=1 satisfy the condition. Since 1 ≥ n, this permutation should be counted. In permutation [2,1], p_1>p_2. Because 0<n, this permutation should not be counted.
  
  n=2, there are 12 permutations: [1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,2,3],[2,1,3,4],[2,3,1,4],[2,3,4,1],[2,4,1,3],[3,1,2,4],[3,4,1,2],[4,1,2,3].
solution: 
  # Author : raj1307 - Raj Singh
  # Date   : 30.09.2021
  
  from __future__ import division, print_function
  
  import os,sys
  from io import BytesIO, IOBase
  
  if sys.version_info[0] < 3:
      from __builtin__ import xrange as range
      from future_builtins import ascii, filter, hex, map, oct, zip
  
  
  def ii():  return int(input())
  def si():  return input()
  def mi():  return map(int,input().strip().split(" "))
  def msi(): return map(str,input().strip().split(" "))
  def li():  return list(mi())
  
  def dmain():
      sys.setrecursionlimit(1000000)
      threading.stack_size(1024000)
      thread = threading.Thread(target=main)
      thread.start()
      
  #from collections import deque, Counter, OrderedDict,defaultdict
  #from heapq import nsmallest, nlargest, heapify,heappop ,heappush, heapreplace
  #from math import log,sqrt,factorial,cos,tan,sin,radians
  #from bisect import bisect,bisect_left,bisect_right,insort,insort_left,insort_right
  #from decimal import *
  #import threading
  #from itertools import permutations
  #Copy 2D list  m = [x[:] for x in mark] .. Avoid Using Deepcopy
  
  abc='abcdefghijklmnopqrstuvwxyz'
  abd={'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}
  mod=1000000007
  #mod=998244353
  inf = float("inf")
  vow=['a','e','i','o','u']
  dx,dy=[-1,1,0,0,1,-1,1,-1],[0,0,1,-1,1,-1,-1,1]
  def getKey(item): return item[1] 
  def sort2(l):return sorted(l, key=getKey,reverse=True)
  def d2(n,m,num):return [[num for x in range(m)] for y in range(n)]
  def isPowerOfTwo (x): return (x and (not(x & (x - 1))) )
  def decimalToBinary(n): return bin(n).replace("0b","")
  def ntl(n):return [int(i) for i in str(n)]
  def ncr(n,r): return factorial(n)//(factorial(r)*factorial(max(n-r,1)))
  
  def ceil(x,y):
      if x%y==0:
          return x//y
      else:
          return x//y+1
  
  def powerMod(x,y,p):
      res = 1
      x %= p
      while y > 0:
          if y&1:
              res = (res*x)%p
          y = y>>1
          x = (x*x)%p
      return res
  
  def gcd(x, y):
      while y:
          x, y = y, x % y
      return x
      
  def isPrime(n) : # Check Prime Number or not 
      if (n <= 1) : return False
      if (n <= 3) : return True
      if (n % 2 == 0 or n % 3 == 0) : return False
      i = 5
      while(i * i <= n) : 
          if (n % i == 0 or n % (i + 2) == 0) : 
              return False
          i = i + 6
      return True
  
  
  
  def read():
      sys.stdin  = open('input.txt', 'r')  
      sys.stdout = open('output.txt', 'w') 
  
  
  
  
  def main():
  
  
      
      for _ in range(ii()):
  
  
          
          n=ii()
          n*=2
          f=1
          for i in range(3,n+1):
              f*=i
              f%=mod
          print(f)
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  # region fastio
  # template taken from https://github.com/cheran-senthil/PyRival/blob/master/templates/template.py
  
  BUFSIZE = 8192
  
  
  class FastIO(IOBase):
      newlines = 0
  
      def __init__(self, file):
          self._fd = file.fileno()
          self.buffer = BytesIO()
          self.writable = "x" in file.mode or "r" not in file.mode
          self.write = self.buffer.write if self.writable else None
  
      def read(self):
          while True:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              if not b:
                  break
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines = 0
          return self.buffer.read()
  
      def readline(self):
          while self.newlines == 0:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              self.newlines = b.count(b"\n") + (not b)
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines -= 1
          return self.buffer.readline()
  
      def flush(self):
          if self.writable:
              os.write(self._fd, self.buffer.getvalue())
              self.buffer.truncate(0), self.buffer.seek(0)
  
  
  class IOWrapper(IOBase):
      def __init__(self, file):
          self.buffer = FastIO(file)
          self.flush = self.buffer.flush
          self.writable = self.buffer.writable
          self.write = lambda s: self.buffer.write(s.encode("ascii"))
          self.read = lambda: self.buffer.read().decode("ascii")
          self.readline = lambda: self.buffer.readline().decode("ascii")
  
  
  def print(*args, **kwargs):
      """Prints the values to a stream, or to sys.stdout by default."""
      sep, file = kwargs.pop("sep", " "), kwargs.pop("file", sys.stdout)
      at_start = True
      for x in args:
          if not at_start:
              file.write(sep)
          file.write(str(x))
          at_start = False
      file.write(kwargs.pop("end", "\n"))
      if kwargs.pop("flush", False):
          file.flush()
  
  
  if sys.version_info[0] < 3:
      sys.stdin, sys.stdout = FastIO(sys.stdin), FastIO(sys.stdout)
  else:
      sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
  
  input = lambda: sys.stdin.readline().rstrip("\r\n")
  
  # endregion
  
  
  if __name__ == "__main__":
      #read()
      main()
      #dmain()
  
  # Comment Read()
  