样例已过,WA0
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
const int mod=1e9+7;
int T,nxt[N],num[N],D[N];
char s[N];
void init(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
}
signed main(){
//init();
cin>>T;
while(T--){
int ans=1;
cin>>(s+1);
int n=strlen(s+1);
nxt[1]=num[1]=0;
D[1]=1;
for(int i=2;i<=n;i++){
int j=nxt[i-1];
while(j!=0){
if(s[j+1]==s[i])break;
else j=nxt[j];
}
if(s[j+1]==s[i])nxt[i]=j+1;
else nxt[i]=0;
D[i]=D[nxt[i]]+1;
int k=num[i-1];
while(k!=0){
if(s[k+1]==s[i]&&(2*(k+1)<=i))break;
else k=num[k];
}
if(s[k+1]==s[i]&&(2*(k+1)<=i))num[i]=k+1;
else num[i]=0;
ans=ans*(D[num[i]]+1)%mod;
}
cout<<ans<<"\n";
}
return 0;
}