#include <bits/stdc++.h>
using namespace std;
#define test \
int t; \
cin >> t; \
while (t--)
#define ll long long
#define endl '\n'
#define cendl cout << endl
#define cyes cout << "YES" << endl
#define cno cout << "NO" << endl
#define InTheNameOfAllah \
ios_base::sync_with_stdio(0); \
cin.tie(0);
struct point {
double x, y;
};
bool cmp(point p1, point p2) {
return p1.x == p2.x && p1.y == p2.y;
}
int main() {
InTheNameOfAllah
point p1,
p2, p3, p4;
while (cin >> p1.x >> p1.y >> p2.x >> p2.y >> p3.x >> p3.y >> p4.x >> p4.y) {
if (p1.y > p2.y)
swap(p1, p2);
double dx = p2.x - p1.x, dy = p2.y - p1.y;
cout << fixed << setprecision(3);
if (cmp(p3, p1)) {
p4.x += dx;
p4.y += dy;
cout << p4.x << ' ' << p4.y << endl;
} else if (cmp(p3, p2)) {
p4.x -= dx;
p4.y -= dy;
cout << p4.x << ' ' << p4.y << endl;
} else {
swap(p3,p4);
if (cmp(p3, p1)) {
p4.x += dx;
p4.y += dy;
cout << p4.x << ' ' << p4.y << endl;
} else if (cmp(p3, p2)) {
p4.x -= dx;
p4.y -= dy;
cout << p4.x << ' ' << p4.y << endl;
}
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgdGVzdCAgXAogICAgaW50IHQ7ICAgIFwKICAgIGNpbiA+PiB0OyBcCiAgICB3aGlsZSAodC0tKQojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGNlbmRsIGNvdXQgPDwgZW5kbAojZGVmaW5lIGN5ZXMgY291dCA8PCAiWUVTIiA8PCBlbmRsCiNkZWZpbmUgY25vIGNvdXQgPDwgIk5PIiA8PCBlbmRsCiNkZWZpbmUgSW5UaGVOYW1lT2ZBbGxhaCAgICAgICAgICBcCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBcCiAgICBjaW4udGllKDApOwoKc3RydWN0IHBvaW50IHsKICAgIGRvdWJsZSB4LCB5Owp9Owpib29sIGNtcChwb2ludCBwMSwgcG9pbnQgcDIpIHsKICAgIHJldHVybiBwMS54ID09IHAyLnggJiYgcDEueSA9PSBwMi55Owp9CmludCBtYWluKCkgewogICAgSW5UaGVOYW1lT2ZBbGxhaAogICAgICAgIHBvaW50IHAxLAogICAgICAgIHAyLCBwMywgcDQ7CiAgICB3aGlsZSAoY2luID4+IHAxLnggPj4gcDEueSA+PiBwMi54ID4+IHAyLnkgPj4gcDMueCA+PiBwMy55ID4+IHA0LnggPj4gcDQueSkgewogICAgICAgIGlmIChwMS55ID4gcDIueSkKICAgICAgICAgICAgc3dhcChwMSwgcDIpOwogICAgICAgIAogICAgICAgIGRvdWJsZSBkeCA9IHAyLnggLSBwMS54LCBkeSA9IHAyLnkgLSBwMS55OwogICAgICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDMpOwogICAgICAgIGlmIChjbXAocDMsIHAxKSkgewogICAgICAgICAgICBwNC54ICs9IGR4OwogICAgICAgICAgICBwNC55ICs9IGR5OwogICAgICAgICAgICBjb3V0IDw8IHA0LnggPDwgJyAnIDw8IHA0LnkgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgaWYgKGNtcChwMywgcDIpKSB7CiAgICAgICAgICAgIHA0LnggLT0gZHg7CiAgICAgICAgICAgIHA0LnkgLT0gZHk7CiAgICAgICAgICAgIGNvdXQgPDwgcDQueCA8PCAnICcgPDwgcDQueSA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzd2FwKHAzLHA0KTsKICAgICAgICAgIGlmIChjbXAocDMsIHAxKSkgewogICAgICAgICAgICBwNC54ICs9IGR4OwogICAgICAgICAgICBwNC55ICs9IGR5OwogICAgICAgICAgICBjb3V0IDw8IHA0LnggPDwgJyAnIDw8IHA0LnkgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgaWYgKGNtcChwMywgcDIpKSB7CiAgICAgICAgICAgIHA0LnggLT0gZHg7CiAgICAgICAgICAgIHA0LnkgLT0gZHk7CiAgICAgICAgICAgIGNvdXQgPDwgcDQueCA8PCAnICcgPDwgcDQueSA8PCBlbmRsOwogICAgICAgIH0gCiAgICAgICAgfQogICAgICAgIAogICAgfQogICAgcmV0dXJuIDA7Cn0=