#include <bits/stdc++.h>
using namespace std;

int n;
int b[301][301];
int v[301][301];
int dfs(int i, int j, int t, int f){
  if(i<0||j<0||i>=n||j>=n||!b[i][j]||v[i][j]==f) return 0;
  v[i][j]=f;
  if(t<0) t=-3; else t%=3;
  return (t<=0)+dfs(i-1,j,t+2,f)+dfs(i,j-1,t+2,f)+dfs(i+1,j,t+1,f)+dfs(i,j+1,t+1,f);
}
void fill(int i, int j, int t, int f){
  if(i<0||j<0||i>=n||j>=n||!b[i][j]||v[i][j]==f) return;
  v[i][j]=f;
  t %= 3;
  if(t<=0) b[i][j]=2;
  fill(i-1,j,t+2,f);fill(i,j-1,t+2,f);fill(i+1,j,t+1,f);fill(i,j+1,t+1,f);
}

int main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t; cin >> t;
  while(t--){
    cin >> n;
    char c;
    for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) cin >> c, b[i][j] = c=='X', v[i][j]=0;
    for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) if(!v[i][j]&&b[i][j]){
      int k = dfs(i,j,-3,1);
      for(int t = 0; t < 3; t++) if(dfs(i,j,t,2+t)<=k/3){
        fill(i,j,t,6);
        break;
      }
    }
    for(int i = 0; i < n; i ++){
      for(int j = 0; j < n; j ++) cout << ".XO"[b[i][j]];
      cout<<"\n";
    }
  }
}
