#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int q, i, j, k, x, y, z, v, u, w, a;
  cin >> q;
  map<long long int, long long int> mt;
  for (i = 0; i < q; i++) {
    cin >> a;
    if (a == 1) {
      cin >> x >> y >> w;
      v = max(x, y);
      u = min(x, y);
      while (v != u) {
        if (v > 2 * u && v > 1) {
          mt[v] += w;
          v /= 2;
          continue;
        }
        if (v != u && v > 1) {
          mt[v] += w;
          v /= 2;
        }
        if (v != u && u > 1) {
          mt[u] += w;
          u /= 2;
        }
      }
    } else {
      cin >> x >> y;
      long long int sum = 0;
      v = max(x, y);
      u = min(x, y);
      while (v != u) {
        if (v > 2 * u && v > 1) {
          sum += mt[v];
          v /= 2;
          continue;
        }
        if (v != u && v > 1) {
          sum += mt[v];
          v /= 2;
        }
        if (v != u && u > 1) {
          sum += mt[u];
          u /= 2;
        }
      }
      cout << sum << endl;
    }
  }
  return 0;
}
