func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T, typename U>   static inline void amin(T &x, U y) {     if (y < x) x = y;   }   template <typename T, typename U>   static inline void amax(T &x, U y) {     if (y > x) x = y;   }   const long long inf = (long long)1e18 + 17;   const long long iinf = 1500000000;   const long long dx[] = {1, 0, -1, 0};   const long long dy[] = {0, 1, 0, -1};   const long long mod = 1e9 + 7;   bool test_case = 1;   void solve() {     string a, b;     cin >> a >> b;     long long next[a.size() + 10][26], n1 = a.size();     for (long long i = 0; i < 26; i++) next[n1][i] = inf;     for (long long i = n1 - 1; i >= 0; i--) {       for (long long j = 0; j < 26; j++) next[i][j] = next[i + 1][j];       next[i][a[i] -  a ] = i;     }     long long n = b.size();     long long dp[n + 10][n + 10];     dp[0][0] = 0;     for (long long ii = 0; ii < b.size(); ii++) {       long long l1 = ii + 1, l2 = b.size() - l1;       for (long long i = 0; i <= l1; i++) {         for (long long j = 0; j <= l2; j++) {           if (i == 0 && j == 0) continue;           dp[i][j] = inf;           if (j != 0) {             long long op1 = dp[i][j - 1];             if (op1 != inf && ii + j < b.size()) {               long long nex = b[ii + j] -  a ;               long long pos = next[op1][nex];               amin(dp[i][j], pos + 1);             }           }           if (i != 0) {             long long op1 = dp[i - 1][j];             if (op1 != inf) {               long long nex = b[i - 1] -  a ;               long long pos = next[op1][nex];               amin(dp[i][j], pos + 1);             }           }         }       }       if (dp[l1][l2] != inf) {         cout <<  YES n ;         return;       }     }     cout <<  NO n ;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long t = 1;     if (test_case == true) cin >> t;     for (long long i = 1; i <= t; i++) {       solve();     }     return 0;   }   