#include <bits/stdc++.h>
using namespace std;
inline int IN() {
  int x = 0, ch = getchar(), f = 1;
  while (!isdigit(ch) && (ch != '-') && (ch != EOF)) ch = getchar();
  if (ch == '-') {
    f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = (x << 1) + (x << 3) + ch - '0';
    ch = getchar();
  }
  return x * f;
}
inline void Out(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10)
    Out(x / 10), putchar(x % 10 + '0');
  else
    putchar(x + '0');
}
double dist(double a, double b) { return sqrt(a * a + b * b); }
double px, py, vx, vy, a, b, c, d;
double Ansx, Ansy, len;
void PrintAns() { printf("%.10lf %.10lf\n", Ansx + px, Ansy + py); }
int main() {
  px = 1.0 * IN(), py = 1.0 * IN(), vx = 1.0 * IN(), vy = 1.0 * IN();
  a = 1.0 * IN(), b = 1.0 * IN(), c = 1.0 * IN(), d = 1.0 * IN();
  len = dist(vx, vy);
  Ansx = b / len * vx;
  Ansy = b / len * vy;
  PrintAns();
  Ansx = -a / 2 / len * vy;
  Ansy = a / 2 / len * vx;
  PrintAns();
  Ansx = -c / 2 / len * vy;
  Ansy = c / 2 / len * vx;
  PrintAns();
  Ansx -= d / len * vx;
  Ansy -= d / len * vy;
  PrintAns();
  Ansx = c / 2 / len * vy - d / len * vx;
  Ansy = -c / 2 / len * vx - d / len * vy;
  PrintAns();
  Ansx += d / len * vx;
  Ansy += d / len * vy;
  PrintAns();
  Ansx = a / 2 / len * vy;
  Ansy = -a / 2 / len * vx;
  PrintAns();
}
