#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int q; cin >> q; int m = 26; while (q--) { string s, t; cin >> s >> t; int n = s.size(); vector c1(m, 0); vector c2(m, 0); vector c3(m, 0); vector c4(m, 0); rep(i, n) { if (i % 2) { c1[s[i] - 'a']++; c3[s[i] - 'a']++; c1[t[i] - 'a']--; } else { c2[s[i] - 'a']++; c4[s[i] - 'a']++; c2[t[i] - 'a']--; } } bool ok = true; rep(i, m) { if (c1[i] != 0) ok = false; if (c2[i] != 0) ok = false; } if (!ok) { cout << "No" << endl; continue; } ok = false; rep(i, m) { if (c3[i] >= 2) ok = true; if (c4[i] >= 2) ok = true; } if (ok) { cout << "Yes" << endl; continue; } auto f = [&](vector v) { int s = v.size(); int ans = 0; rep(i, s) rep(j, s) { if (i >= j) continue; if (v[i] > v[j]) ans++; } return ans; }; vector sv1; vector tv1; vector sv2; vector tv2; rep(i, n) { if (i % 2) { sv1.push_back(s[i] - 'a'); tv1.push_back(t[i] - 'a'); } else { sv2.push_back(s[i] - 'a'); tv2.push_back(t[i] - 'a'); } } int x = f(sv1) + f(sv2) + f(tv1) + f(tv2); cout << (x % 2 == 0 ? "Yes" : "No") << endl; } return 0; }