#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const long long maxn = 23333;
inline long long modpow(long long x, long long y) {
  long long z = 1;
  while (y) {
    if (y & 1) z = x * z % mod;
    x = 1ll * x * x % mod;
    y >>= 1;
  }
  return z;
}
long long a[maxn], b[maxn], c[maxn], f[maxn], g[maxn];
int main() {
  int n;
  cin.sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  for (int i = 1; i < n; i++) cin >> a[i];
  b[1] = 1;
  for (int i = 1; i <= n; i++) b[i + 1] = b[i] * a[i] % mod;
  c[n] = modpow(b[n], mod - 2);
  for (int i = n; i > 1; i--) c[i - 1] = c[i] * a[i - 1] % mod;
  for (int i = n - 1; i >= 1; i--) {
    for (int j = 2 * i + 1; j <= 2 * n; j++) {
      g[j - 2 * i] =
          (g[j - 2 * i] + f[j] * (c[i] - c[i + 1] + mod) % mod) % mod;
      g[j - 2 * i] = (g[j - 2 * i] + b[i] * b[j - i] % mod * c[i] % mod) % mod;
      f[j] = (f[j] + b[i] * b[j - i] % mod) % mod;
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j < i; j++) {
      g[2 * i - 2 * j] =
          (g[2 * i - 2 * j] + b[i] * b[i] % mod * (c[j] - c[j + 1] + mod) %
                                  mod * 500000004 % mod) %
          mod;
    }
  }
  for (int i = 1; i <= 2 * n - 2; i++) cout << g[i] << ' ';
  cout << endl;
  return 0;
}
