#include<iostream>
using namespace std;
const unsigned long long mxn=5*1e5+5;
const unsigned long long p=1e9+7;
unsigned long long n,a[mxn],b[mxn],ans;
unsigned long long fa[mxn+1],fb[mxn+1];
unsigned long long S(unsigned long long l,unsigned long long r){
return (((fa[r]-fa[l-1])%p)*((fb[r]-fb[l-1])%p))%p;
}
signed main(){
cin>>n;
for(unsigned long long i=1;i<=n;++i)cin>>a[i];
for(unsigned long long i=1;i<=n;++i)cin>>b[i];
fa[0]=fb[0]=0LL;
for(unsigned long long i=1;i<=n;++i)fa[i]=(fa[i-1]+a[i])%p;
for(unsigned long long i=1;i<=n;++i)fb[i]=(fb[i-1]+b[i])%p;
for(unsigned long long l=1;l<=n;++l){
for(unsigned long long r=l;r<=n;++r){
ans=(S(l,r)+ans)%p;
ans%=p;
}
}
cout<<ans;
return 0;
}