#include <bits/stdc++.h>
using namespace std;
const int MaxN = 400007;
const int mod = (int)1e9 + 7;
int a, b, k, t, N;
int ans, f[MaxN], s[MaxN];
int main() {
  int i, j;
  scanf("%d%d%d%d", &a, &b, &k, &t);
  f[2 * k * t + 1] = 1;
  N = 4 * k * t + 1;
  for (i = 1; i <= t + t; i++) {
    for (j = 1; j <= N; j++) {
      s[j] = (s[j - 1] + f[j]) % mod;
    }
    for (j = 1; j <= N; j++) {
      f[j] = (s[min(N - 1, j + k)] - s[max(1, j - k - 1)]) % mod;
      if (f[j] < 0) f[j] += mod;
    }
  }
  ans = 0;
  for (i = 2 * k * t + b - a + 2; i <= N; i++) ans = (ans + f[i]) % mod;
  printf("%d\n", ans);
  return 0;
}
