#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long pow1(long long a, long long b) {
  long long r = 1;
  while (b) {
    if (b & 1) r = r * a % mod;
    a = a * a % mod;
    b /= 2;
  }
  return r;
}
long long inv_2 = pow1(1LL * 2, mod - 2);
long long cal(long long X) {
  long long x = 1, y = 2, cnt = 1, tmp = 0, ans = 0;
  int k = 0;
  while (tmp + cnt <= X) {
    if (k == 0) {
      ans = ans + (2 * x % mod + 2 * (cnt - 1) % mod) % mod * (cnt % mod) %
                      mod * inv_2 % mod;
      x += 2 * cnt;
    } else {
      ans = ans + (2 * y % mod + 2 * (cnt - 1) % mod) % mod * (cnt % mod) %
                      mod * inv_2 % mod;
      y += 2 * cnt;
    }
    ans = ans + mod;
    ans %= mod;
    tmp += cnt;
    cnt *= 2;
    k ^= 1;
  }
  if (tmp < X) {
    tmp = X - tmp;
    if (k == 0) {
      ans = ans + (2 * x % mod + 2 * (tmp - 1) % mod) % mod * (tmp % mod) %
                      mod * inv_2 % mod;
    } else {
      ans = ans + (2 * y % mod + 2 * (tmp - 1) % mod) % mod * (tmp % mod) %
                      mod * inv_2 % mod;
    }
  }
  ans += mod;
  ans %= mod;
  return ans;
}
int main() {
  long long l, r;
  cin >> l >> r;
  cout << (cal(r) - cal(l - 1) + mod) % mod << endl;
  return 0;
}
