#include<iostream>
#include<cstdio>

#define M 1000000007ll

using namespace std;

typedef long long ll;

int n;
ll t1[100000];
ll t2[100000];
ll dp[100000];

int main()
{
    scanf("%d", &n);
    for(int i = 0; i < n; ++i)
        scanf("%lld", t1+i);
    for(int i = 1; i < n; ++i)
        scanf("%lld", t2+i);
    dp[0] = (t1[0] + t2[0]) % M;
    dp[1] = t1[0] * t1[1] % M + t1[0] * t2[1] % M + t2[1] * t1[1] % M + t2[1] * (t2[1] - 1) % M;
    dp[1] %= M;
    for(int i = 2; i < n; ++i)
    {
        dp[i] =   dp[i-1] * t1[i] % M
                + dp[i-1] * t2[i] % M
                + dp[i-2] * t2[i] % M * t1[i] % M
                + dp[i-2] * t2[i] % M * (t2[i] - 1) % M;
        dp[i] %= M;
    }
    printf("%lld\n", dp[n-1]);
    return 0;
}
