#include #include #include #include #include using namespace std; using i64 = long long; using u64 = unsigned long long; using i32 = int; using u32 = unsigned int; #define rep(i,n) for(int i=0; i<(int)(n); i++) using modint = atcoder::static_modint<1'000'000'007>; int main() { int N; cin >> N; vector, int>> E(N-1); rep(i,N-1){ int u,v,c; cin >> u >> v >> c; u--; v--; E[i] = {{u,v},c}; } modint ans = 0; rep(d,30){ atcoder::dsu dsu(N); for(auto [e,c] : E) if((c>>d) & 1) dsu.merge(e.first, e.second); modint tmp = 0; rep(i,N) tmp += (dsu.size(i) - 1); ans += tmp * (1<