#include <bits/stdc++.h>
using namespace std;
const int BASE = 1e9 + 7;

long long f[100100], fact[100100];

long long power(long long x, long long y)
{
  if (!y)
    return 1;
  long long res = power(x, y >> 1);
  res = res * res % BASE;
  if (y & 1)
    res = res * x % BASE;
  return res;
}

int main()
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);

  int n, x[100100];
  cin >> n;
  for (int i = 1; i <= n; i++)
    cin >> x[i];

  fact[0] = 1;
  for (int i = 1; i <= n; i++)
    fact[i] = fact[i - 1] * i % BASE;
  f[1] = 1;
  for (int i = 2; i <= n; i++)
    f[i] = (f[i - 1] * i + fact[i - 1]) % BASE;

  long long ans = 0;
  for (int i = 1; i < n; i++)
  {
    long long ways = f[i] * fact[n - 1] % BASE * power(fact[i], BASE - 2) % BASE;
    ans = (ans + ways * (x[i + 1] - x[i])) % BASE;
  }
  cout << ans << endl;
}
