#include <bits/stdc++.h>
#define rep(i,n) for (long long i = 0; i < (n); ++i)
using namespace std;
using ll = long long;
using P = pair<ll,ll>;
using vec = vector<ll>;
using vecp = vector<P>;
using mat = vector<vec>;
using matp = vector<vecp>;
const ll MOD = 1e9+7;
const ll INF = 1e18;
#define all(v) v.begin(), v.end()

ll modPow(ll a, ll n) {
  if (n == 0) return 1; // 0乗にも対応する場合
  if (n == 1) return a % MOD;
  if (n % 2 == 1) return (a * modPow(a, n - 1)) % MOD;
  ll t = modPow(a, n / 2);
  return (t * t) % MOD;
}

int main(){
  ll N,ans=0,x=1;
  cin >> N;
  vec X(N),P(N);
  rep(i,N-1){
    x*=i+1;
    x%=MOD;
  }
  rep(i,N){
    if(i==0){
      P.at(i)=x;
    }else{
      P.at(i)=P.at(i-1)+x*modPow(i+1,MOD-2);
      P.at(i)%=MOD;
    }
  }
  cin >> X.at(0);
  rep(i,N-1){
    cin >> X.at(i+1);
    ans+=(X.at(i+1)-X.at(i))*P.at(i);
    ans%=MOD;
  }
  cout << ans << endl;
}