#include using namespace std; #define rep(i, a, b) for (int i = (int)(a); i < (int)(b); i++) #define rrep(i, a, b) for (int i = (int)(b) - 1; i >= (int)(a); i--) using ll = long long; template struct ModInt { using mint = ModInt; static constexpr unsigned long long get_mod() { return m; } ModInt() : _v(0) {} ModInt(int64_t v) : _v((v % umod() + umod()) % umod()) {} unsigned int val() const { return _v; } mint &operator+=(const mint &rhs) { if ((_v += rhs._v) >= m) _v -= m; return *this; } mint &operator-=(const mint &rhs) { if ((_v -= rhs._v) >= m) _v += m; return *this; } mint &operator*=(const mint &rhs) { _v = (unsigned long long)((__uint128_t)_v * rhs._v % m); return *this; } mint operator+() const { return *this; } mint operator-() const { return mint() - *this; } mint pow(long long n) const { assert(0 <= n); mint x = *this, r = 1; while (n) { if (n & 1) r *= x; x *= x; n >>= 1; } return r; } friend mint operator+(const mint &lhs, const mint &rhs) { return mint(lhs) += rhs; } friend mint operator-(const mint &lhs, const mint &rhs) { return mint(lhs) -= rhs; } friend mint operator*(const mint &lhs, const mint &rhs) { return mint(lhs) *= rhs; } private: unsigned long long _v; static constexpr unsigned long long umod() { return m; } }; using mint = ModInt<>; const mint inv2 = mint((mint::get_mod() + 1) / 2); constexpr int K = 19; ll pow10[K]; mint mpow10[K]; // [1,N) mint f(ll N) { mint ret = 0; rep(k, 0, K) { if (pow10[k + 1] <= N) ret += mpow10[k + 1] * mpow10[k] * 9 * inv2; else { mint x = 0; rrep(l, 0, k + 1) { int c = l == k; int d = N / pow10[l] % 10; ret += x * mint(d - c) * mpow10[l]; ret += ((d - c) * (c + d - 1) / 2) * mpow10[k]; ret += (mpow10[l] - 1) * mpow10[k] * 5 * mint(d - c); x += d * mpow10[k - l]; } break; } } return ret; } void solve() { ll L, R; cin >> L >> R; mint ans = f(R + 1) - f(L); cout << ans.val() << "\n"; } int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); pow10[0] = 1; rep(i, 1, K) pow10[i] = pow10[i - 1] * 10; rep(i, 0, K) mpow10[i] = pow10[i]; int t; cin >> t; while (t--) solve(); }