int expo( int a,int b,int M)
{
int res= 1 ;
a% = M;
while ( b)
{
if ( b& 1 )
{
res= ( res* 1ll* a) % M;
}
a= ( a* 1ll* a) % M;
b>>= 1 ;
}
return res;
}
int fun( vector< int > arr) {
int M = 1e9 + 7 , n= arr.size ( ) ;
int ans= 0 ;
for ( int i= 0 ; i< n; i++ )
{
ans | = arr[ i] ;
}
ans = ( expo( 2 ,n- 1 ,M) * 1ll* ans) % M;
return ans;
}
aW50IGV4cG8oaW50IGEsaW50IGIsaW50IE0pCnsKICAgIGludCByZXM9MTsKICAgIGElPU07CiAgICB3aGlsZShiKQogICAgewogICAgICAgIGlmKGImMSkKICAgICAgICB7CiAgICAgICAgICAgIHJlcz0ocmVzKjFsbCphKSVNOwogICAgICAgIH0KICAgICAgICBhPShhKjFsbCphKSVNOwogICAgICAgIGI+Pj0xOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50IGZ1bih2ZWN0b3I8aW50PiBhcnIpIHsKICAgIGludCBNID0xZTkrNywgbj1hcnIuc2l6ZSgpOwogICAgaW50IGFucz0wOwogICAgZm9yKGludCBpPTA7IGk8bjtpKyspCiAgICB7CiAgICAgICAgYW5zIHw9YXJyW2ldOwogICAgfQogICAgCiAgICBhbnMgPSAoZXhwbygyLG4tMSxNKSAqMWxsKiBhbnMpJU07CiAgICByZXR1cm4gYW5zOwp9