#include <bits/stdc++.h>
using namespace std;
long long a, b, k, t, maxi, l, r, i, ans;
long long dp0[200005];
long long dp1[200005];
long long s[200005];
int main() {
  cin >> a >> b >> k >> t;
  maxi = k * t;
  dp1[maxi] = 1;
  while (t) {
    t--;
    for (i = 0; i <= 2 * maxi; i++) {
      dp0[i] = dp1[i];
      dp1[i] = 0;
    }
    for (i = 0; i <= 2 * maxi; i++) {
      l = i - k;
      if (l >= 0) {
        dp1[l] += dp0[i];
        if (dp1[l] > 1000000007) dp1[l] -= 1000000007;
      }
      r = i + k + 1;
      if (r <= 2 * maxi) {
        dp1[r] -= dp0[i];
        if (dp1[r] < 0) dp1[r] += 1000000007;
      }
    }
    for (i = 1; i <= 2 * maxi; i++) {
      dp1[i] += dp1[i - 1];
      if (dp1[i] > 1000000007) dp1[i] -= 1000000007;
    }
  }
  s[0] = dp1[0];
  for (i = 1; i <= 2 * maxi; i++) {
    s[i] = s[i - 1] + dp1[i];
    if (s[i] > 1000000007) s[i] -= 1000000007;
  }
  for (i = 0; i <= 2 * maxi; i++) {
    r = a - b + i - 1;
    if (r < 0) continue;
    if (r > 2 * maxi) r = 2 * maxi;
    ans += (s[r] * dp1[i]) % 1000000007;
    if (ans > 1000000007) ans -= 1000000007;
  }
  cout << ans;
  return 0;
}
