#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long x[300050];
long long qpow(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) {
      ans *= a;
      ans %= mod;
    }
    a *= a;
    a %= mod;
    b >>= 1;
  }
  return ans;
}
int main(void) {
  int n;
  long long ans;
  while (~scanf("%d", &n)) {
    for (int i = 1; i <= n; i++) {
      scanf("%lld", &x[i]);
    }
    sort(x + 1, x + 1 + n);
    long long l = 0;
    long long r = 0;
    for (int i = 1; i <= n; i++) {
      l += (1LL + qpow(2, n - i)) * x[i];
      r += (1LL + qpow(2, i - 1)) * x[i];
      l %= mod;
      r %= mod;
    }
    printf("%lld\n", (r - l + mod) % mod);
  }
  return 0;
}
