#include #include using namespace std; typedef long long ll; const ll MOD=1e9+7; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n;cin>>n; ll a[n+5]; ll sum[n+5];sum[0]=0; for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]=sum[i-1]^a[i]; } unordered_map mp; ll total=1; //维护当前前缀子序列 for(int i=1;i<=n-1;i++){ if(mp.find(sum[i])==mp.end()){ mp[sum[i]]=total; total=(2*total)%MOD; }else{ ll tmp=total; total=((2*total-mp[sum[i]])%MOD+MOD)%MOD; mp[sum[i]]=tmp; } } cout<