#include <bits/stdc++.h>
using namespace std;
const int Q = 1 << 20;
struct vec {
  long long x, y;
  void R() { scanf("%lld%lld", &x, &y); }
  void W() { printf("%lld  %lld CNM\n", x, y); }
  vec() {}
  vec(long long a, long long b) { x = a, y = b; }
} a[Q];
vec operator+(vec a, vec b) { return vec(a.x + b.x, a.y + b.y); }
vec operator-(vec a, vec b) { return vec(a.x - b.x, a.y - b.y); }
long long operator^(vec a, vec b) { return a.x * b.y - a.y * b.x; }
long long operator*(vec a, vec b) { return a.x * b.x + a.y * b.y; }
int main() {
  int n;
  scanf("%d", &n);
  if (n & 1) return 0 & puts("NO");
  for (int i = 1; i <= n; i++) a[i].R();
  if (n == 4) {
    if (((a[2] - a[1]) ^ (a[4] - a[3])) || ((a[3] - a[2]) ^ (a[1] - a[4])))
      puts("no");
    else
      puts("yes");
    return 0;
  }
  for (int i = 1; i <= (n << 1); i++) a[i + n] = a[i];
  for (int i = 2; i <= n + 1; i++) {
    int j = i + (n >> 1);
    if ((a[i + 1] - a[i - 1]) ^ (a[j + 1] - a[j - 1])) return 0 & puts("NO");
  }
  puts("YES");
  return 0;
}
