#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,ab,a,b,c,d,flag=0;
string s,t,p,s1,s2;
map<char,int>mp1;
map<char,int>mp2;
map<char,int>mp3;
char arr[10][10];
cin>>n;
while(n--){
cin>>s>>t>>p;
for(int i=0;i<s.length();i++){
mp1[s[i]]++;
}
for(int i=0;i<t.length();i++){
mp2[t[i]]++;
}
for(int i=0;i<p.length();i++){
mp3[p[i]]++;
}
int flag1=0;
int a=0;
int cnt=0;
for(int j=0;j<t.length();j++){
if(s[a]==t[j]){
cnt++;
a++;
}
if(a==(s.length())){
break;
}
}
if(cnt<s.length()){
flag1=1;
}
for(int i=0;i<s.length();i++){
if(mp1[s[i]]>0 && mp2[s[i]]==0){
flag1=1;
}
}
int flag=0;
if(flag1){
cout<<"NO"<<endl;
}
else{
for(int i=0;i<t.length();i++){
if(mp1[t[i]]>mp2[t[i]]){
flag=1;
break;
}
else if(mp2[t[i]]>mp1[t[i]]){
int v=mp2[t[i]]-mp1[t[i]];
if(mp3[t[i]]>=v){
continue;
}
else {
flag=1;
break;
}
}
}
if(flag) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
mp1.clear();
mp2.clear();
mp3.clear();
}
}
}