#include <bits/stdc++.h>
using namespace std;
class node {
 public:
  int data;
  node *left;
  node *right;
  node(int d) {
    data = d;
    left = NULL;
    right = NULL;
  }
};
int minn(struct node *v, int m, int c) {
  if (v->data * 2 == m) {
    return c;
  }
  if (v->data - 1 == m) {
    return c;
  }
  v->left->data = (v->data) * 2;
  v->left->left = v->left->right = NULL;
  v->right->data = (v->data) - 1;
  v->right->left = v->right->right = NULL;
  return (min(minn(v->left, m, c + 1), minn(v->right, m, c + 1)));
}
int fun(int n, int m) {
  if (n >= m) {
    return (n - m);
  }
  if (m % 2 == 0) {
    return (1 + fun(n, m / 2));
  } else {
    return (2 + fun(n, (m + 1) / 2));
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ios_base &scientific(ios_base & str);
  int x, y, xx, yy;
  cin >> x >> y >> xx >> yy;
  int x3, x4, y3, y4;
  int f = 0;
  if (x == xx) {
    y3 = min(y, yy);
    y4 = max(y, yy);
    x3 = min(x, xx) + y4 - y3;
    x4 = x3;
  } else if (y == yy) {
    x3 = min(x, xx);
    x4 = max(x, xx);
    y3 = min(y, yy) + x4 - x3;
    y4 = y3;
  } else {
    if (abs(xx - x) != abs(yy - y)) {
      f = 1;
      cout << -1 << endl;
    } else {
      x3 = x;
      y3 = yy;
      x4 = xx;
      y4 = y;
    }
  }
  if (f == 0) {
    cout << x3 << " " << y3 << " " << x4 << " " << y4 << endl;
  }
  return 0;
}
