#include <bits/stdc++.h>
using namespace std;
int main() {
  long long q, t, v, u, w;
  map<long long, long long> cost;
  cin >> q;
  while (q--) {
    cin >> t;
    if (t == 1) {
      cin >> v >> u >> w;
      while (v != u) {
        while (u > v) {
          cost[u] += w;
          u >>= 1;
        }
        while (v > u) {
          cost[v] += w;
          v >>= 1;
        }
      }
    } else {
      cin >> v >> u;
      long long res = 0;
      while (v != u) {
        while (u > v) {
          res += cost[u];
          u >>= 1;
        }
        while (v > u) {
          res += cost[v];
          v >>= 1;
        }
      }
      cout << res << endl;
    }
  }
  return 0;
}
