#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define deb(x) cout << #x << " " << x << endl;
#define PI 3.14159265358979323846264338327950L
#define fi(i,a,b) for(int i = a; i<b; i++)
#define ull unsigned long long
#define all(x) x.begin(), x.end()
#define ll long long int
#define ld long double
#define pii pair<int, int>
#define F first
#define S second
#define vi vector<int>
#define N 1000000007
#define endl "\n"
#define pb push_back
#define mp make_pair
using namespace std;
int main() {
int n; cin >> n; vi arr(n); set<int> s; ll sum = 0;
fi(i, 0, n) {cin >> arr[i];}
int j=0;
fi(i, 0, n) {
while (j < n && s.find(arr[j]) == s.end()) {
s.insert(arr[j]); j++;
}
sum += ((j - i) * (j - i + 1)) / 2; s.erase(arr[i]);
}
cout << sum % N << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgSU9TIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiNkZWZpbmUgZGViKHgpIGNvdXQgPDwgI3ggPDwgIiAiIDw8IHggPDwgZW5kbDsKI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUwTAojZGVmaW5lIGZpKGksYSxiKSBmb3IoaW50IGkgPSBhOyBpPGI7IGkrKykKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgTiAxMDAwMDAwMDA3CiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCglpbnQgbjsgY2luID4+IG47IHZpIGFycihuKTsgc2V0PGludD4gczsgbGwgc3VtID0gMDsKCWZpKGksIDAsIG4pIHtjaW4gPj4gYXJyW2ldO30KCglpbnQgaj0wOwoJZmkoaSwgMCwgbikgewoKCQl3aGlsZSAoaiA8IG4gJiYgcy5maW5kKGFycltqXSkgPT0gcy5lbmQoKSkgewoJCQlzLmluc2VydChhcnJbal0pOyBqKys7CgkJfQoJCXN1bSArPSAoKGogLSBpKSAqIChqIC0gaSArIDEpKSAvIDI7IHMuZXJhc2UoYXJyW2ldKTsKCX0KCWNvdXQgPDwgc3VtICUgTiA8PCBlbmRsOwoKCXJldHVybiAwOwp9