#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  map<long long, long long> m;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    if (a == 1) {
      long long v, u, w;
      cin >> v >> u >> w;
      while (v != u) {
        if (v > u) {
          m[v] += w;
          v /= 2;
        } else {
          m[u] += w;
          u /= 2;
        }
      }
    } else if (a == 2) {
      bool c1 = false, c2 = false;
      long long brojac = 0;
      long long p = 1;
      long long u, v;
      cin >> u >> v;
      while (u != v) {
        if (v > u)
          brojac += m[v], v /= 2;
        else
          brojac += m[u], u /= 2;
      }
      cout << brojac << endl;
    }
  }
  return 0;
}
