#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int MAXN = 100000;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
string a;
string b;
//* Find a in-side b
//* b == main string
bool consistency(int m, int n){
if(m>n) return false;
unordered_map<char, int> mp;
for(int i=0; i<m; i++){
mp[a[i]]++;
}
int size = mp.size();
int s = 0, e = 0;
while(e<n){
if(mp.count(b[e])){
mp[b[e]]--;
if(mp[b[e]] == 0) size--;
}
if(e-s+1 < m){
e++;
}
else{
if(size==0) return true;
if(mp.count(b[s])){
mp[b[s]]++;
if(mp[b[s]] == 1) size++;
}
s++;
e++;
}
}
return false;
}
bool practice(int m, int n){
return true;
}
void solve() {
cin >> a >> b;
int m = a.size();
int n = b.size();
cout << boolalpha << consistency(m, n) << endl;
// cout << boolalpha << consistency(m, n) << " -> " << practice(m, n) << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTUFYTiA9IDEwMDAwMDsKY29uc3QgaW50IExJTkYgPSAyMDAwMDAwMDAwMDAwMDAwMDAxOwoKLy9fICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFNUQVJUIEJlbG93ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgoKc3RyaW5nIGE7CnN0cmluZyBiOwoKCgovLyogRmluZCBhIGluLXNpZGUgYiAKLy8qIGIgPT0gbWFpbiBzdHJpbmcKCmJvb2wgY29uc2lzdGVuY3koaW50IG0sIGludCBuKXsKCQoJaWYobT5uKSByZXR1cm4gZmFsc2U7CQoJCgl1bm9yZGVyZWRfbWFwPGNoYXIsIGludD4gbXA7Cglmb3IoaW50IGk9MDsgaTxtOyBpKyspewoJICAgIG1wW2FbaV1dKys7Cgl9CglpbnQgc2l6ZSA9IG1wLnNpemUoKTsJCglpbnQgcyA9IDAsIGUgPSAwOwoJd2hpbGUoZTxuKXsKCSAgICBpZihtcC5jb3VudChiW2VdKSl7CgkgICAgICAgIG1wW2JbZV1dLS07CgkgICAgICAgIGlmKG1wW2JbZV1dID09IDApIHNpemUtLTsKCSAgICB9CQoJICAgIGlmKGUtcysxIDwgbSl7CgkgICAgICAgIGUrKzsKCSAgICB9CgkgICAgZWxzZXsKCSAgICAgICAgaWYoc2l6ZT09MCkgcmV0dXJuIHRydWU7CQoJICAgICAgICBpZihtcC5jb3VudChiW3NdKSl7CgkgICAgICAgICAgICBtcFtiW3NdXSsrOwoJICAgICAgICAgICAgaWYobXBbYltzXV0gPT0gMSkgc2l6ZSsrOwoJICAgICAgICB9CgkgICAgICAgIHMrKzsKCSAgICAgICAgZSsrOwoJICAgIH0KCX0JCglyZXR1cm4gZmFsc2U7Cn0KCgoKCgoKCgoKYm9vbCBwcmFjdGljZShpbnQgbSwgaW50IG4pewoJCglyZXR1cm4gdHJ1ZTsKfQoKCgoKdm9pZCBzb2x2ZSgpIHsKCgljaW4gPj4gYSA+PiBiOwoJaW50IG0gPSBhLnNpemUoKTsKCWludCBuID0gYi5zaXplKCk7CgoJY291dCA8PCBib29sYWxwaGEgPDwgY29uc2lzdGVuY3kobSwgbikgPDwgZW5kbDsKCQoJLy8gY291dCA8PCBib29sYWxwaGEgPDwgY29uc2lzdGVuY3kobSwgbikgPDwgIiAtPiAiIDw8IHByYWN0aWNlKG0sIG4pIDw8IGVuZGw7CgkKfQoKCgoKCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=