Skip to content

Instantly share code, notes, and snippets.

@dribnet
Last active April 9, 2021 10:20
Show Gist options
  • Save dribnet/b17f75c05581d26edc75eb91c686353b to your computer and use it in GitHub Desktop.
Save dribnet/b17f75c05581d26edc75eb91c686353b to your computer and use it in GitHub Desktop.
pulsar pleasures
height: 760
license: mit

Pulsar Pleasures

Recreation of the pulsar visualization made famouse by Joy Division. This visualization shows a full 100 cycles of data from B1919+21 pulsar which was the also the basis for Joy Division's Unknown Pleasures album cover. Unlike the album cover, this version shows the full data uncropped to reveal the much shorter overall duty cycle and draws dynamically to better represent the actual pulsar timing (period of 1.3373 seconds).

100 cycles of pulsar data radio intensities comes from WSRT radio telescope located in the Netherlands and was generously supplied for this project by Dr Patrick Weltevrede. (to reuse just grab the file lgm.csv). This visualization was created in 2013 using d3.js and was programmed in clojurescript using the strokes library.

(function() {
var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
if (!Date.now) Date.now = function() {
return +new Date();
};
try {
document.createElement("div").style.setProperty("opacity", 0, "");
} catch (error) {
var d3_style_prototype = CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
d3_style_prototype.setProperty = function(name, value, priority) {
d3_style_setProperty.call(this, name, value + "", priority);
};
}
d3 = {
version: "3.0.4"
};
var ฯ€ = Math.PI, ฮต = 1e-6, d3_radians = ฯ€ / 180, d3_degrees = 180 / ฯ€;
function d3_target(d) {
return d.target;
}
function d3_source(d) {
return d.source;
}
function d3_class(ctor, properties) {
try {
for (var key in properties) {
Object.defineProperty(ctor.prototype, key, {
value: properties[key],
enumerable: false
});
}
} catch (e) {
ctor.prototype = properties;
}
}
var d3_array = d3_arraySlice;
function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}
function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}
try {
d3_array(document.documentElement.childNodes)[0].nodeType;
} catch (e) {
d3_array = d3_arrayCopy;
}
var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
array.__proto__ = prototype;
} : function(array, prototype) {
for (var property in prototype) array[property] = prototype[property];
};
d3.map = function(object) {
var map = new d3_Map();
for (var key in object) map.set(key, object[key]);
return map;
};
function d3_Map() {}
d3_class(d3_Map, {
has: function(key) {
return d3_map_prefix + key in this;
},
get: function(key) {
return this[d3_map_prefix + key];
},
set: function(key, value) {
return this[d3_map_prefix + key] = value;
},
remove: function(key) {
key = d3_map_prefix + key;
return key in this && delete this[key];
},
keys: function() {
var keys = [];
this.forEach(function(key) {
keys.push(key);
});
return keys;
},
values: function() {
var values = [];
this.forEach(function(key, value) {
values.push(value);
});
return values;
},
entries: function() {
var entries = [];
this.forEach(function(key, value) {
entries.push({
key: key,
value: value
});
});
return entries;
},
forEach: function(f) {
for (var key in this) {
if (key.charCodeAt(0) === d3_map_prefixCode) {
f.call(this, key.substring(1), this[key]);
}
}
}
});
var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
function d3_identity(d) {
return d;
}
function d3_true() {
return true;
}
function d3_functor(v) {
return typeof v === "function" ? v : function() {
return v;
};
}
d3.functor = d3_functor;
d3.rebind = function(target, source) {
var i = 1, n = arguments.length, method;
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
return target;
};
function d3_rebind(target, source, method) {
return function() {
var value = method.apply(source, arguments);
return arguments.length ? target : value;
};
}
d3.ascending = function(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
};
d3.descending = function(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
};
d3.mean = function(array, f) {
var n = array.length, a, m = 0, i = -1, j = 0;
if (arguments.length === 1) {
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
} else {
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
}
return j ? m : undefined;
};
d3.median = function(array, f) {
if (arguments.length > 1) array = array.map(f);
array = array.filter(d3_number);
return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
};
d3.min = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
}
return a;
};
d3.max = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
}
return a;
};
d3.extent = function(array, f) {
var i = -1, n = array.length, a, b, c;
if (arguments.length === 1) {
while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
while (++i < n) if ((b = array[i]) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
} else {
while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
}
return [ a, c ];
};
d3.random = {
normal: function(ยต, ฯƒ) {
var n = arguments.length;
if (n < 2) ฯƒ = 1;
if (n < 1) ยต = 0;
return function() {
var x, y, r;
do {
x = Math.random() * 2 - 1;
y = Math.random() * 2 - 1;
r = x * x + y * y;
} while (!r || r > 1);
return ยต + ฯƒ * x * Math.sqrt(-2 * Math.log(r) / r);
};
},
logNormal: function(ยต, ฯƒ) {
var n = arguments.length;
if (n < 2) ฯƒ = 1;
if (n < 1) ยต = 0;
var random = d3.random.normal();
return function() {
return Math.exp(ยต + ฯƒ * random());
};
},
irwinHall: function(m) {
return function() {
for (var s = 0, j = 0; j < m; j++) s += Math.random();
return s / m;
};
}
};
function d3_number(x) {
return x != null && !isNaN(x);
}
d3.sum = function(array, f) {
var s = 0, n = array.length, a, i = -1;
if (arguments.length === 1) {
while (++i < n) if (!isNaN(a = +array[i])) s += a;
} else {
while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
}
return s;
};
d3.quantile = function(values, p) {
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
return e ? v + e * (values[h] - v) : v;
};
d3.shuffle = function(array) {
var m = array.length, t, i;
while (m) {
i = Math.random() * m-- | 0;
t = array[m], array[m] = array[i], array[i] = t;
}
return array;
};
d3.transpose = function(matrix) {
return d3.zip.apply(d3, matrix);
};
d3.zip = function() {
if (!(n = arguments.length)) return [];
for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
zip[j] = arguments[j][i];
}
}
return zips;
};
function d3_zipLength(d) {
return d.length;
}
d3.bisector = function(f) {
return {
left: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
}
return lo;
},
right: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
}
return lo;
}
};
};
var d3_bisector = d3.bisector(function(d) {
return d;
});
d3.bisectLeft = d3_bisector.left;
d3.bisect = d3.bisectRight = d3_bisector.right;
d3.nest = function() {
var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
function map(array, depth) {
if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map(), values, o = {};
while (++i < n) {
if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
values.push(object);
} else {
valuesByKey.set(keyValue, [ object ]);
}
}
valuesByKey.forEach(function(keyValue, values) {
o[keyValue] = map(values, depth);
});
return o;
}
function entries(map, depth) {
if (depth >= keys.length) return map;
var a = [], sortKey = sortKeys[depth++], key;
for (key in map) {
a.push({
key: key,
values: entries(map[key], depth)
});
}
if (sortKey) a.sort(function(a, b) {
return sortKey(a.key, b.key);
});
return a;
}
nest.map = function(array) {
return map(array, 0);
};
nest.entries = function(array) {
return entries(map(array, 0), 0);
};
nest.key = function(d) {
keys.push(d);
return nest;
};
nest.sortKeys = function(order) {
sortKeys[keys.length - 1] = order;
return nest;
};
nest.sortValues = function(order) {
sortValues = order;
return nest;
};
nest.rollup = function(f) {
rollup = f;
return nest;
};
return nest;
};
d3.keys = function(map) {
var keys = [];
for (var key in map) keys.push(key);
return keys;
};
d3.values = function(map) {
var values = [];
for (var key in map) values.push(map[key]);
return values;
};
d3.entries = function(map) {
var entries = [];
for (var key in map) entries.push({
key: key,
value: map[key]
});
return entries;
};
d3.permute = function(array, indexes) {
var permutes = [], i = -1, n = indexes.length;
while (++i < n) permutes[i] = array[indexes[i]];
return permutes;
};
d3.merge = function(arrays) {
return Array.prototype.concat.apply([], arrays);
};
function d3_collapse(s) {
return s.trim().replace(/\s+/g, " ");
}
d3.range = function(start, stop, step) {
if (arguments.length < 3) {
step = 1;
if (arguments.length < 2) {
stop = start;
start = 0;
}
}
if ((stop - start) / step === Infinity) throw new Error("infinite range");
var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
start *= k, stop *= k, step *= k;
if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
return range;
};
function d3_range_integerScale(x) {
var k = 1;
while (x * k % 1) k *= 10;
return k;
}
d3.requote = function(s) {
return s.replace(d3_requote_re, "\\$&");
};
var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
d3.round = function(x, n) {
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
};
d3.xhr = function(url, mimeType, callback) {
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
request.readyState > 3 && respond();
};
function respond() {
var s = request.status;
!s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
}
request.onprogress = function(event) {
var o = d3.event;
d3.event = event;
try {
dispatch.progress.call(xhr, request);
} finally {
d3.event = o;
}
};
xhr.header = function(name, value) {
name = (name + "").toLowerCase();
if (arguments.length < 2) return headers[name];
if (value == null) delete headers[name]; else headers[name] = value + "";
return xhr;
};
xhr.mimeType = function(value) {
if (!arguments.length) return mimeType;
mimeType = value == null ? null : value + "";
return xhr;
};
xhr.response = function(value) {
response = value;
return xhr;
};
[ "get", "post" ].forEach(function(method) {
xhr[method] = function() {
return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
};
});
xhr.send = function(method, data, callback) {
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
request.open(method, url, true);
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
if (callback != null) xhr.on("error", callback).on("load", function(request) {
callback(null, request);
});
request.send(data == null ? null : data);
return xhr;
};
xhr.abort = function() {
request.abort();
return xhr;
};
d3.rebind(xhr, dispatch, "on");
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
mimeType = null;
return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
};
function d3_xhr_fixCallback(callback) {
return callback.length === 1 ? function(error, request) {
callback(error == null ? request : null);
} : callback;
}
d3.text = function() {
return d3.xhr.apply(d3, arguments).response(d3_text);
};
function d3_text(request) {
return request.responseText;
}
d3.json = function(url, callback) {
return d3.xhr(url, "application/json", callback).response(d3_json);
};
function d3_json(request) {
return JSON.parse(request.responseText);
}
d3.html = function(url, callback) {
return d3.xhr(url, "text/html", callback).response(d3_html);
};
function d3_html(request) {
var range = document.createRange();
range.selectNode(document.body);
return range.createContextualFragment(request.responseText);
}
d3.xml = function() {
return d3.xhr.apply(d3, arguments).response(d3_xml);
};
function d3_xml(request) {
return request.responseXML;
}
var d3_nsPrefix = {
svg: "http://www.w3.org/2000/svg",
xhtml: "http://www.w3.org/1999/xhtml",
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/"
};
d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) {
var i = name.indexOf(":"), prefix = name;
if (i >= 0) {
prefix = name.substring(0, i);
name = name.substring(i + 1);
}
return d3_nsPrefix.hasOwnProperty(prefix) ? {
space: d3_nsPrefix[prefix],
local: name
} : name;
}
};
d3.dispatch = function() {
var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
return dispatch;
};
function d3_dispatch() {}
d3_dispatch.prototype.on = function(type, listener) {
var i = type.indexOf("."), name = "";
if (i > 0) {
name = type.substring(i + 1);
type = type.substring(0, i);
}
return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
};
function d3_dispatch_event(dispatch) {
var listeners = [], listenerByName = new d3_Map();
function event() {
var z = listeners, i = -1, n = z.length, l;
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
return dispatch;
}
event.on = function(name, listener) {
var l = listenerByName.get(name), i;
if (arguments.length < 2) return l && l.on;
if (l) {
l.on = null;
listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
listenerByName.remove(name);
}
if (listener) listeners.push(listenerByName.set(name, {
on: listener
}));
return dispatch;
};
return event;
}
d3.format = function(specifier) {
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
if (precision) precision = +precision.substring(1);
if (zfill || fill === "0" && align === "=") {
zfill = fill = "0";
align = "=";
if (comma) width -= Math.floor((width - 1) / 4);
}
switch (type) {
case "n":
comma = true;
type = "g";
break;
case "%":
scale = 100;
suffix = "%";
type = "f";
break;
case "p":
scale = 100;
suffix = "%";
type = "r";
break;
case "b":
case "o":
case "x":
case "X":
if (basePrefix) basePrefix = "0" + type.toLowerCase();
case "c":
case "d":
integer = true;
precision = 0;
break;
case "s":
scale = -1;
type = "r";
break;
}
if (basePrefix === "#") basePrefix = "";
if (type == "r" && !precision) type = "g";
type = d3_format_types.get(type) || d3_format_typeDefault;
var zcomma = zfill && comma;
return function(value) {
if (integer && value % 1) return "";
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
if (scale < 0) {
var prefix = d3.formatPrefix(value, precision);
value = prefix.scale(value);
suffix = prefix.symbol;
} else {
value *= scale;
}
value = type(value, precision);
if (!zfill && comma) value = d3_format_group(value);
var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
if (zcomma) value = d3_format_group(padding + value);
if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
negative += basePrefix;
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
};
};
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
var d3_format_types = d3.map({
b: function(x) {
return x.toString(2);
},
c: function(x) {
return String.fromCharCode(x);
},
o: function(x) {
return x.toString(8);
},
x: function(x) {
return x.toString(16);
},
X: function(x) {
return x.toString(16).toUpperCase();
},
g: function(x, p) {
return x.toPrecision(p);
},
e: function(x, p) {
return x.toExponential(p);
},
f: function(x, p) {
return x.toFixed(p);
},
r: function(x, p) {
return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p)));
}
});
function d3_format_precision(x, p) {
return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
}
function d3_format_typeDefault(x) {
return x + "";
}
var d3_format_group = d3_identity;
if (d3_format_grouping) {
var d3_format_groupingLength = d3_format_grouping.length;
d3_format_group = function(value) {
var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length,
""), t = [], j = 0, g = d3_format_grouping[0];
while (i > 0 && g > 0) {
t.push(value.substring(i -= g, i + g));
g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
}
return t.reverse().join(d3_format_thousandsSeparator || "") + f;
};
}
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "ฮผ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
d3.formatPrefix = function(value, precision) {
var i = 0;
if (value) {
if (value < 0) value *= -1;
if (precision) value = d3.round(value, d3_format_precision(value, precision));
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
}
return d3_formatPrefixes[8 + i / 3];
};
function d3_formatPrefix(d, i) {
var k = Math.pow(10, Math.abs(8 - i) * 3);
return {
scale: i > 8 ? function(d) {
return d / k;
} : function(d) {
return d * k;
},
symbol: d
};
}
var d3_ease_default = function() {
return d3_identity;
};
var d3_ease = d3.map({
linear: d3_ease_default,
poly: d3_ease_poly,
quad: function() {
return d3_ease_quad;
},
cubic: function() {
return d3_ease_cubic;
},
sin: function() {
return d3_ease_sin;
},
exp: function() {
return d3_ease_exp;
},
circle: function() {
return d3_ease_circle;
},
elastic: d3_ease_elastic,
back: d3_ease_back,
bounce: function() {
return d3_ease_bounce;
}
});
var d3_ease_mode = d3.map({
"in": d3_identity,
out: d3_ease_reverse,
"in-out": d3_ease_reflect,
"out-in": function(f) {
return d3_ease_reflect(d3_ease_reverse(f));
}
});
d3.ease = function(name) {
var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
t = d3_ease.get(t) || d3_ease_default;
m = d3_ease_mode.get(m) || d3_identity;
return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
};
function d3_ease_clamp(f) {
return function(t) {
return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
};
}
function d3_ease_reverse(f) {
return function(t) {
return 1 - f(1 - t);
};
}
function d3_ease_reflect(f) {
return function(t) {
return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
};
}
function d3_ease_quad(t) {
return t * t;
}
function d3_ease_cubic(t) {
return t * t * t;
}
function d3_ease_cubicInOut(t) {
if (t <= 0) return 0;
if (t >= 1) return 1;
var t2 = t * t, t3 = t2 * t;
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
}
function d3_ease_poly(e) {
return function(t) {
return Math.pow(t, e);
};
}
function d3_ease_sin(t) {
return 1 - Math.cos(t * ฯ€ / 2);
}
function d3_ease_exp(t) {
return Math.pow(2, 10 * (t - 1));
}
function d3_ease_circle(t) {
return 1 - Math.sqrt(1 - t * t);
}
function d3_ease_elastic(a, p) {
var s;
if (arguments.length < 2) p = .45;
if (arguments.length) s = p / (2 * ฯ€) * Math.asin(1 / a); else a = 1, s = p / 4;
return function(t) {
return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * ฯ€ / p);
};
}
function d3_ease_back(s) {
if (!s) s = 1.70158;
return function(t) {
return t * t * ((s + 1) * t - s);
};
}
function d3_ease_bounce(t) {
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
}
d3.event = null;
function d3_eventCancel() {
d3.event.stopPropagation();
d3.event.preventDefault();
}
function d3_eventSource() {
var e = d3.event, s;
while (s = e.sourceEvent) e = s;
return e;
}
function d3_eventDispatch(target) {
var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
dispatch.of = function(thiz, argumentz) {
return function(e1) {
try {
var e0 = e1.sourceEvent = d3.event;
e1.target = target;
d3.event = e1;
dispatch[e1.type].apply(thiz, argumentz);
} finally {
d3.event = e0;
}
};
};
return dispatch;
}
d3.transform = function(string) {
var g = document.createElementNS(d3.ns.prefix.svg, "g");
return (d3.transform = function(string) {
g.setAttribute("transform", string);
var t = g.transform.baseVal.consolidate();
return new d3_transform(t ? t.matrix : d3_transformIdentity);
})(string);
};
function d3_transform(m) {
var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
if (r0[0] * r1[1] < r1[0] * r0[1]) {
r0[0] *= -1;
r0[1] *= -1;
kx *= -1;
kz *= -1;
}
this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
this.translate = [ m.e, m.f ];
this.scale = [ kx, ky ];
this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
}
d3_transform.prototype.toString = function() {
return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
};
function d3_transformDot(a, b) {
return a[0] * b[0] + a[1] * b[1];
}
function d3_transformNormalize(a) {
var k = Math.sqrt(d3_transformDot(a, a));
if (k) {
a[0] /= k;
a[1] /= k;
}
return k;
}
function d3_transformCombine(a, b, k) {
a[0] += k * b[0];
a[1] += k * b[1];
return a;
}
var d3_transformIdentity = {
a: 1,
b: 0,
c: 0,
d: 1,
e: 0,
f: 0
};
d3.interpolate = function(a, b) {
var i = d3.interpolators.length, f;
while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
return f;
};
d3.interpolateNumber = function(a, b) {
b -= a;
return function(t) {
return a + b * t;
};
};
d3.interpolateRound = function(a, b) {
b -= a;
return function(t) {
return Math.round(a + b * t);
};
};
d3.interpolateString = function(a, b) {
var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
d3_interpolate_number.lastIndex = 0;
for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
if (m.index) s.push(b.substring(s0, s1 = m.index));
q.push({
i: s.length,
x: m[0]
});
s.push(null);
s0 = d3_interpolate_number.lastIndex;
}
if (s0 < b.length) s.push(b.substring(s0));
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
o = q[i];
if (o.x == m[0]) {
if (o.i) {
if (s[o.i + 1] == null) {
s[o.i - 1] += o.x;
s.splice(o.i, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
} else {
s[o.i - 1] += o.x + s[o.i + 1];
s.splice(o.i, 2);
for (j = i + 1; j < n; ++j) q[j].i -= 2;
}
} else {
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
}
}
q.splice(i, 1);
n--;
i--;
} else {
o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
}
}
while (i < n) {
o = q.pop();
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
}
n--;
}
if (s.length === 1) {
return s[0] == null ? q[0].x : function() {
return b;
};
}
return function(t) {
for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
};
d3.interpolateTransform = function(a, b) {
var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
if (ta[0] != tb[0] || ta[1] != tb[1]) {
s.push("translate(", null, ",", null, ")");
q.push({
i: 1,
x: d3.interpolateNumber(ta[0], tb[0])
}, {
i: 3,
x: d3.interpolateNumber(ta[1], tb[1])
});
} else if (tb[0] || tb[1]) {
s.push("translate(" + tb + ")");
} else {
s.push("");
}
if (ra != rb) {
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
q.push({
i: s.push(s.pop() + "rotate(", null, ")") - 2,
x: d3.interpolateNumber(ra, rb)
});
} else if (rb) {
s.push(s.pop() + "rotate(" + rb + ")");
}
if (wa != wb) {
q.push({
i: s.push(s.pop() + "skewX(", null, ")") - 2,
x: d3.interpolateNumber(wa, wb)
});
} else if (wb) {
s.push(s.pop() + "skewX(" + wb + ")");
}
if (ka[0] != kb[0] || ka[1] != kb[1]) {
n = s.push(s.pop() + "scale(", null, ",", null, ")");
q.push({
i: n - 4,
x: d3.interpolateNumber(ka[0], kb[0])
}, {
i: n - 2,
x: d3.interpolateNumber(ka[1], kb[1])
});
} else if (kb[0] != 1 || kb[1] != 1) {
s.push(s.pop() + "scale(" + kb + ")");
}
n = q.length;
return function(t) {
var i = -1, o;
while (++i < n) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
};
d3.interpolateRgb = function(a, b) {
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
return function(t) {
return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
};
};
d3.interpolateHsl = function(a, b) {
a = d3.hsl(a);
b = d3.hsl(b);
var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
return function(t) {
return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
};
};
d3.interpolateLab = function(a, b) {
a = d3.lab(a);
b = d3.lab(b);
var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
return function(t) {
return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
};
};
d3.interpolateHcl = function(a, b) {
a = d3.hcl(a);
b = d3.hcl(b);
var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
};
};
d3.interpolateArray = function(a, b) {
var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
for (;i < na; ++i) c[i] = a[i];
for (;i < nb; ++i) c[i] = b[i];
return function(t) {
for (i = 0; i < n0; ++i) c[i] = x[i](t);
return c;
};
};
d3.interpolateObject = function(a, b) {
var i = {}, c = {}, k;
for (k in a) {
if (k in b) {
i[k] = d3_interpolateByName(k)(a[k], b[k]);
} else {
c[k] = a[k];
}
}
for (k in b) {
if (!(k in a)) {
c[k] = b[k];
}
}
return function(t) {
for (k in i) c[k] = i[k](t);
return c;
};
};
var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
function d3_interpolateByName(name) {
return name == "transform" ? d3.interpolateTransform : d3.interpolate;
}
d3.interpolators = [ d3.interpolateObject, function(a, b) {
return b instanceof Array && d3.interpolateArray(a, b);
}, function(a, b) {
return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + "");
}, function(a, b) {
return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Color) && d3.interpolateRgb(a, b);
}, function(a, b) {
return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b);
} ];
function d3_uninterpolateNumber(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return (x - a) * b;
};
}
function d3_uninterpolateClamp(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return Math.max(0, Math.min(1, (x - a) * b));
};
}
function d3_Color() {}
d3_Color.prototype.toString = function() {
return this.rgb() + "";
};
d3.rgb = function(r, g, b) {
return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
};
function d3_rgb(r, g, b) {
return new d3_Rgb(r, g, b);
}
function d3_Rgb(r, g, b) {
this.r = r;
this.g = g;
this.b = b;
}
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
d3_rgbPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
var r = this.r, g = this.g, b = this.b, i = 30;
if (!r && !g && !b) return d3_rgb(i, i, i);
if (r && r < i) r = i;
if (g && g < i) g = i;
if (b && b < i) b = i;
return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
};
d3_rgbPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
};
d3_rgbPrototype.hsl = function() {
return d3_rgb_hsl(this.r, this.g, this.b);
};
d3_rgbPrototype.toString = function() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
};
function d3_rgb_hex(v) {
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r = 0, g = 0, b = 0, m1, m2, name;
m1 = /([a-z]+)\((.*)\)/i.exec(format);
if (m1) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl":
{
return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
}
case "rgb":
{
return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
}
}
}
if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
if (format != null && format.charAt(0) === "#") {
if (format.length === 4) {
r = format.charAt(1);
r += r;
g = format.charAt(2);
g += g;
b = format.charAt(3);
b += b;
} else if (format.length === 7) {
r = format.substring(1, 3);
g = format.substring(3, 5);
b = format.substring(5, 7);
}
r = parseInt(r, 16);
g = parseInt(g, 16);
b = parseInt(b, 16);
}
return rgb(r, g, b);
}
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
h *= 60;
} else {
s = h = 0;
}
return d3_hsl(h, s, l);
}
function d3_rgb_lab(r, g, b) {
r = d3_rgb_xyz(r);
g = d3_rgb_xyz(g);
b = d3_rgb_xyz(b);
var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
}
function d3_rgb_xyz(r) {
return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
}
function d3_rgb_parseNumber(c) {
var f = parseFloat(c);
return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
}
var d3_rgb_names = d3.map({
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
});
d3_rgb_names.forEach(function(key, value) {
d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
});
d3.hsl = function(h, s, l) {
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
};
function d3_hsl(h, s, l) {
return new d3_Hsl(h, s, l);
}
function d3_Hsl(h, s, l) {
this.h = h;
this.s = s;
this.l = l;
}
var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
d3_hslPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, this.l / k);
};
d3_hslPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, k * this.l);
};
d3_hslPrototype.rgb = function() {
return d3_hsl_rgb(this.h, this.s, this.l);
};
function d3_hsl_rgb(h, s, l) {
var m1, m2;
h = h % 360;
if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360; else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
d3.hcl = function(h, c, l) {
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
};
function d3_hcl(h, c, l) {
return new d3_Hcl(h, c, l);
}
function d3_Hcl(h, c, l) {
this.h = h;
this.c = c;
this.l = l;
}
var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
d3_hclPrototype.brighter = function(k) {
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.darker = function(k) {
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.rgb = function() {
return d3_hcl_lab(this.h, this.c, this.l).rgb();
};
function d3_hcl_lab(h, c, l) {
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
}
d3.lab = function(l, a, b) {
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
};
function d3_lab(l, a, b) {
return new d3_Lab(l, a, b);
}
function d3_Lab(l, a, b) {
this.l = l;
this.a = a;
this.b = b;
}
var d3_lab_K = 18;
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
var d3_labPrototype = d3_Lab.prototype = new d3_Color();
d3_labPrototype.brighter = function(k) {
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.darker = function(k) {
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.rgb = function() {
return d3_lab_rgb(this.l, this.a, this.b);
};
function d3_lab_rgb(l, a, b) {
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
x = d3_lab_xyz(x) * d3_lab_X;
y = d3_lab_xyz(y) * d3_lab_Y;
z = d3_lab_xyz(z) * d3_lab_Z;
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
}
function d3_lab_hcl(l, a, b) {
return d3_hcl(Math.atan2(b, a) / ฯ€ * 180, Math.sqrt(a * a + b * b), l);
}
function d3_lab_xyz(x) {
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
}
function d3_xyz_lab(x) {
return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
}
function d3_xyz_rgb(r) {
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
}
function d3_selection(groups) {
d3_arraySubclass(groups, d3_selectionPrototype);
return groups;
}
var d3_select = function(s, n) {
return n.querySelector(s);
}, d3_selectAll = function(s, n) {
return n.querySelectorAll(s);
}, d3_selectRoot = document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
return d3_selectMatcher.call(n, s);
};
if (typeof Sizzle === "function") {
d3_select = function(s, n) {
return Sizzle(s, n)[0] || null;
};
d3_selectAll = function(s, n) {
return Sizzle.uniqueSort(Sizzle(s, n));
};
d3_selectMatches = Sizzle.matchesSelector;
}
var d3_selectionPrototype = [];
d3.selection = function() {
return d3_selectionRoot;
};
d3.selection.prototype = d3_selectionPrototype;
d3_selectionPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, group, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(subnode = selector.call(node, node.__data__, i));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selector(selector) {
return function() {
return d3_select(selector, this);
};
}
d3_selectionPrototype.selectAll = function(selector) {
var subgroups = [], subgroup, node;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
subgroup.parentNode = node;
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selectorAll(selector) {
return function() {
return d3_selectAll(selector, this);
};
}
d3_selectionPrototype.attr = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node();
name = d3.ns.qualify(name);
return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
}
for (value in name) this.each(d3_selection_attr(value, name[value]));
return this;
}
return this.each(d3_selection_attr(name, value));
};
function d3_selection_attr(name, value) {
name = d3.ns.qualify(name);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrConstant() {
this.setAttribute(name, value);
}
function attrConstantNS() {
this.setAttributeNS(name.space, name.local, value);
}
function attrFunction() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
}
function attrFunctionNS() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
}
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
}
d3_selectionPrototype.classed = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
if (value = node.classList) {
while (++i < n) if (!value.contains(name[i])) return false;
} else {
value = node.className;
if (value.baseVal != null) value = value.baseVal;
while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
}
return true;
}
for (value in name) this.each(d3_selection_classed(value, name[value]));
return this;
}
return this.each(d3_selection_classed(name, value));
};
function d3_selection_classedRe(name) {
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
}
function d3_selection_classed(name, value) {
name = name.trim().split(/\s+/).map(d3_selection_classedName);
var n = name.length;
function classedConstant() {
var i = -1;
while (++i < n) name[i](this, value);
}
function classedFunction() {
var i = -1, x = value.apply(this, arguments);
while (++i < n) name[i](this, x);
}
return typeof value === "function" ? classedFunction : classedConstant;
}
function d3_selection_classedName(name) {
var re = d3_selection_classedRe(name);
return function(node, value) {
if (c = node.classList) return value ? c.add(name) : c.remove(name);
var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c;
if (value) {
re.lastIndex = 0;
if (!re.test(cv)) {
cv = d3_collapse(cv + " " + name);
if (cb) c.baseVal = cv; else node.className = cv;
}
} else if (cv) {
cv = d3_collapse(cv.replace(re, " "));
if (cb) c.baseVal = cv; else node.className = cv;
}
};
}
d3_selectionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
return this;
}
if (n < 2) return getComputedStyle(this.node(), null).getPropertyValue(name);
priority = "";
}
return this.each(d3_selection_style(name, value, priority));
};
function d3_selection_style(name, value, priority) {
function styleNull() {
this.style.removeProperty(name);
}
function styleConstant() {
this.style.setProperty(name, value, priority);
}
function styleFunction() {
var x = value.apply(this, arguments);
if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
}
return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
}
d3_selectionPrototype.property = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") return this.node()[name];
for (value in name) this.each(d3_selection_property(value, name[value]));
return this;
}
return this.each(d3_selection_property(name, value));
};
function d3_selection_property(name, value) {
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name]; else this[name] = x;
}
return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
}
d3_selectionPrototype.text = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.textContent = v == null ? "" : v;
} : value == null ? function() {
this.textContent = "";
} : function() {
this.textContent = value;
}) : this.node().textContent;
};
d3_selectionPrototype.html = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.innerHTML = v == null ? "" : v;
} : value == null ? function() {
this.innerHTML = "";
} : function() {
this.innerHTML = value;
}) : this.node().innerHTML;
};
d3_selectionPrototype.append = function(name) {
name = d3.ns.qualify(name);
function append() {
return this.appendChild(document.createElementNS(this.namespaceURI, name));
}
function appendNS() {
return this.appendChild(document.createElementNS(name.space, name.local));
}
return this.select(name.local ? appendNS : append);
};
d3_selectionPrototype.insert = function(name, before) {
name = d3.ns.qualify(name);
function insert() {
return this.insertBefore(document.createElementNS(this.namespaceURI, name), d3_select(before, this));
}
function insertNS() {
return this.insertBefore(document.createElementNS(name.space, name.local), d3_select(before, this));
}
return this.select(name.local ? insertNS : insert);
};
d3_selectionPrototype.remove = function() {
return this.each(function() {
var parent = this.parentNode;
if (parent) parent.removeChild(this);
});
};
d3_selectionPrototype.data = function(value, key) {
var i = -1, n = this.length, group, node;
if (!arguments.length) {
value = new Array(n = (group = this[0]).length);
while (++i < n) {
if (node = group[i]) {
value[i] = node.__data__;
}
}
return value;
}
function bind(group, groupData) {
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
if (key) {
var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
for (i = -1; ++i < n; ) {
keyValue = key.call(node = group[i], node.__data__, i);
if (nodeByKeyValue.has(keyValue)) {
exitNodes[i] = node;
} else {
nodeByKeyValue.set(keyValue, node);
}
keyValues.push(keyValue);
}
for (i = -1; ++i < m; ) {
keyValue = key.call(groupData, nodeData = groupData[i], i);
if (node = nodeByKeyValue.get(keyValue)) {
updateNodes[i] = node;
node.__data__ = nodeData;
} else if (!dataByKeyValue.has(keyValue)) {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
dataByKeyValue.set(keyValue, nodeData);
nodeByKeyValue.remove(keyValue);
}
for (i = -1; ++i < n; ) {
if (nodeByKeyValue.has(keyValues[i])) {
exitNodes[i] = group[i];
}
}
} else {
for (i = -1; ++i < n0; ) {
node = group[i];
nodeData = groupData[i];
if (node) {
node.__data__ = nodeData;
updateNodes[i] = node;
} else {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
}
for (;i < m; ++i) {
enterNodes[i] = d3_selection_dataNode(groupData[i]);
}
for (;i < n; ++i) {
exitNodes[i] = group[i];
}
}
enterNodes.update = updateNodes;
enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
enter.push(enterNodes);
update.push(updateNodes);
exit.push(exitNodes);
}
var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
if (typeof value === "function") {
while (++i < n) {
bind(group = this[i], value.call(group, group.parentNode.__data__, i));
}
} else {
while (++i < n) {
bind(group = this[i], value);
}
}
update.enter = function() {
return enter;
};
update.exit = function() {
return exit;
};
return update;
};
function d3_selection_dataNode(data) {
return {
__data__: data
};
}
d3_selectionPrototype.datum = function(value) {
return arguments.length ? this.property("__data__", value) : this.property("__data__");
};
d3_selectionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_filter(selector) {
return function() {
return d3_selectMatches(this, selector);
};
}
d3_selectionPrototype.order = function() {
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
if (node = group[i]) {
if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
next = node;
}
}
}
return this;
};
d3_selectionPrototype.sort = function(comparator) {
comparator = d3_selection_sortComparator.apply(this, arguments);
for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
return this.order();
};
function d3_selection_sortComparator(comparator) {
if (!arguments.length) comparator = d3.ascending;
return function(a, b) {
return comparator(a && a.__data__, b && b.__data__);
};
}
d3_selectionPrototype.on = function(type, listener, capture) {
var n = arguments.length;
if (n < 3) {
if (typeof type !== "string") {
if (n < 2) listener = false;
for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
return this;
}
if (n < 2) return (n = this.node()["__on" + type]) && n._;
capture = false;
}
return this.each(d3_selection_on(type, listener, capture));
};
function d3_selection_on(type, listener, capture) {
var name = "__on" + type, i = type.indexOf(".");
if (i > 0) type = type.substring(0, i);
function onRemove() {
var wrapper = this[name];
if (wrapper) {
this.removeEventListener(type, wrapper, wrapper.$);
delete this[name];
}
}
function onAdd() {
var node = this, args = d3_array(arguments);
onRemove.call(this);
this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture);
wrapper._ = listener;
function wrapper(e) {
var o = d3.event;
d3.event = e;
args[0] = node.__data__;
try {
listener.apply(node, args);
} finally {
d3.event = o;
}
}
}
return listener ? onAdd : onRemove;
}
d3_selectionPrototype.each = function(callback) {
return d3_selection_each(this, function(node, i, j) {
callback.call(node, node.__data__, i, j);
});
};
function d3_selection_each(groups, callback) {
for (var j = 0, m = groups.length; j < m; j++) {
for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
if (node = group[i]) callback(node, i, j);
}
}
return groups;
}
d3_selectionPrototype.call = function(callback) {
var args = d3_array(arguments);
callback.apply(args[0] = this, args);
return this;
};
d3_selectionPrototype.empty = function() {
return !this.node();
};
d3_selectionPrototype.node = function() {
for (var j = 0, m = this.length; j < m; j++) {
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
var node = group[i];
if (node) return node;
}
}
return null;
};
d3_selectionPrototype.transition = function() {
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
transition.time = Date.now();
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) d3_transitionNode(node, i, id, transition);
subgroup.push(node);
}
}
return d3_transition(subgroups, id);
};
var d3_selectionRoot = d3_selection([ [ document ] ]);
d3_selectionRoot[0].parentNode = d3_selectRoot;
d3.select = function(selector) {
return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
};
d3.selectAll = function(selector) {
return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
};
function d3_selection_enter(selection) {
d3_arraySubclass(selection, d3_selection_enterPrototype);
return selection;
}
var d3_selection_enterPrototype = [];
d3.selection.enter = d3_selection_enter;
d3.selection.enter.prototype = d3_selection_enterPrototype;
d3_selection_enterPrototype.append = d3_selectionPrototype.append;
d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
d3_selection_enterPrototype.node = d3_selectionPrototype.node;
d3_selection_enterPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, upgroup, group, node;
for (var j = -1, m = this.length; ++j < m; ) {
upgroup = (group = this[j]).update;
subgroups.push(subgroup = []);
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_transition(groups, id) {
d3_arraySubclass(groups, d3_transitionPrototype);
groups.id = id;
return groups;
}
var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
ease: d3_ease_cubicInOut,
delay: 0,
duration: 250
};
d3_transitionPrototype.call = d3_selectionPrototype.call;
d3_transitionPrototype.empty = d3_selectionPrototype.empty;
d3_transitionPrototype.node = d3_selectionPrototype.node;
d3.transition = function(selection) {
return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
};
d3.transition.prototype = d3_transitionPrototype;
function d3_transitionNode(node, i, id, inherit) {
var lock = node.__transition__ || (node.__transition__ = {
active: 0,
count: 0
}), transition = lock[id];
if (!transition) {
var time = inherit.time;
transition = lock[id] = {
tween: new d3_Map(),
event: d3.dispatch("start", "end"),
time: time,
ease: inherit.ease,
delay: inherit.delay,
duration: inherit.duration
};
++lock.count;
d3.timer(function(elapsed) {
var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
function start(elapsed) {
if (lock.active > id) return stop();
lock.active = id;
event.start.call(node, d, i);
transition.tween.forEach(function(key, value) {
if (value = value.call(node, d, i)) {
tweened.push(value);
}
});
if (!tick(elapsed)) d3.timer(tick, 0, time);
return 1;
}
function tick(elapsed) {
if (lock.active !== id) return stop();
var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
while (n > 0) {
tweened[--n].call(node, e);
}
if (t >= 1) {
stop();
event.end.call(node, d, i);
return 1;
}
}
function stop() {
if (--lock.count) delete lock[id]; else delete node.__transition__;
return 1;
}
}, 0, time);
return transition;
}
}
d3_transitionPrototype.select = function(selector) {
var id = this.id, subgroups = [], subgroup, subnode, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
d3_transitionNode(subnode, i, id, node.__transition__[id]);
subgroup.push(subnode);
} else {
subgroup.push(null);
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.selectAll = function(selector) {
var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
transition = node.__transition__[id];
subnodes = selector.call(node, node.__data__, i);
subgroups.push(subgroup = []);
for (var k = -1, o = subnodes.length; ++k < o; ) {
d3_transitionNode(subnode = subnodes[k], k, id, transition);
subgroup.push(subnode);
}
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_transition(subgroups, this.id, this.time).ease(this.ease());
};
d3_transitionPrototype.attr = function(nameNS, value) {
if (arguments.length < 2) {
for (value in nameNS) this.attr(value, nameNS[value]);
return this;
}
var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
return d3_transition_tween(this, "attr." + nameNS, value, function(b) {
function attrString() {
var a = this.getAttribute(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttribute(name, i(t));
});
}
function attrStringNS() {
var a = this.getAttributeNS(name.space, name.local), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttributeNS(name.space, name.local, i(t));
});
}
return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString);
});
};
d3_transitionPrototype.attrTween = function(nameNS, tween) {
var name = d3.ns.qualify(nameNS);
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return f && function(t) {
this.setAttribute(name, f(t));
};
}
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return f && function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.style(priority, name[priority], value);
return this;
}
priority = "";
}
var interpolate = d3_interpolateByName(name);
function styleNull() {
this.style.removeProperty(name);
}
return d3_transition_tween(this, "style." + name, value, function(b) {
function styleString() {
var a = getComputedStyle(this, null).getPropertyValue(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.style.setProperty(name, i(t), priority);
});
}
return b == null ? styleNull : (b += "", styleString);
});
};
d3_transitionPrototype.styleTween = function(name, tween, priority) {
if (arguments.length < 3) priority = "";
return this.tween("style." + name, function(d, i) {
var f = tween.call(this, d, i, getComputedStyle(this, null).getPropertyValue(name));
return f && function(t) {
this.style.setProperty(name, f(t), priority);
};
});
};
d3_transitionPrototype.text = function(value) {
return d3_transition_tween(this, "text", value, d3_transition_text);
};
function d3_transition_text(b) {
if (b == null) b = "";
return function() {
this.textContent = b;
};
}
d3_transitionPrototype.remove = function() {
return this.each("end.transition", function() {
var p;
if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
});
};
d3_transitionPrototype.ease = function(value) {
var id = this.id;
if (arguments.length < 1) return this.node().__transition__[id].ease;
if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
return d3_selection_each(this, function(node) {
node.__transition__[id].ease = value;
});
};
d3_transitionPrototype.delay = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
} : (value |= 0, function(node) {
node.__transition__[id].delay = value;
}));
};
d3_transitionPrototype.duration = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
} : (value = Math.max(1, value | 0), function(node) {
node.__transition__[id].duration = value;
}));
};
d3_transitionPrototype.each = function(type, listener) {
var id = this.id;
if (arguments.length < 2) {
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
d3_transitionInheritId = id;
d3_selection_each(this, function(node, i, j) {
d3_transitionInherit = node.__transition__[id];
type.call(node, node.__data__, i, j);
});
d3_transitionInherit = inherit;
d3_transitionInheritId = inheritId;
} else {
d3_selection_each(this, function(node) {
node.__transition__[id].event.on(type, listener);
});
}
return this;
};
d3_transitionPrototype.transition = function() {
var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if (node = group[i]) {
transition = Object.create(node.__transition__[id0]);
transition.delay += transition.duration;
d3_transitionNode(node, i, id1, transition);
}
subgroup.push(node);
}
}
return d3_transition(subgroups, id1);
};
d3_transitionPrototype.tween = function(name, tween) {
var id = this.id;
if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
return d3_selection_each(this, tween == null ? function(node) {
node.__transition__[id].tween.remove(name);
} : function(node) {
node.__transition__[id].tween.set(name, tween);
});
};
function d3_transition_tween(groups, name, value, tween) {
var id = groups.id;
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
} : (value = tween(value), function(node) {
node.__transition__[id].tween.set(name, value);
}));
}
var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
d3.timer = function(callback, delay, then) {
if (arguments.length < 3) {
if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
then = Date.now();
}
var timer = d3_timer_byId[callback.id];
if (timer && timer.callback === callback) {
timer.then = then;
timer.delay = delay;
} else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
callback: callback,
then: then,
delay: delay,
next: d3_timer_queue
};
if (!d3_timer_interval) {
d3_timer_timeout = clearTimeout(d3_timer_timeout);
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
};
function d3_timer_step() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
var delay = d3_timer_flush() - now;
if (delay > 24) {
if (isFinite(delay)) {
clearTimeout(d3_timer_timeout);
d3_timer_timeout = setTimeout(d3_timer_step, delay);
}
d3_timer_interval = 0;
} else {
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
}
d3.timer.flush = function() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (!t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
d3_timer_flush();
};
function d3_timer_flush() {
var t0 = null, t1 = d3_timer_queue, then = Infinity;
while (t1) {
if (t1.flush) {
delete d3_timer_byId[t1.callback.id];
t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
} else {
then = Math.min(then, t1.then + t1.delay);
t1 = (t0 = t1).next;
}
}
return then;
}
var d3_timer_frame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) {
setTimeout(callback, 17);
};
d3.mouse = function(container) {
return d3_mousePoint(container, d3_eventSource());
};
var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
function d3_mousePoint(container, e) {
var svg = container.ownerSVGElement || container;
if (svg.createSVGPoint) {
var point = svg.createSVGPoint();
if (d3_mouse_bug44083 < 0 && (window.scrollX || window.scrollY)) {
svg = d3.select(document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
var ctm = svg[0][0].getScreenCTM();
d3_mouse_bug44083 = !(ctm.f || ctm.e);
svg.remove();
}
if (d3_mouse_bug44083) {
point.x = e.pageX;
point.y = e.pageY;
} else {
point.x = e.clientX;
point.y = e.clientY;
}
point = point.matrixTransform(container.getScreenCTM().inverse());
return [ point.x, point.y ];
}
var rect = container.getBoundingClientRect();
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
}
d3.touches = function(container, touches) {
if (arguments.length < 2) touches = d3_eventSource().touches;
return touches ? d3_array(touches).map(function(touch) {
var point = d3_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
}) : [];
};
function d3_noop() {}
d3.scale = {};
function d3_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_scaleRange(scale) {
return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
}
function d3_scale_nice(domain, nice) {
var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
if (x1 < x0) {
dx = i0, i0 = i1, i1 = dx;
dx = x0, x0 = x1, x1 = dx;
}
if (nice = nice(x1 - x0)) {
domain[i0] = nice.floor(x0);
domain[i1] = nice.ceil(x1);
}
return domain;
}
function d3_scale_niceDefault() {
return Math;
}
d3.scale.linear = function() {
return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false);
};
function d3_scale_linear(domain, range, interpolate, clamp) {
var output, input;
function rescale() {
var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
output = linear(domain, range, uninterpolate, interpolate);
input = linear(range, domain, uninterpolate, d3.interpolate);
return scale;
}
function scale(x) {
return output(x);
}
scale.invert = function(y) {
return input(y);
};
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.map(Number);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.rangeRound = function(x) {
return scale.range(x).interpolate(d3.interpolateRound);
};
scale.clamp = function(x) {
if (!arguments.length) return clamp;
clamp = x;
return rescale();
};
scale.interpolate = function(x) {
if (!arguments.length) return interpolate;
interpolate = x;
return rescale();
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m) {
return d3_scale_linearTickFormat(domain, m);
};
scale.nice = function() {
d3_scale_nice(domain, d3_scale_linearNice);
return rescale();
};
scale.copy = function() {
return d3_scale_linear(domain, range, interpolate, clamp);
};
return rescale();
}
function d3_scale_linearRebind(scale, linear) {
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_scale_linearNice(dx) {
dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
return dx && {
floor: function(x) {
return Math.floor(x / dx) * dx;
},
ceil: function(x) {
return Math.ceil(x / dx) * dx;
}
};
}
function d3_scale_linearTickRange(domain, m) {
var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
extent[0] = Math.ceil(extent[0] / step) * step;
extent[1] = Math.floor(extent[1] / step) * step + step * .5;
extent[2] = step;
return extent;
}
function d3_scale_linearTicks(domain, m) {
return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
}
function d3_scale_linearTickFormat(domain, m) {
return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
}
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
return function(x) {
return i(u(x));
};
}
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
if (domain[k] < domain[0]) {
domain = domain.slice().reverse();
range = range.slice().reverse();
}
while (++j <= k) {
u.push(uninterpolate(domain[j - 1], domain[j]));
i.push(interpolate(range[j - 1], range[j]));
}
return function(x) {
var j = d3.bisect(domain, x, 1, k) - 1;
return i[j](u[j](x));
};
}
d3.scale.log = function() {
return d3_scale_log(d3.scale.linear(), d3_scale_logp);
};
function d3_scale_log(linear, log) {
var pow = log.pow;
function scale(x) {
return linear(log(x));
}
scale.invert = function(x) {
return pow(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(pow);
log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
pow = log.pow;
linear.domain(x.map(log));
return scale;
};
scale.nice = function() {
linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
return scale;
};
scale.ticks = function() {
var extent = d3_scaleExtent(linear.domain()), ticks = [];
if (extent.every(isFinite)) {
var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]);
if (log === d3_scale_logn) {
ticks.push(pow(i));
for (;i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
} else {
for (;i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
ticks.push(pow(i));
}
for (i = 0; ticks[i] < u; i++) {}
for (j = ticks.length; ticks[j - 1] > v; j--) {}
ticks = ticks.slice(i, j);
}
return ticks;
};
scale.tickFormat = function(n, format) {
if (arguments.length < 2) format = d3_scale_logFormat;
if (!arguments.length) return format;
var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12,
Math.floor) : (e = 1e-12, Math.ceil), e;
return function(d) {
return d / pow(f(log(d) + e)) <= k ? format(d) : "";
};
};
scale.copy = function() {
return d3_scale_log(linear.copy(), log);
};
return d3_scale_linearRebind(scale, linear);
}
var d3_scale_logFormat = d3.format(".0e");
function d3_scale_logp(x) {
return Math.log(x < 0 ? 0 : x) / Math.LN10;
}
function d3_scale_logn(x) {
return -Math.log(x > 0 ? 0 : -x) / Math.LN10;
}
d3_scale_logp.pow = function(x) {
return Math.pow(10, x);
};
d3_scale_logn.pow = function(x) {
return -Math.pow(10, -x);
};
d3.scale.pow = function() {
return d3_scale_pow(d3.scale.linear(), 1);
};
function d3_scale_pow(linear, exponent) {
var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
function scale(x) {
return linear(powp(x));
}
scale.invert = function(x) {
return powb(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(powb);
linear.domain(x.map(powp));
return scale;
};
scale.ticks = function(m) {
return d3_scale_linearTicks(scale.domain(), m);
};
scale.tickFormat = function(m) {
return d3_scale_linearTickFormat(scale.domain(), m);
};
scale.nice = function() {
return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
};
scale.exponent = function(x) {
if (!arguments.length) return exponent;
var domain = scale.domain();
powp = d3_scale_powPow(exponent = x);
powb = d3_scale_powPow(1 / exponent);
return scale.domain(domain);
};
scale.copy = function() {
return d3_scale_pow(linear.copy(), exponent);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_scale_powPow(e) {
return function(x) {
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
};
}
d3.scale.sqrt = function() {
return d3.scale.pow().exponent(.5);
};
d3.scale.ordinal = function() {
return d3_scale_ordinal([], {
t: "range",
a: [ [] ]
});
};
function d3_scale_ordinal(domain, ranger) {
var index, range, rangeBand;
function scale(x) {
return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
}
function steps(start, step) {
return d3.range(domain.length).map(function(i) {
return start + step * i;
});
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = [];
index = new d3_Map();
var i = -1, n = x.length, xi;
while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
return scale[ranger.t].apply(scale, ranger.a);
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
rangeBand = 0;
ranger = {
t: "range",
a: arguments
};
return scale;
};
scale.rangePoints = function(x, padding) {
if (arguments.length < 2) padding = 0;
var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
rangeBand = 0;
ranger = {
t: "rangePoints",
a: arguments
};
return scale;
};
scale.rangeBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
range = steps(start + step * outerPadding, step);
if (reverse) range.reverse();
rangeBand = step * (1 - padding);
ranger = {
t: "rangeBands",
a: arguments
};
return scale;
};
scale.rangeRoundBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
range = steps(start + Math.round(error / 2), step);
if (reverse) range.reverse();
rangeBand = Math.round(step * (1 - padding));
ranger = {
t: "rangeRoundBands",
a: arguments
};
return scale;
};
scale.rangeBand = function() {
return rangeBand;
};
scale.rangeExtent = function() {
return d3_scaleExtent(ranger.a[0]);
};
scale.copy = function() {
return d3_scale_ordinal(domain, ranger);
};
return scale.domain(domain);
}
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
d3.scale.quantile = function() {
return d3_scale_quantile([], []);
};
function d3_scale_quantile(domain, range) {
var thresholds;
function rescale() {
var k = 0, q = range.length;
thresholds = [];
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
return scale;
}
function scale(x) {
if (isNaN(x = +x)) return NaN;
return range[d3.bisect(thresholds, x)];
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.filter(function(d) {
return !isNaN(d);
}).sort(d3.ascending);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.quantiles = function() {
return thresholds;
};
scale.copy = function() {
return d3_scale_quantile(domain, range);
};
return rescale();
}
d3.scale.quantize = function() {
return d3_scale_quantize(0, 1, [ 0, 1 ]);
};
function d3_scale_quantize(x0, x1, range) {
var kx, i;
function scale(x) {
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
}
function rescale() {
kx = range.length / (x1 - x0);
i = range.length - 1;
return scale;
}
scale.domain = function(x) {
if (!arguments.length) return [ x0, x1 ];
x0 = +x[0];
x1 = +x[x.length - 1];
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.copy = function() {
return d3_scale_quantize(x0, x1, range);
};
return rescale();
}
d3.scale.threshold = function() {
return d3_scale_threshold([ .5 ], [ 0, 1 ]);
};
function d3_scale_threshold(domain, range) {
function scale(x) {
return range[d3.bisect(domain, x)];
}
scale.domain = function(_) {
if (!arguments.length) return domain;
domain = _;
return scale;
};
scale.range = function(_) {
if (!arguments.length) return range;
range = _;
return scale;
};
scale.copy = function() {
return d3_scale_threshold(domain, range);
};
return scale;
}
d3.scale.identity = function() {
return d3_scale_identity([ 0, 1 ]);
};
function d3_scale_identity(domain) {
function identity(x) {
return +x;
}
identity.invert = identity;
identity.domain = identity.range = function(x) {
if (!arguments.length) return domain;
domain = x.map(identity);
return identity;
};
identity.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
identity.tickFormat = function(m) {
return d3_scale_linearTickFormat(domain, m);
};
identity.copy = function() {
return d3_scale_identity(domain);
};
return identity;
}
d3.svg = {};
d3.svg.arc = function() {
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function arc() {
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
a0 = a1, a1 = da), a1 - a0), df = da < ฯ€ ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
}
arc.innerRadius = function(v) {
if (!arguments.length) return innerRadius;
innerRadius = d3_functor(v);
return arc;
};
arc.outerRadius = function(v) {
if (!arguments.length) return outerRadius;
outerRadius = d3_functor(v);
return arc;
};
arc.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return arc;
};
arc.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return arc;
};
arc.centroid = function() {
var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
return [ Math.cos(a) * r, Math.sin(a) * r ];
};
return arc;
};
var d3_svg_arcOffset = -ฯ€ / 2, d3_svg_arcMax = 2 * ฯ€ - 1e-6;
function d3_svg_arcInnerRadius(d) {
return d.innerRadius;
}
function d3_svg_arcOuterRadius(d) {
return d.outerRadius;
}
function d3_svg_arcStartAngle(d) {
return d.startAngle;
}
function d3_svg_arcEndAngle(d) {
return d.endAngle;
}
function d3_svg_line(projection) {
var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
function line(data) {
var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
function segment() {
segments.push("M", interpolate(projection(points), tension));
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
} else if (points.length) {
segment();
points = [];
}
}
if (points.length) segment();
return segments.length ? segments.join("") : null;
}
line.x = function(_) {
if (!arguments.length) return x;
x = _;
return line;
};
line.y = function(_) {
if (!arguments.length) return y;
y = _;
return line;
};
line.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return line;
};
line.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
return line;
};
line.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return line;
};
return line;
}
d3.svg.line = function() {
return d3_svg_line(d3_identity);
};
function d3_svg_lineX(d) {
return d[0];
}
function d3_svg_lineY(d) {
return d[1];
}
var d3_svg_lineInterpolators = d3.map({
linear: d3_svg_lineLinear,
"linear-closed": d3_svg_lineLinearClosed,
"step-before": d3_svg_lineStepBefore,
"step-after": d3_svg_lineStepAfter,
basis: d3_svg_lineBasis,
"basis-open": d3_svg_lineBasisOpen,
"basis-closed": d3_svg_lineBasisClosed,
bundle: d3_svg_lineBundle,
cardinal: d3_svg_lineCardinal,
"cardinal-open": d3_svg_lineCardinalOpen,
"cardinal-closed": d3_svg_lineCardinalClosed,
monotone: d3_svg_lineMonotone
});
d3_svg_lineInterpolators.forEach(function(key, value) {
value.key = key;
value.closed = /-closed$/.test(key);
});
function d3_svg_lineLinear(points) {
return points.join("L");
}
function d3_svg_lineLinearClosed(points) {
return d3_svg_lineLinear(points) + "Z";
}
function d3_svg_lineStepBefore(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
return path.join("");
}
function d3_svg_lineStepAfter(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
return path.join("");
}
function d3_svg_lineCardinalOpen(points, tension) {
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineCardinalClosed(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
}
function d3_svg_lineCardinal(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineHermite(points, tangents) {
if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
return d3_svg_lineLinear(points);
}
var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
if (quad) {
path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
p0 = points[1];
pi = 2;
}
if (tangents.length > 1) {
t = tangents[1];
p = points[pi];
pi++;
path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
for (var i = 2; i < tangents.length; i++, pi++) {
p = points[pi];
t = tangents[i];
path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
}
}
if (quad) {
var lp = points[pi];
path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
}
return path;
}
function d3_svg_lineCardinalTangents(points, tension) {
var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
while (++i < n) {
p0 = p1;
p1 = p2;
p2 = points[i];
tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
}
return tangents;
}
function d3_svg_lineBasis(points) {
if (points.length < 3) return d3_svg_lineLinear(points);
var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
d3_svg_lineBasisBezier(path, px, py);
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
i = -1;
while (++i < 2) {
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisOpen(points) {
if (points.length < 4) return d3_svg_lineLinear(points);
var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
while (++i < 3) {
pi = points[i];
px.push(pi[0]);
py.push(pi[1]);
}
path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
--i;
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisClosed(points) {
var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
while (++i < 4) {
pi = points[i % n];
px.push(pi[0]);
py.push(pi[1]);
}
path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
--i;
while (++i < m) {
pi = points[i % n];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBundle(points, tension) {
var n = points.length - 1;
if (n) {
var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
while (++i <= n) {
p = points[i];
t = i / n;
p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
}
}
return d3_svg_lineBasis(points);
}
function d3_svg_lineDot4(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
function d3_svg_lineBasisBezier(path, x, y) {
path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
}
function d3_svg_lineSlope(p0, p1) {
return (p1[1] - p0[1]) / (p1[0] - p0[0]);
}
function d3_svg_lineFiniteDifferences(points) {
var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
while (++i < j) {
m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
}
m[i] = d;
return m;
}
function d3_svg_lineMonotoneTangents(points) {
var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
while (++i < j) {
d = d3_svg_lineSlope(points[i], points[i + 1]);
if (Math.abs(d) < 1e-6) {
m[i] = m[i + 1] = 0;
} else {
a = m[i] / d;
b = m[i + 1] / d;
s = a * a + b * b;
if (s > 9) {
s = d * 3 / Math.sqrt(s);
m[i] = s * a;
m[i + 1] = s * b;
}
}
}
i = -1;
while (++i <= j) {
s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
tangents.push([ s || 0, m[i] * s || 0 ]);
}
return tangents;
}
function d3_svg_lineMonotone(points) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
}
d3.svg.line.radial = function() {
var line = d3_svg_line(d3_svg_lineRadial);
line.radius = line.x, delete line.x;
line.angle = line.y, delete line.y;
return line;
};
function d3_svg_lineRadial(points) {
var point, i = -1, n = points.length, r, a;
while (++i < n) {
point = points[i];
r = point[0];
a = point[1] + d3_svg_arcOffset;
point[0] = r * Math.cos(a);
point[1] = r * Math.sin(a);
}
return points;
}
function d3_svg_area(projection) {
var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
function area(data) {
var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
return x;
} : d3_functor(x1), fy1 = y0 === y1 ? function() {
return y;
} : d3_functor(y1), x, y;
function segment() {
segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
} else if (points0.length) {
segment();
points0 = [];
points1 = [];
}
}
if (points0.length) segment();
return segments.length ? segments.join("") : null;
}
area.x = function(_) {
if (!arguments.length) return x1;
x0 = x1 = _;
return area;
};
area.x0 = function(_) {
if (!arguments.length) return x0;
x0 = _;
return area;
};
area.x1 = function(_) {
if (!arguments.length) return x1;
x1 = _;
return area;
};
area.y = function(_) {
if (!arguments.length) return y1;
y0 = y1 = _;
return area;
};
area.y0 = function(_) {
if (!arguments.length) return y0;
y0 = _;
return area;
};
area.y1 = function(_) {
if (!arguments.length) return y1;
y1 = _;
return area;
};
area.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return area;
};
area.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
interpolateReverse = interpolate.reverse || interpolate;
L = interpolate.closed ? "M" : "L";
return area;
};
area.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return area;
};
return area;
}
d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
d3.svg.area = function() {
return d3_svg_area(d3_identity);
};
d3.svg.area.radial = function() {
var area = d3_svg_area(d3_svg_lineRadial);
area.radius = area.x, delete area.x;
area.innerRadius = area.x0, delete area.x0;
area.outerRadius = area.x1, delete area.x1;
area.angle = area.y, delete area.y;
area.startAngle = area.y0, delete area.y0;
area.endAngle = area.y1, delete area.y1;
return area;
};
d3.svg.chord = function() {
var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function chord(d, i) {
var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
}
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
return {
r: r,
a0: a0,
a1: a1,
p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
};
}
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p, a) {
return "A" + r + "," + r + " 0 " + +(a > ฯ€) + ",1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord.radius = function(v) {
if (!arguments.length) return radius;
radius = d3_functor(v);
return chord;
};
chord.source = function(v) {
if (!arguments.length) return source;
source = d3_functor(v);
return chord;
};
chord.target = function(v) {
if (!arguments.length) return target;
target = d3_functor(v);
return chord;
};
chord.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return chord;
};
chord.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return chord;
};
return chord;
};
function d3_svg_chordRadius(d) {
return d.radius;
}
d3.svg.diagonal = function() {
var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
function diagonal(d, i) {
var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
x: p0.x,
y: m
}, {
x: p3.x,
y: m
}, p3 ];
p = p.map(projection);
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
diagonal.source = function(x) {
if (!arguments.length) return source;
source = d3_functor(x);
return diagonal;
};
diagonal.target = function(x) {
if (!arguments.length) return target;
target = d3_functor(x);
return diagonal;
};
diagonal.projection = function(x) {
if (!arguments.length) return projection;
projection = x;
return diagonal;
};
return diagonal;
};
function d3_svg_diagonalProjection(d) {
return [ d.x, d.y ];
}
d3.svg.diagonal.radial = function() {
var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
diagonal.projection = function(x) {
return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
};
return diagonal;
};
function d3_svg_diagonalRadialProjection(projection) {
return function() {
var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
return [ r * Math.cos(a), r * Math.sin(a) ];
};
}
d3.svg.symbol = function() {
var type = d3_svg_symbolType, size = d3_svg_symbolSize;
function symbol(d, i) {
return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
}
symbol.type = function(x) {
if (!arguments.length) return type;
type = d3_functor(x);
return symbol;
};
symbol.size = function(x) {
if (!arguments.length) return size;
size = d3_functor(x);
return symbol;
};
return symbol;
};
function d3_svg_symbolSize() {
return 64;
}
function d3_svg_symbolType() {
return "circle";
}
function d3_svg_symbolCircle(size) {
var r = Math.sqrt(size / ฯ€);
return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
}
var d3_svg_symbols = d3.map({
circle: d3_svg_symbolCircle,
cross: function(size) {
var r = Math.sqrt(size / 5) / 2;
return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
},
diamond: function(size) {
var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
},
square: function(size) {
var r = Math.sqrt(size) / 2;
return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
},
"triangle-down": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
},
"triangle-up": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
}
});
d3.svg.symbolTypes = d3_svg_symbols.keys();
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
d3.svg.axis = function() {
var scale = d3.scale.linear(), orient = "bottom", tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
function axis(g) {
g.each(function() {
var g = d3.select(this);
var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
var tick = g.selectAll("g").data(ticks, String), tickEnter = tick.enter().insert("g", "path").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = d3.transition(path);
var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
this.__chart__ = scale1;
path.enter().append("path").attr("class", "domain");
tickEnter.append("line").attr("class", "tick");
tickEnter.append("text");
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
switch (orient) {
case "bottom":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
lineEnter.attr("y2", tickMajorSize);
textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
text.attr("dy", ".71em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
break;
}
case "top":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", -tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
lineEnter.attr("y2", -tickMajorSize);
textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
text.attr("dy", "0em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
break;
}
case "left":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", -tickMinorSize);
subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", -tickMajorSize);
textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "end");
pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
break;
}
case "right":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", tickMinorSize);
subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", tickMajorSize);
textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "start");
pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
break;
}
}
if (scale.ticks) {
tickEnter.call(tickTransform, scale0);
tickUpdate.call(tickTransform, scale1);
tickExit.call(tickTransform, scale1);
subtickEnter.call(tickTransform, scale0);
subtickUpdate.call(tickTransform, scale1);
subtickExit.call(tickTransform, scale1);
} else {
var dx = scale1.rangeBand() / 2, x = function(d) {
return scale1(d) + dx;
};
tickEnter.call(tickTransform, x);
tickUpdate.call(tickTransform, x);
}
});
}
axis.scale = function(x) {
if (!arguments.length) return scale;
scale = x;
return axis;
};
axis.orient = function(x) {
if (!arguments.length) return orient;
orient = x;
return axis;
};
axis.ticks = function() {
if (!arguments.length) return tickArguments_;
tickArguments_ = arguments;
return axis;
};
axis.tickValues = function(x) {
if (!arguments.length) return tickValues;
tickValues = x;
return axis;
};
axis.tickFormat = function(x) {
if (!arguments.length) return tickFormat_;
tickFormat_ = x;
return axis;
};
axis.tickSize = function(x, y) {
if (!arguments.length) return tickMajorSize;
var n = arguments.length - 1;
tickMajorSize = +x;
tickMinorSize = n > 1 ? +y : tickMajorSize;
tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
return axis;
};
axis.tickPadding = function(x) {
if (!arguments.length) return tickPadding;
tickPadding = +x;
return axis;
};
axis.tickSubdivide = function(x) {
if (!arguments.length) return tickSubdivide;
tickSubdivide = +x;
return axis;
};
return axis;
};
function d3_svg_axisX(selection, x) {
selection.attr("transform", function(d) {
return "translate(" + x(d) + ",0)";
});
}
function d3_svg_axisY(selection, y) {
selection.attr("transform", function(d) {
return "translate(0," + y(d) + ")";
});
}
function d3_svg_axisSubdivide(scale, ticks, m) {
subticks = [];
if (m && ticks.length > 1) {
var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
while (++i < n) {
for (j = m; --j > 0; ) {
if ((v = +ticks[i] - j * d) >= extent[0]) {
subticks.push(v);
}
}
}
for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
subticks.push(v);
}
}
return subticks;
}
d3.svg.brush = function() {
var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
function brush(g) {
g.each(function() {
var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
tz.enter().append("g").attr("class", function(d) {
return "resize " + d;
}).style("cursor", function(d) {
return d3_svg_brushCursor[d];
}).append("rect").attr("x", function(d) {
return /[ew]$/.test(d) ? -3 : null;
}).attr("y", function(d) {
return /^[ns]/.test(d) ? -3 : null;
}).attr("width", 6).attr("height", 6).style("visibility", "hidden");
tz.style("display", brush.empty() ? "none" : null);
tz.exit().remove();
if (x) {
e = d3_scaleRange(x);
bg.attr("x", e[0]).attr("width", e[1] - e[0]);
redrawX(g);
}
if (y) {
e = d3_scaleRange(y);
bg.attr("y", e[0]).attr("height", e[1] - e[0]);
redrawY(g);
}
redraw(g);
});
}
function redraw(g) {
g.selectAll(".resize").attr("transform", function(d) {
return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
});
}
function redrawX(g) {
g.select(".extent").attr("x", extent[0][0]);
g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
}
function redrawY(g) {
g.select(".extent").attr("y", extent[0][1]);
g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
}
function brushstart() {
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
var w = d3.select(window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
if (dragging) {
origin[0] = extent[0][0] - origin[0];
origin[1] = extent[0][1] - origin[1];
} else if (resizing) {
var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
origin[0] = extent[ex][0];
origin[1] = extent[ey][1];
} else if (d3.event.altKey) center = origin.slice();
g.style("pointer-events", "none").selectAll(".resize").style("display", null);
d3.select("body").style("cursor", eventTarget.style("cursor"));
event_({
type: "brushstart"
});
brushmove();
d3_eventCancel();
function mouse() {
var touches = d3.event.changedTouches;
return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
}
function keydown() {
if (d3.event.keyCode == 32) {
if (!dragging) {
center = null;
origin[0] -= extent[1][0];
origin[1] -= extent[1][1];
dragging = 2;
}
d3_eventCancel();
}
}
function keyup() {
if (d3.event.keyCode == 32 && dragging == 2) {
origin[0] += extent[1][0];
origin[1] += extent[1][1];
dragging = 0;
d3_eventCancel();
}
}
function brushmove() {
var point = mouse(), moved = false;
if (offset) {
point[0] += offset[0];
point[1] += offset[1];
}
if (!dragging) {
if (d3.event.altKey) {
if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
origin[0] = extent[+(point[0] < center[0])][0];
origin[1] = extent[+(point[1] < center[1])][1];
} else center = null;
}
if (resizingX && move1(point, x, 0)) {
redrawX(g);
moved = true;
}
if (resizingY && move1(point, y, 1)) {
redrawY(g);
moved = true;
}
if (moved) {
redraw(g);
event_({
type: "brush",
mode: dragging ? "move" : "resize"
});
}
}
function move1(point, scale, i) {
var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
if (dragging) {
r0 -= position;
r1 -= size + position;
}
min = Math.max(r0, Math.min(r1, point[i]));
if (dragging) {
max = (min += position) + size;
} else {
if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
if (position < min) {
max = min;
min = position;
} else {
max = position;
}
}
if (extent[0][i] !== min || extent[1][i] !== max) {
extentDomain = null;
extent[0][i] = min;
extent[1][i] = max;
return true;
}
}
function brushend() {
brushmove();
g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
d3.select("body").style("cursor", null);
w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
event_({
type: "brushend"
});
d3_eventCancel();
}
}
brush.x = function(z) {
if (!arguments.length) return x;
x = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.y = function(z) {
if (!arguments.length) return y;
y = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.extent = function(z) {
var x0, x1, y0, y1, t;
if (!arguments.length) {
z = extentDomain || extent;
if (x) {
x0 = z[0][0], x1 = z[1][0];
if (!extentDomain) {
x0 = extent[0][0], x1 = extent[1][0];
if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
}
}
if (y) {
y0 = z[0][1], y1 = z[1][1];
if (!extentDomain) {
y0 = extent[0][1], y1 = extent[1][1];
if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
}
}
return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
}
extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
if (x) {
x0 = z[0], x1 = z[1];
if (y) x0 = x0[0], x1 = x1[0];
extentDomain[0][0] = x0, extentDomain[1][0] = x1;
if (x.invert) x0 = x(x0), x1 = x(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
}
if (y) {
y0 = z[0], y1 = z[1];
if (x) y0 = y0[1], y1 = y1[1];
extentDomain[0][1] = y0, extentDomain[1][1] = y1;
if (y.invert) y0 = y(y0), y1 = y(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
}
return brush;
};
brush.clear = function() {
extentDomain = null;
extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
return brush;
};
brush.empty = function() {
return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
};
return d3.rebind(brush, event, "on");
};
var d3_svg_brushCursor = {
n: "ns-resize",
e: "ew-resize",
s: "ns-resize",
w: "ew-resize",
nw: "nwse-resize",
ne: "nesw-resize",
se: "nwse-resize",
sw: "nesw-resize"
};
var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
d3.behavior = {};
d3.behavior.drag = function() {
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
function drag() {
this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
var w = d3.select(window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
if (origin) {
offset = origin.apply(target, arguments);
offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
} else {
offset = [ 0, 0 ];
}
if (touchId == null) d3_eventCancel();
event_({
type: "dragstart"
});
function point() {
var p = target.parentNode;
return touchId != null ? d3.touches(p).filter(function(p) {
return p.identifier === touchId;
})[0] : d3.mouse(p);
}
function dragmove() {
if (!target.parentNode) return dragend();
var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
moved |= dx | dy;
origin_ = p;
d3_eventCancel();
event_({
type: "drag",
x: p[0] + offset[0],
y: p[1] + offset[1],
dx: dx,
dy: dy
});
}
function dragend() {
event_({
type: "dragend"
});
if (moved) {
d3_eventCancel();
if (d3.event.target === eventTarget) w.on("click.drag", click, true);
}
w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
}
function click() {
d3_eventCancel();
w.on("click.drag", null);
}
}
drag.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return drag;
};
return d3.rebind(drag, event, "on");
};
d3.behavior.zoom = function() {
var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
function zoom() {
this.on("mousedown.zoom", mousedown).on("mousewheel.zoom", mousewheel).on("mousemove.zoom", mousemove).on("DOMMouseScroll.zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
}
zoom.translate = function(x) {
if (!arguments.length) return translate;
translate = x.map(Number);
rescale();
return zoom;
};
zoom.scale = function(x) {
if (!arguments.length) return scale;
scale = +x;
rescale();
return zoom;
};
zoom.scaleExtent = function(x) {
if (!arguments.length) return scaleExtent;
scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
return zoom;
};
zoom.x = function(z) {
if (!arguments.length) return x1;
x1 = z;
x0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
zoom.y = function(z) {
if (!arguments.length) return y1;
y1 = z;
y0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
function location(p) {
return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
}
function point(l) {
return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
}
function scaleTo(s) {
scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
}
function translateTo(p, l) {
l = point(l);
translate[0] += p[0] - l[0];
translate[1] += p[1] - l[1];
}
function rescale() {
if (x1) x1.domain(x0.range().map(function(x) {
return (x - translate[0]) / scale;
}).map(x0.invert));
if (y1) y1.domain(y0.range().map(function(y) {
return (y - translate[1]) / scale;
}).map(y0.invert));
}
function dispatch(event) {
rescale();
d3.event.preventDefault();
event({
type: "zoom",
scale: scale,
translate: translate
});
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
window.focus();
d3_eventCancel();
function mousemove() {
moved = 1;
translateTo(d3.mouse(target), l);
dispatch(event_);
}
function mouseup() {
if (moved) d3_eventCancel();
w.on("mousemove.zoom", null).on("mouseup.zoom", null);
if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true);
}
function click() {
d3_eventCancel();
w.on("click.zoom", null);
}
}
function mousewheel() {
if (!translate0) translate0 = location(d3.mouse(this));
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
translateTo(d3.mouse(this), translate0);
dispatch(event.of(this, arguments));
}
function mousemove() {
translate0 = null;
}
function dblclick() {
var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
translateTo(p, l);
dispatch(event.of(this, arguments));
}
function touchstart() {
var touches = d3.touches(this), now = Date.now();
scale0 = scale;
translate0 = {};
touches.forEach(function(t) {
translate0[t.identifier] = location(t);
});
d3_eventCancel();
if (touches.length === 1) {
if (now - touchtime < 500) {
var p = touches[0], l = location(touches[0]);
scaleTo(scale * 2);
translateTo(p, l);
dispatch(event.of(this, arguments));
}
touchtime = now;
}
}
function touchmove() {
var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
if (p1 = touches[1]) {
var p1, l1 = translate0[p1.identifier];
p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
scaleTo(d3.event.scale * scale0);
}
translateTo(p0, l0);
touchtime = null;
dispatch(event.of(this, arguments));
}
return d3.rebind(zoom, event, "on");
};
var d3_behavior_zoomDiv, d3_behavior_zoomInfinity = [ 0, Infinity ];
function d3_behavior_zoomDelta() {
if (!d3_behavior_zoomDiv) {
d3_behavior_zoomDiv = d3.select("body").append("div").style("visibility", "hidden").style("top", 0).style("height", 0).style("width", 0).style("overflow-y", "scroll").append("div").style("height", "2000px").node().parentNode;
}
var e = d3.event, delta;
try {
d3_behavior_zoomDiv.scrollTop = 1e3;
d3_behavior_zoomDiv.dispatchEvent(e);
delta = 1e3 - d3_behavior_zoomDiv.scrollTop;
} catch (error) {
delta = e.wheelDelta || -e.detail * 5;
}
return delta;
}
d3.layout = {};
d3.layout.bundle = function() {
return function(links) {
var paths = [], i = -1, n = links.length;
while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
return paths;
};
};
function d3_layout_bundlePath(link) {
var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
while (start !== lca) {
start = start.parent;
points.push(start);
}
var k = points.length;
while (end !== lca) {
points.splice(k, 0, end);
end = end.parent;
}
return points;
}
function d3_layout_bundleAncestors(node) {
var ancestors = [], parent = node.parent;
while (parent != null) {
ancestors.push(node);
node = parent;
parent = parent.parent;
}
ancestors.push(node);
return ancestors;
}
function d3_layout_bundleLeastCommonAncestor(a, b) {
if (a === b) return a;
var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
while (aNode === bNode) {
sharedNode = aNode;
aNode = aNodes.pop();
bNode = bNodes.pop();
}
return sharedNode;
}
d3.layout.chord = function() {
var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
function relayout() {
var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
chords = [];
groups = [];
k = 0, i = -1;
while (++i < n) {
x = 0, j = -1;
while (++j < n) {
x += matrix[i][j];
}
groupSums.push(x);
subgroupIndex.push(d3.range(n));
k += x;
}
if (sortGroups) {
groupIndex.sort(function(a, b) {
return sortGroups(groupSums[a], groupSums[b]);
});
}
if (sortSubgroups) {
subgroupIndex.forEach(function(d, i) {
d.sort(function(a, b) {
return sortSubgroups(matrix[i][a], matrix[i][b]);
});
});
}
k = (2 * ฯ€ - padding * n) / k;
x = 0, i = -1;
while (++i < n) {
x0 = x, j = -1;
while (++j < n) {
var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
subgroups[di + "-" + dj] = {
index: di,
subindex: dj,
startAngle: a0,
endAngle: a1,
value: v
};
}
groups[di] = {
index: di,
startAngle: x0,
endAngle: x,
value: (x - x0) / k
};
x += padding;
}
i = -1;
while (++i < n) {
j = i - 1;
while (++j < n) {
var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
if (source.value || target.value) {
chords.push(source.value < target.value ? {
source: target,
target: source
} : {
source: source,
target: target
});
}
}
}
if (sortChords) resort();
}
function resort() {
chords.sort(function(a, b) {
return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
});
}
chord.matrix = function(x) {
if (!arguments.length) return matrix;
n = (matrix = x) && matrix.length;
chords = groups = null;
return chord;
};
chord.padding = function(x) {
if (!arguments.length) return padding;
padding = x;
chords = groups = null;
return chord;
};
chord.sortGroups = function(x) {
if (!arguments.length) return sortGroups;
sortGroups = x;
chords = groups = null;
return chord;
};
chord.sortSubgroups = function(x) {
if (!arguments.length) return sortSubgroups;
sortSubgroups = x;
chords = null;
return chord;
};
chord.sortChords = function(x) {
if (!arguments.length) return sortChords;
sortChords = x;
if (chords) resort();
return chord;
};
chord.chords = function() {
if (!chords) relayout();
return chords;
};
chord.groups = function() {
if (!groups) relayout();
return groups;
};
return chord;
};
d3.layout.force = function() {
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
function repulse(node) {
return function(quad, x1, _, x2) {
if (quad.point !== node) {
var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
if ((x2 - x1) * dn < theta) {
var k = quad.charge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
return true;
}
if (quad.point && isFinite(dn)) {
var k = quad.pointCharge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
}
}
return !quad.charge;
};
}
force.tick = function() {
if ((alpha *= .99) < .005) {
event.end({
type: "end",
alpha: alpha = 0
});
return true;
}
var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
for (i = 0; i < m; ++i) {
o = links[i];
s = o.source;
t = o.target;
x = t.x - s.x;
y = t.y - s.y;
if (l = x * x + y * y) {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x * (k = s.weight / (t.weight + s.weight));
t.y -= y * k;
s.x += x * (k = 1 - k);
s.y += y * k;
}
}
if (k = alpha * gravity) {
x = size[0] / 2;
y = size[1] / 2;
i = -1;
if (k) while (++i < n) {
o = nodes[i];
o.x += (x - o.x) * k;
o.y += (y - o.y) * k;
}
}
if (charge) {
d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
i = -1;
while (++i < n) {
if (!(o = nodes[i]).fixed) {
q.visit(repulse(o));
}
}
}
i = -1;
while (++i < n) {
o = nodes[i];
if (o.fixed) {
o.x = o.px;
o.y = o.py;
} else {
o.x -= (o.px - (o.px = o.x)) * friction;
o.y -= (o.py - (o.py = o.y)) * friction;
}
}
event.tick({
type: "tick",
alpha: alpha
});
};
force.nodes = function(x) {
if (!arguments.length) return nodes;
nodes = x;
return force;
};
force.links = function(x) {
if (!arguments.length) return links;
links = x;
return force;
};
force.size = function(x) {
if (!arguments.length) return size;
size = x;
return force;
};
force.linkDistance = function(x) {
if (!arguments.length) return linkDistance;
linkDistance = d3_functor(x);
return force;
};
force.distance = force.linkDistance;
force.linkStrength = function(x) {
if (!arguments.length) return linkStrength;
linkStrength = d3_functor(x);
return force;
};
force.friction = function(x) {
if (!arguments.length) return friction;
friction = x;
return force;
};
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
force.gravity = function(x) {
if (!arguments.length) return gravity;
gravity = x;
return force;
};
force.theta = function(x) {
if (!arguments.length) return theta;
theta = x;
return force;
};
force.alpha = function(x) {
if (!arguments.length) return alpha;
if (alpha) {
if (x > 0) alpha = x; else alpha = 0;
} else if (x > 0) {
event.start({
type: "start",
alpha: alpha = x
});
d3.timer(force.tick);
}
return force;
};
force.start = function() {
var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
distances = [];
strengths = [];
for (i = 0; i < m; ++i) {
o = links[i];
if (typeof o.source == "number") o.source = nodes[o.source];
if (typeof o.target == "number") o.target = nodes[o.target];
distances[i] = linkDistance.call(this, o, i);
strengths[i] = linkStrength.call(this, o, i);
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
o = nodes[i];
if (isNaN(o.x)) o.x = position("x", w);
if (isNaN(o.y)) o.y = position("y", h);
if (isNaN(o.px)) o.px = o.x;
if (isNaN(o.py)) o.py = o.y;
}
charges = [];
if (typeof charge === "function") {
for (i = 0; i < n; ++i) {
charges[i] = +charge.call(this, nodes[i], i);
}
} else {
for (i = 0; i < n; ++i) {
charges[i] = charge;
}
}
function position(dimension, size) {
var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
return Math.random() * size;
}
function neighbor() {
if (!neighbors) {
neighbors = [];
for (j = 0; j < n; ++j) {
neighbors[j] = [];
}
for (j = 0; j < m; ++j) {
var o = links[j];
neighbors[o.source.index].push(o.target);
neighbors[o.target.index].push(o.source);
}
}
return neighbors[i];
}
return force.resume();
};
force.resume = function() {
return force.alpha(.1);
};
force.stop = function() {
return force.alpha(0);
};
force.drag = function() {
if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart", d3_layout_forceDragstart).on("drag", dragmove).on("dragend", d3_layout_forceDragend);
this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
};
function dragmove(d) {
d.px = d3.event.x, d.py = d3.event.y;
force.resume();
}
return d3.rebind(force, event, "on");
};
function d3_layout_forceDragstart(d) {
d.fixed |= 2;
}
function d3_layout_forceDragend(d) {
d.fixed &= 1;
}
function d3_layout_forceMouseover(d) {
d.fixed |= 4;
d.px = d.x, d.py = d.y;
}
function d3_layout_forceMouseout(d) {
d.fixed &= 3;
}
function d3_layout_forceAccumulate(quad, alpha, charges) {
var cx = 0, cy = 0;
quad.charge = 0;
if (!quad.leaf) {
var nodes = quad.nodes, n = nodes.length, i = -1, c;
while (++i < n) {
c = nodes[i];
if (c == null) continue;
d3_layout_forceAccumulate(c, alpha, charges);
quad.charge += c.charge;
cx += c.charge * c.cx;
cy += c.charge * c.cy;
}
}
if (quad.point) {
if (!quad.leaf) {
quad.point.x += Math.random() - .5;
quad.point.y += Math.random() - .5;
}
var k = alpha * charges[quad.point.index];
quad.charge += quad.pointCharge = k;
cx += k * quad.point.x;
cy += k * quad.point.y;
}
quad.cx = cx / quad.charge;
quad.cy = cy / quad.charge;
}
function d3_layout_forceLinkDistance() {
return 20;
}
function d3_layout_forceLinkStrength() {
return 1;
}
d3.layout.partition = function() {
var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
function position(node, x, dx, dy) {
var children = node.children;
node.x = x;
node.y = node.depth * dy;
node.dx = dx;
node.dy = dy;
if (children && (n = children.length)) {
var i = -1, n, c, d;
dx = node.value ? dx / node.value : 0;
while (++i < n) {
position(c = children[i], x, d = c.value * dx, dy);
x += d;
}
}
}
function depth(node) {
var children = node.children, d = 0;
if (children && (n = children.length)) {
var i = -1, n;
while (++i < n) d = Math.max(d, depth(children[i]));
}
return 1 + d;
}
function partition(d, i) {
var nodes = hierarchy.call(this, d, i);
position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
return nodes;
}
partition.size = function(x) {
if (!arguments.length) return size;
size = x;
return partition;
};
return d3_layout_hierarchyRebind(partition, hierarchy);
};
d3.layout.pie = function() {
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * ฯ€;
function pie(data) {
var values = data.map(function(d, i) {
return +value.call(pie, d, i);
});
var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values);
var index = d3.range(data.length);
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
return values[j] - values[i];
} : function(i, j) {
return sort(data[i], data[j]);
});
var arcs = [];
index.forEach(function(i) {
var d;
arcs[i] = {
data: data[i],
value: d = values[i],
startAngle: a,
endAngle: a += d * k
};
});
return arcs;
}
pie.value = function(x) {
if (!arguments.length) return value;
value = x;
return pie;
};
pie.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return pie;
};
pie.startAngle = function(x) {
if (!arguments.length) return startAngle;
startAngle = x;
return pie;
};
pie.endAngle = function(x) {
if (!arguments.length) return endAngle;
endAngle = x;
return pie;
};
return pie;
};
var d3_layout_pieSortByValue = {};
d3.layout.stack = function() {
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
function stack(data, index) {
var series = data.map(function(d, i) {
return values.call(stack, d, i);
});
var points = series.map(function(d) {
return d.map(function(v, i) {
return [ x.call(stack, v, i), y.call(stack, v, i) ];
});
});
var orders = order.call(stack, points, index);
series = d3.permute(series, orders);
points = d3.permute(points, orders);
var offsets = offset.call(stack, points, index);
var n = series.length, m = series[0].length, i, j, o;
for (j = 0; j < m; ++j) {
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
for (i = 1; i < n; ++i) {
out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
}
}
return data;
}
stack.values = function(x) {
if (!arguments.length) return values;
values = x;
return stack;
};
stack.order = function(x) {
if (!arguments.length) return order;
order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
return stack;
};
stack.offset = function(x) {
if (!arguments.length) return offset;
offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
return stack;
};
stack.x = function(z) {
if (!arguments.length) return x;
x = z;
return stack;
};
stack.y = function(z) {
if (!arguments.length) return y;
y = z;
return stack;
};
stack.out = function(z) {
if (!arguments.length) return out;
out = z;
return stack;
};
return stack;
};
function d3_layout_stackX(d) {
return d.x;
}
function d3_layout_stackY(d) {
return d.y;
}
function d3_layout_stackOut(d, y0, y) {
d.y0 = y0;
d.y = y;
}
var d3_layout_stackOrders = d3.map({
"inside-out": function(data) {
var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
return max[a] - max[b];
}), top = 0, bottom = 0, tops = [], bottoms = [];
for (i = 0; i < n; ++i) {
j = index[i];
if (top < bottom) {
top += sums[j];
tops.push(j);
} else {
bottom += sums[j];
bottoms.push(j);
}
}
return bottoms.reverse().concat(tops);
},
reverse: function(data) {
return d3.range(data.length).reverse();
},
"default": d3_layout_stackOrderDefault
});
var d3_layout_stackOffsets = d3.map({
silhouette: function(data) {
var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o > max) max = o;
sums.push(o);
}
for (j = 0; j < m; ++j) {
y0[j] = (max - sums[j]) / 2;
}
return y0;
},
wiggle: function(data) {
var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
y0[0] = o = o0 = 0;
for (j = 1; j < m; ++j) {
for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
}
s2 += s3 * data[i][j][1];
}
y0[j] = o -= s1 ? s2 / s1 * dx : 0;
if (o < o0) o0 = o;
}
for (j = 0; j < m; ++j) y0[j] -= o0;
return y0;
},
expand: function(data) {
var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
}
for (j = 0; j < m; ++j) y0[j] = 0;
return y0;
},
zero: d3_layout_stackOffsetZero
});
function d3_layout_stackOrderDefault(data) {
return d3.range(data.length);
}
function d3_layout_stackOffsetZero(data) {
var j = -1, m = data[0].length, y0 = [];
while (++j < m) y0[j] = 0;
return y0;
}
function d3_layout_stackMaxIndex(array) {
var i = 1, j = 0, v = array[0][1], k, n = array.length;
for (;i < n; ++i) {
if ((k = array[i][1]) > v) {
j = i;
v = k;
}
}
return j;
}
function d3_layout_stackReduceSum(d) {
return d.reduce(d3_layout_stackSum, 0);
}
function d3_layout_stackSum(p, d) {
return p + d[1];
}
d3.layout.histogram = function() {
var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
function histogram(data, i) {
var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
while (++i < m) {
bin = bins[i] = [];
bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
bin.y = 0;
}
if (m > 0) {
i = -1;
while (++i < n) {
x = values[i];
if (x >= range[0] && x <= range[1]) {
bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
bin.y += k;
bin.push(data[i]);
}
}
}
return bins;
}
histogram.value = function(x) {
if (!arguments.length) return valuer;
valuer = x;
return histogram;
};
histogram.range = function(x) {
if (!arguments.length) return ranger;
ranger = d3_functor(x);
return histogram;
};
histogram.bins = function(x) {
if (!arguments.length) return binner;
binner = typeof x === "number" ? function(range) {
return d3_layout_histogramBinFixed(range, x);
} : d3_functor(x);
return histogram;
};
histogram.frequency = function(x) {
if (!arguments.length) return frequency;
frequency = !!x;
return histogram;
};
return histogram;
};
function d3_layout_histogramBinSturges(range, values) {
return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}
function d3_layout_histogramBinFixed(range, n) {
var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
while (++x <= n) f[x] = m * x + b;
return f;
}
function d3_layout_histogramRange(values) {
return [ d3.min(values), d3.max(values) ];
}
d3.layout.hierarchy = function() {
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
function recurse(node, depth, nodes) {
var childs = children.call(hierarchy, node, depth);
node.depth = depth;
nodes.push(node);
if (childs && (n = childs.length)) {
var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
while (++i < n) {
d = recurse(childs[i], j, nodes);
d.parent = node;
c.push(d);
v += d.value;
}
if (sort) c.sort(sort);
if (value) node.value = v;
} else if (value) {
node.value = +value.call(hierarchy, node, depth) || 0;
}
return node;
}
function revalue(node, depth) {
var children = node.children, v = 0;
if (children && (n = children.length)) {
var i = -1, n, j = depth + 1;
while (++i < n) v += revalue(children[i], j);
} else if (value) {
v = +value.call(hierarchy, node, depth) || 0;
}
if (value) node.value = v;
return v;
}
function hierarchy(d) {
var nodes = [];
recurse(d, 0, nodes);
return nodes;
}
hierarchy.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return hierarchy;
};
hierarchy.children = function(x) {
if (!arguments.length) return children;
children = x;
return hierarchy;
};
hierarchy.value = function(x) {
if (!arguments.length) return value;
value = x;
return hierarchy;
};
hierarchy.revalue = function(root) {
revalue(root, 0);
return root;
};
return hierarchy;
};
function d3_layout_hierarchyRebind(object, hierarchy) {
d3.rebind(object, hierarchy, "sort", "children", "value");
object.nodes = object;
object.links = d3_layout_hierarchyLinks;
return object;
}
function d3_layout_hierarchyChildren(d) {
return d.children;
}
function d3_layout_hierarchyValue(d) {
return d.value;
}
function d3_layout_hierarchySort(a, b) {
return b.value - a.value;
}
function d3_layout_hierarchyLinks(nodes) {
return d3.merge(nodes.map(function(parent) {
return (parent.children || []).map(function(child) {
return {
source: parent,
target: child
};
});
}));
}
d3.layout.pack = function() {
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
function pack(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
root.x = 0;
root.y = 0;
d3_layout_treeVisitAfter(root, function(d) {
d.r = Math.sqrt(d.value);
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
if (padding > 0) {
var dr = padding * k / 2;
d3_layout_treeVisitAfter(root, function(d) {
d.r += dr;
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
d3_layout_treeVisitAfter(root, function(d) {
d.r -= dr;
});
k = Math.max(2 * root.r / w, 2 * root.r / h);
}
d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
return nodes;
}
pack.size = function(x) {
if (!arguments.length) return size;
size = x;
return pack;
};
pack.padding = function(_) {
if (!arguments.length) return padding;
padding = +_;
return pack;
};
return d3_layout_hierarchyRebind(pack, hierarchy);
};
function d3_layout_packSort(a, b) {
return a.value - b.value;
}
function d3_layout_packInsert(a, b) {
var c = a._pack_next;
a._pack_next = b;
b._pack_prev = a;
b._pack_next = c;
c._pack_prev = b;
}
function d3_layout_packSplice(a, b) {
a._pack_next = b;
b._pack_prev = a;
}
function d3_layout_packIntersects(a, b) {
var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
return dr * dr - dx * dx - dy * dy > .001;
}
function d3_layout_packSiblings(node) {
if (!(nodes = node.children) || !(n = nodes.length)) return;
var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
function bound(node) {
xMin = Math.min(node.x - node.r, xMin);
xMax = Math.max(node.x + node.r, xMax);
yMin = Math.min(node.y - node.r, yMin);
yMax = Math.max(node.y + node.r, yMax);
}
nodes.forEach(d3_layout_packLink);
a = nodes[0];
a.x = -a.r;
a.y = 0;
bound(a);
if (n > 1) {
b = nodes[1];
b.x = b.r;
b.y = 0;
bound(b);
if (n > 2) {
c = nodes[2];
d3_layout_packPlace(a, b, c);
bound(c);
d3_layout_packInsert(a, c);
a._pack_prev = c;
d3_layout_packInsert(c, b);
b = a._pack_next;
for (i = 3; i < n; i++) {
d3_layout_packPlace(a, b, c = nodes[i]);
var isect = 0, s1 = 1, s2 = 1;
for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
if (d3_layout_packIntersects(j, c)) {
isect = 1;
break;
}
}
if (isect == 1) {
for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
if (d3_layout_packIntersects(k, c)) {
break;
}
}
}
if (isect) {
if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
i--;
} else {
d3_layout_packInsert(a, c);
b = c;
bound(c);
}
}
}
}
var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
for (i = 0; i < n; i++) {
c = nodes[i];
c.x -= cx;
c.y -= cy;
cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
}
node.r = cr;
nodes.forEach(d3_layout_packUnlink);
}
function d3_layout_packLink(node) {
node._pack_next = node._pack_prev = node;
}
function d3_layout_packUnlink(node) {
delete node._pack_next;
delete node._pack_prev;
}
function d3_layout_packTransform(node, x, y, k) {
var children = node.children;
node.x = x += k * node.x;
node.y = y += k * node.y;
node.r *= k;
if (children) {
var i = -1, n = children.length;
while (++i < n) d3_layout_packTransform(children[i], x, y, k);
}
}
function d3_layout_packPlace(a, b, c) {
var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
if (db && (dx || dy)) {
var da = b.r + c.r, dc = dx * dx + dy * dy;
da *= da;
db *= db;
var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
c.x = a.x + x * dx + y * dy;
c.y = a.y + x * dy - y * dx;
} else {
c.x = a.x + db;
c.y = a.y;
}
}
d3.layout.cluster = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function cluster(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
d3_layout_treeVisitAfter(root, function(node) {
var children = node.children;
if (children && children.length) {
node.x = d3_layout_clusterX(children);
node.y = d3_layout_clusterY(children);
} else {
node.x = previousNode ? x += separation(node, previousNode) : 0;
node.y = 0;
previousNode = node;
}
});
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
});
return nodes;
}
cluster.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return cluster;
};
cluster.size = function(x) {
if (!arguments.length) return size;
size = x;
return cluster;
};
return d3_layout_hierarchyRebind(cluster, hierarchy);
};
function d3_layout_clusterY(children) {
return 1 + d3.max(children, function(child) {
return child.y;
});
}
function d3_layout_clusterX(children) {
return children.reduce(function(x, child) {
return x + child.x;
}, 0) / children.length;
}
function d3_layout_clusterLeft(node) {
var children = node.children;
return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
}
function d3_layout_clusterRight(node) {
var children = node.children, n;
return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
}
d3.layout.tree = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function tree(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
function firstWalk(node, previousSibling) {
var children = node.children, layout = node._tree;
if (children && (n = children.length)) {
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
while (++i < n) {
child = children[i];
firstWalk(child, previousChild);
ancestor = apportion(child, previousChild, ancestor);
previousChild = child;
}
d3_layout_treeShift(node);
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
layout.mod = layout.prelim - midpoint;
} else {
layout.prelim = midpoint;
}
} else {
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
}
}
}
function secondWalk(node, x) {
node.x = node._tree.prelim + x;
var children = node.children;
if (children && (n = children.length)) {
var i = -1, n;
x += node._tree.mod;
while (++i < n) {
secondWalk(children[i], x);
}
}
}
function apportion(node, previousSibling, ancestor) {
if (previousSibling) {
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
vom = d3_layout_treeLeft(vom);
vop = d3_layout_treeRight(vop);
vop._tree.ancestor = node;
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
if (shift > 0) {
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
sip += shift;
sop += shift;
}
sim += vim._tree.mod;
sip += vip._tree.mod;
som += vom._tree.mod;
sop += vop._tree.mod;
}
if (vim && !d3_layout_treeRight(vop)) {
vop._tree.thread = vim;
vop._tree.mod += sim - sop;
}
if (vip && !d3_layout_treeLeft(vom)) {
vom._tree.thread = vip;
vom._tree.mod += sip - som;
ancestor = node;
}
}
return ancestor;
}
d3_layout_treeVisitAfter(root, function(node, previousSibling) {
node._tree = {
ancestor: node,
prelim: 0,
mod: 0,
change: 0,
shift: 0,
number: previousSibling ? previousSibling._tree.number + 1 : 0
};
});
firstWalk(root);
secondWalk(root, -root._tree.prelim);
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = node.depth / y1 * size[1];
delete node._tree;
});
return nodes;
}
tree.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return tree;
};
tree.size = function(x) {
if (!arguments.length) return size;
size = x;
return tree;
};
return d3_layout_hierarchyRebind(tree, hierarchy);
};
function d3_layout_treeSeparation(a, b) {
return a.parent == b.parent ? 1 : 2;
}
function d3_layout_treeLeft(node) {
var children = node.children;
return children && children.length ? children[0] : node._tree.thread;
}
function d3_layout_treeRight(node) {
var children = node.children, n;
return children && (n = children.length) ? children[n - 1] : node._tree.thread;
}
function d3_layout_treeSearch(node, compare) {
var children = node.children;
if (children && (n = children.length)) {
var child, n, i = -1;
while (++i < n) {
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
node = child;
}
}
}
return node;
}
function d3_layout_treeRightmost(a, b) {
return a.x - b.x;
}
function d3_layout_treeLeftmost(a, b) {
return b.x - a.x;
}
function d3_layout_treeDeepest(a, b) {
return a.depth - b.depth;
}
function d3_layout_treeVisitAfter(node, callback) {
function visit(node, previousSibling) {
var children = node.children;
if (children && (n = children.length)) {
var child, previousChild = null, i = -1, n;
while (++i < n) {
child = children[i];
visit(child, previousChild);
previousChild = child;
}
}
callback(node, previousSibling);
}
visit(node, null);
}
function d3_layout_treeShift(node) {
var shift = 0, change = 0, children = node.children, i = children.length, child;
while (--i >= 0) {
child = children[i]._tree;
child.prelim += shift;
child.mod += shift;
shift += child.shift + (change += child.change);
}
}
function d3_layout_treeMove(ancestor, node, shift) {
ancestor = ancestor._tree;
node = node._tree;
var change = shift / (node.number - ancestor.number);
ancestor.change += change;
node.change -= change;
node.shift += shift;
node.prelim += shift;
node.mod += shift;
}
function d3_layout_treeAncestor(vim, node, ancestor) {
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
}
d3.layout.treemap = function() {
var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
function scale(children, k) {
var i = -1, n = children.length, child, area;
while (++i < n) {
area = (child = children[i]).value * (k < 0 ? 0 : k);
child.area = isNaN(area) || area <= 0 ? 0 : area;
}
}
function squarify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while ((n = remaining.length) > 0) {
row.push(child = remaining[n - 1]);
row.area += child.area;
if (mode !== "squarify" || (score = worst(row, u)) <= best) {
remaining.pop();
best = score;
} else {
row.area -= row.pop().area;
position(row, u, rect, false);
u = Math.min(rect.dx, rect.dy);
row.length = row.area = 0;
best = Infinity;
}
}
if (row.length) {
position(row, u, rect, true);
row.length = row.area = 0;
}
children.forEach(squarify);
}
}
function stickify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), remaining = children.slice(), child, row = [];
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while (child = remaining.pop()) {
row.push(child);
row.area += child.area;
if (child.z != null) {
position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
row.length = row.area = 0;
}
}
children.forEach(stickify);
}
}
function worst(row, u) {
var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
while (++i < n) {
if (!(r = row[i].area)) continue;
if (r < rmin) rmin = r;
if (r > rmax) rmax = r;
}
s *= s;
u *= u;
return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
}
function position(row, u, rect, flush) {
var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
if (u == rect.dx) {
if (flush || v > rect.dy) v = rect.dy;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dy = v;
x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
}
o.z = true;
o.dx += rect.x + rect.dx - x;
rect.y += v;
rect.dy -= v;
} else {
if (flush || v > rect.dx) v = rect.dx;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dx = v;
y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
}
o.z = false;
o.dy += rect.y + rect.dy - y;
rect.x += v;
rect.dx -= v;
}
}
function treemap(d) {
var nodes = stickies || hierarchy(d), root = nodes[0];
root.x = 0;
root.y = 0;
root.dx = size[0];
root.dy = size[1];
if (stickies) hierarchy.revalue(root);
scale([ root ], root.dx * root.dy / root.value);
(stickies ? stickify : squarify)(root);
if (sticky) stickies = nodes;
return nodes;
}
treemap.size = function(x) {
if (!arguments.length) return size;
size = x;
return treemap;
};
treemap.padding = function(x) {
if (!arguments.length) return padding;
function padFunction(node) {
var p = x.call(treemap, node, node.depth);
return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
}
function padConstant(node) {
return d3_layout_treemapPad(node, x);
}
var type;
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
padConstant) : padConstant;
return treemap;
};
treemap.round = function(x) {
if (!arguments.length) return round != Number;
round = x ? Math.round : Number;
return treemap;
};
treemap.sticky = function(x) {
if (!arguments.length) return sticky;
sticky = x;
stickies = null;
return treemap;
};
treemap.ratio = function(x) {
if (!arguments.length) return ratio;
ratio = x;
return treemap;
};
treemap.mode = function(x) {
if (!arguments.length) return mode;
mode = x + "";
return treemap;
};
return d3_layout_hierarchyRebind(treemap, hierarchy);
};
function d3_layout_treemapPadNull(node) {
return {
x: node.x,
y: node.y,
dx: node.dx,
dy: node.dy
};
}
function d3_layout_treemapPad(node, padding) {
var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
if (dx < 0) {
x += dx / 2;
dx = 0;
}
if (dy < 0) {
y += dy / 2;
dy = 0;
}
return {
x: x,
y: y,
dx: dx,
dy: dy
};
}
function d3_dsv(delimiter, mimeType) {
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
function dsv(url, callback) {
return d3.xhr(url, mimeType, callback).response(response);
}
function response(request) {
return dsv.parse(request.responseText);
}
dsv.parse = function(text) {
var o;
return dsv.parseRows(text, function(row) {
if (o) return o(row);
o = new Function("d", "return {" + row.map(function(name, i) {
return JSON.stringify(name) + ": d[" + i + "]";
}).join(",") + "}");
});
};
dsv.parseRows = function(text, f) {
var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
function token() {
if (I >= N) return EOF;
if (eol) return eol = false, EOL;
var j = I;
if (text.charCodeAt(j) === 34) {
var i = j;
while (i++ < N) {
if (text.charCodeAt(i) === 34) {
if (text.charCodeAt(i + 1) !== 34) break;
++i;
}
}
I = i + 2;
var c = text.charCodeAt(i + 1);
if (c === 13) {
eol = true;
if (text.charCodeAt(i + 2) === 10) ++I;
} else if (c === 10) {
eol = true;
}
return text.substring(j + 1, i).replace(/""/g, '"');
}
while (I < N) {
var c = text.charCodeAt(I++), k = 1;
if (c === 10) eol = true; else if (c === 13) {
eol = true;
if (text.charCodeAt(I) === 10) ++I, ++k;
} else if (c !== delimiterCode) continue;
return text.substring(j, I - k);
}
return text.substring(j);
}
while ((t = token()) !== EOF) {
var a = [];
while (t !== EOL && t !== EOF) {
a.push(t);
t = token();
}
if (f && !(a = f(a, n++))) continue;
rows.push(a);
}
return rows;
};
dsv.format = function(rows) {
return rows.map(formatRow).join("\n");
};
function formatRow(row) {
return row.map(formatValue).join(delimiter);
}
function formatValue(text) {
return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
}
return dsv;
}
d3.csv = d3_dsv(",", "text/csv");
d3.tsv = d3_dsv(" ", "text/tab-separated-values");
d3.geo = {};
d3.geo.stream = function(object, listener) {
if (d3_geo_streamObjectType.hasOwnProperty(object.type)) {
d3_geo_streamObjectType[object.type](object, listener);
} else {
d3_geo_streamGeometry(object, listener);
}
};
function d3_geo_streamGeometry(geometry, listener) {
if (d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
d3_geo_streamGeometryType[geometry.type](geometry, listener);
}
}
var d3_geo_streamObjectType = {
Feature: function(feature, listener) {
d3_geo_streamGeometry(feature.geometry, listener);
},
FeatureCollection: function(object, listener) {
var features = object.features, i = -1, n = features.length;
while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
}
};
var d3_geo_streamGeometryType = {
Sphere: function(object, listener) {
listener.sphere();
},
Point: function(object, listener) {
var coordinate = object.coordinates;
listener.point(coordinate[0], coordinate[1]);
},
MultiPoint: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
},
LineString: function(object, listener) {
d3_geo_streamLine(object.coordinates, listener, 0);
},
MultiLineString: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
},
Polygon: function(object, listener) {
d3_geo_streamPolygon(object.coordinates, listener);
},
MultiPolygon: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
},
GeometryCollection: function(object, listener) {
var geometries = object.geometries, i = -1, n = geometries.length;
while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
}
};
function d3_geo_streamLine(coordinates, listener, closed) {
var i = -1, n = coordinates.length - closed, coordinate;
listener.lineStart();
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
listener.lineEnd();
}
function d3_geo_streamPolygon(coordinates, listener) {
var i = -1, n = coordinates.length;
listener.polygonStart();
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
listener.polygonEnd();
}
function d3_geo_spherical(cartesian) {
return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
}
function d3_geo_sphericalEqual(a, b) {
return Math.abs(a[0] - b[0]) < ฮต && Math.abs(a[1] - b[1]) < ฮต;
}
function d3_geo_cartesian(spherical) {
var ฮป = spherical[0], ฯ† = spherical[1], cosฯ† = Math.cos(ฯ†);
return [ cosฯ† * Math.cos(ฮป), cosฯ† * Math.sin(ฮป), Math.sin(ฯ†) ];
}
function d3_geo_cartesianDot(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
function d3_geo_cartesianCross(a, b) {
return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
}
function d3_geo_cartesianAdd(a, b) {
a[0] += b[0];
a[1] += b[1];
a[2] += b[2];
}
function d3_geo_cartesianScale(vector, k) {
return [ vector[0] * k, vector[1] * k, vector[2] * k ];
}
function d3_geo_cartesianNormalize(d) {
var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
d[0] /= l;
d[1] /= l;
d[2] /= l;
}
function d3_geo_resample(project) {
var ฮด2 = .5, maxDepth = 16;
function resample(stream) {
var ฮป0, x0, y0, a0, b0, c0;
var resample = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
stream.polygonStart();
resample.lineStart = polygonLineStart;
},
polygonEnd: function() {
stream.polygonEnd();
resample.lineStart = lineStart;
}
};
function point(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
}
function lineStart() {
x0 = NaN;
resample.point = linePoint;
stream.lineStart();
}
function linePoint(ฮป, ฯ†) {
var c = d3_geo_cartesian([ ฮป, ฯ† ]), p = project(ฮป, ฯ†);
resampleLineTo(x0, y0, ฮป0, a0, b0, c0, x0 = p[0], y0 = p[1], ฮป0 = ฮป, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
stream.point(x0, y0);
}
function lineEnd() {
resample.point = point;
stream.lineEnd();
}
function polygonLineStart() {
var ฮป00, ฯ†00, x00, y00, a00, b00, c00;
lineStart();
resample.point = function(ฮป, ฯ†) {
linePoint(ฮป00 = ฮป, ฯ†00 = ฯ†), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
resample.point = linePoint;
};
resample.lineEnd = function() {
resampleLineTo(x0, y0, ฮป0, a0, b0, c0, x00, y00, ฮป00, a00, b00, c00, maxDepth, stream);
resample.lineEnd = lineEnd;
lineEnd();
};
}
return resample;
}
function resampleLineTo(x0, y0, ฮป0, a0, b0, c0, x1, y1, ฮป1, a1, b1, c1, depth, stream) {
var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
if (d2 > 4 * ฮด2 && depth--) {
var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), ฯ†2 = Math.asin(c /= m), ฮป2 = Math.abs(Math.abs(c) - 1) < ฮต ? (ฮป0 + ฮป1) / 2 : Math.atan2(b, a), p = project(ฮป2, ฯ†2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
if (dz * dz / d2 > ฮด2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) {
resampleLineTo(x0, y0, ฮป0, a0, b0, c0, x2, y2, ฮป2, a /= m, b /= m, c, depth, stream);
stream.point(x2, y2);
resampleLineTo(x2, y2, ฮป2, a, b, c, x1, y1, ฮป1, a1, b1, c1, depth, stream);
}
}
}
resample.precision = function(_) {
if (!arguments.length) return Math.sqrt(ฮด2);
maxDepth = (ฮด2 = _ * _) > 0 && 16;
return resample;
};
return resample;
}
d3.geo.albersUsa = function() {
var lower48 = d3.geo.albers();
var alaska = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]);
var hawaii = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]);
var puertoRico = d3.geo.albers().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]);
function albersUsa(coordinates) {
return projection(coordinates)(coordinates);
}
function projection(point) {
var lon = point[0], lat = point[1];
return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48;
}
albersUsa.scale = function(x) {
if (!arguments.length) return lower48.scale();
lower48.scale(x);
alaska.scale(x * .6);
hawaii.scale(x);
puertoRico.scale(x * 1.5);
return albersUsa.translate(lower48.translate());
};
albersUsa.translate = function(x) {
if (!arguments.length) return lower48.translate();
var dz = lower48.scale(), dx = x[0], dy = x[1];
lower48.translate(x);
alaska.translate([ dx - .4 * dz, dy + .17 * dz ]);
hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]);
puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]);
return albersUsa;
};
return albersUsa.scale(lower48.scale());
};
function d3_geo_albers(ฯ†0, ฯ†1) {
var sinฯ†0 = Math.sin(ฯ†0), n = (sinฯ†0 + Math.sin(ฯ†1)) / 2, C = 1 + sinฯ†0 * (2 * n - sinฯ†0), ฯ0 = Math.sqrt(C) / n;
function albers(ฮป, ฯ†) {
var ฯ = Math.sqrt(C - 2 * n * Math.sin(ฯ†)) / n;
return [ ฯ * Math.sin(ฮป *= n), ฯ0 - ฯ * Math.cos(ฮป) ];
}
albers.invert = function(x, y) {
var ฯ0_y = ฯ0 - y;
return [ Math.atan2(x, ฯ0_y) / n, Math.asin((C - (x * x + ฯ0_y * ฯ0_y) * n * n) / (2 * n)) ];
};
return albers;
}
(d3.geo.albers = function() {
var ฯ†0 = 29.5 * d3_radians, ฯ†1 = 45.5 * d3_radians, m = d3_geo_projectionMutator(d3_geo_albers), p = m(ฯ†0, ฯ†1);
p.parallels = function(_) {
if (!arguments.length) return [ ฯ†0 * d3_degrees, ฯ†1 * d3_degrees ];
return m(ฯ†0 = _[0] * d3_radians, ฯ†1 = _[1] * d3_radians);
};
return p.rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3);
}).raw = d3_geo_albers;
var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosฮปcosฯ†) {
return Math.sqrt(2 / (1 + cosฮปcosฯ†));
}, function(ฯ) {
return 2 * Math.asin(ฯ / 2);
});
(d3.geo.azimuthalEqualArea = function() {
return d3_geo_projection(d3_geo_azimuthalEqualArea);
}).raw = d3_geo_azimuthalEqualArea;
var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosฮปcosฯ†) {
var c = Math.acos(cosฮปcosฯ†);
return c && c / Math.sin(c);
}, d3_identity);
(d3.geo.azimuthalEquidistant = function() {
return d3_geo_projection(d3_geo_azimuthalEquidistant);
}).raw = d3_geo_azimuthalEquidistant;
d3.geo.bounds = d3_geo_bounds(d3_identity);
function d3_geo_bounds(projectStream) {
var x0, y0, x1, y1;
var bound = {
point: boundPoint,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
bound.lineEnd = boundPolygonLineEnd;
},
polygonEnd: function() {
bound.point = boundPoint;
}
};
function boundPoint(x, y) {
if (x < x0) x0 = x;
if (x > x1) x1 = x;
if (y < y0) y0 = y;
if (y > y1) y1 = y;
}
function boundPolygonLineEnd() {
bound.point = bound.lineEnd = d3_noop;
}
return function(feature) {
y1 = x1 = -(x0 = y0 = Infinity);
d3.geo.stream(feature, projectStream(bound));
return [ [ x0, y0 ], [ x1, y1 ] ];
};
}
d3.geo.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, d3_geo_centroid);
var m;
if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ฮต) {
return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
}
};
var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
var d3_geo_centroid = {
sphere: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
},
point: d3_geo_centroidPoint,
lineStart: d3_geo_centroidLineStart,
lineEnd: d3_geo_centroidLineEnd,
polygonStart: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
},
polygonEnd: function() {
d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
}
};
function d3_geo_centroidPoint(ฮป, ฯ†) {
if (d3_geo_centroidDimension) return;
++d3_geo_centroidW;
ฮป *= d3_radians;
var cosฯ† = Math.cos(ฯ† *= d3_radians);
d3_geo_centroidX += (cosฯ† * Math.cos(ฮป) - d3_geo_centroidX) / d3_geo_centroidW;
d3_geo_centroidY += (cosฯ† * Math.sin(ฮป) - d3_geo_centroidY) / d3_geo_centroidW;
d3_geo_centroidZ += (Math.sin(ฯ†) - d3_geo_centroidZ) / d3_geo_centroidW;
}
function d3_geo_centroidRingStart() {
var ฮป00, ฯ†00;
d3_geo_centroidDimension = 1;
d3_geo_centroidLineStart();
d3_geo_centroidDimension = 2;
var linePoint = d3_geo_centroid.point;
d3_geo_centroid.point = function(ฮป, ฯ†) {
linePoint(ฮป00 = ฮป, ฯ†00 = ฯ†);
};
d3_geo_centroid.lineEnd = function() {
d3_geo_centroid.point(ฮป00, ฯ†00);
d3_geo_centroidLineEnd();
d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
};
}
function d3_geo_centroidLineStart() {
var x0, y0, z0;
if (d3_geo_centroidDimension > 1) return;
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.point = function(ฮป, ฯ†) {
ฮป *= d3_radians;
var cosฯ† = Math.cos(ฯ† *= d3_radians);
x0 = cosฯ† * Math.cos(ฮป);
y0 = cosฯ† * Math.sin(ฮป);
z0 = Math.sin(ฯ†);
d3_geo_centroid.point = nextPoint;
};
function nextPoint(ฮป, ฯ†) {
ฮป *= d3_radians;
var cosฯ† = Math.cos(ฯ† *= d3_radians), x = cosฯ† * Math.cos(ฮป), y = cosฯ† * Math.sin(ฮป), z = Math.sin(ฯ†), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
d3_geo_centroidW += w;
d3_geo_centroidX += w * (x0 + (x0 = x));
d3_geo_centroidY += w * (y0 + (y0 = y));
d3_geo_centroidZ += w * (z0 + (z0 = z));
}
}
function d3_geo_centroidLineEnd() {
d3_geo_centroid.point = d3_geo_centroidPoint;
}
d3.geo.circle = function() {
var origin = [ 0, 0 ], angle, precision = 6, interpolate;
function circle() {
var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
interpolate(null, null, 1, {
point: function(x, y) {
ring.push(x = rotate(x, y));
x[0] *= d3_degrees, x[1] *= d3_degrees;
}
});
return {
type: "Polygon",
coordinates: [ ring ]
};
}
circle.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return circle;
};
circle.angle = function(x) {
if (!arguments.length) return angle;
interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
return circle;
};
circle.precision = function(_) {
if (!arguments.length) return precision;
interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
return circle;
};
return circle.angle(90);
};
function d3_geo_circleInterpolate(radians, precision) {
var cr = Math.cos(radians), sr = Math.sin(radians);
return function(from, to, direction, listener) {
if (from != null) {
from = d3_geo_circleAngle(cr, from);
to = d3_geo_circleAngle(cr, to);
if (direction > 0 ? from < to : from > to) from += direction * 2 * ฯ€;
} else {
from = radians + direction * 2 * ฯ€;
to = radians;
}
var point;
for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
}
};
}
function d3_geo_circleAngle(cr, point) {
var a = d3_geo_cartesian(point);
a[0] -= cr;
d3_geo_cartesianNormalize(a);
var angle = Math.acos(Math.max(-1, Math.min(1, -a[1])));
return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ฮต) % (2 * Math.PI);
}
function d3_geo_clip(pointVisible, clipLine, interpolate) {
return function(listener) {
var line = clipLine(listener);
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
clip.point = pointRing;
clip.lineStart = ringStart;
clip.lineEnd = ringEnd;
invisible = false;
invisibleArea = visibleArea = 0;
segments = [];
listener.polygonStart();
},
polygonEnd: function() {
clip.point = point;
clip.lineStart = lineStart;
clip.lineEnd = lineEnd;
segments = d3.merge(segments);
if (segments.length) {
d3_geo_clipPolygon(segments, interpolate, listener);
} else if (visibleArea < -ฮต || invisible && invisibleArea < -ฮต) {
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
}
listener.polygonEnd();
segments = null;
},
sphere: function() {
listener.polygonStart();
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
listener.polygonEnd();
}
};
function point(ฮป, ฯ†) {
if (pointVisible(ฮป, ฯ†)) listener.point(ฮป, ฯ†);
}
function pointLine(ฮป, ฯ†) {
line.point(ฮป, ฯ†);
}
function lineStart() {
clip.point = pointLine;
line.lineStart();
}
function lineEnd() {
clip.point = point;
line.lineEnd();
}
var segments, visibleArea, invisibleArea, invisible;
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring;
function pointRing(ฮป, ฯ†) {
ringListener.point(ฮป, ฯ†);
ring.push([ ฮป, ฯ† ]);
}
function ringStart() {
ringListener.lineStart();
ring = [];
}
function ringEnd() {
pointRing(ring[0][0], ring[0][1]);
ringListener.lineEnd();
var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
if (!n) {
invisible = true;
invisibleArea += d3_geo_clipAreaRing(ring, -1);
ring = null;
return;
}
ring = null;
if (clean & 1) {
segment = ringSegments[0];
visibleArea += d3_geo_clipAreaRing(segment, 1);
var n = segment.length - 1, i = -1, point;
listener.lineStart();
while (++i < n) listener.point((point = segment[i])[0], point[1]);
listener.lineEnd();
return;
}
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
}
return clip;
};
}
function d3_geo_clipPolygon(segments, interpolate, listener) {
var subject = [], clip = [];
segments.forEach(function(segment) {
var n = segment.length;
if (n <= 1) return;
var p0 = segment[0], p1 = segment[n - 1], a = {
point: p0,
points: segment,
other: null,
visited: false,
entry: true,
subject: true
}, b = {
point: p0,
points: [ p0 ],
other: a,
visited: false,
entry: false,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
a = {
point: p1,
points: [ p1 ],
other: null,
visited: false,
entry: false,
subject: true
};
b = {
point: p1,
points: [ p1 ],
other: a,
visited: false,
entry: true,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
});
clip.sort(d3_geo_clipSort);
d3_geo_clipLinkCircular(subject);
d3_geo_clipLinkCircular(clip);
if (!subject.length) return;
var start = subject[0], current, points, point;
while (1) {
current = start;
while (current.visited) if ((current = current.next) === start) return;
points = current.points;
listener.lineStart();
do {
current.visited = current.other.visited = true;
if (current.entry) {
if (current.subject) {
for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.next.point, 1, listener);
}
current = current.next;
} else {
if (current.subject) {
points = current.prev.points;
for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.prev.point, -1, listener);
}
current = current.prev;
}
current = current.other;
points = current.points;
} while (!current.visited);
listener.lineEnd();
}
}
function d3_geo_clipLinkCircular(array) {
if (!(n = array.length)) return;
var n, i = 0, a = array[0], b;
while (++i < n) {
a.next = b = array[i];
b.prev = a;
a = b;
}
a.next = b = array[0];
b.prev = a;
}
function d3_geo_clipSort(a, b) {
return ((a = a.point)[0] < 0 ? a[1] - ฯ€ / 2 - ฮต : ฯ€ / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - ฯ€ / 2 - ฮต : ฯ€ / 2 - b[1]);
}
function d3_geo_clipSegmentLength1(segment) {
return segment.length > 1;
}
function d3_geo_clipBufferListener() {
var lines = [], line;
return {
lineStart: function() {
lines.push(line = []);
},
point: function(ฮป, ฯ†) {
line.push([ ฮป, ฯ† ]);
},
lineEnd: d3_noop,
buffer: function() {
var buffer = lines;
lines = [];
line = null;
return buffer;
}
};
}
function d3_geo_clipAreaRing(ring, invisible) {
if (!(n = ring.length)) return 0;
var n, i = 0, area = 0, p = ring[0], ฮป = p[0], ฯ† = p[1], cosฯ† = Math.cos(ฯ†), x0 = Math.atan2(invisible * Math.sin(ฮป) * cosฯ†, Math.sin(ฯ†)), y0 = 1 - invisible * Math.cos(ฮป) * cosฯ†, x1 = x0, x, y;
while (++i < n) {
p = ring[i];
cosฯ† = Math.cos(ฯ† = p[1]);
x = Math.atan2(invisible * Math.sin(ฮป = p[0]) * cosฯ†, Math.sin(ฯ†));
y = 1 - invisible * Math.cos(ฮป) * cosฯ†;
if (Math.abs(y0 - 2) < ฮต && Math.abs(y - 2) < ฮต) continue;
if (Math.abs(y) < ฮต || Math.abs(y0) < ฮต) {} else if (Math.abs(Math.abs(x - x0) - ฯ€) < ฮต) {
if (y + y0 > 2) area += 4 * (x - x0);
} else if (Math.abs(y0 - 2) < ฮต) area += 4 * (x - x1); else area += ((3 * ฯ€ + x - x0) % (2 * ฯ€) - ฯ€) * (y0 + y);
x1 = x0, x0 = x, y0 = y;
}
return area;
}
var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate);
function d3_geo_clipAntimeridianLine(listener) {
var ฮป0 = NaN, ฯ†0 = NaN, sฮป0 = NaN, clean;
return {
lineStart: function() {
listener.lineStart();
clean = 1;
},
point: function(ฮป1, ฯ†1) {
var sฮป1 = ฮป1 > 0 ? ฯ€ : -ฯ€, dฮป = Math.abs(ฮป1 - ฮป0);
if (Math.abs(dฮป - ฯ€) < ฮต) {
listener.point(ฮป0, ฯ†0 = (ฯ†0 + ฯ†1) / 2 > 0 ? ฯ€ / 2 : -ฯ€ / 2);
listener.point(sฮป0, ฯ†0);
listener.lineEnd();
listener.lineStart();
listener.point(sฮป1, ฯ†0);
listener.point(ฮป1, ฯ†0);
clean = 0;
} else if (sฮป0 !== sฮป1 && dฮป >= ฯ€) {
if (Math.abs(ฮป0 - sฮป0) < ฮต) ฮป0 -= sฮป0 * ฮต;
if (Math.abs(ฮป1 - sฮป1) < ฮต) ฮป1 -= sฮป1 * ฮต;
ฯ†0 = d3_geo_clipAntimeridianIntersect(ฮป0, ฯ†0, ฮป1, ฯ†1);
listener.point(sฮป0, ฯ†0);
listener.lineEnd();
listener.lineStart();
listener.point(sฮป1, ฯ†0);
clean = 0;
}
listener.point(ฮป0 = ฮป1, ฯ†0 = ฯ†1);
sฮป0 = sฮป1;
},
lineEnd: function() {
listener.lineEnd();
ฮป0 = ฯ†0 = NaN;
},
clean: function() {
return 2 - clean;
}
};
}
function d3_geo_clipAntimeridianIntersect(ฮป0, ฯ†0, ฮป1, ฯ†1) {
var cosฯ†0, cosฯ†1, sinฮป0_ฮป1 = Math.sin(ฮป0 - ฮป1);
return Math.abs(sinฮป0_ฮป1) > ฮต ? Math.atan((Math.sin(ฯ†0) * (cosฯ†1 = Math.cos(ฯ†1)) * Math.sin(ฮป1) - Math.sin(ฯ†1) * (cosฯ†0 = Math.cos(ฯ†0)) * Math.sin(ฮป0)) / (cosฯ†0 * cosฯ†1 * sinฮป0_ฮป1)) : (ฯ†0 + ฯ†1) / 2;
}
function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
var ฯ†;
if (from == null) {
ฯ† = direction * ฯ€ / 2;
listener.point(-ฯ€, ฯ†);
listener.point(0, ฯ†);
listener.point(ฯ€, ฯ†);
listener.point(ฯ€, 0);
listener.point(ฯ€, -ฯ†);
listener.point(0, -ฯ†);
listener.point(-ฯ€, -ฯ†);
listener.point(-ฯ€, 0);
listener.point(-ฯ€, ฯ†);
} else if (Math.abs(from[0] - to[0]) > ฮต) {
var s = (from[0] < to[0] ? 1 : -1) * ฯ€;
ฯ† = direction * s / 2;
listener.point(-s, ฯ†);
listener.point(0, ฯ†);
listener.point(s, ฯ†);
} else {
listener.point(to[0], to[1]);
}
}
function d3_geo_clipCircle(degrees) {
var radians = degrees * d3_radians, cr = Math.cos(radians), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians);
return d3_geo_clip(visible, clipLine, interpolate);
function visible(ฮป, ฯ†) {
return Math.cos(ฮป) * Math.cos(ฯ†) > cr;
}
function clipLine(listener) {
var point0, v0, v00, clean;
return {
lineStart: function() {
v00 = v0 = false;
clean = 1;
},
point: function(ฮป, ฯ†) {
var point1 = [ ฮป, ฯ† ], point2, v = visible(ฮป, ฯ†);
if (!point0 && (v00 = v0 = v)) listener.lineStart();
if (v !== v0) {
point2 = intersect(point0, point1);
if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
point1[0] += ฮต;
point1[1] += ฮต;
v = visible(point1[0], point1[1]);
}
}
if (v !== v0) {
clean = 0;
if (v0 = v) {
listener.lineStart();
point2 = intersect(point1, point0);
listener.point(point2[0], point2[1]);
} else {
point2 = intersect(point0, point1);
listener.point(point2[0], point2[1]);
listener.lineEnd();
}
point0 = point2;
}
if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) listener.point(point1[0], point1[1]);
point0 = point1;
},
lineEnd: function() {
if (v0) listener.lineEnd();
point0 = null;
},
clean: function() {
return clean | (v00 && v0) << 1;
}
};
}
function intersect(a, b) {
var pa = d3_geo_cartesian(a, 0), pb = d3_geo_cartesian(b, 0);
var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
if (!determinant) return a;
var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
d3_geo_cartesianAdd(A, B);
var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t = Math.sqrt(w * w - uu * (d3_geo_cartesianDot(A, A) - 1)), q = d3_geo_cartesianScale(u, (-w - t) / uu);
d3_geo_cartesianAdd(q, A);
return d3_geo_spherical(q);
}
}
function d3_geo_compose(a, b) {
function compose(x, y) {
return x = a(x, y), b(x[0], x[1]);
}
if (a.invert && b.invert) compose.invert = function(x, y) {
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
};
return compose;
}
function d3_geo_equirectangular(ฮป, ฯ†) {
return [ ฮป, ฯ† ];
}
(d3.geo.equirectangular = function() {
return d3_geo_projection(d3_geo_equirectangular).scale(250 / ฯ€);
}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
var d3_geo_gnomonic = d3_geo_azimuthal(function(cosฮปcosฯ†) {
return 1 / cosฮปcosฯ†;
}, Math.atan);
(d3.geo.gnomonic = function() {
return d3_geo_projection(d3_geo_gnomonic);
}).raw = d3_geo_gnomonic;
d3.geo.graticule = function() {
var x1, x0, y1, y0, dx = 22.5, dy = dx, x, y, precision = 2.5;
function graticule() {
return {
type: "MultiLineString",
coordinates: lines()
};
}
function lines() {
return d3.range(Math.ceil(x0 / dx) * dx, x1, dx).map(x).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).map(y));
}
graticule.lines = function() {
return lines().map(function(coordinates) {
return {
type: "LineString",
coordinates: coordinates
};
});
};
graticule.outline = function() {
return {
type: "Polygon",
coordinates: [ x(x0).concat(y(y1).slice(1), x(x1).reverse().slice(1), y(y0).reverse().slice(1)) ]
};
};
graticule.extent = function(_) {
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
x0 = +_[0][0], x1 = +_[1][0];
y0 = +_[0][1], y1 = +_[1][1];
if (x0 > x1) _ = x0, x0 = x1, x1 = _;
if (y0 > y1) _ = y0, y0 = y1, y1 = _;
return graticule.precision(precision);
};
graticule.step = function(_) {
if (!arguments.length) return [ dx, dy ];
dx = +_[0], dy = +_[1];
return graticule;
};
graticule.precision = function(_) {
if (!arguments.length) return precision;
precision = +_;
x = d3_geo_graticuleX(y0, y1, precision);
y = d3_geo_graticuleY(x0, x1, precision);
return graticule;
};
return graticule.extent([ [ -180 + ฮต, -90 + ฮต ], [ 180 - ฮต, 90 - ฮต ] ]);
};
function d3_geo_graticuleX(y0, y1, dy) {
var y = d3.range(y0, y1 - ฮต, dy).concat(y1);
return function(x) {
return y.map(function(y) {
return [ x, y ];
});
};
}
function d3_geo_graticuleY(x0, x1, dx) {
var x = d3.range(x0, x1 - ฮต, dx).concat(x1);
return function(y) {
return x.map(function(x) {
return [ x, y ];
});
};
}
d3.geo.interpolate = function(source, target) {
return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
};
function d3_geo_interpolate(x0, y0, x1, y1) {
var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))), k = 1 / Math.sin(d);
function interpolate(t) {
var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
return [ Math.atan2(y, x) / d3_radians, Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_radians ];
}
interpolate.distance = d;
return interpolate;
}
d3.geo.greatArc = function() {
var source = d3_source, source_, target = d3_target, target_, precision = 6 * d3_radians, interpolate;
function greatArc() {
var p0 = source_ || source.apply(this, arguments), p1 = target_ || target.apply(this, arguments), i = interpolate || d3.geo.interpolate(p0, p1), t = 0, dt = precision / i.distance, coordinates = [ p0 ];
while ((t += dt) < 1) coordinates.push(i(t));
coordinates.push(p1);
return {
type: "LineString",
coordinates: coordinates
};
}
greatArc.distance = function() {
return (interpolate || d3.geo.interpolate(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments))).distance;
};
greatArc.source = function(_) {
if (!arguments.length) return source;
source = _, source_ = typeof _ === "function" ? null : _;
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
return greatArc;
};
greatArc.target = function(_) {
if (!arguments.length) return target;
target = _, target_ = typeof _ === "function" ? null : _;
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
return greatArc;
};
greatArc.precision = function(_) {
if (!arguments.length) return precision / d3_radians;
precision = _ * d3_radians;
return greatArc;
};
return greatArc;
};
function d3_geo_mercator(ฮป, ฯ†) {
return [ ฮป / (2 * ฯ€), Math.max(-.5, Math.min(+.5, Math.log(Math.tan(ฯ€ / 4 + ฯ† / 2)) / (2 * ฯ€))) ];
}
d3_geo_mercator.invert = function(x, y) {
return [ 2 * ฯ€ * x, 2 * Math.atan(Math.exp(2 * ฯ€ * y)) - ฯ€ / 2 ];
};
(d3.geo.mercator = function() {
return d3_geo_projection(d3_geo_mercator).scale(500);
}).raw = d3_geo_mercator;
var d3_geo_orthographic = d3_geo_azimuthal(function() {
return 1;
}, Math.asin);
(d3.geo.orthographic = function() {
return d3_geo_projection(d3_geo_orthographic);
}).raw = d3_geo_orthographic;
d3.geo.path = function() {
var pointRadius = 4.5, projection, context, projectStream, contextStream;
function path(object) {
if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
return contextStream.result();
}
path.area = function(object) {
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projectStream(d3_geo_pathArea));
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
};
path.bounds = function(object) {
return d3_geo_bounds(projectStream)(object);
};
path.projection = function(_) {
if (!arguments.length) return projection;
projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
return path;
};
path.context = function(_) {
if (!arguments.length) return context;
contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
return path;
};
path.pointRadius = function(_) {
if (!arguments.length) return pointRadius;
pointRadius = typeof _ === "function" ? _ : +_;
return path;
};
return path.projection(d3.geo.albersUsa()).context(null);
};
function d3_geo_pathCircle(radius) {
return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
}
function d3_geo_pathProjectStream(project) {
var resample = d3_geo_resample(function(ฮป, ฯ†) {
return project([ ฮป * d3_degrees, ฯ† * d3_degrees ]);
});
return function(stream) {
stream = resample(stream);
return {
point: function(ฮป, ฯ†) {
stream.point(ฮป * d3_radians, ฯ† * d3_radians);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
};
}
function d3_geo_pathBuffer() {
var pointCircle = d3_geo_pathCircle(4.5), buffer = [];
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointCircle = d3_geo_pathCircle(_);
return stream;
},
result: function() {
if (buffer.length) {
var result = buffer.join("");
buffer = [];
return result;
}
}
};
function point(x, y) {
buffer.push("M", x, ",", y, pointCircle);
}
function pointLineStart(x, y) {
buffer.push("M", x, ",", y);
stream.point = pointLine;
}
function pointLine(x, y) {
buffer.push("L", x, ",", y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
buffer.push("Z");
}
return stream;
}
function d3_geo_pathContext(context) {
var pointRadius = 4.5;
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointRadius = _;
return stream;
},
result: d3_noop
};
function point(x, y) {
context.moveTo(x, y);
context.arc(x, y, pointRadius, 0, 2 * ฯ€);
}
function pointLineStart(x, y) {
context.moveTo(x, y);
stream.point = pointLine;
}
function pointLine(x, y) {
context.lineTo(x, y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
context.closePath();
}
return stream;
}
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_pathAreaPolygon = 0;
d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
}
};
function d3_geo_pathAreaRingStart() {
var x00, y00, x0, y0;
d3_geo_pathArea.point = function(x, y) {
d3_geo_pathArea.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
d3_geo_pathAreaPolygon += y0 * x - x0 * y;
x0 = x, y0 = y;
}
d3_geo_pathArea.lineEnd = function() {
nextPoint(x00, y00);
};
}
var d3_geo_pathCentroid = {
point: d3_geo_pathCentroidPoint,
lineStart: d3_geo_pathCentroidLineStart,
lineEnd: d3_geo_pathCentroidLineEnd,
polygonStart: function() {
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
},
polygonEnd: function() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
}
};
function d3_geo_pathCentroidPoint(x, y) {
if (d3_geo_centroidDimension) return;
d3_geo_centroidX += x;
d3_geo_centroidY += y;
++d3_geo_centroidZ;
}
function d3_geo_pathCentroidLineStart() {
var x0, y0;
if (d3_geo_centroidDimension !== 1) {
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
} else return;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x0 = x, y0 = y;
};
function nextPoint(x, y) {
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
d3_geo_centroidX += z * (x0 + x) / 2;
d3_geo_centroidY += z * (y0 + y) / 2;
d3_geo_centroidZ += z;
x0 = x, y0 = y;
}
}
function d3_geo_pathCentroidLineEnd() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
}
function d3_geo_pathCentroidRingStart() {
var x00, y00, x0, y0;
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
var z = y0 * x - x0 * y;
d3_geo_centroidX += z * (x0 + x);
d3_geo_centroidY += z * (y0 + y);
d3_geo_centroidZ += z * 3;
x0 = x, y0 = y;
}
d3_geo_pathCentroid.lineEnd = function() {
nextPoint(x00, y00);
};
}
d3.geo.area = function(object) {
d3_geo_areaSum = 0;
d3.geo.stream(object, d3_geo_area);
return d3_geo_areaSum;
};
var d3_geo_areaSum, d3_geo_areaRing;
var d3_geo_area = {
sphere: function() {
d3_geo_areaSum += 4 * ฯ€;
},
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_areaRing = 0;
d3_geo_area.lineStart = d3_geo_areaRingStart;
},
polygonEnd: function() {
d3_geo_areaSum += d3_geo_areaRing < 0 ? 4 * ฯ€ + d3_geo_areaRing : d3_geo_areaRing;
d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
}
};
function d3_geo_areaRingStart() {
var ฮป00, ฯ†00, ฮป1, ฮป0, ฯ†0, cosฯ†0, sinฯ†0;
d3_geo_area.point = function(ฮป, ฯ†) {
d3_geo_area.point = nextPoint;
ฮป1 = ฮป0 = (ฮป00 = ฮป) * d3_radians, ฯ†0 = (ฯ†00 = ฯ†) * d3_radians, cosฯ†0 = Math.cos(ฯ†0),
sinฯ†0 = Math.sin(ฯ†0);
};
function nextPoint(ฮป, ฯ†) {
ฮป *= d3_radians, ฯ† *= d3_radians;
if (Math.abs(Math.abs(ฯ†0) - ฯ€ / 2) < ฮต && Math.abs(Math.abs(ฯ†) - ฯ€ / 2) < ฮต) return;
var cosฯ† = Math.cos(ฯ†), sinฯ† = Math.sin(ฯ†);
if (Math.abs(ฯ†0 - ฯ€ / 2) < ฮต) d3_geo_areaRing += (ฮป - ฮป1) * 2; else {
var dฮป = ฮป - ฮป0, cosdฮป = Math.cos(dฮป), d = Math.atan2(Math.sqrt((d = cosฯ† * Math.sin(dฮป)) * d + (d = cosฯ†0 * sinฯ† - sinฯ†0 * cosฯ† * cosdฮป) * d), sinฯ†0 * sinฯ† + cosฯ†0 * cosฯ† * cosdฮป), s = (d + ฯ€ + ฯ†0 + ฯ†) / 4;
d3_geo_areaRing += (dฮป < 0 && dฮป > -ฯ€ || dฮป > ฯ€ ? -4 : 4) * Math.atan(Math.sqrt(Math.abs(Math.tan(s) * Math.tan(s - d / 2) * Math.tan(s - ฯ€ / 4 - ฯ†0 / 2) * Math.tan(s - ฯ€ / 4 - ฯ† / 2))));
}
ฮป1 = ฮป0, ฮป0 = ฮป, ฯ†0 = ฯ†, cosฯ†0 = cosฯ†, sinฯ†0 = sinฯ†;
}
d3_geo_area.lineEnd = function() {
nextPoint(ฮป00, ฯ†00);
};
}
d3.geo.projection = d3_geo_projection;
d3.geo.projectionMutator = d3_geo_projectionMutator;
function d3_geo_projection(project) {
return d3_geo_projectionMutator(function() {
return project;
})();
}
function d3_geo_projectionMutator(projectAt) {
var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
x = project(x, y);
return [ x[0] * k + ฮดx, ฮดy - x[1] * k ];
}), k = 150, x = 480, y = 250, ฮป = 0, ฯ† = 0, ฮดฮป = 0, ฮดฯ† = 0, ฮดฮณ = 0, ฮดx, ฮดy, clip = d3_geo_clipAntimeridian, clipAngle = null;
function projection(point) {
point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
return [ point[0] * k + ฮดx, ฮดy - point[1] * k ];
}
function invert(point) {
point = projectRotate.invert((point[0] - ฮดx) / k, (ฮดy - point[1]) / k);
return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
}
projection.stream = function(stream) {
return d3_geo_projectionRadiansRotate(rotate, clip(projectResample(stream)));
};
projection.clipAngle = function(_) {
if (!arguments.length) return clipAngle;
clip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle(clipAngle = +_);
return projection;
};
projection.scale = function(_) {
if (!arguments.length) return k;
k = +_;
return reset();
};
projection.translate = function(_) {
if (!arguments.length) return [ x, y ];
x = +_[0];
y = +_[1];
return reset();
};
projection.center = function(_) {
if (!arguments.length) return [ ฮป * d3_degrees, ฯ† * d3_degrees ];
ฮป = _[0] % 360 * d3_radians;
ฯ† = _[1] % 360 * d3_radians;
return reset();
};
projection.rotate = function(_) {
if (!arguments.length) return [ ฮดฮป * d3_degrees, ฮดฯ† * d3_degrees, ฮดฮณ * d3_degrees ];
ฮดฮป = _[0] % 360 * d3_radians;
ฮดฯ† = _[1] % 360 * d3_radians;
ฮดฮณ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
return reset();
};
d3.rebind(projection, projectResample, "precision");
function reset() {
projectRotate = d3_geo_compose(rotate = d3_geo_rotation(ฮดฮป, ฮดฯ†, ฮดฮณ), project);
var center = project(ฮป, ฯ†);
ฮดx = x - center[0] * k;
ฮดy = y + center[1] * k;
return projection;
}
return function() {
project = projectAt.apply(this, arguments);
projection.invert = project.invert && invert;
return reset();
};
}
function d3_geo_projectionRadiansRotate(rotate, stream) {
return {
point: function(x, y) {
y = rotate(x * d3_radians, y * d3_radians), x = y[0];
stream.point(x > ฯ€ ? x - 2 * ฯ€ : x < -ฯ€ ? x + 2 * ฯ€ : x, y[1]);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
}
function d3_geo_rotation(ฮดฮป, ฮดฯ†, ฮดฮณ) {
return ฮดฮป ? ฮดฯ† || ฮดฮณ ? d3_geo_compose(d3_geo_rotationฮป(ฮดฮป), d3_geo_rotationฯ†ฮณ(ฮดฯ†, ฮดฮณ)) : d3_geo_rotationฮป(ฮดฮป) : ฮดฯ† || ฮดฮณ ? d3_geo_rotationฯ†ฮณ(ฮดฯ†, ฮดฮณ) : d3_geo_equirectangular;
}
function d3_geo_forwardRotationฮป(ฮดฮป) {
return function(ฮป, ฯ†) {
return ฮป += ฮดฮป, [ ฮป > ฯ€ ? ฮป - 2 * ฯ€ : ฮป < -ฯ€ ? ฮป + 2 * ฯ€ : ฮป, ฯ† ];
};
}
function d3_geo_rotationฮป(ฮดฮป) {
var rotation = d3_geo_forwardRotationฮป(ฮดฮป);
rotation.invert = d3_geo_forwardRotationฮป(-ฮดฮป);
return rotation;
}
function d3_geo_rotationฯ†ฮณ(ฮดฯ†, ฮดฮณ) {
var cosฮดฯ† = Math.cos(ฮดฯ†), sinฮดฯ† = Math.sin(ฮดฯ†), cosฮดฮณ = Math.cos(ฮดฮณ), sinฮดฮณ = Math.sin(ฮดฮณ);
function rotation(ฮป, ฯ†) {
var cosฯ† = Math.cos(ฯ†), x = Math.cos(ฮป) * cosฯ†, y = Math.sin(ฮป) * cosฯ†, z = Math.sin(ฯ†), k = z * cosฮดฯ† + x * sinฮดฯ†;
return [ Math.atan2(y * cosฮดฮณ - k * sinฮดฮณ, x * cosฮดฯ† - z * sinฮดฯ†), Math.asin(Math.max(-1, Math.min(1, k * cosฮดฮณ + y * sinฮดฮณ))) ];
}
rotation.invert = function(ฮป, ฯ†) {
var cosฯ† = Math.cos(ฯ†), x = Math.cos(ฮป) * cosฯ†, y = Math.sin(ฮป) * cosฯ†, z = Math.sin(ฯ†), k = z * cosฮดฮณ - y * sinฮดฮณ;
return [ Math.atan2(y * cosฮดฮณ + z * sinฮดฮณ, x * cosฮดฯ† + k * sinฮดฯ†), Math.asin(Math.max(-1, Math.min(1, k * cosฮดฯ† - x * sinฮดฯ†))) ];
};
return rotation;
}
var d3_geo_stereographic = d3_geo_azimuthal(function(cosฮปcosฯ†) {
return 1 / (1 + cosฮปcosฯ†);
}, function(ฯ) {
return 2 * Math.atan(ฯ);
});
(d3.geo.stereographic = function() {
return d3_geo_projection(d3_geo_stereographic);
}).raw = d3_geo_stereographic;
function d3_geo_azimuthal(scale, angle) {
function azimuthal(ฮป, ฯ†) {
var cosฮป = Math.cos(ฮป), cosฯ† = Math.cos(ฯ†), k = scale(cosฮป * cosฯ†);
return [ k * cosฯ† * Math.sin(ฮป), k * Math.sin(ฯ†) ];
}
azimuthal.invert = function(x, y) {
var ฯ = Math.sqrt(x * x + y * y), c = angle(ฯ), sinc = Math.sin(c), cosc = Math.cos(c);
return [ Math.atan2(x * sinc, ฯ * cosc), Math.asin(ฯ && y * sinc / ฯ) ];
};
return azimuthal;
}
d3.geom = {};
d3.geom.hull = function(vertices) {
if (vertices.length < 3) return [];
var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
for (i = 1; i < len; ++i) {
if (vertices[i][1] < vertices[h][1]) {
h = i;
} else if (vertices[i][1] == vertices[h][1]) {
h = vertices[i][0] < vertices[h][0] ? i : h;
}
}
for (i = 0; i < len; ++i) {
if (i === h) continue;
y1 = vertices[i][1] - vertices[h][1];
x1 = vertices[i][0] - vertices[h][0];
points.push({
angle: Math.atan2(y1, x1),
index: i
});
}
points.sort(function(a, b) {
return a.angle - b.angle;
});
a = points[0].angle;
v = points[0].index;
u = 0;
for (i = 1; i < plen; ++i) {
j = points[i].index;
if (a == points[i].angle) {
x1 = vertices[v][0] - vertices[h][0];
y1 = vertices[v][1] - vertices[h][1];
x2 = vertices[j][0] - vertices[h][0];
y2 = vertices[j][1] - vertices[h][1];
if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
points[i].index = -1;
} else {
points[u].index = -1;
a = points[i].angle;
u = i;
v = j;
}
} else {
a = points[i].angle;
u = i;
v = j;
}
}
stack.push(h);
for (i = 0, j = 0; i < 2; ++j) {
if (points[j].index !== -1) {
stack.push(points[j].index);
i++;
}
}
sp = stack.length;
for (;j < plen; ++j) {
if (points[j].index === -1) continue;
while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
--sp;
}
stack[sp++] = points[j].index;
}
var poly = [];
for (i = 0; i < sp; ++i) {
poly.push(vertices[stack[i]]);
}
return poly;
};
function d3_geom_hullCCW(i1, i2, i3, v) {
var t, a, b, c, d, e, f;
t = v[i1];
a = t[0];
b = t[1];
t = v[i2];
c = t[0];
d = t[1];
t = v[i3];
e = t[0];
f = t[1];
return (f - b) * (c - a) - (d - b) * (e - a) > 0;
}
d3.geom.polygon = function(coordinates) {
coordinates.area = function() {
var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
while (++i < n) {
area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
}
return area * .5;
};
coordinates.centroid = function(k) {
var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
if (!arguments.length) k = -1 / (6 * coordinates.area());
while (++i < n) {
a = b;
b = coordinates[i];
c = a[0] * b[1] - b[0] * a[1];
x += (a[0] + b[0]) * c;
y += (a[1] + b[1]) * c;
}
return [ x * k, y * k ];
};
coordinates.clip = function(subject) {
var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
while (++i < n) {
input = subject.slice();
subject.length = 0;
b = coordinates[i];
c = input[(m = input.length) - 1];
j = -1;
while (++j < m) {
d = input[j];
if (d3_geom_polygonInside(d, a, b)) {
if (!d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
subject.push(d);
} else if (d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
c = d;
}
a = b;
}
return subject;
};
return coordinates;
};
function d3_geom_polygonInside(p, a, b) {
return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
}
function d3_geom_polygonIntersect(c, d, a, b) {
var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
return [ x1 + ua * x21, y1 + ua * y21 ];
}
d3.geom.voronoi = function(vertices) {
var polygons = vertices.map(function() {
return [];
}), Z = 1e6;
d3_voronoi_tessellate(vertices, function(e) {
var s1, s2, x1, x2, y1, y2;
if (e.a === 1 && e.b >= 0) {
s1 = e.ep.r;
s2 = e.ep.l;
} else {
s1 = e.ep.l;
s2 = e.ep.r;
}
if (e.a === 1) {
y1 = s1 ? s1.y : -Z;
x1 = e.c - e.b * y1;
y2 = s2 ? s2.y : Z;
x2 = e.c - e.b * y2;
} else {
x1 = s1 ? s1.x : -Z;
y1 = e.c - e.a * x1;
x2 = s2 ? s2.x : Z;
y2 = e.c - e.a * x2;
}
var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
polygons[e.region.l.index].push(v1, v2);
polygons[e.region.r.index].push(v1, v2);
});
polygons = polygons.map(function(polygon, i) {
var cx = vertices[i][0], cy = vertices[i][1], angle = polygon.map(function(v) {
return Math.atan2(v[0] - cx, v[1] - cy);
});
return d3.range(polygon.length).sort(function(a, b) {
return angle[a] - angle[b];
}).filter(function(d, i, order) {
return !i || angle[d] - angle[order[i - 1]] > ฮต;
}).map(function(d) {
return polygon[d];
});
});
polygons.forEach(function(polygon, i) {
var n = polygon.length;
if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
if (n > 2) return;
var p0 = vertices[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
if (Math.abs(dy) < ฮต) {
var y = y0 < y1 ? -Z : Z;
polygon.push([ -Z, y ], [ Z, y ]);
} else if (dx < ฮต) {
var x = x0 < x1 ? -Z : Z;
polygon.push([ x, -Z ], [ x, Z ]);
} else {
var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
if (Math.abs(z) < ฮต) {
polygon.push([ dy < 0 ? y : -y, y ]);
} else {
if (z > 0) y *= -1;
polygon.push([ -Z, y ], [ Z, y ]);
}
}
});
return polygons;
};
var d3_voronoi_opposite = {
l: "r",
r: "l"
};
function d3_voronoi_tessellate(vertices, callback) {
var Sites = {
list: vertices.map(function(v, i) {
return {
index: i,
x: v[0],
y: v[1]
};
}).sort(function(a, b) {
return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
}),
bottomSite: null
};
var EdgeList = {
list: [],
leftEnd: null,
rightEnd: null,
init: function() {
EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.leftEnd.r = EdgeList.rightEnd;
EdgeList.rightEnd.l = EdgeList.leftEnd;
EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
},
createHalfEdge: function(edge, side) {
return {
edge: edge,
side: side,
vertex: null,
l: null,
r: null
};
},
insert: function(lb, he) {
he.l = lb;
he.r = lb.r;
lb.r.l = he;
lb.r = he;
},
leftBound: function(p) {
var he = EdgeList.leftEnd;
do {
he = he.r;
} while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
he = he.l;
return he;
},
del: function(he) {
he.l.r = he.r;
he.r.l = he.l;
he.edge = null;
},
right: function(he) {
return he.r;
},
left: function(he) {
return he.l;
},
leftRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
},
rightRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]];
}
};
var Geom = {
bisect: function(s1, s2) {
var newEdge = {
region: {
l: s1,
r: s2
},
ep: {
l: null,
r: null
}
};
var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
if (adx > ady) {
newEdge.a = 1;
newEdge.b = dy / dx;
newEdge.c /= dx;
} else {
newEdge.b = 1;
newEdge.a = dx / dy;
newEdge.c /= dy;
}
return newEdge;
},
intersect: function(el1, el2) {
var e1 = el1.edge, e2 = el2.edge;
if (!e1 || !e2 || e1.region.r == e2.region.r) {
return null;
}
var d = e1.a * e2.b - e1.b * e2.a;
if (Math.abs(d) < 1e-10) {
return null;
}
var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
el = el1;
e = e1;
} else {
el = el2;
e = e2;
}
var rightOfSite = xint >= e.region.r.x;
if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
return null;
}
return {
x: xint,
y: yint
};
},
rightOf: function(he, p) {
var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
if (rightOfSite && he.side === "l") {
return 1;
}
if (!rightOfSite && he.side === "r") {
return 0;
}
if (e.a === 1) {
var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
above = fast = dyp >= e.b * dxp;
} else {
above = p.x + p.y * e.b > e.c;
if (e.b < 0) {
above = !above;
}
if (!above) {
fast = 1;
}
}
if (!fast) {
var dxs = topsite.x - e.region.l.x;
above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
if (e.b < 0) {
above = !above;
}
}
} else {
var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
above = t1 * t1 > t2 * t2 + t3 * t3;
}
return he.side === "l" ? above : !above;
},
endPoint: function(edge, side, site) {
edge.ep[side] = site;
if (!edge.ep[d3_voronoi_opposite[side]]) return;
callback(edge);
},
distance: function(s, t) {
var dx = s.x - t.x, dy = s.y - t.y;
return Math.sqrt(dx * dx + dy * dy);
}
};
var EventQueue = {
list: [],
insert: function(he, site, offset) {
he.vertex = site;
he.ystar = site.y + offset;
for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
var next = list[i];
if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
continue;
} else {
break;
}
}
list.splice(i, 0, he);
},
del: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
ls.splice(i, 1);
},
empty: function() {
return EventQueue.list.length === 0;
},
nextEvent: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
if (ls[i] == he) return ls[i + 1];
}
return null;
},
min: function() {
var elem = EventQueue.list[0];
return {
x: elem.vertex.x,
y: elem.ystar
};
},
extractMin: function() {
return EventQueue.list.shift();
}
};
EdgeList.init();
Sites.bottomSite = Sites.list.shift();
var newSite = Sites.list.shift(), newIntStar;
var lbnd, rbnd, llbnd, rrbnd, bisector;
var bot, top, temp, p, v;
var e, pm;
while (true) {
if (!EventQueue.empty()) {
newIntStar = EventQueue.min();
}
if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
lbnd = EdgeList.leftBound(newSite);
rbnd = EdgeList.right(lbnd);
bot = EdgeList.rightRegion(lbnd);
e = Geom.bisect(bot, newSite);
bisector = EdgeList.createHalfEdge(e, "l");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(lbnd, bisector);
if (p) {
EventQueue.del(lbnd);
EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
}
lbnd = bisector;
bisector = EdgeList.createHalfEdge(e, "r");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(bisector, rbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, newSite));
}
newSite = Sites.list.shift();
} else if (!EventQueue.empty()) {
lbnd = EventQueue.extractMin();
llbnd = EdgeList.left(lbnd);
rbnd = EdgeList.right(lbnd);
rrbnd = EdgeList.right(rbnd);
bot = EdgeList.leftRegion(lbnd);
top = EdgeList.rightRegion(rbnd);
v = lbnd.vertex;
Geom.endPoint(lbnd.edge, lbnd.side, v);
Geom.endPoint(rbnd.edge, rbnd.side, v);
EdgeList.del(lbnd);
EventQueue.del(rbnd);
EdgeList.del(rbnd);
pm = "l";
if (bot.y > top.y) {
temp = bot;
bot = top;
top = temp;
pm = "r";
}
e = Geom.bisect(bot, top);
bisector = EdgeList.createHalfEdge(e, pm);
EdgeList.insert(llbnd, bisector);
Geom.endPoint(e, d3_voronoi_opposite[pm], v);
p = Geom.intersect(llbnd, bisector);
if (p) {
EventQueue.del(llbnd);
EventQueue.insert(llbnd, p, Geom.distance(p, bot));
}
p = Geom.intersect(bisector, rrbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, bot));
}
} else {
break;
}
}
for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
callback(lbnd.edge);
}
}
d3.geom.delaunay = function(vertices) {
var edges = vertices.map(function() {
return [];
}), triangles = [];
d3_voronoi_tessellate(vertices, function(e) {
edges[e.region.l.index].push(vertices[e.region.r.index]);
});
edges.forEach(function(edge, i) {
var v = vertices[i], cx = v[0], cy = v[1];
edge.forEach(function(v) {
v.angle = Math.atan2(v[0] - cx, v[1] - cy);
});
edge.sort(function(a, b) {
return a.angle - b.angle;
});
for (var j = 0, m = edge.length - 1; j < m; j++) {
triangles.push([ v, edge[j], edge[j + 1] ]);
}
});
return triangles;
};
d3.geom.quadtree = function(points, x1, y1, x2, y2) {
var p, i = -1, n = points.length;
if (arguments.length < 5) {
if (arguments.length === 3) {
y2 = y1;
x2 = x1;
y1 = x1 = 0;
} else {
x1 = y1 = Infinity;
x2 = y2 = -Infinity;
while (++i < n) {
p = points[i];
if (p.x < x1) x1 = p.x;
if (p.y < y1) y1 = p.y;
if (p.x > x2) x2 = p.x;
if (p.y > y2) y2 = p.y;
}
}
}
var dx = x2 - x1, dy = y2 - y1;
if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy;
function insert(n, p, x1, y1, x2, y2) {
if (isNaN(p.x) || isNaN(p.y)) return;
if (n.leaf) {
var v = n.point;
if (v) {
if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) {
insertChild(n, p, x1, y1, x2, y2);
} else {
n.point = null;
insertChild(n, v, x1, y1, x2, y2);
insertChild(n, p, x1, y1, x2, y2);
}
} else {
n.point = p;
}
} else {
insertChild(n, p, x1, y1, x2, y2);
}
}
function insertChild(n, p, x1, y1, x2, y2) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right;
n.leaf = false;
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
if (right) x1 = sx; else x2 = sx;
if (bottom) y1 = sy; else y2 = sy;
insert(n, p, x1, y1, x2, y2);
}
var root = d3_geom_quadtreeNode();
root.add = function(p) {
insert(root, p, x1, y1, x2, y2);
};
root.visit = function(f) {
d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
};
points.forEach(root.add);
return root;
};
function d3_geom_quadtreeNode() {
return {
leaf: true,
nodes: [],
point: null
};
}
function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
if (!f(node, x1, y1, x2, y2)) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
}
}
d3.time = {};
var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
function d3_time_utc() {
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
}
d3_time_utc.prototype = {
getDate: function() {
return this._.getUTCDate();
},
getDay: function() {
return this._.getUTCDay();
},
getFullYear: function() {
return this._.getUTCFullYear();
},
getHours: function() {
return this._.getUTCHours();
},
getMilliseconds: function() {
return this._.getUTCMilliseconds();
},
getMinutes: function() {
return this._.getUTCMinutes();
},
getMonth: function() {
return this._.getUTCMonth();
},
getSeconds: function() {
return this._.getUTCSeconds();
},
getTime: function() {
return this._.getTime();
},
getTimezoneOffset: function() {
return 0;
},
valueOf: function() {
return this._.valueOf();
},
setDate: function() {
d3_time_prototype.setUTCDate.apply(this._, arguments);
},
setDay: function() {
d3_time_prototype.setUTCDay.apply(this._, arguments);
},
setFullYear: function() {
d3_time_prototype.setUTCFullYear.apply(this._, arguments);
},
setHours: function() {
d3_time_prototype.setUTCHours.apply(this._, arguments);
},
setMilliseconds: function() {
d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
},
setMinutes: function() {
d3_time_prototype.setUTCMinutes.apply(this._, arguments);
},
setMonth: function() {
d3_time_prototype.setUTCMonth.apply(this._, arguments);
},
setSeconds: function() {
d3_time_prototype.setUTCSeconds.apply(this._, arguments);
},
setTime: function() {
d3_time_prototype.setTime.apply(this._, arguments);
}
};
var d3_time_prototype = Date.prototype;
var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
d3.time.format = function(template) {
var n = template.length;
function format(date) {
var string = [], i = -1, j = 0, c, p, f;
while (++i < n) {
if (template.charCodeAt(i) === 37) {
string.push(template.substring(j, i));
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
string.push(c);
j = i + 1;
}
}
string.push(template.substring(j, i));
return string.join("");
}
format.parse = function(string) {
var d = {
y: 1900,
m: 0,
d: 1,
H: 0,
M: 0,
S: 0,
L: 0
}, i = d3_time_parse(d, template, string, 0);
if (i != string.length) return null;
if ("p" in d) d.H = d.H % 12 + d.p * 12;
var date = new d3_time();
date.setFullYear(d.y, d.m, d.d);
date.setHours(d.H, d.M, d.S, d.L);
return date;
};
format.toString = function() {
return template;
};
return format;
};
function d3_time_parse(date, template, string, j) {
var c, p, i = 0, n = template.length, m = string.length;
while (i < n) {
if (j >= m) return -1;
c = template.charCodeAt(i++);
if (c === 37) {
p = d3_time_parsers[template.charAt(i++)];
if (!p || (j = p(date, string, j)) < 0) return -1;
} else if (c != string.charCodeAt(j++)) {
return -1;
}
}
return j;
}
function d3_time_formatRe(names) {
return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
}
function d3_time_formatLookup(names) {
var map = new d3_Map(), i = -1, n = names.length;
while (++i < n) map.set(names[i].toLowerCase(), i);
return map;
}
function d3_time_formatPad(value, fill, width) {
value += "";
var length = value.length;
return length < width ? new Array(width - length + 1).join(fill) + value : value;
}
var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
var d3_time_formatPads = {
"-": "",
_: " ",
"0": "0"
};
var d3_time_formats = {
a: function(d) {
return d3_time_dayAbbreviations[d.getDay()];
},
A: function(d) {
return d3_time_days[d.getDay()];
},
b: function(d) {
return d3_time_monthAbbreviations[d.getMonth()];
},
B: function(d) {
return d3_time_months[d.getMonth()];
},
c: d3.time.format(d3_time_formatDateTime),
d: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
e: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
H: function(d, p) {
return d3_time_formatPad(d.getHours(), p, 2);
},
I: function(d, p) {
return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
},
j: function(d, p) {
return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
},
L: function(d, p) {
return d3_time_formatPad(d.getMilliseconds(), p, 3);
},
m: function(d, p) {
return d3_time_formatPad(d.getMonth() + 1, p, 2);
},
M: function(d, p) {
return d3_time_formatPad(d.getMinutes(), p, 2);
},
p: function(d) {
return d.getHours() >= 12 ? "PM" : "AM";
},
S: function(d, p) {
return d3_time_formatPad(d.getSeconds(), p, 2);
},
U: function(d, p) {
return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
},
w: function(d) {
return d.getDay();
},
W: function(d, p) {
return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
},
x: d3.time.format(d3_time_formatDate),
X: d3.time.format(d3_time_formatTime),
y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 100, p, 2);
},
Y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
},
Z: d3_time_zone,
"%": function() {
return "%";
}
};
var d3_time_parsers = {
a: d3_time_parseWeekdayAbbrev,
A: d3_time_parseWeekday,
b: d3_time_parseMonthAbbrev,
B: d3_time_parseMonth,
c: d3_time_parseLocaleFull,
d: d3_time_parseDay,
e: d3_time_parseDay,
H: d3_time_parseHour24,
I: d3_time_parseHour24,
L: d3_time_parseMilliseconds,
m: d3_time_parseMonthNumber,
M: d3_time_parseMinutes,
p: d3_time_parseAmPm,
S: d3_time_parseSeconds,
x: d3_time_parseLocaleDate,
X: d3_time_parseLocaleTime,
y: d3_time_parseYear,
Y: d3_time_parseFullYear
};
function d3_time_parseWeekdayAbbrev(date, string, i) {
d3_time_dayAbbrevRe.lastIndex = 0;
var n = d3_time_dayAbbrevRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseWeekday(date, string, i) {
d3_time_dayRe.lastIndex = 0;
var n = d3_time_dayRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseMonthAbbrev(date, string, i) {
d3_time_monthAbbrevRe.lastIndex = 0;
var n = d3_time_monthAbbrevRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseMonth(date, string, i) {
d3_time_monthRe.lastIndex = 0;
var n = d3_time_monthRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseLocaleFull(date, string, i) {
return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
}
function d3_time_parseLocaleDate(date, string, i) {
return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
}
function d3_time_parseLocaleTime(date, string, i) {
return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
}
function d3_time_parseFullYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 4));
return n ? (date.y = +n[0], i += n[0].length) : -1;
}
function d3_time_parseYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
}
function d3_time_expandYear(d) {
return d + (d > 68 ? 1900 : 2e3);
}
function d3_time_parseMonthNumber(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
}
function d3_time_parseDay(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.d = +n[0], i += n[0].length) : -1;
}
function d3_time_parseHour24(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.H = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMinutes(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.M = +n[0], i += n[0].length) : -1;
}
function d3_time_parseSeconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.S = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMilliseconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 3));
return n ? (date.L = +n[0], i += n[0].length) : -1;
}
var d3_time_numberRe = /^\s*\d+/;
function d3_time_parseAmPm(date, string, i) {
var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
return n == null ? -1 : (date.p = n, i);
}
var d3_time_amPmLookup = d3.map({
am: 0,
pm: 1
});
function d3_time_zone(d) {
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
}
d3.time.format.utc = function(template) {
var local = d3.time.format(template);
function format(date) {
try {
d3_time = d3_time_utc;
var utc = new d3_time();
utc._ = date;
return local(utc);
} finally {
d3_time = Date;
}
}
format.parse = function(string) {
try {
d3_time = d3_time_utc;
var date = local.parse(string);
return date && date._;
} finally {
d3_time = Date;
}
};
format.toString = local.toString;
return format;
};
var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
function d3_time_formatIsoNative(date) {
return date.toISOString();
}
d3_time_formatIsoNative.parse = function(string) {
var date = new Date(string);
return isNaN(date) ? null : date;
};
d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
function d3_time_interval(local, step, number) {
function round(date) {
var d0 = local(date), d1 = offset(d0, 1);
return date - d0 < d1 - date ? d0 : d1;
}
function ceil(date) {
step(date = local(new d3_time(date - 1)), 1);
return date;
}
function offset(date, k) {
step(date = new d3_time(+date), k);
return date;
}
function range(t0, t1, dt) {
var time = ceil(t0), times = [];
if (dt > 1) {
while (time < t1) {
if (!(number(time) % dt)) times.push(new Date(+time));
step(time, 1);
}
} else {
while (time < t1) times.push(new Date(+time)), step(time, 1);
}
return times;
}
function range_utc(t0, t1, dt) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = t0;
return range(utc, t1, dt);
} finally {
d3_time = Date;
}
}
local.floor = local;
local.round = round;
local.ceil = ceil;
local.offset = offset;
local.range = range;
var utc = local.utc = d3_time_interval_utc(local);
utc.floor = utc;
utc.round = d3_time_interval_utc(round);
utc.ceil = d3_time_interval_utc(ceil);
utc.offset = d3_time_interval_utc(offset);
utc.range = range_utc;
return local;
}
function d3_time_interval_utc(method) {
return function(date, k) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = date;
return method(utc, k)._;
} finally {
d3_time = Date;
}
};
}
d3.time.second = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 1e3) * 1e3);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 1e3);
}, function(date) {
return date.getSeconds();
});
d3.time.seconds = d3.time.second.range;
d3.time.seconds.utc = d3.time.second.utc.range;
d3.time.minute = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 6e4) * 6e4);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 6e4);
}, function(date) {
return date.getMinutes();
});
d3.time.minutes = d3.time.minute.range;
d3.time.minutes.utc = d3.time.minute.utc.range;
d3.time.hour = d3_time_interval(function(date) {
var timezone = date.getTimezoneOffset() / 60;
return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 36e5);
}, function(date) {
return date.getHours();
});
d3.time.hours = d3.time.hour.range;
d3.time.hours.utc = d3.time.hour.utc.range;
d3.time.day = d3_time_interval(function(date) {
var day = new d3_time(1970, 0);
day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
return day;
}, function(date, offset) {
date.setDate(date.getDate() + offset);
}, function(date) {
return date.getDate() - 1;
});
d3.time.days = d3.time.day.range;
d3.time.days.utc = d3.time.day.utc.range;
d3.time.dayOfYear = function(date) {
var year = d3.time.year(date);
return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
};
d3_time_daySymbols.forEach(function(day, i) {
day = day.toLowerCase();
i = 7 - i;
var interval = d3.time[day] = d3_time_interval(function(date) {
(date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
return date;
}, function(date, offset) {
date.setDate(date.getDate() + Math.floor(offset) * 7);
}, function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
});
d3.time[day + "s"] = interval.range;
d3.time[day + "s"].utc = interval.utc.range;
d3.time[day + "OfYear"] = function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
};
});
d3.time.week = d3.time.sunday;
d3.time.weeks = d3.time.sunday.range;
d3.time.weeks.utc = d3.time.sunday.utc.range;
d3.time.weekOfYear = d3.time.sundayOfYear;
d3.time.month = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setDate(1);
return date;
}, function(date, offset) {
date.setMonth(date.getMonth() + offset);
}, function(date) {
return date.getMonth();
});
d3.time.months = d3.time.month.range;
d3.time.months.utc = d3.time.month.utc.range;
d3.time.year = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setMonth(0, 1);
return date;
}, function(date, offset) {
date.setFullYear(date.getFullYear() + offset);
}, function(date) {
return date.getFullYear();
});
d3.time.years = d3.time.year.range;
d3.time.years.utc = d3.time.year.utc.range;
function d3_time_scale(linear, methods, format) {
function scale(x) {
return linear(x);
}
scale.invert = function(x) {
return d3_time_scaleDate(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
linear.domain(x);
return scale;
};
scale.nice = function(m) {
return scale.domain(d3_scale_nice(scale.domain(), function() {
return m;
}));
};
scale.ticks = function(m, k) {
var extent = d3_time_scaleExtent(scale.domain());
if (typeof m !== "function") {
var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
if (!i) return linear.ticks(m).map(d3_time_scaleDate);
if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
m = methods[i];
k = m[1];
m = m[0].range;
}
return m(extent[0], new Date(+extent[1] + 1), k);
};
scale.tickFormat = function() {
return format;
};
scale.copy = function() {
return d3_time_scale(linear.copy(), methods, format);
};
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_time_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_time_scaleDate(t) {
return new Date(t);
}
function d3_time_scaleFormat(formats) {
return function(date) {
var i = formats.length - 1, f = formats[i];
while (!f[1](date)) f = formats[--i];
return f[0](date);
};
}
function d3_time_scaleSetYear(y) {
var d = new Date(y, 0, 1);
d.setFullYear(y);
return d;
}
function d3_time_scaleGetYear(d) {
var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
return d.getMonth();
} ], [ d3.time.format("%b %d"), function(d) {
return d.getDate() != 1;
} ], [ d3.time.format("%a %d"), function(d) {
return d.getDay() && d.getDate() != 1;
} ], [ d3.time.format("%I %p"), function(d) {
return d.getHours();
} ], [ d3.time.format("%I:%M"), function(d) {
return d.getMinutes();
} ], [ d3.time.format(":%S"), function(d) {
return d.getSeconds();
} ], [ d3.time.format(".%L"), function(d) {
return d.getMilliseconds();
} ] ];
var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
d3_time_scaleLocalMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
};
d3.time.scale = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
};
var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
return [ m[0].utc, m[1] ];
});
var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
return d.getUTCMonth();
} ], [ d3.time.format.utc("%b %d"), function(d) {
return d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%a %d"), function(d) {
return d.getUTCDay() && d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%I %p"), function(d) {
return d.getUTCHours();
} ], [ d3.time.format.utc("%I:%M"), function(d) {
return d.getUTCMinutes();
} ], [ d3.time.format.utc(":%S"), function(d) {
return d.getUTCSeconds();
} ], [ d3.time.format.utc(".%L"), function(d) {
return d.getUTCMilliseconds();
} ] ];
var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
function d3_time_scaleUTCSetYear(y) {
var d = new Date(Date.UTC(y, 0, 1));
d.setUTCFullYear(y);
return d;
}
function d3_time_scaleUTCGetYear(d) {
var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
d3_time_scaleUTCMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
};
d3.time.scale.utc = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
};
})();
<!DOCTYPE html>
<meta charset="utf-8">
<title>pulsar-pleasures</title>
<style>
circle {
fill-opacity: 0.5;
}
circle:hover {
fill-opacity: 0.8;
}
.dyarea, .area {
fill: #111111;
}
.dyline, .line {
stroke: #ffffff;
}
html, body, #pulsar-pleasures {
width: 100%;
height: 100%;
text-align: center;
background:#111111;
}
</style>
<body>
<span id="pulsar-pleasures"></span>
<script type="text/javascript" src="d3.js"></script>
<script type="text/javascript" src="pulsar-pleasures.js"></script>
</body>
We can't make this file beautiful and searchable because it's too large.
cycle,dummy,tindex,value
0,0,0,3652.297852
0,0,1,-730.135864
0,0,2,1515.619873
0,0,3,1241.529663
0,0,4,-8113.465332
0,0,5,-4363.080566
0,0,6,-1669.847778
0,0,7,-1681.033447
0,0,8,-3236.000000
0,0,9,-4209.254883
0,0,10,-268.715820
0,0,11,-2612.313477
0,0,12,-1896.375977
0,0,13,-3015.061768
0,0,14,-794.454102
0,0,15,13.762730
0,0,16,-5425.824219
0,0,17,1593.914307
0,0,18,2086.163086
0,0,19,444.490967
0,0,20,-6298.402832
0,0,21,-7783.443359
0,0,22,-1759.352783
0,0,23,506.021179
0,0,24,-3417.791260
0,0,25,-6097.013672
0,0,26,-1090.923828
0,0,27,-4170.095215
0,0,28,-1689.445190
0,0,29,3006.255371
0,0,30,2195.204102
0,0,31,-3096.169678
0,0,32,-4586.819824
0,0,33,-81.296234
0,0,34,1372.969727
0,0,35,-696.598083
0,0,36,1266.691406
0,0,37,-2657.087646
0,0,38,3705.415527
0,0,39,2813.295410
0,0,40,1518.410034
0,0,41,-2327.076172
0,0,42,-570.766113
0,0,43,1582.710938
0,0,44,187.189209
0,0,45,-2528.417725
0,0,46,-2715.823486
0,0,47,-2332.683350
0,0,48,50.151855
0,0,49,-6555.694336
0,0,50,-2061.367432
0,0,51,-663.029053
0,0,52,-1172.022339
0,0,53,2530.793945
0,0,54,-2802.520264
0,0,55,3442.552246
0,0,56,-2738.218018
0,0,57,6692.350098
0,0,58,318.612274
0,0,59,-4150.549316
0,0,60,-4564.415039
0,0,61,10.993530
0,0,62,-3484.910889
0,0,63,3106.945312
0,0,64,189.946045
0,0,65,-2466.882812
0,0,66,2256.740967
0,0,67,-1051.821533
0,0,68,6446.193359
0,0,69,771.727539
0,0,70,-1672.608643
0,0,71,6848.909668
0,0,72,5061.867188
0,0,73,7886.530273
0,0,74,7128.624023
0,0,75,15194.331055
0,0,76,18969.878906
0,0,77,33157.511719
0,0,78,45672.828125
0,0,79,40445.796875
0,0,80,33028.949219
0,0,81,30497.898438
0,0,82,27553.009766
0,0,83,28383.564453
0,0,84,32606.650391
0,0,85,33951.886719
0,0,86,25757.503906
0,0,87,16285.085938
0,0,88,11592.167969
0,0,89,2326.657227
0,0,90,5095.424316
0,0,91,2600.746094
0,0,92,-1278.298950
0,0,93,-931.533691
0,0,94,-10381.612305
0,0,95,-4100.141602
0,0,96,-900.791504
0,0,97,-1432.055664
0,0,98,645.847168
0,0,99,6303.534180
0,0,100,-1608.321411
0,0,101,3383.821777
0,0,102,380.130615
0,0,103,1784.088135
0,0,104,-906.352356
0,0,105,-1328.657959
0,0,106,-2469.644043
0,0,107,-2276.722656
0,0,108,-800.086426
0,0,109,-2215.207520
0,0,110,371.698822
0,0,111,3932.009766
0,0,112,4759.807617
0,0,113,3532.032227
0,0,114,-235.117798
0,0,115,-1784.484619
0,0,116,-430.931091
0,0,117,1249.924316
0,0,118,-3879.280762
0,0,119,-484.035522
0,0,120,3221.611328
0,0,121,682.204712
0,0,122,-489.636993
0,0,123,-1426.542480
0,0,124,3814.452148
0,0,125,-3001.023926
0,0,126,-2575.948730
0,0,127,1493.200562
0,0,128,1367.380127
0,0,129,3051.018066
0,0,130,-391.714905
0,0,131,3263.532227
0,0,132,-433.733643
0,0,133,-268.693268
0,0,134,3353.042236
0,0,135,2259.474121
0,0,136,2804.815674
0,0,137,1940.731201
0,0,138,-6896.895996
0,0,139,-1997.094482
0,0,140,-2995.472412
0,0,141,-4088.991211
0,0,142,-973.491028
0,0,143,-2950.710938
0,0,144,-1885.180420
0,0,145,6138.344238
0,0,146,-159.613770
0,0,147,984.223389
0,0,148,-872.697998
0,0,149,-1924.347900
0,0,150,606.656128
0,0,151,371.741028
0,0,152,656.893433
0,0,153,-5867.677734
0,0,154,2497.073242
0,0,155,-1722.979004
0,0,156,1800.945312
0,0,157,3062.269043
0,0,158,-1188.803833
0,0,159,494.795410
0,0,160,-805.661743
0,0,161,939.557495
0,0,162,276.672913
0,0,163,-159.641190
0,0,164,1342.261719
0,0,165,1968.724976
0,0,166,-615.466614
0,0,167,-1177.601440
0,0,168,4656.292480
0,0,169,299.023621
0,0,170,-3101.790039
0,0,171,-4928.022461
0,0,172,-1787.298340
0,0,173,2167.245361
0,0,174,3635.526855
0,0,175,5218.484863
0,0,176,2488.967285
0,0,177,2027.376831
0,0,178,1068.135620
0,0,179,-2022.200684
0,0,180,1252.778320
0,0,181,1356.192383
0,0,182,-5856.461914
0,0,183,-4986.754395
0,0,184,3073.390137
0,0,185,-2584.563965
0,0,186,1157.660278
0,0,187,575.915527
0,0,188,3182.404785
0,0,189,-1046.138550
0,0,190,-100.836792
0,0,191,710.131653
0,0,192,905.965820
0,0,193,-1320.244019
0,0,194,1999.337158
0,0,195,1428.905273
0,0,196,-3314.277344
0,0,197,-1546.805176
0,0,198,-2746.551270
0,0,199,3618.612793
0,0,200,3381.069336
0,0,201,302.083069
0,0,202,-53.350475
0,0,203,-1146.839722
0,0,204,-707.692383
0,0,205,-774.921509
0,0,206,-2964.710693
0,0,207,-1759.384033
0,0,208,-7221.304688
0,0,209,-5249.706055
0,0,210,-8.686035
0,0,211,1929.562744
0,0,212,671.198730
0,0,213,-3496.033447
0,0,214,-61.731384
0,0,215,-4094.579102
0,0,216,5271.545898
0,0,217,724.149963
0,0,218,975.794617
0,0,219,492.005737
0,0,220,173.285400
0,0,221,-5993.500977
0,0,222,-196.112610
0,0,223,106.009079
0,0,224,-1907.550049
0,0,225,-2945.134521
0,0,226,-5386.698730
0,0,227,-4128.218750
0,0,228,-2092.119141
0,0,229,-1907.496582
0,0,230,-2679.445312
0,0,231,-3398.176270
0,0,232,-1750.969604
0,0,233,-993.043457
0,0,234,808.037170
0,0,235,1459.661621
0,0,236,5693.977539
0,0,237,-5384.047852
0,0,238,-909.125061
0,0,239,5570.951660
0,0,240,6821.012207
0,0,241,1800.855835
0,0,242,-2690.613037
0,0,243,-433.701660
0,0,244,52.923248
0,0,245,1454.143433
0,0,246,-4128.253418
0,0,247,905.961670
0,0,248,939.515808
0,0,249,3176.826416
0,0,250,2405.077148
0,0,251,-464.428955
0,0,252,4331.864258
0,0,253,903.120911
0,0,254,2835.667480
0,0,255,3744.572754
0,0,256,447.289001
0,0,257,1974.396240
0,0,258,2514.111084
0,0,259,3778.186035
0,0,260,4152.881836
0,0,261,2041.494263
0,0,262,956.268311
0,0,263,-2276.873047
0,0,264,-1994.316650
0,0,265,19.477295
0,0,266,3224.456787
0,0,267,-1110.638428
0,0,268,455.499390
0,0,269,-1275.465698
0,0,270,4267.616211
0,0,271,2844.210693
0,0,272,2452.546143
0,0,273,3652.254639
0,0,274,-4925.451172
0,0,275,-3132.482910
0,0,276,-5148.955566
0,0,277,-1037.637573
0,0,278,1663.832642
0,0,279,1613.494873
0,0,280,2813.370605
0,0,281,-3420.534912
0,0,282,-3521.292725
0,0,283,-67.286926
0,0,284,-112.071701
0,0,285,813.739868
0,0,286,2611.981934
0,0,287,5265.962402
0,0,288,575.941528
0,0,289,1065.348633
0,0,290,-618.330261
0,0,291,-2405.362793
0,0,292,-1239.040771
0,0,293,8292.189453
0,0,294,1017.805420
0,0,295,-626.508301
0,0,296,-1557.875854
0,0,297,-391.828918
0,0,298,978.607361
0,0,299,897.546631
0,0,300,1342.140381
0,0,301,-3429.040039
0,0,302,7489.503906
0,0,303,441.330109
0,0,304,2041.362305
0,0,305,3037.034668
0,0,306,438.851929
0,0,307,5081.323730
0,0,308,3951.624512
0,0,309,-3294.605713
0,0,310,-2808.131836
0,0,311,-3345.130859
0,0,312,-2369.028320
0,0,313,1842.669556
0,0,314,-1907.434692
0,0,315,4348.601562
0,0,316,-1096.549438
0,0,317,-307.675537
0,0,318,-4410.790039
0,0,319,-422.405762
0,0,320,-3238.796387
0,0,321,3725.005859
0,0,322,-2299.286621
0,0,323,1509.939819
0,0,324,455.698944
0,0,325,-1608.312988
0,0,326,-4670.747070
0,0,327,-707.929932
0,0,328,-2410.828125
0,0,329,-4642.913086
0,0,330,3848.038330
0,0,331,6264.841309
0,0,332,-1655.883911
0,0,333,2055.354736
0,0,334,-4681.732910
0,0,335,-730.224243
0,0,336,-363.761658
0,0,337,-755.311584
0,0,338,1873.656738
0,0,339,-4681.887695
0,0,340,-44.994583
0,0,341,-442.082397
0,0,342,6703.526855
0,0,343,3364.163086
0,0,344,-730.171265
0,0,345,-1644.747314
0,0,346,33.473419
0,0,347,2525.135254
0,0,348,-576.436523
0,0,349,6121.790039
0,0,350,-520.443542
0,0,351,-3297.484375
0,0,352,-1795.700562
0,0,353,-1090.926758
0,0,354,-1826.431274
0,0,355,220.868286
0,0,356,1244.298340
0,0,357,4653.620605
0,0,358,-4139.404297
0,0,359,-707.757935
0,0,360,-3960.228516
0,0,361,2690.302734
0,0,362,1840.084473
0,0,363,1778.483521
0,0,364,3607.506592
0,0,365,-495.130371
0,0,366,-4335.012695
0,0,367,-1555.165283
0,0,368,4261.858398
0,0,369,-3009.162109
0,0,370,-1513.217285
0,0,371,-3985.864746
0,0,372,-4049.942871
0,0,373,257.113037
0,0,374,-428.165924
0,0,375,-5739.035156
0,0,376,-934.307861
0,0,377,1873.577881
0,0,378,581.154480
0,0,379,-2047.241699
0,0,380,-179.203949
0,0,381,556.171387
0,0,382,3727.538086
0,0,383,1680.541138
0,0,384,1065.282715
0,0,385,-5171.333984
0,0,386,4977.776367
0,0,387,3215.986572
0,0,388,5240.712402
0,0,389,6543.956055
0,0,390,1289.095825
0,0,391,-1946.589111
0,0,392,2301.587891
0,0,393,-2729.613281
0,0,394,-6158.783203
0,0,395,-819.764343
0,0,396,220.757202
0,0,397,3260.902832
0,0,398,-17.003540
0,0,399,-3806.504395
0,0,400,-1971.822510
0,0,401,-4961.586426
0,0,402,802.491455
0,0,403,3280.403320
0,0,404,388.552856
0,0,405,645.941895
0,0,406,4281.693848
0,0,407,1490.485596
0,0,408,-3456.969727
0,0,409,519.915039
0,0,410,2533.565430
0,0,411,64.236053
0,0,412,-3227.600342
0,0,413,6309.312500
0,0,414,4359.923340
0,0,415,1504.324951
0,0,416,-1502.199707
0,0,417,4533.294922
0,0,418,1691.458862
0,0,419,2483.280762
0,0,420,-4749.051758
0,0,421,-4936.437012
0,0,422,2032.888672
0,0,423,-1337.038086
0,0,424,-1135.643677
0,0,425,-4223.198730
0,0,426,2099.908691
0,0,427,-5207.853027
0,0,428,-2782.910156
0,0,429,-1940.992920
0,0,430,-2329.845215
0,0,431,-2634.744385
0,0,432,-5509.810059
0,0,433,2220.378662
0,0,434,310.153687
0,0,435,-2657.080566
0,0,436,-3115.439941
0,0,437,6401.387695
0,0,438,-1574.784790
0,0,439,-970.662415
0,0,440,-1012.615479
0,0,441,-346.963379
0,0,442,187.046234
0,0,443,771.465454
0,0,444,-7361.233398
0,0,445,-475.586304
0,0,446,-2022.330811
0,0,447,1199.598633
0,0,448,2237.147217
0,0,449,-1960.615479
0,0,450,-2710.253662
0,0,451,-2287.924805
0,0,452,-3208.086670
0,0,453,2623.273438
0,0,454,911.500183
0,0,455,-3367.185547
0,0,456,1865.180420
0,0,457,2357.443604
0,0,458,-2369.122314
0,0,459,-2724.189453
0,0,460,-173.555420
0,0,461,4273.313477
0,0,462,1705.849121
0,0,463,3036.998779
0,0,464,4007.155518
0,0,465,-2534.135498
0,0,466,4731.930664
0,0,467,3473.374512
0,0,468,-4144.869141
0,0,469,-1527.046631
0,0,470,-7735.807129
0,0,471,-2475.277832
0,0,472,-3166.319336
0,0,473,1965.745117
0,0,474,-4069.318115
0,0,475,-3420.580811
0,0,476,2220.427734
0,0,477,3423.237549
0,0,478,-1454.538086
0,0,479,3719.533936
0,0,480,-2878.082520
0,0,481,2751.912598
0,0,482,301.824615
0,0,483,-990.161621
0,0,484,-612.572815
0,0,485,-2097.529541
0,0,486,5895.398438
0,0,487,1146.458252
0,0,488,-4181.432129
0,0,489,75.227501
0,0,490,3934.606445
0,0,491,-4044.206299
0,0,492,1266.678101
0,0,493,715.747253
0,0,494,2530.749512
0,0,495,4832.520508
0,0,496,2206.337158
0,0,497,1753.367188
0,0,498,1213.593506
0,0,499,2312.667480
0,0,500,-926.078247
0,0,501,-4466.458496
0,0,502,-696.509277
0,0,503,1168.822388
0,0,504,3450.929688
0,0,505,928.373718
0,0,506,-2542.425781
0,0,507,2377.034180
0,0,508,3053.761475
0,0,509,97.632416
0,0,510,1526.732788
0,0,511,1006.589844
0,0,512,1720.058838
0,0,513,-892.421997
0,0,514,469.775940
0,0,515,1655.383789
0,0,516,-811.253052
0,0,517,1370.075928
0,0,518,-3588.361328
0,0,519,-1941.136963
0,0,520,1658.333740
0,0,521,3403.329102
0,0,522,3182.350586
0,0,523,3778.087891
0,0,524,-2891.918945
0,0,525,1725.494507
0,0,526,-694.038513
0,0,527,3121.009277
0,0,528,1800.970703
0,0,529,4085.809814
0,0,530,-425.263916
0,0,531,701.933960
0,0,532,324.225769
0,0,533,3378.136719
0,0,534,-1644.606934
0,0,535,436.165497
0,0,536,-2819.106934
0,0,537,3957.211670
0,0,538,-696.716248
0,0,539,128.250351
0,0,540,1580.106812
0,0,541,-6298.296875
0,0,542,-6701.288086
0,0,543,3291.339844
0,0,544,-1563.676514
0,0,545,-5143.289062
0,0,546,-3213.680176
0,0,547,-4402.287598
0,0,548,-3635.771484
0,0,549,2074.856445
0,0,550,-2313.060547
0,0,551,-442.156250
0,0,552,-7008.678711
0,0,553,466.784454
0,0,554,-506.405701
0,0,555,-1253.270874
0,0,556,-6460.557617
0,0,557,-3370.399414
0,0,558,-1518.932861
0,0,559,4001.965088
0,0,560,4111.053223
0,0,561,3837.460693
0,0,562,-3037.446289
0,0,563,8848.831055
0,0,564,5970.739746
0,0,565,2978.363525
0,0,566,-1499.086792
0,0,567,1154.949707
0,0,568,-3236.093750
0,0,569,-3356.353516
0,0,570,-422.270874
0,0,571,-2945.216064
0,0,572,120.036690
0,0,573,2354.588623
0,0,574,3591.010254
0,0,575,2477.772461
0,0,576,-4128.363281
0,0,577,-3683.433350
0,0,578,1803.330566
0,0,579,914.399170
0,0,580,-1996.986816
0,0,581,209.616333
0,0,582,3218.935791
0,0,583,933.932434
0,0,584,2877.625732
0,0,585,2262.393066
0,0,586,-813.916321
0,0,587,-3059.717041
0,0,588,589.773682
0,0,589,-1384.683716
0,0,590,-1395.732056
0,0,591,-3965.525879
0,0,592,329.835083
0,0,593,-2875.304199
0,0,594,-1085.382568
0,0,595,-2388.147949
0,0,596,-2298.997559
0,0,597,2556.045410
0,0,598,-1060.317627
0,0,599,4477.275879
1,0,0,289.340332
1,0,1,-3553.327881
1,0,2,-910.457520
1,0,3,3642.594971
1,0,4,-146.966949
1,0,5,-2350.754883
1,0,6,694.870972
1,0,7,-3984.008057
1,0,8,-2445.840332
1,0,9,2093.214844
1,0,10,275.359497
1,0,11,-2054.298340
1,0,12,6330.252930
1,0,13,-2501.774170
1,0,14,-3203.744873
1,0,15,-1623.615845
1,0,16,2437.237305
1,0,17,230.601624
1,0,18,-3063.928955
1,0,19,1480.742065
1,0,20,-460.193573
1,0,21,-3284.856445
1,0,22,-930.025391
1,0,23,-4658.048828
1,0,24,-2266.861572
1,0,25,-1346.719360
1,0,26,2006.507324
1,0,27,-1218.085693
1,0,28,3852.354248
1,0,29,599.765747
1,0,30,-3268.066406
1,0,31,1002.475769
1,0,32,2428.820801
1,0,33,-3287.657227
1,0,34,-1763.457520
1,0,35,1354.894287
1,0,36,-1978.789917
1,0,37,-756.634521
1,0,38,6808.458008
1,0,39,-2834.540527
1,0,40,46.039261
1,0,41,2381.294189
1,0,42,-5835.453613
1,0,43,2398.039551
1,0,44,2400.852051
1,0,45,-2333.947021
1,0,46,2551.875244
1,0,47,792.739502
1,0,48,-812.512451
1,0,49,1807.977661
1,0,50,602.556030
1,0,51,3603.400879
1,0,52,-5287.300293
1,0,53,-3388.333252
1,0,54,-5326.457031
1,0,55,-2700.329102
1,0,56,-107.796753
1,0,57,-1139.765503
1,0,58,-3234.492920
1,0,59,350.866455
1,0,60,837.501221
1,0,61,-790.175171
1,0,62,-4851.008301
1,0,63,1315.710205
1,0,64,-1973.198486
1,0,65,2700.093262
1,0,66,-37.889862
1,0,67,-2364.768066
1,0,68,-1964.809692
1,0,69,2694.543945
1,0,70,5191.985840
1,0,71,46.012695
1,0,72,5583.544434
1,0,73,8324.304688
1,0,74,20965.382812
1,0,75,27266.441406
1,0,76,33089.167969
1,0,77,35614.585938
1,0,78,38993.074219
1,0,79,24637.501953
1,0,80,21952.652344
1,0,81,14093.878906
1,0,82,14035.160156
1,0,83,16308.900391
1,0,84,18551.880859
1,0,85,16711.644531
1,0,86,14300.886719
1,0,87,12424.288086
1,0,88,15360.783203
1,0,89,9756.191406
1,0,90,3318.135254
1,0,91,116.026855
1,0,92,-1517.303345
1,0,93,3024.518555
1,0,94,-851.689941
1,0,95,280.952820
1,0,96,574.607910
1,0,97,2305.734375
1,0,98,-963.571716
1,0,99,-2554.923584
1,0,100,-3047.113525
1,0,101,-342.702881
1,0,102,-407.032501
1,0,103,1603.806396
1,0,104,-848.920898
1,0,105,-4534.958496
1,0,106,4185.123047
1,0,107,-4017.588379
1,0,108,-899.264282
1,0,109,3539.131836
1,0,110,-1545.327881
1,0,111,3620.283203
1,0,112,3427.228760
1,0,113,5147.203613
1,0,114,921.362549
1,0,115,1393.994019
1,0,116,4459.264648
1,0,117,1170.328857
1,0,118,-4109.950684
1,0,119,-6319.297852
1,0,120,-1542.492432
1,0,121,-2157.776855
1,0,122,-692.332336
1,0,123,6637.846191
1,0,124,-1763.446533
1,0,125,1606.618652
1,0,126,5549.948242
1,0,127,3010.514160
1,0,128,-3631.637207
1,0,129,-1061.455078
1,0,130,-518.924500
1,0,131,2742.027344
1,0,132,-7222.706543
1,0,133,2370.083740
1,0,134,-538.481812
1,0,135,-2658.368164
1,0,136,3432.906250
1,0,137,5748.520508
1,0,138,683.671021
1,0,139,756.386841
1,0,140,-630.746704
1,0,141,560.604248
1,0,142,-2031.928223
1,0,143,-4406.325195
1,0,144,2543.482666
1,0,145,-23.605957
1,0,146,840.328979
1,0,147,-225.244141
1,0,148,-1011.213989
1,0,149,1349.316284
1,0,150,1886.252441
1,0,151,-1892.114624
1,0,152,2786.641846
1,0,153,-496.574463
1,0,154,923.926208
1,0,155,-5013.234863
1,0,156,-4297.084473
1,0,157,-927.213623
1,0,158,1905.887817
1,0,159,-5295.710449
1,0,160,-2415.022217
1,0,161,541.004639
1,0,162,-463.030487
1,0,163,-1176.155518
1,0,164,-1067.073486
1,0,165,278.189117
1,0,166,194.247421
1,0,167,1897.446533
1,0,168,-309.127502
1,0,169,-586.022522
1,0,170,-3161.825195
1,0,171,-7065.937988
1,0,172,1545.055420
1,0,173,-4820.083008
1,0,174,1259.803589
1,0,175,-40.648285
1,0,176,1066.854858
1,0,177,5222.719238
1,0,178,3497.171631
1,0,179,-3027.544434
1,0,180,-2560.276855
1,0,181,1704.440674
1,0,182,-4065.191162
1,0,183,2135.135254
1,0,184,-2046.072021
1,0,185,661.247314
1,0,186,4632.631348
1,0,187,4568.307617
1,0,188,-6520.636230
1,0,189,-356.725098
1,0,190,689.199829
1,0,191,2188.355957
1,0,192,-2932.485352
1,0,193,896.205933
1,0,194,856.976013
1,0,195,-2904.539551
1,0,196,2649.768555
1,0,197,-3760.279541
1,0,198,-2736.724121
1,0,199,-2303.227051
1,0,200,-3044.319824
1,0,201,-96.593811
1,0,202,-1623.574463
1,0,203,-306.486084
1,0,204,-138.580063
1,0,205,-1117.404053
1,0,206,2358.903564
1,0,207,4392.042480
1,0,208,-1192.934814
1,0,209,-3119.911133
1,0,210,-3902.863525
1,0,211,-37.756897
1,0,212,941.052795
1,0,213,-3740.698486
1,0,214,-3642.860352
1,0,215,-230.857574
1,0,216,-1794.233765
1,0,217,462.767212
1,0,218,1830.319214
1,0,219,-4666.454102
1,0,220,-946.908813
1,0,221,-2219.315918
1,0,222,-1595.598511
1,0,223,1234.682007
1,0,224,-9233.433594
1,0,225,-130.112305
1,0,226,1173.062378
1,0,227,2853.792236
1,0,228,-6584.942871
1,0,229,-3276.339600
1,0,230,4596.272461
1,0,231,-613.935303
1,0,232,-7888.420410
1,0,233,1886.276855
1,0,234,2040.059326
1,0,235,-4767.115723
1,0,236,213.824829
1,0,237,3939.105957
1,0,238,-3021.940430
1,0,239,-2440.201416
1,0,240,-3243.087646
1,0,241,3141.892334
1,0,242,-423.851440
1,0,243,-202.892822
1,0,244,2775.627441
1,0,245,1500.279663
1,0,246,-1293.659668
1,0,247,-1374.692139
1,0,248,-952.494141
1,0,249,-2138.213623
1,0,250,2336.365234
1,0,251,3236.900879
1,0,252,-6584.874023
1,0,253,-3933.697754
1,0,254,-1802.629395
1,0,255,510.262268
1,0,256,1287.812988
1,0,257,-65.869995
1,0,258,-3827.450439
1,0,259,3038.652832
1,0,260,-88.118912
1,0,261,-795.816956
1,0,262,194.252014
1,0,263,-2725.564209
1,0,264,-325.949707
1,0,265,-2664.236328
1,0,266,2028.847900
1,0,267,-398.619080
1,0,268,-9854.160156
1,0,269,-1019.505859
1,0,270,4034.142578
1,0,271,2901.631348
1,0,272,2104.536621
1,0,273,664.141846
1,0,274,-6887.069336
1,0,275,-2759.074707
1,0,276,3001.985352
1,0,277,160.549866
1,0,278,-1883.696899
1,0,279,3975.255371
1,0,280,-625.186401
1,0,281,-3656.709473
1,0,282,65.567001
1,0,283,1581.398438
1,0,284,865.574341
1,0,285,157.991699
1,0,286,-7692.586426
1,0,287,-2781.516846
1,0,288,4744.275391
1,0,289,-5594.946777
1,0,290,1324.017578
1,0,291,-485.392120
1,0,292,1318.549561
1,0,293,2157.661865
1,0,294,-2966.015625
1,0,295,-569.210999
1,0,296,1047.223755
1,0,297,-4853.945801
1,0,298,1189.854736
1,0,299,-1114.416504
1,0,300,-6612.973633
1,0,301,-1120.268555
1,0,302,932.508545
1,0,303,-1704.773438
1,0,304,177.502136
1,0,305,675.096802
1,0,306,1589.708130
1,0,307,-4683.197266
1,0,308,915.916443
1,0,309,-211.186005
1,0,310,7902.028809
1,0,311,6786.013184
1,0,312,-2127.067139
1,0,313,4847.642090
1,0,314,2593.670898
1,0,315,-8108.984863
1,0,316,-1332.705811
1,0,317,2549.107910
1,0,318,773.294250
1,0,319,910.148193
1,0,320,224.915253
1,0,321,96.391113
1,0,322,591.547241
1,0,323,4425.672852
1,0,324,2036.973145
1,0,325,-2303.366455
1,0,326,3147.539062
1,0,327,-3005.153076
1,0,328,2674.827393
1,0,329,-647.548462
1,0,330,-3438.716064
1,0,331,227.883469
1,0,332,4498.373535
1,0,333,1430.328979
1,0,334,-1005.470032
1,0,335,845.842163
1,0,336,-6725.116699
1,0,337,5709.381836
1,0,338,-725.915771
1,0,339,4090.038086
1,0,340,-250.494995
1,0,341,-7577.802734
1,0,342,-2960.466309
1,0,343,-2409.122559
1,0,344,6380.778320
1,0,345,-2406.709717
1,0,346,1346.481201
1,0,347,4101.245605
1,0,348,-1170.498291
1,0,349,2372.957275
1,0,350,-888.444763
1,0,351,2154.668945
1,0,352,-2638.718994
1,0,353,3491.598633
1,0,354,1662.515381
1,0,355,-2638.773193
1,0,356,342.532837
1,0,357,697.606934
1,0,358,-1668.393677
1,0,359,-1341.241943
1,0,360,-4076.362305
1,0,361,-2384.250488
1,0,362,-96.608322
1,0,363,-935.563721
1,0,364,-2415.010742
1,0,365,-5815.857910
1,0,366,-1833.346680
1,0,367,-2725.513672
1,0,368,99.160400
1,0,369,2325.282227
1,0,370,946.594177
1,0,371,-3175.831543
1,0,372,-2331.159180
1,0,373,1189.925171
1,0,374,272.536591
1,0,375,4338.976074
1,0,376,3628.623047
1,0,377,300.475983
1,0,378,3156.076416
1,0,379,-3335.005127
1,0,380,719.764648
1,0,381,152.264160
1,0,382,974.520142
1,0,383,-435.048859
1,0,384,2593.782715
1,0,385,-1444.627930
1,0,386,7303.435547
1,0,387,3178.260742
1,0,388,-2104.616211
1,0,389,4022.712158
1,0,390,3130.595459
1,0,391,-1713.063477
1,0,392,-1397.003906
1,0,393,1421.885254
1,0,394,815.059814
1,0,395,82.314880
1,0,396,-1707.511841
1,0,397,1142.598633
1,0,398,2590.919434
1,0,399,93.550247
1,0,400,-1008.346069
1,0,401,-2311.605713
1,0,402,-1324.230835
1,0,403,-2001.279053
1,0,404,-2241.565430
1,0,405,-3642.795898
1,0,406,45.866302
1,0,407,4422.787109
1,0,408,1637.208374
1,0,409,-4652.308594
1,0,410,510.269623
1,0,411,789.943298
1,0,412,1905.841187
1,0,413,3214.694580
1,0,414,-401.548096
1,0,415,2959.891357
1,0,416,666.663574
1,0,417,1167.468262
1,0,418,4912.663574
1,0,419,5527.557617
1,0,420,1371.541992
1,0,421,-258.614777
1,0,422,4193.645020
1,0,423,2275.034424
1,0,424,940.991638
1,0,425,622.220642
1,0,426,-1900.375000
1,0,427,23.325287
1,0,428,269.715820
1,0,429,-1260.163574
1,0,430,-4177.180176
1,0,431,4031.179199
1,0,432,2540.802490
1,0,433,742.456543
1,0,434,2224.607910
1,0,435,1136.738892
1,0,436,3645.458984
1,0,437,9098.820312
1,0,438,745.140015
1,0,439,-650.365845
1,0,440,-1190.040894
1,0,441,-1176.172119
1,0,442,2658.208252
1,0,443,6718.767090
1,0,444,-5913.718750
1,0,445,-113.417908
1,0,446,-404.337341
1,0,447,-1587.255249
1,0,448,-295.178101
1,0,449,2909.920410
1,0,450,-4825.617188
1,0,451,-320.341858
1,0,452,-2921.256348
1,0,453,-5111.062988
1,0,454,1550.529419
1,0,455,4059.539307
1,0,456,474.075928
1,0,457,-2157.735107
1,0,458,-3061.009277
1,0,459,-3642.675049
1,0,460,2837.088379
1,0,461,-3058.195312
1,0,462,-1187.114380
1,0,463,401.419312
1,0,464,-678.351074
1,0,465,-4663.554688
1,0,466,-2115.901611
1,0,467,-2303.299316
1,0,468,3718.047363
1,0,469,-4459.646484
1,0,470,-2619.187012
1,0,471,7955.111328
1,0,472,-3198.797852
1,0,473,3695.710693
1,0,474,3555.931641
1,0,475,3016.210938
1,0,476,-1282.385498
1,0,477,406.758392
1,0,478,1464.121094
1,0,479,6204.402832
1,0,480,1391.224487
1,0,481,-1978.484985
1,0,482,-9862.760742
1,0,483,594.456543
1,0,484,1290.635864
1,0,485,-18.390778
1,0,486,171.810364
1,0,487,2666.561768
1,0,488,-1408.280151
1,0,489,6634.944824
1,0,490,415.326538
1,0,491,3298.610352
1,0,492,471.044312
1,0,493,-4923.693848
1,0,494,-3589.770264
1,0,495,1352.189453
1,0,496,-66.020020
1,0,497,2644.021729
1,0,498,-1013.923096
1,0,499,-434.960663
1,0,500,-3405.003418
1,0,501,-2213.804688
1,0,502,-4263.842773
1,0,503,1539.469238
1,0,504,938.264282
1,0,505,3555.978516
1,0,506,200.021729
1,0,507,-622.442810
1,0,508,-2166.117432
1,0,509,-1687.749146
1,0,510,4842.356934
1,0,511,-6279.972168
1,0,512,-857.286194
1,0,513,5921.765625
1,0,514,4559.918945
1,0,515,2392.560059
1,0,516,3452.464355
1,0,517,3785.232910
1,0,518,-3760.814209
1,0,519,6889.557129
1,0,520,-4283.836426
1,0,521,-957.991943
1,0,522,-1640.371826
1,0,523,-821.205017
1,0,524,3094.568115
1,0,525,-395.844940
1,0,526,988.813477
1,0,527,3916.748535
1,0,528,4599.024414
1,0,529,4840.022949
1,0,530,3293.037842
1,0,531,-1086.645264
1,0,532,-1058.599121
1,0,533,2543.605225
1,0,534,-21.241547
1,0,535,-2697.301514
1,0,536,-2202.431885
1,0,537,3360.009277
1,0,538,7879.516602
1,0,539,1651.415527
1,0,540,-35.001175
1,0,541,2890.308105
1,0,542,-4429.177734
1,0,543,1374.462646
1,0,544,-326.084747
1,0,545,-365.118622
1,0,546,-714.856567
1,0,547,-546.865967
1,0,548,99.024689
1,0,549,3533.366211
1,0,550,-423.984863
1,0,551,-924.508057
1,0,552,233.170532
1,0,553,-1531.506836
1,0,554,-2884.629395
1,0,555,-1841.765381
1,0,556,3390.744873
1,0,557,3396.292480
1,0,558,-4789.373047
1,0,559,241.978638
1,0,560,3276.092041
1,0,561,3388.115723
1,0,562,-1327.156006
1,0,563,3883.381592
1,0,564,560.725403
1,0,565,5502.749023
1,0,566,2087.645508
1,0,567,2364.581543
1,0,568,-1114.639160
1,0,569,-3477.797852
1,0,570,-93.702408
1,0,571,1889.031982
1,0,572,1254.150635
1,0,573,4288.589355
1,0,574,-535.728027
1,0,575,-258.877319
1,0,576,-2082.391602
1,0,577,692.093872
1,0,578,-5368.216797
1,0,579,-6064.798828
1,0,580,537.992676
1,0,581,5018.657715
1,0,582,5569.411621
1,0,583,-918.779480
1,0,584,1880.967407
1,0,585,2996.607666
1,0,586,1315.822876
1,0,587,-4938.204102
1,0,588,-1889.263428
1,0,589,-4023.229492
1,0,590,-57.515060
1,0,591,308.796570
1,0,592,-3533.701660
1,0,593,904.831604
1,0,594,2621.833496
1,0,595,1461.236328
1,0,596,-110.623627
1,0,597,1461.061768
1,0,598,2423.039551
1,0,599,1875.231445
2,0,0,-2862.300781
2,0,1,1276.823608
2,0,2,5499.840820
2,0,3,423.811096
2,0,4,2815.011719
2,0,5,-331.324707
2,0,6,1053.063477
2,0,7,-1080.836426
2,0,8,2096.243164
2,0,9,2731.098145
2,0,10,-272.573608
2,0,11,1724.276245
2,0,12,1075.447144
2,0,13,281.174164
2,0,14,-1654.153809
2,0,15,3922.483643
2,0,16,-817.923218
2,0,17,365.065918
2,0,18,-3561.501221
2,0,19,-2319.765625
2,0,20,-3041.312256
2,0,21,-761.992432
2,0,22,2292.029297
2,0,23,6461.908203
2,0,24,-3181.147217
2,0,25,1634.780884
2,0,26,636.356689
2,0,27,-101.952148
2,0,28,2328.377441
2,0,29,-4252.292969
2,0,30,-761.988403
2,0,31,7079.969238
2,0,32,-2135.177979
2,0,33,-1282.186523
2,0,34,-1312.939453
2,0,35,4445.494629
2,0,36,647.569336
2,0,37,1274.015869
2,0,38,-2789.614502
2,0,39,289.554321
2,0,40,7250.578125
2,0,41,2675.171631
2,0,42,1232.070557
2,0,43,-255.796097
2,0,44,2375.905029
2,0,45,1604.007568
2,0,46,1215.288330
2,0,47,-717.260620
2,0,48,725.872559
2,0,49,-1491.960571
2,0,50,-1226.221680
2,0,51,225.235596
2,0,52,4107.075684
2,0,53,4716.753418
2,0,54,-1159.128906
2,0,55,-4143.260254
2,0,56,-6070.168457
2,0,57,-3072.116943
2,0,58,614.006592
2,0,59,8805.584961
2,0,60,6850.650391
2,0,61,2507.335938
2,0,62,1889.274658
2,0,63,2829.017090
2,0,64,5899.740723
2,0,65,-1147.922607
2,0,66,-1178.760986
2,0,67,1055.840942
2,0,68,1444.599121
2,0,69,3483.394531
2,0,70,401.464111
2,0,71,3066.712158
2,0,72,6461.920898
2,0,73,13931.901367
2,0,74,17005.501953
2,0,75,24167.867188
2,0,76,30494.039062
2,0,77,35024.710938
2,0,78,39038.082031
2,0,79,30583.539062
2,0,80,25325.757812
2,0,81,25510.253906
2,0,82,20196.523438
2,0,83,16955.156250
2,0,84,15190.442383
2,0,85,19226.101562
2,0,86,20518.187500
2,0,87,28704.164062
2,0,88,28983.796875
2,0,89,23574.916016
2,0,90,8489.481445
2,0,91,5513.828125
2,0,92,3477.852539
2,0,93,-286.522949
2,0,94,1774.628906
2,0,95,-1936.670288
2,0,96,1645.961548
2,0,97,4434.264648
2,0,98,-3659.384277
2,0,99,4431.452148
2,0,100,2834.589355
2,0,101,2940.855225
2,0,102,-3527.940674
2,0,103,-1765.984375
2,0,104,2462.636230
2,0,105,4862.227539
2,0,106,1757.816528
2,0,107,3821.829834
2,0,108,-669.727600
2,0,109,1967.625244
2,0,110,-34.863358
2,0,111,-580.211060
2,0,112,5077.526367
2,0,113,6506.615234
2,0,114,4713.957031
2,0,115,4244.216797
2,0,116,-8718.641602
2,0,117,1824.953491
2,0,118,-1494.781250
2,0,119,-2742.042480
2,0,120,-4255.083984
2,0,121,-1293.388184
2,0,122,2213.706055
2,0,123,2627.613770
2,0,124,197.302673
2,0,125,200.091583
2,0,126,751.005127
2,0,127,4783.909180
2,0,128,-1486.376953
2,0,129,-2045.642334
2,0,130,-3326.534180
2,0,131,-4968.226074
2,0,132,-2907.077881
2,0,133,2487.731934
2,0,134,3058.304443
2,0,135,2896.107422
2,0,136,2043.078491
2,0,137,-1587.024170
2,0,138,-2990.965820
2,0,139,-2423.225098
2,0,140,-1461.165283
2,0,141,2370.299316
2,0,142,1044.614868
2,0,143,6280.127930
2,0,144,-3541.902100
2,0,145,1271.319946
2,0,146,-2691.673584
2,0,147,-266.988281
2,0,148,-6942.840820
2,0,149,-3164.368164
2,0,150,-518.712646
2,0,151,874.078674
2,0,152,60.165985
2,0,153,-225.048325
2,0,154,-406.795532
2,0,155,183.319397
2,0,156,4976.807617
2,0,157,-3623.159912
2,0,158,-770.400024
2,0,159,-4171.175293
2,0,160,-387.217316
2,0,161,-2006.508545
2,0,162,-3964.197754
2,0,163,-6587.628906
2,0,164,-401.259521
2,0,165,6146.040039
2,0,166,-3402.054932
2,0,167,-2160.325684
2,0,168,-4778.060059
2,0,169,-2160.366699
2,0,170,2857.104004
2,0,171,-2294.683594
2,0,172,-974.541626
2,0,173,-1760.343994
2,0,174,-4531.925781
2,0,175,7661.482910
2,0,176,927.250061
2,0,177,-711.671814
2,0,178,2624.791260
2,0,179,-650.145203
2,0,180,694.934387
2,0,181,-4246.656738
2,0,182,5167.089844
2,0,183,4431.576172
2,0,184,3455.538086
2,0,185,5877.525879
2,0,186,-1307.334717
2,0,187,703.473694
2,0,188,2429.089355
2,0,189,-115.965210
2,0,190,-985.699280
2,0,191,3228.900391
2,0,192,2753.456543
2,0,193,2719.896240
2,0,194,-73.969360
2,0,195,-4207.510742
2,0,196,-3897.127686
2,0,197,-3167.140625
2,0,198,-1981.399780
2,0,199,-387.240051
2,0,200,888.072693
2,0,201,1481.011108
2,0,202,-1802.362305
2,0,203,8002.770508
2,0,204,3058.373047
2,0,205,-3100.035400
2,0,206,-12.486786
2,0,207,-717.232239
2,0,208,-3709.683105
2,0,209,7183.687012
2,0,210,-3413.294189
2,0,211,2912.956543
2,0,212,3290.404785
2,0,213,4672.100098
2,0,214,-952.226685
2,0,215,-1198.291382
2,0,216,518.900391
2,0,217,563.676270
2,0,218,-3032.946777
2,0,219,1883.656494
2,0,220,1349.492920
2,0,221,110.583252
2,0,222,4859.353027
2,0,223,-286.480591
2,0,224,-1606.631470
2,0,225,-2221.868408
2,0,226,2347.992920
2,0,227,1707.487549
2,0,228,404.216064
2,0,229,1950.795288
2,0,230,-739.613831
2,0,231,4.390869
2,0,232,798.660767
2,0,233,-2082.056885
2,0,234,-1847.113525
2,0,235,-1282.190674
2,0,236,2252.978027
2,0,237,3240.202881
2,0,238,-1078.041504
2,0,239,-496.211914
2,0,240,-5762.541016
2,0,241,1156.572388
2,0,242,-2135.158203
2,0,243,-602.606323
2,0,244,-1710.105225
2,0,245,-3706.973389
2,0,246,3877.871582
2,0,247,7423.965820
2,0,248,3125.461670
2,0,249,1355.118408
2,0,250,-1114.414917
2,0,251,99.382309
2,0,252,2814.980957
2,0,253,57.451050
2,0,254,2233.246338
2,0,255,-1024.970215
2,0,256,4758.343262
2,0,257,-6347.026367
2,0,258,-1545.015137
2,0,259,-546.595642
2,0,260,-412.455841
2,0,261,-1422.142700
2,0,262,-57.244141
2,0,263,-2224.651611
2,0,264,-1525.514771
2,0,265,300.787048
2,0,266,2739.418945
2,0,267,5256.439941
2,0,268,6948.491699
2,0,269,997.177307
2,0,270,-1231.773438
2,0,271,-320.270569
2,0,272,-2613.428223
2,0,273,4976.813965
2,0,274,5111.080078
2,0,275,2736.744873
2,0,276,-2009.284424
2,0,277,-4570.981934
2,0,278,829.299194
2,0,279,-3102.882080
2,0,280,-4674.748535
2,0,281,-1463.985474
2,0,282,-2154.758545
2,0,283,-163.496704
2,0,284,-2694.559814
2,0,285,-661.372681
2,0,286,-2353.427490
2,0,287,-445.966858
2,0,288,3301.504883
2,0,289,949.560303
2,0,290,132.941650
2,0,291,-3195.061768
2,0,292,-2627.261719
2,0,293,1925.728149
2,0,294,-129.901489
2,0,295,3961.555664
2,0,296,3102.974609
2,0,297,-362.137878
2,0,298,5088.814453
2,0,299,-2079.409180
2,0,300,-1785.389282
2,0,301,1352.370850
2,0,302,-2901.453369
2,0,303,334.285767
2,0,304,-26.370478
2,0,305,1039.173096
2,0,306,-155.053314
2,0,307,-719.970520
2,0,308,2398.269287
2,0,309,2045.749023
2,0,310,-3611.827148
2,0,311,3928.015137
2,0,312,-3004.929932
2,0,313,1447.209961
2,0,314,7149.490723
2,0,315,-4546.049805
2,0,316,-9023.683594
2,0,317,-1469.604004
2,0,318,2814.979004
2,0,319,2610.700684
2,0,320,158.112000
2,0,321,-1788.402588
2,0,322,-1128.452515
2,0,323,823.589966
2,0,324,1649.180298
2,0,325,1785.896240
2,0,326,-124.313599
2,0,327,-1637.287964
2,0,328,3497.402832
2,0,329,149.645447
2,0,330,6101.175781
2,0,331,2258.545410
2,0,332,-2414.936035
2,0,333,5181.214844
2,0,334,1201.441895
2,0,335,-2501.514160
2,0,336,-966.120789
2,0,337,893.666260
2,0,338,-1240.344482
2,0,339,32.260834
2,0,340,689.409241
2,0,341,3360.063721
2,0,342,3206.461426
2,0,343,-1589.651855
2,0,344,-2274.931885
2,0,345,-2825.956787
2,0,346,-1041.618042
2,0,347,-1304.784302
2,0,348,144.207642
2,0,349,-2431.610596
2,0,350,-2851.583984
2,0,351,-1086.340210
2,0,352,-2487.384766
2,0,353,-734.037109
2,0,354,-4285.802246
2,0,355,-1097.811890
2,0,356,2098.939697
2,0,357,1086.752197
2,0,358,-208.151611
2,0,359,812.587708
2,0,360,619.625366
2,0,361,-3575.538086
2,0,362,1189.964355
2,0,363,1117.443115
2,0,364,306.340088
2,0,365,3572.800781
2,0,366,-2345.007080
2,0,367,-7714.575195
2,0,368,-381.817657
2,0,369,-1836.157715
2,0,370,608.327271
2,0,371,-3323.874512
2,0,372,-1357.719971
2,0,373,-4327.842285
2,0,374,-4596.368164
2,0,375,-4504.030762
2,0,376,-722.818115
2,0,377,3033.215820
2,0,378,-1178.767822
2,0,379,2918.409668
2,0,380,-208.339661
2,0,381,490.979370
2,0,382,5063.503906
2,0,383,3410.591797
2,0,384,2465.353027
2,0,385,-2719.720703
2,0,386,-1092.072266
2,0,387,988.687317
2,0,388,3161.666992
2,0,389,3430.227783
2,0,390,4112.619141
2,0,391,4982.495117
2,0,392,-2160.443604
2,0,393,-325.666595
2,0,394,4235.843750
2,0,395,2898.802002
2,0,396,-5077.312500
2,0,397,5749.123047
2,0,398,675.491211
2,0,399,-4070.354980
2,0,400,-1673.792969
2,0,401,5580.889160
2,0,402,-1740.812378
2,0,403,1413.763916
2,0,404,-692.126099
2,0,405,-253.061249
2,0,406,-1956.075684
2,0,407,-3248.270020
2,0,408,-392.791077
2,0,409,-3217.388916
2,0,410,-2149.060547
2,0,411,3273.654785
2,0,412,1464.203125
2,0,413,-5094.204590
2,0,414,331.438263
2,0,415,-6044.760254
2,0,416,-482.226501
2,0,417,-3416.084961
2,0,418,-1268.215576
2,0,419,1878.017090
2,0,420,4462.281738
2,0,421,2996.652832
2,0,422,499.317780
2,0,423,4551.774414
2,0,424,-1077.996338
2,0,425,-842.933838
2,0,426,-4506.618652
2,0,427,-619.540222
2,0,428,5432.699219
2,0,429,3438.658936
2,0,430,1458.604248
2,0,431,3874.759766
2,0,432,2208.123291
2,0,433,5032.723633
2,0,434,-1631.464111
2,0,435,-1122.475464
2,0,436,-507.695557
2,0,437,-5043.789062
2,0,438,-3142.003906
2,0,439,1433.464355
2,0,440,-1819.114014
2,0,441,-1201.141479
2,0,442,683.810303
2,0,443,5052.162598
2,0,444,2605.230957
2,0,445,-532.670532
2,0,446,901.967163
2,0,447,893.629517
2,0,448,781.799622
2,0,449,-764.737183
2,0,450,-2585.238037
2,0,451,1419.479004
2,0,452,-1203.876587
2,0,453,4068.395020
2,0,454,-3746.210693
2,0,455,-3983.574707
2,0,456,-904.623169
2,0,457,3100.027344
2,0,458,-529.912781
2,0,459,521.704834
2,0,460,4260.925781
2,0,461,1673.937256
2,0,462,2896.181885
2,0,463,-23.427734
2,0,464,5043.950684
2,0,465,2468.220215
2,0,466,-3754.509277
2,0,467,1181.723999
2,0,468,3444.222412
2,0,469,1673.942505
2,0,470,-205.467987
2,0,471,-851.521545
2,0,472,-303.065674
2,0,473,-1869.614990
2,0,474,-5250.758789
2,0,475,-1505.856201
2,0,476,-1377.246826
2,0,477,795.754700
2,0,478,-115.943657
2,0,479,4769.962402
2,0,480,731.401611
2,0,481,1313.369995
2,0,482,-1578.655029
2,0,483,2163.406494
2,0,484,-2705.556641
2,0,485,-887.909607
2,0,486,-3035.739014
2,0,487,2795.433594
2,0,488,-166.469238
2,0,489,1791.363281
2,0,490,-1861.028564
2,0,491,-2073.517090
2,0,492,767.765259
2,0,493,-5840.846680
2,0,494,-5611.486328
2,0,495,-3281.775879
2,0,496,678.152039
2,0,497,-1234.709106
2,0,498,4529.368652
2,0,499,770.510498
2,0,500,-2484.923096
2,0,501,-3818.787109
2,0,502,-1721.308838
2,0,503,2650.008057
2,0,504,-1091.979370
2,0,505,3917.012695
2,0,506,2742.240479
2,0,507,-79.576843
2,0,508,-5281.460938
2,0,509,2764.741455
2,0,510,527.461792
2,0,511,-1872.363525
2,0,512,-1729.614868
2,0,513,-415.209991
2,0,514,-3130.557617
2,0,515,-5317.920410
2,0,516,-7560.569824
2,0,517,-2705.662354
2,0,518,1218.110107
2,0,519,530.103577
2,0,520,4280.658203
2,0,521,1000.069153
2,0,522,2879.465088
2,0,523,-4403.744141
2,0,524,5648.065430
2,0,525,-4283.228027
2,0,526,315.164642
2,0,527,5751.733887
2,0,528,186.306000
2,0,529,-815.060059
2,0,530,-1002.518311
2,0,531,2124.587891
2,0,532,325.931763
2,0,533,1556.618896
2,0,534,-143.915771
2,0,535,356.747314
2,0,536,-2163.026611
2,0,537,1598.637817
2,0,538,-669.693298
2,0,539,-2065.190430
2,0,540,3287.773682
2,0,541,5340.383789
2,0,542,4314.305664
2,0,543,3589.507812
2,0,544,-51.710876
2,0,545,-739.726074
2,0,546,-4632.578613
2,0,547,-5860.348145
2,0,548,2208.317871
2,0,549,809.738647
2,0,550,-2719.728516
2,0,551,4171.374023
2,0,552,5440.959961
2,0,553,1760.380371
2,0,554,-2045.410156
2,0,555,2705.635742
2,0,556,-1710.253418
2,0,557,-4288.505859
2,0,558,334.302124
2,0,559,-5592.035156
2,0,560,-6811.253906
2,0,561,295.034180
2,0,562,-1388.465088
2,0,563,242.328857
2,0,564,-2132.262451
2,0,565,3251.335693
2,0,566,-2641.381348
2,0,567,-1735.382812
2,0,568,2630.523682
2,0,569,712.085693
2,0,570,5267.681152
2,0,571,225.398819
2,0,572,1131.270630
2,0,573,-3032.901367
2,0,574,-1653.962402
2,0,575,1343.886719
2,0,576,-3754.707520
2,0,577,5639.514648
2,0,578,-261.329926
2,0,579,-1519.894653
2,0,580,-2308.470703
2,0,581,1030.643433
2,0,582,-1072.469482
2,0,583,-3799.176270
2,0,584,-2666.683105
2,0,585,1293.759155
2,0,586,2306.090576
2,0,587,-113.303711
2,0,588,2409.624756
2,0,589,194.887451
2,0,590,-40.532532
2,0,591,2630.568848
2,0,592,2241.643311
2,0,593,1249.032837
2,0,594,1212.449341
2,0,595,-1181.445312
2,0,596,-185.799683
2,0,597,-3731.813965
2,0,598,-3195.435547
2,0,599,3785.430176
3,0,0,1430.059570
3,0,1,1536.335693
3,0,2,4126.100098
3,0,3,-2269.984863
3,0,4,-6453.859863
3,0,5,-2885.236328
3,0,6,-3416.635986
3,0,7,-1316.302124
3,0,8,-3729.880859
3,0,9,1340.566040
3,0,10,-835.262695
3,0,11,3675.826172
3,0,12,1203.513550
3,0,13,1161.564209
3,0,14,1539.123779
3,0,15,2187.969238
3,0,16,3826.831055
3,0,17,-1254.778198
3,0,18,-147.286499
3,0,19,-2035.082153
3,0,20,-348.630157
3,0,21,-3436.225586
3,0,22,-603.167297
3,0,23,-3693.522461
3,0,24,1611.837646
3,0,25,-3631.971436
3,0,26,-6979.636230
3,0,27,3728.950684
3,0,28,65.259628
3,0,29,3382.161133
3,0,30,-49.392212
3,0,31,957.422607
3,0,32,-871.640625
3,0,33,996.575073
3,0,34,1293.016357
3,0,35,-222.810730
3,0,36,-628.334351
3,0,37,-1744.210205
3,0,38,2190.778809
3,0,39,1723.714600
3,0,40,-203.203094
3,0,41,-2180.488281
3,0,42,-723.402832
3,0,43,1760.057983
3,0,44,-2703.467041
3,0,45,3533.202148
3,0,46,4209.980469
3,0,47,-3444.636475
3,0,48,3334.641357
3,0,49,3851.992920
3,0,50,-2619.583740
3,0,51,1253.860474
3,0,52,-326.280548
3,0,53,753.265869
3,0,54,3824.082764
3,0,55,1508.352417
3,0,56,-1990.330566
3,0,57,305.753662
3,0,58,5790.118164
3,0,59,-1931.594482
3,0,60,2311.038574
3,0,61,-2907.645508
3,0,62,-172.442749
3,0,63,-357.044617
3,0,64,2473.229736
3,0,65,1334.991211
3,0,66,1726.531494
3,0,67,-2994.369629
3,0,68,-247.961182
3,0,69,3429.697266
3,0,70,3468.875244
3,0,71,4196.010254
3,0,72,5527.245117
3,0,73,7999.554688
3,0,74,16051.238281
3,0,75,38743.789062
3,0,76,32990.964844
3,0,77,24662.351562
3,0,78,24844.060547
3,0,79,33267.777344
3,0,80,23325.507812
3,0,81,24371.478516
3,0,82,19217.152344
3,0,83,10102.672852
3,0,84,13041.989258
3,0,85,12574.951172
3,0,86,13567.783203
3,0,87,19354.138672
3,0,88,19094.107422
3,0,89,10099.830078
3,0,90,-471.733124
3,0,91,-6934.928711
3,0,92,2115.222412
3,0,93,-1987.524414
3,0,94,-225.585022
3,0,95,-1358.269775
3,0,96,6226.420898
3,0,97,-1142.869751
3,0,98,-2337.111084
3,0,99,-3243.304688
3,0,100,-2549.623535
3,0,101,-2728.664795
3,0,102,-1405.778320
3,0,103,2162.800537
3,0,104,-1333.079590
3,0,105,-2314.714111
3,0,106,867.938049
3,0,107,-2728.658691
3,0,108,1466.410645
3,0,109,-866.050781
3,0,110,-312.315979
3,0,111,-7044.013184
3,0,112,-32.642029
3,0,113,-3492.135010
3,0,114,-1559.593018
3,0,115,-3067.010498
3,0,116,-7083.118652
3,0,117,-2188.875244
3,0,118,-32.588379
3,0,119,-4320.011719
3,0,120,-776.567871
3,0,121,1913.884155
3,0,122,5116.122559
3,0,123,3759.731934
3,0,124,-4988.349609
3,0,125,-2661.571777
3,0,126,-2292.333984
3,0,127,-1347.038452
3,0,128,2576.703857
3,0,129,-4269.615723
3,0,130,1290.240723
3,0,131,-2211.230957
3,0,132,4668.776367
3,0,133,-2717.482666
3,0,134,-1025.473877
3,0,135,-2289.457520
3,0,136,-4071.061279
3,0,137,3720.548096
3,0,138,7591.164062
3,0,139,-24.208206
3,0,140,-499.672302
3,0,141,-1942.768433
3,0,142,-5455.410645
3,0,143,2408.916992
3,0,144,1634.218750
3,0,145,1410.534302
3,0,146,-1128.911865
3,0,147,-1590.380371
3,0,148,-941.483765
3,0,149,-2834.929932
3,0,150,2400.521484
3,0,151,6092.116211
3,0,152,-318.012085
3,0,153,-3408.263428
3,0,154,-1937.138794
3,0,155,2864.799805
3,0,156,-3659.845459
3,0,157,-3811.010254
3,0,158,-337.440613
3,0,159,-5777.039062
3,0,160,-1017.073975
3,0,161,-4345.121582
3,0,162,3650.816406
3,0,163,1659.376099
3,0,164,-3704.776855
3,0,165,-4960.450195
3,0,166,-1039.364014
3,0,167,1102.855591
3,0,168,4506.460938
3,0,169,1723.697754
3,0,170,-2242.114746
3,0,171,1376.794800
3,0,172,-3545.290039
3,0,173,-6101.449219
3,0,174,853.900574
3,0,175,6707.487793
3,0,176,4699.482422
3,0,177,-245.153564
3,0,178,-782.141663
3,0,179,-4473.746582
3,0,180,1541.900024
3,0,181,-1078.581543
3,0,182,2383.736572
3,0,183,-1847.696045
3,0,184,1312.561279
3,0,185,2434.049072
3,0,186,-1072.960693
3,0,187,-983.501465
3,0,188,-4392.673340
3,0,189,2104.172119
3,0,190,1184.010010
3,0,191,-1112.207886
3,0,192,-770.969788
3,0,193,-320.683960
3,0,194,5205.540039
3,0,195,3161.266846
3,0,196,-1923.215210
3,0,197,4897.956055
3,0,198,2126.468994
3,0,199,-63.579102
3,0,200,289.007721
3,0,201,-2496.508545
3,0,202,-2521.714355
3,0,203,-256.300842
3,0,204,-896.719360
3,0,205,2201.883057
3,0,206,3731.741699
3,0,207,-1724.654297
3,0,208,297.400421
3,0,209,1581.133545
3,0,210,-152.840332
3,0,211,-754.226318
3,0,212,2151.619141
3,0,213,2739.000732
3,0,214,-4817.741699
3,0,215,-2037.875244
3,0,216,2224.347168
3,0,217,1611.842773
3,0,218,-2381.900635
3,0,219,28.921753
3,0,220,-2121.790771
3,0,221,-10.263943
3,0,222,420.428314
3,0,223,-2242.023438
3,0,224,196.702026
3,0,225,-393.407593
3,0,226,3463.277344
3,0,227,-424.178558
3,0,228,-1386.210083
3,0,229,-1925.975830
3,0,230,-2767.826416
3,0,231,3314.950684
3,0,232,2750.087646
3,0,233,784.015503
3,0,234,-4775.818359
3,0,235,3731.800293
3,0,236,-1528.958252
3,0,237,-4697.636719
3,0,238,4341.463867
3,0,239,-1184.995972
3,0,240,3382.311035
3,0,241,-4921.260742
3,0,242,4948.275391
3,0,243,207.884476
3,0,244,428.879883
3,0,245,-2496.619385
3,0,246,-1204.395996
3,0,247,-3489.383301
3,0,248,-1814.156128
3,0,249,-2639.141846
3,0,250,-1900.883301
3,0,251,-222.800125
3,0,252,9123.753906
3,0,253,-1593.216309
3,0,254,-1612.692871
3,0,255,-4901.632812
3,0,256,-6834.265137
3,0,257,-3665.582275
3,0,258,1147.642212
3,0,259,-3696.375488
3,0,260,2887.137451
3,0,261,1829.980347
3,0,262,-1554.017334
3,0,263,-4711.463379
3,0,264,-3718.706543
3,0,265,-905.233765
3,0,266,-96.958099
3,0,267,-779.303955
3,0,268,-5637.057129
3,0,269,-980.786621
3,0,270,-88.613724
3,0,271,1348.927124
3,0,272,-4949.227051
3,0,273,2752.880615
3,0,274,674.908997
3,0,275,-5933.563477
3,0,276,-4387.118164
3,0,277,110.074219
3,0,278,-477.308105
3,0,279,51.201645
3,0,280,5040.752930
3,0,281,2982.105225
3,0,282,-2244.845215
3,0,283,1846.817627
3,0,284,-7619.996094
3,0,285,3508.181641
3,0,286,-3352.303711
3,0,287,-832.319519
3,0,288,-846.468140
3,0,289,3779.322998
3,0,290,870.724243
3,0,291,-334.594482
3,0,292,4173.630859
3,0,293,1147.574219
3,0,294,2243.906738
3,0,295,1642.585083
3,0,296,2383.721191
3,0,297,3197.565430
3,0,298,448.308350
3,0,299,3253.565674
3,0,300,381.353027
3,0,301,-1984.717773
3,0,302,-7941.744629
3,0,303,-6081.892090
3,0,304,-5217.579102
3,0,305,1427.378052
3,0,306,4061.672607
3,0,307,5722.856934
3,0,308,1494.255737
3,0,309,960.398987
3,0,310,2850.764648
3,0,311,4556.720703
3,0,312,1195.251709
3,0,313,-2264.147461
3,0,314,-3047.404053
3,0,315,948.951111
3,0,316,1130.759277
3,0,317,3829.657227
3,0,318,4327.379395
3,0,319,3611.554688
3,0,320,-1458.924561
3,0,321,1265.061401
3,0,322,5090.397461
3,0,323,8430.158203
3,0,324,-3688.048828
3,0,325,1527.977905
3,0,326,1634.164307
3,0,327,-5863.703125
3,0,328,4828.049805
3,0,329,744.743408
3,0,330,3628.262939
3,0,331,-661.971680
3,0,332,1290.277344
3,0,333,-4032.140381
3,0,334,-1898.193848
3,0,335,2316.438232
3,0,336,-7091.559570
3,0,337,-3265.639160
3,0,338,-2510.501709
3,0,339,-1064.634644
3,0,340,-1520.348633
3,0,341,163.190552
3,0,342,4749.769531
3,0,343,5342.610352
3,0,344,876.262268
3,0,345,1709.675293
3,0,346,-217.047882
3,0,347,-46.570419
3,0,348,-4093.456055
3,0,349,750.519958
3,0,350,5049.209473
3,0,351,2889.957275
3,0,352,3530.453857
3,0,353,-636.720093
3,0,354,3351.424316
3,0,355,4193.197754
3,0,356,2971.063965
3,0,357,409.117920
3,0,358,4637.702637
3,0,359,-4222.193359
3,0,360,920.782471
3,0,361,428.891968
3,0,362,2923.447998
3,0,363,224.659210
3,0,364,6176.060547
3,0,365,4291.114258
3,0,366,-3514.627930
3,0,367,-821.400879
3,0,368,-2432.245361
3,0,369,-580.830566
3,0,370,4447.689453
3,0,371,4157.086914
3,0,372,-1582.090820
3,0,373,3633.840332
3,0,374,1248.434570
3,0,375,-4669.597656
3,0,376,-2432.255615
3,0,377,1156.002441
3,0,378,-5850.070801
3,0,379,2976.535400
3,0,380,-6437.194336
3,0,381,2998.745605
3,0,382,104.468506
3,0,383,-927.653625
3,0,384,-2641.910156
3,0,385,-5416.287109
3,0,386,-2359.504150
3,0,387,1732.234009
3,0,388,-325.994598
3,0,389,-1218.289307
3,0,390,2797.658936
3,0,391,3054.994629
3,0,392,-404.661011
3,0,393,2436.905762
3,0,394,2467.759766
3,0,395,9487.153320
3,0,396,-4549.289062
3,0,397,884.897217
3,0,398,-938.722168
3,0,399,-922.020142
3,0,400,-3349.625488
3,0,401,4140.070312
3,0,402,-656.149536
3,0,403,-3385.803223
3,0,404,-1316.317383
3,0,405,-1747.005615
3,0,406,283.397858
3,0,407,2431.347168
3,0,408,1955.713623
3,0,409,4226.646484
3,0,410,2336.249512
3,0,411,2859.136719
3,0,412,2059.321289
3,0,413,2098.556396
3,0,414,-748.559082
3,0,415,3180.795898
3,0,416,1136.523071
3,0,417,3544.413818
3,0,418,-5534.197754
3,0,419,-491.237427
3,0,420,-815.683105
3,0,421,1379.664551
3,0,422,621.739563
3,0,423,1477.550049
3,0,424,3284.228516
3,0,425,3765.645508
3,0,426,-994.724243
3,0,427,-1176.733643
3,0,428,-1509.328613
3,0,429,-4513.125977
3,0,430,2056.502930
3,0,431,286.256287
3,0,432,5314.753906
3,0,433,4649.110352
3,0,434,2422.784424
3,0,435,6914.171387
3,0,436,5499.117188
3,0,437,2548.718506
3,0,438,1726.538696
3,0,439,26.099304
3,0,440,-2798.592529
3,0,441,-2759.323242
3,0,442,786.790771
3,0,443,3418.332275
3,0,444,-1425.615479
3,0,445,-6288.741211
3,0,446,996.784241
3,0,447,932.249878
3,0,448,1600.671265
3,0,449,-1598.689941
3,0,450,669.365295
3,0,451,1488.683472
3,0,452,3180.712646
3,0,453,5625.408203
3,0,454,4100.852051
3,0,455,353.326935
3,0,456,-2798.559570
3,0,457,-902.596680
3,0,458,-1221.277344
3,0,459,2532.094971
3,0,460,5065.729004
3,0,461,-1763.854492
3,0,462,163.150024
3,0,463,138.021713
3,0,464,-1640.820801
3,0,465,-315.245575
3,0,466,4531.480957
3,0,467,4436.486328
3,0,468,1125.243530
3,0,469,-2054.710205
3,0,470,1972.807617
3,0,471,1790.885010
3,0,472,-3472.409424
3,0,473,-5019.173828
3,0,474,-1111.844238
3,0,475,-3665.585205
3,0,476,1701.344849
3,0,477,-1165.191650
3,0,478,-332.154541
3,0,479,-5371.529297
3,0,480,-1853.295898
3,0,481,990.972656
3,0,482,881.953796
3,0,483,1799.016235
3,0,484,-1268.837769
3,0,485,1326.536499
3,0,486,-1780.606812
3,0,487,1108.416260
3,0,488,6187.340820
3,0,489,-2753.649414
3,0,490,-1861.552612
3,0,491,5004.259766
3,0,492,-1892.412354
3,0,493,-3041.998535
3,0,494,-1741.441772
3,0,495,-4734.008789
3,0,496,1315.416748
3,0,497,845.520874
3,0,498,291.695801
3,0,499,-2133.099121
3,0,500,2053.914551
3,0,501,593.807190
3,0,502,5466.145996
3,0,503,4573.570312
3,0,504,-544.247192
3,0,505,-7.328857
3,0,506,1284.801880
3,0,507,7367.528809
3,0,508,-3819.358154
3,0,509,1681.689697
3,0,510,1575.427734
3,0,511,-3374.788086
3,0,512,-2778.834473
3,0,513,618.920227
3,0,514,-1993.214844
3,0,515,-7.522461
3,0,516,-1209.810059
3,0,517,2680.232910
3,0,518,-41.245346
3,0,519,1225.951050
3,0,520,1217.095825
3,0,521,-2994.292969
3,0,522,-3461.434570
3,0,523,-4334.178223
3,0,524,-365.311646
3,0,525,-958.390991
3,0,526,717.319336
3,0,527,-896.702271
3,0,528,3877.121826
3,0,529,1474.541260
3,0,530,1320.991333
3,0,531,-1114.357666
3,0,532,-5351.946289
3,0,533,-3874.946533
3,0,534,-5321.183105
3,0,535,-2124.547852
3,0,536,4134.365723
3,0,537,-4879.616211
3,0,538,101.617584
3,0,539,4100.785156
3,0,540,2940.182373
3,0,541,2752.898926
3,0,542,1466.179565
3,0,543,1270.760742
3,0,544,-1727.157959
3,0,545,1953.126465
3,0,546,-178.220459
3,0,547,-3016.640137
3,0,548,-6476.529297
3,0,549,-6246.625000
3,0,550,-781.704346
3,0,551,-2482.454346
3,0,552,-3363.234863
3,0,553,767.122925
3,0,554,-3265.559082
3,0,555,-4854.083496
3,0,556,-2295.160645
3,0,557,-1800.108154
3,0,558,403.610291
3,0,559,-2804.127930
3,0,560,-3058.827148
3,0,561,-3352.880127
3,0,562,1298.621338
3,0,563,-846.505371
3,0,564,-2510.344482
3,0,565,1785.008911
3,0,566,3471.645996
3,0,567,194.000977
3,0,568,308.522095
3,0,569,-4216.413086
3,0,570,-1128.683105
3,0,571,-284.392883
3,0,572,4772.233398
3,0,573,2730.593994
3,0,574,-5091.988281
3,0,575,-1201.766846
3,0,576,-2714.831299
3,0,577,1217.605347
3,0,578,2322.676758
3,0,579,-220.021912
3,0,580,1007.843079
3,0,581,-5525.161621
3,0,582,-4342.791016
3,0,583,-1246.516968
3,0,584,867.848145
3,0,585,-1498.118774
3,0,586,-2138.575439
3,0,587,-2803.815430
3,0,588,-4616.470703
3,0,589,-3467.300293
3,0,590,-555.602478
3,0,591,-633.642334
3,0,592,2909.454590
3,0,593,-1954.162720
3,0,594,5901.958496
3,0,595,-4409.261719
3,0,596,-583.624756
3,0,597,1634.167969
3,0,598,2232.539062
3,0,599,2990.646484
4,0,0,4544.930176
4,0,1,1823.707642
4,0,2,1703.454346
4,0,3,2682.306152
4,0,4,3034.697266
4,0,5,2061.435059
4,0,6,-1507.171997
4,0,7,839.269531
4,0,8,1977.536133
4,0,9,2587.227295
4,0,10,-1512.771606
4,0,11,2819.328369
4,0,12,-6228.024414
4,0,13,-3048.150879
4,0,14,8572.167969
4,0,15,2184.498047
4,0,16,-5260.332031
4,0,17,1826.513306
4,0,18,-4519.224609
4,0,19,2553.650635
4,0,20,4424.658203
4,0,21,5165.781738
4,0,22,-1515.571655
4,0,23,1980.326294
4,0,24,2741.017578
4,0,25,-1303.011597
4,0,26,1625.128296
4,0,27,2377.449219
4,0,28,-757.640320
4,0,29,1191.668457
4,0,30,193.232407
4,0,31,-363.291718
4,0,32,1790.161743
4,0,33,693.858215
4,0,34,-2718.117676
4,0,35,2998.314941
4,0,36,257.562622
4,0,37,3045.896973
4,0,38,4047.064453
4,0,39,475.752441
4,0,40,-1406.464233
4,0,41,-477.966431
4,0,42,-2281.836914
4,0,43,196.014648
4,0,44,56.197266
4,0,45,1966.320068
4,0,46,-2234.324707
4,0,47,3347.899902
4,0,48,4041.546387
4,0,49,-3610.343018
4,0,50,-4080.142578
4,0,51,-1403.703857
4,0,52,2808.156006
4,0,53,3571.674316
4,0,54,3370.338867
4,0,55,4318.375000
4,0,56,3462.606689
4,0,57,1037.838379
4,0,58,-2150.396240
4,0,59,1625.144775
4,0,60,8133.066895
4,0,61,-519.956055
4,0,62,-715.711304
4,0,63,98.120209
4,0,64,-6043.415039
4,0,65,-4130.459961
4,0,66,760.977295
4,0,67,1784.576904
4,0,68,3722.664795
4,0,69,-1031.703735
4,0,70,-2922.291992
4,0,71,-391.263611
4,0,72,4027.531494
4,0,73,-1445.606812
4,0,74,9752.354492
4,0,75,11760.416016
4,0,76,13441.242188
4,0,77,24191.734375
4,0,78,33351.023438
4,0,79,38032.730469
4,0,80,30766.812500
4,0,81,22787.828125
4,0,82,18685.042969
4,0,83,20195.312500
4,0,84,27251.410156
4,0,85,28026.099609
4,0,86,24177.871094
4,0,87,13399.332031
4,0,88,13105.646484
4,0,89,6368.397949
4,0,90,5825.772949
4,0,91,2408.251221
4,0,92,2145.358398
4,0,93,-779.985474
4,0,94,-3067.743896
4,0,95,2858.537842
4,0,96,-3406.125977
4,0,97,2220.798828
4,0,98,-156.381470
4,0,99,-2941.899414
4,0,100,-642.949341
4,0,101,439.347168
4,0,102,-945.030823
4,0,103,-5156.848633
4,0,104,909.205078
4,0,105,1320.344238
4,0,106,-5022.691895
4,0,107,4072.275146
4,0,108,-4756.993164
4,0,109,-5442.077148
4,0,110,-472.346436
4,0,111,5341.991211
4,0,112,-377.308136
4,0,113,976.298035
4,0,114,4041.510742
4,0,115,1725.876831
4,0,116,2313.119629
4,0,117,1269.988403
4,0,118,-4127.695312
4,0,119,4049.892578
4,0,120,3568.834473
4,0,121,3459.764648
4,0,122,3728.294189
4,0,123,1334.285522
4,0,124,3501.722900
4,0,125,1667.105713
4,0,126,1104.964966
4,0,127,3753.423340
4,0,128,17.025940
4,0,129,646.232178
4,0,130,-94.861816
4,0,131,-2228.741699
4,0,132,-3554.339355
4,0,133,3476.563965
4,0,134,-240.245972
4,0,135,-299.013855
4,0,136,545.595703
4,0,137,39.421021
4,0,138,-1853.890015
4,0,139,1303.577637
4,0,140,811.319824
4,0,141,3154.910889
4,0,142,321.854004
4,0,143,3848.528320
4,0,144,3331.128906
4,0,145,-2737.693848
4,0,146,4122.579590
4,0,147,221.159607
4,0,148,-2866.394287
4,0,149,-1968.604736
4,0,150,3381.500488
4,0,151,2301.934326
4,0,152,1348.277832
4,0,153,1071.377686
4,0,154,-648.689148
4,0,155,1104.954468
4,0,156,-1593.826050
4,0,157,-2802.061035
4,0,158,2794.169189
4,0,159,3266.805420
4,0,160,1516.073975
4,0,161,4505.767090
4,0,162,-2614.858398
4,0,163,548.339417
4,0,164,-2178.527100
4,0,165,931.566345
4,0,166,-3996.234863
4,0,167,-542.340515
4,0,168,2634.746582
4,0,169,1672.689819
4,0,170,1306.313354
4,0,171,903.691284
4,0,172,2576.040283
4,0,173,7017.155273
4,0,174,4097.449707
4,0,175,-3053.671387
4,0,176,2430.550293
4,0,177,237.989014
4,0,178,2145.338867
4,0,179,2911.552246
4,0,180,-2908.287842
4,0,181,1848.894897
4,0,182,481.303040
4,0,183,1407.040771
4,0,184,2290.769531
4,0,185,984.604065
4,0,186,6642.472168
4,0,187,-3990.651855
4,0,188,1493.729248
4,0,189,-2556.029785
4,0,190,2578.900391
4,0,191,-1918.291870
4,0,192,296.779663
4,0,193,-2446.826416
4,0,194,-1683.286987
4,0,195,70.137085
4,0,196,2578.859863
4,0,197,3040.252441
4,0,198,-1842.734863
4,0,199,84.189026
4,0,200,-3081.718506
4,0,201,4410.455078
4,0,202,1054.615234
4,0,203,1985.776123
4,0,204,-3627.101807
4,0,205,-5581.973633
4,0,206,1717.440063
4,0,207,3912.872314
4,0,208,892.461060
4,0,209,1983.204590
4,0,210,-3898.388916
4,0,211,-4555.594238
4,0,212,-3039.765137
4,0,213,-953.401428
4,0,214,-668.165710
4,0,215,-1834.354004
4,0,216,660.278809
4,0,217,-5844.941895
4,0,218,-3943.136230
4,0,219,5439.844238
4,0,220,-3120.695312
4,0,221,-1193.919922
4,0,222,-5461.605469
4,0,223,-231.918732
4,0,224,584.743530
4,0,225,-1876.288086
4,0,226,1890.759155
4,0,227,-693.354797
4,0,228,-1960.230957
4,0,229,-3456.379395
4,0,230,-858.291992
4,0,231,-2572.610840
4,0,232,1748.282715
4,0,233,-2069.263672
4,0,234,-581.452698
4,0,235,3633.184814
4,0,236,1781.748779
4,0,237,3126.973145
4,0,238,1513.213745
4,0,239,-712.941284
4,0,240,447.697144
4,0,241,4198.108398
4,0,242,-223.478882
4,0,243,-1605.037842
4,0,244,-7878.018555
4,0,245,2478.182861
4,0,246,-2793.756348
4,0,247,2506.113770
4,0,248,-1716.874756
4,0,249,4142.166504
4,0,250,836.428467
4,0,251,-1932.221069
4,0,252,1496.469116
4,0,253,-917.045288
4,0,254,1678.246582
4,0,255,8.589645
4,0,256,5364.131836
4,0,257,2170.582031
4,0,258,-5363.947754
4,0,259,562.360107
4,0,260,2771.769531
4,0,261,1795.799072
4,0,262,763.756042
4,0,263,-125.593750
4,0,264,1549.445923
4,0,265,4265.295410
4,0,266,-1518.358154
4,0,267,-4955.491211
4,0,268,5420.184082
4,0,269,802.903320
4,0,270,2153.708252
4,0,271,1004.361450
4,0,272,-4373.803223
4,0,273,1267.237793
4,0,274,2900.466797
4,0,275,1429.544067
4,0,276,-528.333008
4,0,277,-2312.486084
4,0,278,1096.561890
4,0,279,456.211426
4,0,280,-2348.843018
4,0,281,-665.538086
4,0,282,-2195.087646
4,0,283,-2743.327148
4,0,284,-254.249557
4,0,285,355.478149
4,0,286,-3562.792480
4,0,287,699.487610
4,0,288,-3308.113770
4,0,289,741.435547
4,0,290,125.996582
4,0,291,-4921.987793
4,0,292,-5861.495117
4,0,293,-6096.657715
4,0,294,2184.496094
4,0,295,-6471.344727
4,0,296,-3137.584229
4,0,297,1009.859802
4,0,298,654.739258
4,0,299,-4751.339844
4,0,300,374.889282
4,0,301,-1266.761963
4,0,302,2494.861816
4,0,303,1166.456421
4,0,304,-2111.109619
4,0,305,2497.689697
4,0,306,875.636719
4,0,307,-3442.388916
4,0,308,-2306.960449
4,0,309,978.921387
4,0,310,-2169.959229
4,0,311,3608.194336
4,0,312,-47.271240
4,0,313,271.453613
4,0,314,2561.997559
4,0,315,1490.836426
4,0,316,-13.719894
4,0,317,1334.351440
4,0,318,1910.352905
4,0,319,858.794067
4,0,320,1795.687012
4,0,321,-2843.989746
4,0,322,-5884.052246
4,0,323,-215.138397
4,0,324,604.306824
4,0,325,643.513611
4,0,326,-3252.389648
4,0,327,70.187561
4,0,328,109.545898
4,0,329,3605.259766
4,0,330,-6619.593750
4,0,331,-6793.171875
4,0,332,2178.921143
4,0,333,-4013.215332
4,0,334,-581.656372
4,0,335,-2360.128418
4,0,336,3599.673096
4,0,337,-567.447571
4,0,338,-3341.862793
4,0,339,-2223.090332
4,0,340,6519.289062
4,0,341,369.604858
4,0,342,-1848.408936
4,0,343,-3789.370850
4,0,344,1896.252197
4,0,345,7350.058594
4,0,346,2399.741699
4,0,347,-67.015259
4,0,348,-7458.627441
4,0,349,-1551.877930
4,0,350,520.655518
4,0,351,-2899.787598
4,0,352,2066.824707
4,0,353,1311.898682
4,0,354,232.385666
4,0,355,-3162.851807
4,0,356,3526.856201
4,0,357,3870.949951
4,0,358,1507.667725
4,0,359,5529.211914
4,0,360,-1392.404541
4,0,361,-1118.497070
4,0,362,3291.754395
4,0,363,1507.497437
4,0,364,-2469.243164
4,0,365,-254.236450
4,0,366,2777.364746
4,0,367,-4041.023926
4,0,368,-3282.985596
4,0,369,-427.556458
4,0,370,-4921.822754
4,0,371,-338.227295
4,0,372,1119.014160
4,0,373,42.235168
4,0,374,-2359.873291
4,0,375,-724.035767
4,0,376,-41.737549
4,0,377,2805.375977
4,0,378,-1856.792480
4,0,379,-1160.505371
4,0,380,-2620.334229
4,0,381,-3682.981445
4,0,382,3798.057129
4,0,383,1244.834473
4,0,384,3750.399902
4,0,385,-2732.096924
4,0,386,-2334.913330
4,0,387,-3193.497070
4,0,388,4508.417969
4,0,389,-2203.245117
4,0,390,5014.841309
4,0,391,-880.679321
4,0,392,1026.674316
4,0,393,-1509.842285
4,0,394,559.535645
4,0,395,120.574905
4,0,396,2520.114746
4,0,397,2148.195801
4,0,398,8513.277344
4,0,399,3297.393066
4,0,400,4992.404785
4,0,401,1669.881104
4,0,402,-2662.077637
4,0,403,33.671143
4,0,404,-1137.984131
4,0,405,2444.663086
4,0,406,-774.514526
4,0,407,3524.140381
4,0,408,3328.436279
4,0,409,6371.132324
4,0,410,-1115.435303
4,0,411,1454.534912
4,0,412,-2849.588135
4,0,413,2042.025879
4,0,414,4916.990234
4,0,415,-324.014832
4,0,416,1944.033447
4,0,417,-4575.160156
4,0,418,3594.699463
4,0,419,-385.507080
4,0,420,1594.492310
4,0,421,-2281.689453
4,0,422,5579.764160
4,0,423,730.105957
4,0,424,-419.340637
4,0,425,1602.694336
4,0,426,5901.273926
4,0,427,1661.486084
4,0,428,-2259.457520
4,0,429,422.507629
4,0,430,277.075317
4,0,431,2019.480225
4,0,432,2343.913818
4,0,433,679.845520
4,0,434,-1110.217407
4,0,435,1926.926758
4,0,436,567.998535
4,0,437,-2821.477539
4,0,438,-424.767090
4,0,439,3087.836914
4,0,440,425.443359
4,0,441,-5036.803711
4,0,442,6686.946289
4,0,443,-3587.929443
4,0,444,-1227.685669
4,0,445,-2295.868164
4,0,446,915.001648
4,0,447,117.724686
4,0,448,889.698608
4,0,449,3507.038086
4,0,450,-3506.928955
4,0,451,-2108.517090
4,0,452,3342.405029
4,0,453,-581.095581
4,0,454,3960.154053
4,0,455,-2077.703857
4,0,456,-2533.555908
4,0,457,-1233.042480
4,0,458,-1014.800110
4,0,459,-2564.333740
4,0,460,-4192.059082
4,0,461,3803.756836
4,0,462,428.143555
4,0,463,-458.466644
4,0,464,-27.508179
4,0,465,4444.262695
4,0,466,-7581.676270
4,0,467,1418.304077
4,0,468,-1518.331055
4,0,469,1407.116943
4,0,470,2956.436768
4,0,471,3582.831787
4,0,472,4874.799316
4,0,473,3062.609619
4,0,474,3815.259521
4,0,475,-2933.655273
4,0,476,-2491.717041
4,0,477,-6320.461914
4,0,478,1476.681396
4,0,479,-2581.093506
4,0,480,-469.578430
4,0,481,-1608.071899
4,0,482,-279.399902
4,0,483,2936.863281
4,0,484,2539.664062
4,0,485,-3353.042969
4,0,486,-7640.496094
4,0,487,-947.826904
4,0,488,1423.855103
4,0,489,-1339.473877
4,0,490,-3246.761230
4,0,491,-4029.792236
4,0,492,-2181.139648
4,0,493,-2178.298096
4,0,494,-3954.367432
4,0,495,-2785.273926
4,0,496,-4315.041992
4,0,497,8737.151367
4,0,498,-7861.314941
4,0,499,7820.077148
4,0,500,-3339.327393
4,0,501,911.917603
4,0,502,-1750.698975
4,0,503,948.339233
4,0,504,1007.008911
4,0,505,939.984314
4,0,506,-3154.419434
4,0,507,1759.463257
4,0,508,-1423.308838
4,0,509,-6175.013184
4,0,510,-4684.403809
4,0,511,4063.756348
4,0,512,226.646072
4,0,513,70.244003
4,0,514,-3394.918945
4,0,515,-4116.472656
4,0,516,-2636.731934
4,0,517,-4219.764160
4,0,518,-4460.888184
4,0,519,3017.892578
4,0,520,2780.354004
4,0,521,3649.918457
4,0,522,39.532135
4,0,523,-1353.523193
4,0,524,-2401.999023
4,0,525,-290.511353
4,0,526,3666.862061
4,0,527,786.208374
4,0,528,1228.085327
4,0,529,246.418289
4,0,530,-4175.227051
4,0,531,4914.028809
4,0,532,4184.130371
4,0,533,223.863403
4,0,534,363.838135
4,0,535,3703.520020
4,0,536,3787.022949
4,0,537,-1895.987183
4,0,538,-2035.370117
4,0,539,6986.576660
4,0,540,62.029865
4,0,541,-2301.401123
4,0,542,646.626709
4,0,543,-366.253662
4,0,544,-1688.730957
4,0,545,-3154.355225
4,0,546,-1213.197632
4,0,547,-52.840637
4,0,548,1971.968994
4,0,549,842.096924
4,0,550,-1658.101562
4,0,551,-3050.914062
4,0,552,-1674.938477
4,0,553,2117.220215
4,0,554,-1632.888550
4,0,555,-3632.588623
4,0,556,-3503.961426
4,0,557,2732.941406
4,0,558,308.129486
4,0,559,2069.933594
4,0,560,3026.156006
4,0,561,-1392.860718
4,0,562,-2469.229248
4,0,563,-4485.863770
4,0,564,987.363647
4,0,565,2416.470947
4,0,566,3577.282715
4,0,567,2707.440918
4,0,568,0.396606
4,0,569,-4225.298340
4,0,570,2305.089355
4,0,571,461.579895
4,0,572,-1960.171387
4,0,573,-2558.709961
4,0,574,3599.645020
4,0,575,-1249.801514
4,0,576,2425.206299
4,0,577,1021.168457
4,0,578,2033.723511
4,0,579,-2438.271240
4,0,580,3641.737793
4,0,581,4108.881836
4,0,582,2583.702637
4,0,583,-332.483276
4,0,584,-4533.668945
4,0,585,-3660.662842
4,0,586,1954.983032
4,0,587,-2119.629883
4,0,588,-3822.883301
4,0,589,-6404.129395
4,0,590,-100.544434
4,0,591,2601.406250
4,0,592,1686.755127
4,0,593,1988.943848
4,0,594,-6916.025391
4,0,595,-8993.732422
4,0,596,-5425.365234
4,0,597,-3076.119141
4,0,598,1781.926880
4,0,599,-450.048615
5,0,0,-1957.097412
5,0,1,3927.142090
5,0,2,4836.091309
5,0,3,1373.758057
5,0,4,-3268.773438
5,0,5,-2835.281982
5,0,6,2976.278076
5,0,7,1572.338623
5,0,8,587.884766
5,0,9,-4591.625000
5,0,10,696.942993
5,0,11,-6339.572754
5,0,12,1256.300293
5,0,13,-1520.846802
5,0,14,-354.605469
5,0,15,-1034.218994
5,0,16,-4071.428711
5,0,17,-7612.083984
5,0,18,-4051.862793
5,0,19,999.005066
5,0,20,-1031.427246
5,0,21,2453.292236
5,0,22,-7086.298828
5,0,23,-449.668243
5,0,24,1768.084106
5,0,25,2618.295166
5,0,26,3535.615234
5,0,27,-1660.661255
5,0,28,3088.129639
5,0,29,2098.102051
5,0,30,2061.731445
5,0,31,10233.731445
5,0,32,-1487.282959
5,0,33,-3791.781250
5,0,34,-567.130127
5,0,35,1700.952759
5,0,36,2363.775146
5,0,37,-827.242432
5,0,38,-3774.998779
5,0,39,246.695084
5,0,40,1004.614258
5,0,41,1779.291992
5,0,42,-446.887573
5,0,43,543.143555
5,0,44,744.502869
5,0,45,-5464.202637
5,0,46,4343.884277
5,0,47,2397.356445
5,0,48,4520.070312
5,0,49,-2731.816650
5,0,50,143.215347
5,0,51,-779.704041
5,0,52,-1803.291504
5,0,53,3776.134277
5,0,54,1519.136841
5,0,55,-3755.396973
5,0,56,-2527.646484
5,0,57,-578.333313
5,0,58,856.353882
5,0,59,-1752.992920
5,0,60,3367.802002
5,0,61,1843.596802
5,0,62,-670.641602
5,0,63,2699.405273
5,0,64,-1154.488281
5,0,65,1225.501709
5,0,66,4100.521973
5,0,67,-1235.582275
5,0,68,1273.082520
5,0,69,5700.222656
5,0,70,-58.156616
5,0,71,-321.052368
5,0,72,3874.046875
5,0,73,7973.982422
5,0,74,5244.404297
5,0,75,22849.730469
5,0,76,37356.207031
5,0,77,42969.203125
5,0,78,32020.185547
5,0,79,23674.789062
5,0,80,26446.320312
5,0,81,23450.925781
5,0,82,22762.992188
5,0,83,26144.228516
5,0,84,22953.191406
5,0,85,23017.511719
5,0,86,18509.212891
5,0,87,13500.265625
5,0,88,8469.023438
5,0,89,2691.037354
5,0,90,2025.349854
5,0,91,3317.454834
5,0,92,2981.866211
5,0,93,1812.858887
5,0,94,1877.128662
5,0,95,6992.371582
5,0,96,-578.315918
5,0,97,3527.159912
5,0,98,-3576.390381
5,0,99,2028.143921
5,0,100,-5369.102051
5,0,101,-3847.700195
5,0,102,-5139.775391
5,0,103,-66.548615
5,0,104,1575.114136
5,0,105,2151.239746
5,0,106,3694.989746
5,0,107,3988.689209
5,0,108,-323.819397
5,0,109,2629.494141
5,0,110,-323.812347
5,0,111,6542.131836
5,0,112,-66.530762
5,0,113,2176.420166
5,0,114,554.349365
5,0,115,1116.475708
5,0,116,3071.369873
5,0,117,-2516.473145
5,0,118,2131.705566
5,0,119,17.295410
5,0,120,-1599.151611
5,0,121,861.964355
5,0,122,-2482.922119
5,0,123,-2684.253906
5,0,124,145.989014
5,0,125,-144.833511
5,0,126,5143.739258
5,0,127,1292.640381
5,0,128,2181.996582
5,0,129,898.321777
5,0,130,-516.846924
5,0,131,-2066.185059
5,0,132,870.366333
5,0,133,-1783.686157
5,0,134,1863.167725
5,0,135,4816.573730
5,0,136,1040.883789
5,0,137,4539.655273
5,0,138,-368.574341
5,0,139,4083.789062
5,0,140,3929.951416
5,0,141,3211.195801
5,0,142,2895.170410
5,0,143,-1817.274048
5,0,144,-3377.836914
5,0,145,-1369.692871
5,0,146,-2373.789062
5,0,147,403.340576
5,0,148,2246.192383
5,0,149,146.042969
5,0,150,2962.264893
5,0,151,2567.913818
5,0,152,-1618.767944
5,0,153,2028.199463
5,0,154,-566.912964
5,0,155,3474.063477
5,0,156,-1940.337769
5,0,157,-502.891968
5,0,158,-3293.923584
5,0,159,-558.764343
5,0,160,1010.229248
5,0,161,-500.034302
5,0,162,31.388672
5,0,163,2344.319336
5,0,164,-4798.655273
5,0,165,33.989288
5,0,166,2892.327637
5,0,167,-130.886566
5,0,168,-1050.989136
5,0,169,-4552.424805
5,0,170,-2566.848145
5,0,171,-248.354935
5,0,172,-927.974121
5,0,173,-1834.016235
5,0,174,1259.092407
5,0,175,1477.156250
5,0,176,-2885.693359
5,0,177,25.754211
5,0,178,1737.303345
5,0,179,277.524231
5,0,180,2791.583984
5,0,181,-1224.409180
5,0,182,-1255.195679
5,0,183,4173.189453
5,0,184,7067.923340
5,0,185,-818.945618
5,0,186,2528.777588
5,0,187,7540.503906
5,0,188,1779.261963
5,0,189,-3279.986572
5,0,190,1969.536255
5,0,191,2788.886719
5,0,192,-466.522339
5,0,193,2402.924561
5,0,194,-4342.697266
5,0,195,-3330.297363
5,0,196,-637.095764
5,0,197,-183.951584
5,0,198,537.413086
5,0,199,-130.796509
5,0,200,291.425049
5,0,201,1060.453735
5,0,202,1359.775391
5,0,203,2430.884766
5,0,204,3166.415771
5,0,205,1787.679321
5,0,206,-3500.899902
5,0,207,-4653.155762
5,0,208,-2382.210938
5,0,209,1801.687866
5,0,210,-2387.861572
5,0,211,4503.424316
5,0,212,4380.284180
5,0,213,313.791412
5,0,214,758.470093
5,0,215,-3335.900391
5,0,216,-1132.063232
5,0,217,1902.391357
5,0,218,-1867.645508
5,0,219,-3003.031494
5,0,220,1077.351318
5,0,221,4410.973633
5,0,222,1273.163330
5,0,223,2218.415283
5,0,224,2475.636719
5,0,225,-290.294800
5,0,226,2800.020752
5,0,227,1233.975830
5,0,228,7176.941406
5,0,229,6715.584473
5,0,230,-340.559082
5,0,231,151.492920
5,0,232,-2986.395508
5,0,233,-427.318787
5,0,234,2179.197021
5,0,235,-1587.984131
5,0,236,-2821.407715
5,0,237,2705.010498
5,0,238,1720.664307
5,0,239,1902.460449
5,0,240,1365.352661
5,0,241,-866.431580
5,0,242,1289.832275
5,0,243,1261.895874
5,0,244,-2558.410156
5,0,245,-790.850891
5,0,246,1972.367920
5,0,247,134.834717
5,0,248,948.574829
5,0,249,-737.790405
5,0,250,7884.432129
5,0,251,448.120361
5,0,252,4282.289551
5,0,253,-2046.608154
5,0,254,1642.248047
5,0,255,-1613.041992
5,0,256,4111.633301
5,0,257,1001.875366
5,0,258,2310.787354
5,0,259,-1165.606689
5,0,260,308.180298
5,0,261,1110.821777
5,0,262,1645.067139
5,0,263,-732.181274
5,0,264,1418.643799
5,0,265,3348.163086
5,0,266,5001.160156
5,0,267,1810.182373
5,0,268,2805.714355
5,0,269,2517.666992
5,0,270,2531.604736
5,0,271,3180.483154
5,0,272,2453.229004
5,0,273,3848.827881
5,0,274,-1943.204712
5,0,275,-2516.465576
5,0,276,2814.062012
5,0,277,2207.123291
5,0,278,3412.583252
5,0,279,3020.907227
5,0,280,-452.486847
5,0,281,-1023.204407
5,0,282,-4376.323242
5,0,283,1980.564087
5,0,284,266.288757
5,0,285,3015.442871
5,0,286,-3089.855469
5,0,287,-5587.304688
5,0,288,4520.095215
5,0,289,-1931.899902
5,0,290,-5858.630859
5,0,291,-3920.239258
5,0,292,-726.690186
5,0,293,-2038.227905
5,0,294,-3003.124023
5,0,295,-1369.906616
5,0,296,-231.570923
5,0,297,-4362.324707
5,0,298,1029.836426
5,0,299,-432.870300
5,0,300,-5324.258789
5,0,301,-4826.607422
5,0,302,-1585.179932
5,0,303,-589.588135
5,0,304,973.844971
5,0,305,2595.923828
5,0,306,1625.427979
5,0,307,-2972.373535
5,0,308,-648.312744
5,0,309,-1422.882324
5,0,310,2895.191406
5,0,311,-2183.616943
5,0,312,-3582.058105
5,0,313,1228.074585
5,0,314,-1025.725830
5,0,315,792.077942
5,0,316,7971.076172
5,0,317,-715.600220
5,0,318,-4980.040039
5,0,319,2235.086670
5,0,320,2478.431396
5,0,321,-2689.860840
5,0,322,-4144.197266
5,0,323,4293.467285
5,0,324,456.226807
5,0,325,-3856.141357
5,0,326,1656.286621
5,0,327,7260.947266
5,0,328,193.516907
5,0,329,-1923.562744
5,0,330,-4398.692871
5,0,331,3667.457031
5,0,332,-1884.402466
5,0,333,2487.026855
5,0,334,-1070.418823
5,0,335,-6826.021484
5,0,336,-1895.599365
5,0,337,-1207.607178
5,0,338,-2457.787109
5,0,339,-4571.909668
5,0,340,1197.580444
5,0,341,2847.636230
5,0,342,2327.464111
5,0,343,4022.211426
5,0,344,641.076416
5,0,345,-995.022644
5,0,346,459.200256
5,0,347,403.271881
5,0,348,-1722.196533
5,0,349,-5595.706055
5,0,350,825.729614
5,0,351,-2331.797363
5,0,352,-3028.433350
5,0,353,-2768.176025
5,0,354,1138.802368
5,0,355,2344.296387
5,0,356,3591.457275
5,0,357,-3078.675293
5,0,358,-3282.760742
5,0,359,2260.452148
5,0,360,4500.575684
5,0,361,3225.387695
5,0,362,1144.645020
5,0,363,414.508331
5,0,364,-3059.024414
5,0,365,4047.226074
5,0,366,-911.214966
5,0,367,-6031.788574
5,0,368,2254.760498
5,0,369,3300.788330
5,0,370,4449.959961
5,0,371,-491.646881
5,0,372,-245.506378
5,0,373,-631.437378
5,0,374,-6504.458496
5,0,375,-603.460999
5,0,376,104.044403
5,0,377,-2762.620361
5,0,378,-1260.402466
5,0,379,-3864.437988
5,0,380,-150.649414
5,0,381,2114.653076
5,0,382,755.568359
5,0,383,445.249146
5,0,384,1605.791138
5,0,385,-7875.017578
5,0,386,2469.947510
5,0,387,1513.804321
5,0,388,2523.458008
5,0,389,755.575073
5,0,390,-653.913818
5,0,391,-2130.604248
5,0,392,-360.242554
5,0,393,215.958572
5,0,394,1477.238647
5,0,395,-1959.843994
5,0,396,699.733826
5,0,397,1152.873291
5,0,398,5121.347656
5,0,399,4106.354980
5,0,400,-8588.207031
5,0,401,-2639.532227
5,0,402,3303.425781
5,0,403,-1157.309814
5,0,404,456.399780
5,0,405,738.803040
5,0,406,-2382.294678
5,0,407,-3305.192871
5,0,408,-2398.968506
5,0,409,903.860107
5,0,410,3149.510010
5,0,411,543.165710
5,0,412,-2538.849365
5,0,413,1317.948486
5,0,414,2369.507812
5,0,415,2154.016113
5,0,416,3205.418457
5,0,417,4304.793457
5,0,418,1908.066406
5,0,419,1533.116455
5,0,420,-528.152466
5,0,421,417.420654
5,0,422,-2899.572998
5,0,423,2439.274170
5,0,424,1692.552734
5,0,425,-86.420410
5,0,426,-150.474609
5,0,427,-2630.763916
5,0,428,-3853.286621
5,0,429,1088.531250
5,0,430,-2180.794922
5,0,431,515.022217
5,0,432,-4739.891602
5,0,433,2310.724609
5,0,434,-1495.613403
5,0,435,-4742.491699
5,0,436,1465.915039
5,0,437,-2687.071533
5,0,438,-3716.088623
5,0,439,2830.919922
5,0,440,-3643.502930
5,0,441,238.391357
5,0,442,7028.592285
5,0,443,-4160.864258
5,0,444,-3752.483643
5,0,445,-3691.137207
5,0,446,1412.976562
5,0,447,4911.481445
5,0,448,2699.324707
5,0,449,-2113.806396
5,0,450,-880.442078
5,0,451,-2667.411621
5,0,452,-6837.434082
5,0,453,-642.496765
5,0,454,-128.263931
5,0,455,-1643.803711
5,0,456,1133.125244
5,0,457,4405.071777
5,0,458,-997.981689
5,0,459,3440.530518
5,0,460,1569.514526
5,0,461,3650.145996
5,0,462,-1831.108521
5,0,463,6214.815918
5,0,464,-119.786865
5,0,465,-4488.134766
5,0,466,425.615112
5,0,467,-2060.729980
5,0,468,308.277008
5,0,469,-1146.115112
5,0,470,-2080.365967
5,0,471,-5584.454102
5,0,472,4497.649902
5,0,473,1969.501953
5,0,474,-3064.770996
5,0,475,473.313354
5,0,476,-1610.285522
5,0,477,1779.360596
5,0,478,-3277.216797
5,0,479,-3836.539551
5,0,480,1723.391479
5,0,481,1592.190430
5,0,482,-2524.839355
5,0,483,-575.553101
5,0,484,459.173340
5,0,485,168.418396
5,0,486,6992.569336
5,0,487,-4060.248535
5,0,488,-1050.941772
5,0,489,848.057861
5,0,490,3107.721924
5,0,491,2237.968750
5,0,492,-1884.412964
5,0,493,2965.200684
5,0,494,-1976.721924
5,0,495,224.278992
5,0,496,-346.038879
5,0,497,-4734.377441
5,0,498,761.293640
5,0,499,42.539238
5,0,500,1555.569092
5,0,501,-27.359764
5,0,502,2842.029541
5,0,503,4050.188477
5,0,504,601.951538
5,0,505,-2678.667725
5,0,506,-1948.727051
5,0,507,-2538.806641
5,0,508,-1565.488403
5,0,509,-3528.904297
5,0,510,445.094238
5,0,511,747.206848
5,0,512,218.903198
5,0,513,2246.172607
5,0,514,-1850.665649
5,0,515,2508.993408
5,0,516,-1588.202881
5,0,517,-3923.252930
5,0,518,-2264.708496
5,0,519,738.923950
5,0,520,-35.868744
5,0,521,2654.452637
5,0,522,-2085.899414
5,0,523,-22.172760
5,0,524,1966.683228
5,0,525,-443.900146
5,0,526,3776.028564
5,0,527,1032.563232
5,0,528,5054.039551
5,0,529,-1934.458740
5,0,530,-760.104614
5,0,531,-2027.078003
5,0,532,2439.270752
5,0,533,-3816.665527
5,0,534,-1328.026611
5,0,535,-6795.240234
5,0,536,2260.353760
5,0,537,3650.528564
5,0,538,1493.902466
5,0,539,638.171143
5,0,540,-6630.694336
5,0,541,-648.307800
5,0,542,-3031.320557
5,0,543,2811.187256
5,0,544,6577.877930
5,0,545,-2231.304688
5,0,546,-60.980362
5,0,547,2131.574463
5,0,548,-3487.389648
5,0,549,713.805298
5,0,550,1315.072876
5,0,551,448.024902
5,0,552,-3917.507324
5,0,553,-3386.352539
5,0,554,1474.855835
5,0,555,-4513.174805
5,0,556,176.769516
5,0,557,101.173340
5,0,558,-2236.780029
5,0,559,1021.297729
5,0,560,-5326.934570
5,0,561,378.038391
5,0,562,3166.454102
5,0,563,375.035278
5,0,564,2067.343018
5,0,565,-3632.822754
5,0,566,-2980.618408
5,0,567,2067.326660
5,0,568,-1674.559814
5,0,569,573.930420
5,0,570,-5928.449219
5,0,571,-3151.508545
5,0,572,-4871.273438
5,0,573,-2594.788330
5,0,574,160.026825
5,0,575,3124.307617
5,0,576,-1252.261475
5,0,577,1986.069824
5,0,578,-8207.922852
5,0,579,-332.256653
5,0,580,6108.434082
5,0,581,6869.371094
5,0,582,7702.642090
5,0,583,-1414.562622
5,0,584,-1000.718018
5,0,585,436.846436
5,0,586,-1593.487305
5,0,587,-1316.329102
5,0,588,-3867.366943
5,0,589,316.921509
5,0,590,-3168.057617
5,0,591,1161.089600
5,0,592,-1755.836670
5,0,593,-11729.139648
5,0,594,-8389.551758
5,0,595,6439.063477
5,0,596,-4339.855957
5,0,597,-3254.848389
5,0,598,87.359314
5,0,599,1113.652832
6,0,0,-5676.987793
6,0,1,-1188.229004
6,0,2,-4821.176270
6,0,3,-360.443512
6,0,4,1155.375366
6,0,5,4030.398438
6,0,6,-1233.021729
6,0,7,1731.499390
6,0,8,-136.691772
6,0,9,2657.217285
6,0,10,1381.907837
6,0,11,7120.755859
6,0,12,-3747.240479
6,0,13,2195.740479
6,0,14,-1174.284058
6,0,15,218.491760
6,0,16,-2994.938477
6,0,17,-1023.265808
6,0,18,-1526.683594
6,0,19,405.860870
6,0,20,2212.534912
6,0,21,1323.172607
6,0,22,-2427.184570
6,0,23,2673.997314
6,0,24,2567.692383
6,0,25,4539.387207
6,0,26,293.991974
6,0,27,-1568.613770
6,0,28,-4287.036133
6,0,29,3708.771484
6,0,30,6600.584961
6,0,31,89.835602
6,0,32,1247.667114
6,0,33,1211.318481
6,0,34,-2407.647461
6,0,35,-5632.240723
6,0,36,1225.324097
6,0,37,6692.876953
6,0,38,590.439697
6,0,39,6340.468750
6,0,40,4662.450195
6,0,41,1566.495972
6,0,42,-2083.205566
6,0,43,-4580.686523
6,0,44,-3982.198730
6,0,45,-4575.025391
6,0,46,668.747986
6,0,47,341.537323
6,0,48,204.489532
6,0,49,1795.830322
6,0,50,-2343.313477
6,0,51,-2060.818115
6,0,52,-2281.770020
6,0,53,-4608.632324
6,0,54,6122.337891
6,0,55,6178.261719
6,0,56,-1778.363037
6,0,57,-254.138657
6,0,58,-2228.635742
6,0,59,-2978.154297
6,0,60,2732.724121
6,0,61,2559.327393
6,0,62,-1297.326172
6,0,63,45.061333
6,0,64,-3129.184326
6,0,65,-1865.099854
6,0,66,2799.911621
6,0,67,335.990631
6,0,68,-198.250717
6,0,69,-5993.055176
6,0,70,3703.178467
6,0,71,1804.263428
6,0,72,682.715698
6,0,73,4480.667969
6,0,74,17969.175781
6,0,75,24135.955078
6,0,76,31695.429688
6,0,77,35957.628906
6,0,78,31192.093750
6,0,79,21624.525391
6,0,80,26353.707031
6,0,81,22969.718750
6,0,82,21174.220703
6,0,83,14915.175781
6,0,84,21059.525391
6,0,85,18237.673828
6,0,86,23713.683594
6,0,87,27271.091797
6,0,88,20620.513672
6,0,89,18727.140625
6,0,90,11441.559570
6,0,91,-1842.681641
6,0,92,411.440063
6,0,93,-147.904831
6,0,94,472.987488
6,0,95,-634.538147
6,0,96,-4446.407715
6,0,97,1130.125732
6,0,98,2797.037109
6,0,99,-3291.444824
6,0,100,-4689.697754
6,0,101,10205.542969
6,0,102,774.988281
6,0,103,1138.588379
6,0,104,1200.133789
6,0,105,-547.799500
6,0,106,-2614.525146
6,0,107,2332.786133
6,0,108,-4345.778320
6,0,109,-3171.059570
6,0,110,-4136.000977
6,0,111,1513.417603
6,0,112,5551.788086
6,0,113,-1174.315918
6,0,114,2637.640137
6,0,115,-3800.380371
6,0,116,-5414.076172
6,0,117,-1227.396973
6,0,118,-4762.475586
6,0,119,1124.583496
6,0,120,-2474.774414
6,0,121,-5456.044434
6,0,122,-2195.087402
6,0,123,-2457.969238
6,0,124,-3243.849609
6,0,125,-1974.213379
6,0,126,5230.179688
6,0,127,3784.199951
6,0,128,-5053.319336
6,0,129,1132.998535
6,0,130,2388.710205
6,0,131,1278.431152
6,0,132,-5061.820801
6,0,133,5859.419434
6,0,134,4891.773438
6,0,135,2710.373047
6,0,136,917.612122
6,0,137,-1370.042358
6,0,138,3935.250488
6,0,139,-2569.877197
6,0,140,-2824.351807
6,0,141,565.310425
6,0,142,1888.157593
6,0,143,3781.473877
6,0,144,-2989.336670
6,0,145,2111.899170
6,0,146,3613.694824
6,0,147,-3984.969238
6,0,148,1376.391846
6,0,149,-402.407654
6,0,150,3938.107910
6,0,151,-1781.167114
6,0,152,-360.396088
6,0,153,2369.169434
6,0,154,3247.297607
6,0,155,769.433044
6,0,156,-1031.521973
6,0,157,-407.946838
6,0,158,-4868.694336
6,0,159,-332.493347
6,0,160,-3758.431152
6,0,161,-5154.034180
6,0,162,-528.184082
6,0,163,-228.876587
6,0,164,-424.633972
6,0,165,-1789.761353
6,0,166,2240.415283
6,0,167,-5542.794922
6,0,168,-849.858398
6,0,169,2769.003906
6,0,170,238.178741
6,0,171,-2992.169189
6,0,172,5040.008789
6,0,173,948.436523
6,0,174,2696.364746
6,0,175,-5604.122070
6,0,176,-1965.766968
6,0,177,-1851.062134
6,0,178,833.739685
6,0,179,1849.013062
6,0,180,3401.058838
6,0,181,-4614.275391
6,0,182,-8375.958008
6,0,183,294.068726
6,0,184,766.627075
6,0,185,198.790222
6,0,186,1974.847656
6,0,187,2128.655029
6,0,188,4749.183105
6,0,189,-366.186584
6,0,190,2534.143799
6,0,191,400.281830
6,0,192,-4012.941162
6,0,193,-2066.453613
6,0,194,-3635.347656
6,0,195,-47.171997
6,0,196,2520.155029
6,0,197,2578.895752
6,0,198,-2368.479004
6,0,199,-3296.836426
6,0,200,-575.757874
6,0,201,2743.767090
6,0,202,-4183.567383
6,0,203,4184.282715
6,0,204,-3495.471924
6,0,205,526.059753
6,0,206,3180.196777
6,0,207,1857.349365
6,0,208,-628.895752
6,0,209,5149.231445
6,0,210,-4303.903809
6,0,211,-4563.970215
6,0,212,-1963.001587
6,0,213,1697.972534
6,0,214,506.521545
6,0,215,-458.294312
6,0,216,775.068604
6,0,217,2220.895264
6,0,218,2634.838379
6,0,219,5288.911133
6,0,220,-200.966431
6,0,221,-2259.396973
6,0,222,196.082001
6,0,223,1734.274780
6,0,224,4069.543945
6,0,225,-1451.148682
6,0,226,-3626.977783
6,0,227,649.210632
6,0,228,1298.005981
6,0,229,1762.218262
6,0,230,-1976.934448
6,0,231,-1020.471008
6,0,232,-209.444702
6,0,233,3118.687256
6,0,234,2229.316162
6,0,235,1236.490845
6,0,236,-2701.237305
6,0,237,-5981.772461
6,0,238,-1604.995483
6,0,239,984.779480
6,0,240,-2055.346924
6,0,241,2783.034668
6,0,242,112.206299
6,0,243,-4239.438477
6,0,244,-1031.624268
6,0,245,-1179.881348
6,0,246,-2975.398438
6,0,247,-3456.399902
6,0,248,1918.773193
6,0,249,2394.294189
6,0,250,2125.862061
6,0,251,-3352.946045
6,0,252,789.008545
6,0,253,-4021.350586
6,0,254,-3411.621338
6,0,255,-799.588257
6,0,256,6379.349609
6,0,257,-469.530640
6,0,258,1843.349609
6,0,259,-2379.773438
6,0,260,-3515.039062
6,0,261,1932.885498
6,0,262,-1674.887695
6,0,263,-10056.775391
6,0,264,-1590.992920
6,0,265,2285.368896
6,0,266,-4477.183594
6,0,267,-978.471069
6,0,268,-4563.849609
6,0,269,-1563.085205
6,0,270,-1532.259033
6,0,271,1784.427734
6,0,272,-16.395782
6,0,273,1725.803711
6,0,274,2472.554199
6,0,275,2455.790039
6,0,276,4477.816895
6,0,277,-1132.175903
6,0,278,-970.147705
6,0,279,1896.395874
6,0,280,2878.180908
6,0,281,1409.823242
6,0,282,1225.315552
6,0,283,-2665.039551
6,0,284,719.027893
6,0,285,-981.369873
6,0,286,3401.143066
6,0,287,4410.738281
6,0,288,-894.770386
6,0,289,-1361.669312
6,0,290,-4840.663086
6,0,291,-265.272186
6,0,292,414.257507
6,0,293,2192.997314
6,0,294,-1121.159912
6,0,295,4458.131348
6,0,296,2713.126221
6,0,297,1018.385742
6,0,298,-377.185730
6,0,299,2690.642334
6,0,300,1826.556152
6,0,301,-3397.658691
6,0,302,624.102356
6,0,303,-883.221313
6,0,304,-2474.790771
6,0,305,-500.342377
6,0,306,3733.853516
6,0,307,-460.995728
6,0,308,-2533.425293
6,0,309,-5327.391113
6,0,310,-5330.189941
6,0,311,-3738.797852
6,0,312,-2108.244629
6,0,313,3096.253418
6,0,314,-1398.042236
6,0,315,307.906494
6,0,316,3124.322754
6,0,317,1158.196533
6,0,318,498.099487
6,0,319,-3017.349854
6,0,320,-1054.067871
6,0,321,50.682129
6,0,322,1258.838745
6,0,323,394.724792
6,0,324,-2998.086914
6,0,325,-3688.624023
6,0,326,-578.579285
6,0,327,4497.178711
6,0,328,3350.727783
6,0,329,1188.939453
6,0,330,-1512.774170
6,0,331,7095.803711
6,0,332,1759.575195
6,0,333,-318.609619
6,0,334,1773.285156
6,0,335,1792.957397
6,0,336,-3123.727539
6,0,337,3459.861572
6,0,338,-6644.827148
6,0,339,-3705.320312
6,0,340,-2508.142578
6,0,341,-1050.953735
6,0,342,903.678406
6,0,343,-5853.031738
6,0,344,-2466.448242
6,0,345,1658.714355
6,0,346,422.812866
6,0,347,-3867.534424
6,0,348,629.507568
6,0,349,780.474121
6,0,350,-880.682434
6,0,351,-2636.998047
6,0,352,618.727905
6,0,353,-2611.760254
6,0,354,184.914642
6,0,355,531.582031
6,0,356,1994.406250
6,0,357,2562.114746
6,0,358,-2491.641602
6,0,359,-1168.639893
6,0,360,3599.636475
6,0,361,3649.916016
6,0,362,-1308.513672
6,0,363,-6129.996582
6,0,364,3616.486816
6,0,365,-1311.241455
6,0,366,92.729553
6,0,367,-1420.473389
6,0,368,2234.907227
6,0,369,5104.455078
6,0,370,6757.240234
6,0,371,-1591.492065
6,0,372,-679.077637
6,0,373,-7271.094727
6,0,374,3177.369141
6,0,375,-668.283691
6,0,376,-1286.199585
6,0,377,2819.469727
6,0,378,-2835.531738
6,0,379,322.022461
6,0,380,-740.744934
6,0,381,3831.702637
6,0,382,-4882.613281
6,0,383,-4569.546875
6,0,384,-251.335938
6,0,385,-3050.941406
6,0,386,-849.848328
6,0,387,-894.682373
6,0,388,-419.285065
6,0,389,-3509.596680
6,0,390,-595.514832
6,0,391,-3022.900635
6,0,392,-3856.401367
6,0,393,-2516.638184
6,0,394,-242.803894
6,0,395,5277.573242
6,0,396,-2418.820801
6,0,397,215.382080
6,0,398,4327.002930
6,0,399,5423.084473
6,0,400,-841.454346
6,0,401,-4941.443848
6,0,402,4516.944336
6,0,403,1625.099609
6,0,404,285.570068
6,0,405,2307.550537
6,0,406,-2125.400146
6,0,407,-1490.341553
6,0,408,2939.823730
6,0,409,-273.599243
6,0,410,-1683.195312
6,0,411,2058.855957
6,0,412,-7950.709961
6,0,413,-3134.629883
6,0,414,2027.808350
6,0,415,1141.535278
6,0,416,6472.010742
6,0,417,1440.583252
6,0,418,-3095.608887
6,0,419,-1062.316772
6,0,420,56.405273
6,0,421,-4440.869629
6,0,422,1096.623169
6,0,423,2710.348633
6,0,424,4676.556641
6,0,425,-1328.156494
6,0,426,-3576.645264
6,0,427,-43.913910
6,0,428,4200.994141
6,0,429,-914.097412
6,0,430,2080.979736
6,0,431,-1610.417603
6,0,432,1468.617554
6,0,433,-2256.668945
6,0,434,6821.612305
6,0,435,2537.201172
6,0,436,1236.473389
6,0,437,-2304.076660
6,0,438,-4141.520996
6,0,439,2757.895996
6,0,440,1418.238647
6,0,441,3194.278809
6,0,442,383.443359
6,0,443,-5078.431152
6,0,444,42.281097
6,0,445,-5327.270508
6,0,446,3298.202148
6,0,447,-1613.318970
6,0,448,2662.907715
6,0,449,-402.354065
6,0,450,-2304.129883
6,0,451,-2645.384033
6,0,452,4615.003906
6,0,453,-2315.914062
6,0,454,2847.432617
6,0,455,685.393433
6,0,456,3479.266113
6,0,457,-3817.102539
6,0,458,-693.326172
6,0,459,4821.844727
6,0,460,637.928223
6,0,461,-2010.452515
6,0,462,-3414.475098
6,0,463,-1339.412842
6,0,464,5400.612793
6,0,465,1957.945068
6,0,466,-1702.916138
6,0,467,2707.567871
6,0,468,1365.178223
6,0,469,2385.963867
6,0,470,3473.717773
6,0,471,-919.777100
6,0,472,-5842.064453
6,0,473,-570.264587
6,0,474,-1132.481689
6,0,475,5518.229980
6,0,476,4567.329102
6,0,477,671.676025
6,0,478,-1389.862671
6,0,479,-2989.216797
6,0,480,-4863.079590
6,0,481,1371.130859
6,0,482,598.872681
6,0,483,-1498.695068
6,0,484,1051.866211
6,0,485,816.977600
6,0,486,-30.365555
6,0,487,36.689209
6,0,488,2285.255371
6,0,489,-1820.135010
6,0,490,2514.542480
6,0,491,657.555542
6,0,492,4830.351562
6,0,493,-3045.643066
6,0,494,665.919373
6,0,495,-889.115295
6,0,496,-245.693039
6,0,497,-2354.556152
6,0,498,719.067627
6,0,499,520.490234
6,0,500,-1893.153076
6,0,501,4586.842773
6,0,502,4433.390625
6,0,503,-75.146729
6,0,504,3787.058594
6,0,505,2925.898926
6,0,506,-1954.622314
6,0,507,1393.203491
6,0,508,-1434.363892
6,0,509,50.613342
6,0,510,1295.120361
6,0,511,5076.311523
6,0,512,1784.419678
6,0,513,1555.471680
6,0,514,5504.510254
6,0,515,2078.346436
6,0,516,3124.188721
6,0,517,299.541931
6,0,518,-5478.599609
6,0,519,2173.404297
6,0,520,4122.732422
6,0,521,6147.298828
6,0,522,-6610.952148
6,0,523,4855.168945
6,0,524,4701.760254
6,0,525,-2111.432861
6,0,526,-3858.992920
6,0,527,2405.514160
6,0,528,-3131.826660
6,0,529,-1426.062500
6,0,530,-164.666290
6,0,531,-1513.124756
6,0,532,-763.044067
6,0,533,-2488.664307
6,0,534,204.529922
6,0,535,704.947327
6,0,536,-3098.457520
6,0,537,-1355.642944
6,0,538,1401.572021
6,0,539,4754.769531
6,0,540,-1616.387329
6,0,541,937.366211
6,0,542,-1593.292236
6,0,543,-4443.725586
6,0,544,-1615.963623
6,0,545,4147.812988
6,0,546,4388.473633
6,0,547,-883.402222
6,0,548,1320.391602
6,0,549,3865.495850
6,0,550,5356.206543
6,0,551,-3666.171875
6,0,552,-1663.854980
6,0,553,-780.195801
6,0,554,-1523.303101
6,0,555,-4421.449219
6,0,556,-3856.458496
6,0,557,6852.084473
6,0,558,450.621948
6,0,559,-6365.136719
6,0,560,-1509.957520
6,0,561,-1051.161621
6,0,562,-533.841248
6,0,563,2886.813477
6,0,564,3272.640625
6,0,565,6072.269043
6,0,566,-4544.204102
6,0,567,3641.535645
6,0,568,2005.653076
6,0,569,3020.786133
6,0,570,-3906.729248
6,0,571,-2438.360840
6,0,572,5171.100586
6,0,573,-19.303223
6,0,574,-623.351196
6,0,575,307.917358
6,0,576,-5903.427246
6,0,577,-2348.988037
6,0,578,215.733002
6,0,579,-995.413330
6,0,580,1454.272461
6,0,581,3476.690918
6,0,582,2931.250244
6,0,583,-2407.573730
6,0,584,-3090.238770
6,0,585,1524.498535
6,0,586,-399.543823
6,0,587,1543.901245
6,0,588,4804.910645
6,0,589,-4424.498047
6,0,590,-1655.206299
6,0,591,-3901.407227
6,0,592,-251.600525
6,0,593,-796.429077
6,0,594,-2469.153564
6,0,595,-4826.644531
6,0,596,8353.968750
6,0,597,-1780.802856
6,0,598,3504.825928
6,0,599,1826.570312
7,0,0,2428.258789
7,0,1,2403.057617
7,0,2,3317.584961
7,0,3,1099.797852
7,0,4,5087.897461
7,0,5,-7259.549805
7,0,6,-4311.818848
7,0,7,532.082886
7,0,8,-228.645264
7,0,9,3818.211426
7,0,10,5977.260254
7,0,11,-1571.031494
7,0,12,2719.096436
7,0,13,-2236.645020
7,0,14,-4675.395508
7,0,15,224.421555
7,0,16,-4703.344238
7,0,17,3574.892822
7,0,18,2319.154297
7,0,19,-2250.660400
7,0,20,3843.364502
7,0,21,-1492.736450
7,0,22,25.833862
7,0,23,-1996.157471
7,0,24,-404.816467
7,0,25,-869.072388
7,0,26,3927.288086
7,0,27,-125.161011
7,0,28,3686.778809
7,0,29,-2770.824951
7,0,30,1001.931396
7,0,31,-2611.384033
7,0,32,-158.709808
7,0,33,255.200439
7,0,34,565.643433
7,0,35,-902.639221
7,0,36,-2734.465576
7,0,37,-10.481995
7,0,38,1681.525024
7,0,39,8234.195312
7,0,40,5169.009766
7,0,41,2170.955078
7,0,42,-2208.705811
7,0,43,990.746399
7,0,44,-1070.423096
7,0,45,3373.510254
7,0,46,-2656.165283
7,0,47,-4876.785645
7,0,48,-4418.078613
7,0,49,-2200.311035
7,0,50,2056.284180
7,0,51,1200.509766
7,0,52,7537.855469
7,0,53,3009.970215
7,0,54,420.170654
7,0,55,-2200.292969
7,0,56,2520.548584
7,0,57,588.005249
7,0,58,-245.397827
7,0,59,-365.671204
7,0,60,-1129.170654
7,0,61,7045.623535
7,0,62,2735.883789
7,0,63,-2197.494873
7,0,64,-74.808105
7,0,65,2307.984619
7,0,66,2156.948242
7,0,67,-382.492676
7,0,68,2070.276611
7,0,69,1695.514893
7,0,70,5636.068359
7,0,71,-290.108093
7,0,72,8488.733398
7,0,73,5669.649902
7,0,74,10913.452148
7,0,75,20215.328125
7,0,76,34170.871094
7,0,77,33208.832031
7,0,78,24410.439453
7,0,79,20897.697266
7,0,80,26295.402344
7,0,81,19991.513672
7,0,82,15133.726562
7,0,83,15192.394531
7,0,84,17807.355469
7,0,85,23624.464844
7,0,86,24415.984375
7,0,87,19611.273438
7,0,88,16571.208984
7,0,89,11064.457031
7,0,90,5546.569336
7,0,91,727.762451
7,0,92,-3109.256836
7,0,93,2593.237549
7,0,94,1880.114014
7,0,95,34.231567
7,0,96,5728.369141
7,0,97,8930.556641
7,0,98,1284.417114
7,0,99,3099.454590
7,0,100,1323.554443
7,0,101,1242.436157
7,0,102,-38.477661
7,0,103,-1775.189087
7,0,104,-4258.643066
7,0,105,-1324.945679
7,0,106,-1271.812256
7,0,107,-622.968811
7,0,108,1771.038086
7,0,109,-980.988342
7,0,110,-2205.889404
7,0,111,588.024902
7,0,112,3602.871094
7,0,113,-4104.974609
7,0,114,822.936768
7,0,115,-642.543945
7,0,116,-1134.750977
7,0,117,-983.721375
7,0,118,-1805.964233
7,0,119,-1050.882324
7,0,120,-1475.966309
7,0,121,-754.401733
7,0,122,67.824097
7,0,123,1913.649902
7,0,124,8223.015625
7,0,125,7711.282227
7,0,126,504.132568
7,0,127,-1224.290771
7,0,128,-5754.928223
7,0,129,-3302.185547
7,0,130,2114.992920
7,0,131,1759.812378
7,0,132,3012.887939
7,0,133,559.997070
7,0,134,1085.865967
7,0,135,-6258.344727
7,0,136,249.824951
7,0,137,2814.177734
7,0,138,1882.887207
7,0,139,518.093811
7,0,140,-3212.697754
7,0,141,-1747.193359
7,0,142,6424.730957
7,0,143,2087.045654
7,0,144,-3702.105469
7,0,145,-1436.626465
7,0,146,-455.144531
7,0,147,-1568.268066
7,0,148,-6770.235352
7,0,149,-309.724854
7,0,150,-7891.642090
7,0,151,-544.620667
7,0,152,1516.601685
7,0,153,1477.362915
7,0,154,-2091.148926
7,0,155,4106.240234
7,0,156,-1344.435669
7,0,157,-2105.327881
7,0,158,5163.433594
7,0,159,224.447052
7,0,160,137.738464
7,0,161,7467.956055
7,0,162,627.092041
7,0,163,-983.674927
7,0,164,3563.747559
7,0,165,1225.610718
7,0,166,397.812866
7,0,167,-2611.440918
7,0,168,1150.141479
7,0,169,3253.244629
7,0,170,-2471.624756
7,0,171,-1509.560669
7,0,172,2763.892822
7,0,173,207.844849
7,0,174,-385.227844
7,0,175,1253.679932
7,0,176,-5044.583984
7,0,177,1046.645508
7,0,178,-3805.629639
7,0,179,-2256.288574
7,0,180,-2938.643066
7,0,181,-2860.319580
7,0,182,1631.183838
7,0,183,361.475220
7,0,184,-3042.150879
7,0,185,1340.424316
7,0,186,-3461.619629
7,0,187,-2102.411621
7,0,188,1958.417236
7,0,189,2157.072754
7,0,190,1256.551392
7,0,191,7940.563477
7,0,192,8673.335938
7,0,193,-3864.304688
7,0,194,-5444.545410
7,0,195,-5377.395020
7,0,196,-2309.350098
7,0,197,1136.155151
7,0,198,-3456.075439
7,0,199,-2700.921631
7,0,200,1225.658081
7,0,201,806.220154
7,0,202,28.716080
7,0,203,-1008.825073
7,0,204,-1467.506470
7,0,205,-1123.584961
7,0,206,-880.275879
7,0,207,188.135925
7,0,208,6142.270020
7,0,209,2934.324951
7,0,210,-502.784973
7,0,211,2159.692627
7,0,212,5678.043945
7,0,213,3681.263184
7,0,214,-1252.245850
7,0,215,4092.295654
7,0,216,3513.370605
7,0,217,2900.907715
7,0,218,1206.063965
7,0,219,-8590.845703
7,0,220,-1990.767334
7,0,221,2008.694336
7,0,222,1284.261963
7,0,223,2484.207031
7,0,224,-1685.680664
7,0,225,-5939.513672
7,0,226,800.540649
7,0,227,-4658.537109
7,0,228,-1836.730591
7,0,229,-5170.342285
7,0,230,-1817.158813
7,0,231,3804.193359
7,0,232,3001.561035
7,0,233,-242.574570
7,0,234,1494.123779
7,0,235,-966.912598
7,0,236,1337.545044
7,0,237,3944.163086
7,0,238,-885.825806
7,0,239,-2921.911133
7,0,240,1276.016724
7,0,241,2769.500732
7,0,242,3843.438721
7,0,243,-986.528809
7,0,244,512.503662
7,0,245,1625.531982
7,0,246,2509.263672
7,0,247,-2091.228271
7,0,248,1018.740356
7,0,249,-332.093750
7,0,250,2089.999023
7,0,251,-211.873413
7,0,252,2956.831543
7,0,253,6145.053711
7,0,254,-474.780365
7,0,255,-2152.724365
7,0,256,1740.208862
7,0,257,-1632.502197
7,0,258,179.772156
7,0,259,-1053.672241
7,0,260,666.226196
7,0,261,3096.699463
7,0,262,750.208740
7,0,263,-5371.897461
7,0,264,-2493.956543
7,0,265,-6132.482422
7,0,266,205.004761
7,0,267,-4054.526367
7,0,268,1454.982178
7,0,269,1049.538330
7,0,270,-2446.428955
7,0,271,-2717.602295
7,0,272,-614.633423
7,0,273,-2091.244385
7,0,274,-824.337646
7,0,275,-832.642578
7,0,276,2884.016113
7,0,277,-1626.838379
7,0,278,2436.624023
7,0,279,-3934.318848
7,0,280,-1526.349731
7,0,281,739.173584
7,0,282,3656.022705
7,0,283,-843.859009
7,0,284,-5083.706055
7,0,285,1608.817139
7,0,286,-1176.862793
7,0,287,-69.386475
7,0,288,820.221130
7,0,289,3644.835205
7,0,290,-871.801025
7,0,291,1891.348755
7,0,292,-3419.604736
7,0,293,95.834030
7,0,294,1427.037109
7,0,295,-2594.669434
7,0,296,-2572.133301
7,0,297,3742.743164
7,0,298,1116.569580
7,0,299,17.593506
7,0,300,3284.208496
7,0,301,392.177002
7,0,302,-1778.065186
7,0,303,-2614.657715
7,0,304,4942.392578
7,0,305,-6017.968750
7,0,306,1088.411011
7,0,307,-3366.435303
7,0,308,-2343.089600
7,0,309,3986.086426
7,0,310,613.094482
7,0,311,646.690186
7,0,312,-2835.057129
7,0,313,-1570.987061
7,0,314,-2471.555664
7,0,315,-533.491455
7,0,316,-2152.777588
7,0,317,2025.526245
7,0,318,5697.567871
7,0,319,1245.101440
7,0,320,3706.287598
7,0,321,4134.202148
7,0,322,2022.497070
7,0,323,-2043.548462
7,0,324,-2055.081299
7,0,325,2635.347168
7,0,326,2316.488525
7,0,327,-141.961426
7,0,328,-3184.535645
7,0,329,3077.224121
7,0,330,-6616.306641
7,0,331,4243.856445
7,0,332,-2348.544434
7,0,333,2000.404541
7,0,334,-1973.649414
7,0,335,-1199.068115
7,0,336,-852.329651
7,0,337,-1912.236816
7,0,338,-2485.507568
7,0,339,-3979.005615
7,0,340,-4233.420898
7,0,341,3994.211670
7,0,342,-1123.573242
7,0,343,-1025.742065
7,0,344,-1481.531982
7,0,345,-1722.034912
7,0,346,990.588684
7,0,347,3460.261230
7,0,348,4128.644531
7,0,349,-4225.270020
7,0,350,4973.484375
7,0,351,101.466110
7,0,352,2548.578613
7,0,353,2612.836182
7,0,354,576.893799
7,0,355,490.099792
7,0,356,1040.999390
7,0,357,-3772.093018
7,0,358,-2572.246094
7,0,359,188.077698
7,0,360,2967.926270
7,0,361,-203.431427
7,0,362,274.792236
7,0,363,-4901.890137
7,0,364,2816.985840
7,0,365,-161.382935
7,0,366,7605.081055
7,0,367,1278.917603
7,0,368,-768.377258
7,0,369,-6761.583984
7,0,370,-5.003296
7,0,371,912.765503
7,0,372,-2110.750977
7,0,373,-5729.795898
7,0,374,1273.056641
7,0,375,106.937012
7,0,376,-3036.610107
7,0,377,-2706.554199
7,0,378,-3749.573242
7,0,379,-1699.791504
7,0,380,-1772.328979
7,0,381,943.198303
7,0,382,7557.338867
7,0,383,1183.721802
7,0,384,-3000.106445
7,0,385,-1282.960938
7,0,386,6575.705566
7,0,387,-2284.186279
7,0,388,-175.545471
7,0,389,708.264771
7,0,390,-2541.413330
7,0,391,498.609619
7,0,392,492.879883
7,0,393,2436.702637
7,0,394,2025.458984
7,0,395,-1582.506470
7,0,396,-5595.542969
7,0,397,-3660.193848
7,0,398,-2731.723389
7,0,399,5966.264648
7,0,400,7286.195312
7,0,401,123.796021
7,0,402,5353.489746
7,0,403,8290.164062
7,0,404,4833.446289
7,0,405,-1640.971680
7,0,406,-3215.495605
7,0,407,-771.200317
7,0,408,-2465.881348
7,0,409,-698.470947
7,0,410,-2756.811523
7,0,411,2923.457275
7,0,412,-2672.960449
7,0,413,-2228.353516
7,0,414,2514.929443
7,0,415,1838.233643
7,0,416,1119.525879
7,0,417,-1912.248901
7,0,418,1896.824219
7,0,419,-1148.745361
7,0,420,-5673.857422
7,0,421,-7376.952148
7,0,422,2288.405762
7,0,423,1756.937988
7,0,424,2352.623535
7,0,425,2570.972168
7,0,426,-2502.287109
7,0,427,1762.603271
7,0,428,3451.841797
7,0,429,5306.052734
7,0,430,2951.262939
7,0,431,571.336304
7,0,432,2615.642822
7,0,433,-2393.316406
7,0,434,7599.390137
7,0,435,521.127747
7,0,436,-1912.272583
7,0,437,848.023560
7,0,438,-2507.828369
7,0,439,2551.284668
7,0,440,-1677.170898
7,0,441,-6747.911133
7,0,442,-5975.798340
7,0,443,5593.846680
7,0,444,-4474.204102
7,0,445,-4971.822266
7,0,446,4372.130371
7,0,447,2875.537109
7,0,448,5440.239258
7,0,449,2677.083008
7,0,450,999.118286
7,0,451,87.296143
7,0,452,576.708923
7,0,453,-3070.400391
7,0,454,1689.816162
7,0,455,-1000.438538
7,0,456,5487.775391
7,0,457,-3606.875488
7,0,458,437.041931
7,0,459,2671.537598
7,0,460,-245.478271
7,0,461,-184.002930
7,0,462,-4250.232910
7,0,463,3622.254883
7,0,464,2207.044922
7,0,465,-3640.681152
7,0,466,2982.141113
7,0,467,-1185.062744
7,0,468,-2099.667969
7,0,469,-863.485535
7,0,470,5649.957520
7,0,471,920.828735
7,0,472,898.835938
7,0,473,-3679.844482
7,0,474,-1590.570801
7,0,475,285.843384
7,0,476,2338.667480
7,0,477,-1330.347168
7,0,478,-345.942261
7,0,479,4900.614746
7,0,480,-533.419861
7,0,481,-6759.102051
7,0,482,2596.037109
7,0,483,-2273.082520
7,0,484,3854.345215
7,0,485,2959.434082
7,0,486,1181.105713
7,0,487,-3433.669189
7,0,488,-891.533447
7,0,489,4830.789551
7,0,490,-3478.351562
7,0,491,-2172.593994
7,0,492,2131.750977
7,0,493,-2866.204102
7,0,494,-1386.460938
7,0,495,-178.250275
7,0,496,-2650.508057
7,0,497,-1171.084717
7,0,498,2786.164307
7,0,499,4069.957275
7,0,500,244.027161
7,0,501,-1252.266357
7,0,502,-3290.778076
7,0,503,-992.124634
7,0,504,5896.025879
7,0,505,-5310.271973
7,0,506,1211.611938
7,0,507,1186.401611
7,0,508,9162.637695
7,0,509,-3450.446777
7,0,510,2923.026123
7,0,511,-3235.063721
7,0,512,2252.425781
7,0,513,-2133.181641
7,0,514,-1383.734985
7,0,515,3049.031006
7,0,516,971.350220
7,0,517,741.952393
7,0,518,6285.282715
7,0,519,-5995.444336
7,0,520,-2944.539795
7,0,521,2699.354492
7,0,522,-2144.460449
7,0,523,702.586426
7,0,524,-1400.405518
7,0,525,-681.852051
7,0,526,-4325.708008
7,0,527,2392.148193
7,0,528,1155.907227
7,0,529,2666.236328
7,0,530,-933.388306
7,0,531,-1781.045898
7,0,532,266.405853
7,0,533,-1386.390015
7,0,534,-1503.915283
7,0,535,2073.065918
7,0,536,-197.745850
7,0,537,4430.803711
7,0,538,1435.292480
7,0,539,889.935547
7,0,540,-1733.301514
7,0,541,3770.581787
7,0,542,-3101.267090
7,0,543,3857.288330
7,0,544,1278.839233
7,0,545,-1786.259399
7,0,546,204.773865
7,0,547,-393.547852
7,0,548,2162.545898
7,0,549,-1330.555420
7,0,550,-1148.782104
7,0,551,-5782.905762
7,0,552,-1106.979492
7,0,553,-5402.539062
7,0,554,-3951.068848
7,0,555,878.513916
7,0,556,-3517.760010
7,0,557,-6152.035156
7,0,558,-198.004257
7,0,559,-1453.707764
7,0,560,3868.480469
7,0,561,2529.058594
7,0,562,179.699097
7,0,563,3678.162354
7,0,564,-1750.057251
7,0,565,2571.296631
7,0,566,-1942.775391
7,0,567,2056.514404
7,0,568,3636.647461
7,0,569,-681.303528
7,0,570,1438.170898
7,0,571,1200.562500
7,0,572,475.884216
7,0,573,-2315.035156
7,0,574,-1355.536743
7,0,575,-1159.814697
7,0,576,-4796.000000
7,0,577,3745.303955
7,0,578,-2639.536865
7,0,579,-376.763550
7,0,580,-4700.172852
7,0,581,2252.070801
7,0,582,-726.910400
7,0,583,2198.928467
7,0,584,-866.729736
7,0,585,-1923.297241
7,0,586,744.682251
7,0,587,493.183960
7,0,588,-2921.891846
7,0,589,3149.987549
7,0,590,-1987.772339
7,0,591,632.773682
7,0,592,386.520264
7,0,593,-4994.259277
7,0,594,23.098633
7,0,595,-2536.076904
7,0,596,-228.529541
7,0,597,-499.715942
7,0,598,174.547180
7,0,599,-5100.571289
8,0,0,-3971.653809
8,0,1,-1272.826904
8,0,2,-4556.176758
8,0,3,930.962097
8,0,4,-2025.165527
8,0,5,-2715.936523
8,0,6,-4223.370605
8,0,7,-2522.964355
8,0,8,1912.629639
8,0,9,-3079.490723
8,0,10,545.031128
8,0,11,1585.399170
8,0,12,-2869.742676
8,0,13,2891.491699
8,0,14,3383.689941
8,0,15,-207.281128
8,0,16,-2156.591553
8,0,17,-1202.913086
8,0,18,-6404.814941
8,0,19,-1734.296143
8,0,20,-4430.343262
8,0,21,-1166.564331
8,0,22,2997.759766
8,0,23,-4575.761719
8,0,24,-5202.205566
8,0,25,-6077.582520
8,0,26,1546.232178
8,0,27,-2237.686768
8,0,28,-1804.207642
8,0,29,-657.561890
8,0,30,-825.360107
8,0,31,-2366.336182
8,0,32,-4008.016357
8,0,33,4938.662109
8,0,34,2287.387207
8,0,35,-1077.057617
8,0,36,-6306.911621
8,0,37,1456.766235
8,0,38,-2274.038330
8,0,39,-6091.527344
8,0,40,-95.391174
8,0,41,455.538849
8,0,42,2718.081543
8,0,43,-246.445984
8,0,44,-1365.133301
8,0,45,2074.845459
8,0,46,2718.079834
8,0,47,7162.055664
8,0,48,-3801.059570
8,0,49,-5149.086914
8,0,50,441.562744
8,0,51,5925.923828
8,0,52,-75.827881
8,0,53,-7025.685547
8,0,54,5165.203125
8,0,55,-2634.835938
8,0,56,-2749.503174
8,0,57,-3742.319824
8,0,58,-2732.709229
8,0,59,-196.074493
8,0,60,108.731873
8,0,61,131.141663
8,0,62,-400.263367
8,0,63,5402.899414
8,0,64,-1818.194702
8,0,65,-7612.954102
8,0,66,-3043.155762
8,0,67,-324.728241
8,0,68,1109.969238
8,0,69,-1485.355957
8,0,70,3078.876953
8,0,71,2357.329834
8,0,72,3534.723389
8,0,73,2662.160156
8,0,74,9088.978516
8,0,75,16905.769531
8,0,76,12867.337891
8,0,77,31129.769531
8,0,78,43152.863281
8,0,79,39385.753906
8,0,80,42339.085938
8,0,81,24856.708984
8,0,82,24929.517578
8,0,83,23408.109375
8,0,84,25321.091797
8,0,85,33890.199219
8,0,86,32189.816406
8,0,87,21120.419922
8,0,88,14447.532227
8,0,89,12120.643555
8,0,90,10090.107422
8,0,91,-3135.425293
8,0,92,6770.491699
8,0,93,231.809631
8,0,94,3394.915283
8,0,95,-4600.945312
8,0,96,4130.416504
8,0,97,519.893799
8,0,98,-926.042358
8,0,99,-2033.533447
8,0,100,2141.939941
8,0,101,-3465.477051
8,0,102,449.954529
8,0,103,-1661.582031
8,0,104,2645.319824
8,0,105,-595.997314
8,0,106,-1725.922607
8,0,107,-2587.288330
8,0,108,-2522.969727
8,0,109,-1197.265503
8,0,110,2402.014893
8,0,111,-752.669006
8,0,112,-1395.883667
8,0,113,293.364380
8,0,114,-3345.159912
8,0,115,-403.072113
8,0,116,-5809.058105
8,0,117,-1493.778198
8,0,118,243.046875
8,0,119,6594.320312
8,0,120,4284.228516
8,0,121,2622.972900
8,0,122,3319.366943
8,0,123,-5053.999512
8,0,124,1202.255737
8,0,125,-7022.820801
8,0,126,-1074.243286
8,0,127,7771.740234
8,0,128,3898.268799
8,0,129,-6133.588379
8,0,130,-741.512695
8,0,131,-2153.820801
8,0,132,-948.376221
8,0,133,-1384.712891
8,0,134,-772.225464
8,0,135,967.314331
8,0,136,791.160767
8,0,137,-3974.437500
8,0,138,-1510.501953
8,0,139,3543.151123
8,0,140,-1404.279175
8,0,141,-3496.202881
8,0,142,1356.026123
8,0,143,-5009.172852
8,0,144,-719.118042
8,0,145,-4483.439453
8,0,146,-906.484009
8,0,147,743.591614
8,0,148,10.792786
8,0,149,201.080322
8,0,150,4161.205078
8,0,151,1322.473877
8,0,152,1126.727295
8,0,153,-1890.901489
8,0,154,-2008.384399
8,0,155,-6429.923340
8,0,156,-2220.911865
8,0,157,1870.675903
8,0,158,1213.426514
8,0,159,3020.130371
8,0,160,5909.194336
8,0,161,-5087.694336
8,0,162,2421.785889
8,0,163,-1485.401367
8,0,164,3568.307861
8,0,165,-900.777222
8,0,166,-2615.229492
8,0,167,-1896.506470
8,0,168,3266.221680
8,0,169,4186.369141
8,0,170,2941.723633
8,0,171,525.415344
8,0,172,-2525.724121
8,0,173,-182.084595
8,0,174,1070.798218
8,0,175,-11.493629
8,0,176,-1765.001831
8,0,177,-2682.401855
8,0,178,318.500275
8,0,179,-1958.044434
8,0,180,-1929.885376
8,0,181,-928.832092
8,0,182,63.931152
8,0,183,-584.938049
8,0,184,-4984.081055
8,0,185,-4584.144531
8,0,186,-1963.654053
8,0,187,2787.981934
8,0,188,1767.200317
8,0,189,-120.624832
8,0,190,1344.965088
8,0,191,-4044.461182
8,0,192,4278.716797
8,0,193,1921.043335
8,0,194,1895.720703
8,0,195,-576.461426
8,0,196,-2360.747070
8,0,197,3473.188965
8,0,198,5148.393555
8,0,199,3948.681396
8,0,200,609.358215
8,0,201,-1074.244507
8,0,202,-212.889709
8,0,203,-803.032715
8,0,204,1227.550781
8,0,205,-3020.803223
8,0,206,877.861755
8,0,207,1638.510864
8,0,208,869.454590
8,0,209,5939.966309
8,0,210,6219.484375
8,0,211,-89.955933
8,0,212,463.928223
8,0,213,-131.839355
8,0,214,2863.541016
8,0,215,4734.471191
8,0,216,3392.072510
8,0,217,-2330.062256
8,0,218,-626.773621
8,0,219,-1871.363281
8,0,220,3361.287598
8,0,221,1487.540894
8,0,222,-481.436035
8,0,223,2785.224609
8,0,224,-5350.453125
8,0,225,-313.572815
8,0,226,-2486.548340
8,0,227,-1060.340820
8,0,228,466.738525
8,0,229,2427.279053
8,0,230,-445.009277
8,0,231,1507.161011
8,0,232,6641.946777
8,0,233,2169.940918
8,0,234,-422.629883
8,0,235,-1521.772461
8,0,236,-3149.402344
8,0,237,-3040.312988
8,0,238,763.153748
8,0,239,4499.599609
8,0,240,1990.891479
8,0,241,1652.466919
8,0,242,-3963.260742
8,0,243,-1054.694702
8,0,244,1568.574829
8,0,245,-3812.287109
8,0,246,4432.579102
8,0,247,100.339355
8,0,248,-1672.753784
8,0,249,-531.705566
8,0,250,89.153625
8,0,251,181.326172
8,0,252,-372.252075
8,0,253,7665.444336
8,0,254,2153.120605
8,0,255,-103.928101
8,0,256,-822.661255
8,0,257,9164.422852
8,0,258,-1860.385376
8,0,259,-3149.589355
8,0,260,1761.620850
8,0,261,710.088623
8,0,262,-445.018494
8,0,263,782.773438
8,0,264,-42.268921
8,0,265,480.625854
8,0,266,1012.009277
8,0,267,3330.556152
8,0,268,-1625.268311
8,0,269,-766.656799
8,0,270,3752.867188
8,0,271,2732.150879
8,0,272,7517.163086
8,0,273,-2749.497559
8,0,274,-2626.472168
8,0,275,-993.178406
8,0,276,-548.507141
8,0,277,2186.832520
8,0,278,5970.628906
8,0,279,4807.257324
8,0,280,2432.672607
8,0,281,-352.669037
8,0,282,-106.574821
8,0,283,1384.063477
8,0,284,-1261.604492
8,0,285,3073.348145
8,0,286,4902.400391
8,0,287,3224.272949
8,0,288,-1432.230591
8,0,289,1934.966187
8,0,290,2021.741333
8,0,291,2424.364990
8,0,292,-732.945068
8,0,293,-3554.989746
8,0,294,-1977.607178
8,0,295,5402.800293
8,0,296,4502.279785
8,0,297,2164.336426
8,0,298,-129.020004
8,0,299,2544.620605
8,0,300,3358.535156
8,0,301,-3812.189209
8,0,302,16.656860
8,0,303,970.305786
8,0,304,2961.301025
8,0,305,539.731689
8,0,306,419.295837
8,0,307,2804.777832
8,0,308,-842.126953
8,0,309,-2069.889893
8,0,310,2072.100098
8,0,311,-4701.499512
8,0,312,1638.452637
8,0,313,-682.727783
8,0,314,5713.291504
8,0,315,1546.310181
8,0,316,4281.529297
8,0,317,1739.314819
8,0,318,-1583.284424
8,0,319,1174.326172
8,0,320,8512.820312
8,0,321,3694.118896
8,0,322,-170.647461
8,0,323,-6972.365234
8,0,324,2877.684814
8,0,325,-2316.129883
8,0,326,1300.074219
8,0,327,-442.292603
8,0,328,799.545044
8,0,329,530.954102
8,0,330,3196.247070
8,0,331,6673.103027
8,0,332,1272.222168
8,0,333,743.783142
8,0,334,-209.957031
8,0,335,338.095428
8,0,336,-268.874817
8,0,337,125.518188
8,0,338,-2542.542480
8,0,339,-772.223267
8,0,340,-2413.863770
8,0,341,-4743.439453
8,0,342,-3616.415771
8,0,343,1534.998169
8,0,344,637.309692
8,0,345,-3107.440918
8,0,346,558.680908
8,0,347,-5951.682617
8,0,348,-8454.752930
8,0,349,-218.342041
8,0,350,2304.333740
8,0,351,609.369141
8,0,352,3652.385498
8,0,353,-1409.864746
8,0,354,-1941.197510
8,0,355,1118.456543
8,0,356,-3599.718018
8,0,357,-2419.421143
8,0,358,-6939.016602
8,0,359,-719.145996
8,0,360,-1426.681396
8,0,361,3081.596924
8,0,362,139.562256
8,0,363,2253.802246
8,0,364,-3238.897461
8,0,365,-5568.486328
8,0,366,-8424.207031
8,0,367,262.621063
8,0,368,5.276077
8,0,369,-791.851135
8,0,370,1193.988525
8,0,371,-2156.907715
8,0,372,-1130.171753
8,0,373,-6335.062500
8,0,374,2035.806030
8,0,375,-1046.180664
8,0,376,-1261.682861
8,0,377,947.839600
8,0,378,3204.836914
8,0,379,2013.300537
8,0,380,-3583.084473
8,0,381,4063.005615
8,0,382,-1200.199951
8,0,383,-4332.496582
8,0,384,-3325.765625
8,0,385,-5982.455078
8,0,386,-2019.503052
8,0,387,55.601486
8,0,388,-2911.606445
8,0,389,-2120.087158
8,0,390,5086.802246
8,0,391,-4136.733887
8,0,392,1330.939331
8,0,393,1744.776611
8,0,394,3257.833740
8,0,395,1993.596680
8,0,396,-4049.961426
8,0,397,2555.940186
8,0,398,2818.713135
8,0,399,-33.859192
8,0,400,-5761.574707
8,0,401,-892.415771
8,0,402,5274.154297
8,0,403,913.960449
8,0,404,-4779.937988
8,0,405,1255.381470
8,0,406,830.334595
8,0,407,-3135.450195
8,0,408,-5833.996094
8,0,409,6434.769531
8,0,410,1109.977295
8,0,411,-4103.025879
8,0,412,-4058.353760
8,0,413,-439.434082
8,0,414,-313.592682
8,0,415,-2109.076416
8,0,416,-5456.697266
8,0,417,872.240723
8,0,418,1412.362061
8,0,419,3000.519775
8,0,420,4259.132812
8,0,421,-4447.108887
8,0,422,2016.186523
8,0,423,-288.330566
8,0,424,-730.304810
8,0,425,1906.968384
8,0,426,-123.360947
8,0,427,3904.328613
8,0,428,-2908.915039
8,0,429,-4010.800293
8,0,430,-1809.730103
8,0,431,-2595.893555
8,0,432,-2282.302246
8,0,433,-6877.424805
8,0,434,-28.252533
8,0,435,5576.166992
8,0,436,2771.425293
8,0,437,-3800.701172
8,0,438,1778.305908
8,0,439,49.973206
8,0,440,3171.099609
8,0,441,606.526733
8,0,442,-909.236755
8,0,443,-2290.725586
8,0,444,2161.643799
8,0,445,-92.731689
8,0,446,-433.404297
8,0,447,-6653.807129
8,0,448,315.713318
8,0,449,3198.974365
8,0,450,-3135.566406
8,0,451,2614.683350
8,0,452,-4338.107422
8,0,453,-4161.741699
8,0,454,-3454.319336
8,0,455,-7403.023438
8,0,456,-2385.832520
8,0,457,-3652.720215
8,0,458,-3342.503662
8,0,459,-2654.378418
8,0,460,2849.569336
8,0,461,3126.393066
8,0,462,136.715866
8,0,463,-478.562378
8,0,464,-28.094360
8,0,465,61.376606
8,0,466,125.389404
8,0,467,4292.613281
8,0,468,-2662.644287
8,0,469,-1650.407715
8,0,470,-92.586296
8,0,471,-2097.853271
8,0,472,1574.741333
8,0,473,321.332031
8,0,474,1188.145996
8,0,475,58.527283
8,0,476,-4427.478027
8,0,477,567.469604
8,0,478,1476.226562
8,0,479,-165.230713
8,0,480,-1007.046204
8,0,481,-4696.399902
8,0,482,6373.348633
8,0,483,3822.613037
8,0,484,2189.501221
8,0,485,5120.433594
8,0,486,914.306396
8,0,487,-3107.454834
8,0,488,1546.285645
8,0,489,321.319519
8,0,490,1848.159424
8,0,491,-870.148926
8,0,492,-2178.895020
8,0,493,-1681.428223
8,0,494,1006.480469
8,0,495,-2005.555786
8,0,496,-4956.166992
8,0,497,-2436.150635
8,0,498,3448.032715
8,0,499,3235.533691
8,0,500,-341.803101
8,0,501,2768.376465
8,0,502,-3331.078369
8,0,503,-7517.888184
8,0,504,-2277.041016
8,0,505,-3174.512695
8,0,506,-4835.879395
8,0,507,-2536.928223
8,0,508,1971.395508
8,0,509,3358.451660
8,0,510,-3233.181641
8,0,511,-4793.571777
8,0,512,-137.265869
8,0,513,-3118.710449
8,0,514,2681.853516
8,0,515,-1921.635864
8,0,516,-1088.205444
8,0,517,1355.990356
8,0,518,-2769.195312
8,0,519,-4751.975098
8,0,520,2287.750488
8,0,521,-3820.611328
8,0,522,-973.695312
8,0,523,-316.445892
8,0,524,1339.322266
8,0,525,2281.702637
8,0,526,-2444.542969
8,0,527,-7271.635742
8,0,528,-1208.514282
8,0,529,27.426796
8,0,530,1859.483643
8,0,531,-2754.612793
8,0,532,3335.855713
8,0,533,5853.037598
8,0,534,654.150757
8,0,535,-1141.597656
8,0,536,1945.954590
8,0,537,4060.433105
8,0,538,1009.202637
8,0,539,-4953.261719
8,0,540,1269.370605
8,0,541,-1552.488037
8,0,542,558.951416
8,0,543,-1957.881104
8,0,544,212.325897
8,0,545,-2525.590820
8,0,546,-973.741394
8,0,547,4021.285156
8,0,548,1641.046631
8,0,549,4756.814453
8,0,550,4737.226074
8,0,551,-601.627686
8,0,552,3923.307373
8,0,553,215.100830
8,0,554,-515.074097
8,0,555,-2934.253662
8,0,556,-6334.920898
8,0,557,-2394.171143
8,0,558,-3384.219238
8,0,559,-14.318634
8,0,560,-251.916016
8,0,561,2575.711914
8,0,562,-3487.816650
8,0,563,-2301.627686
8,0,564,2821.488281
8,0,565,-4755.091797
8,0,566,1982.542847
8,0,567,-1021.012512
8,0,568,204.044189
8,0,569,4189.259766
8,0,570,-5135.238281
8,0,571,-4410.728027
8,0,572,2891.363770
8,0,573,114.337906
8,0,574,1784.111084
8,0,575,567.536011
8,0,576,5109.311035
8,0,577,2536.298096
8,0,578,1825.961182
8,0,579,-4936.479980
8,0,580,-822.803711
8,0,581,195.510681
8,0,582,1333.664917
8,0,583,2245.483887
8,0,584,-1541.301025
8,0,585,3632.686035
8,0,586,4194.763184
8,0,587,-1854.231323
8,0,588,-6628.450684
8,0,589,2765.874023
8,0,590,1051.177490
8,0,591,3543.182617
8,0,592,7368.967285
8,0,593,1956.784302
8,0,594,3375.258301
8,0,595,4046.865479
8,0,596,-1407.162720
8,0,597,91.709839
8,0,598,2315.427246
8,0,599,209.339844
9,0,0,1793.799805
9,0,1,-141.536743
9,0,2,4761.119141
9,0,3,3290.030762
9,0,4,5152.640137
9,0,5,-3732.506104
9,0,6,-2859.945801
9,0,7,-7138.891113
9,0,8,-292.556793
9,0,9,-1394.466309
9,0,10,-2169.150879
9,0,11,4842.213867
9,0,12,-1201.475220
9,0,13,-1033.671631
9,0,14,4000.382568
9,0,15,2957.226074
9,0,16,-4163.207031
9,0,17,1209.281250
9,0,18,322.726715
9,0,19,-390.443237
9,0,20,-2899.074219
9,0,21,-88.397369
9,0,22,-2146.754639
9,0,23,1634.376099
9,0,24,7197.004883
9,0,25,1035.870728
9,0,26,-2457.216064
9,0,27,-242.209839
9,0,28,3242.498291
9,0,29,2607.635498
9,0,30,-328.926575
9,0,31,143.757462
9,0,32,4215.719238
9,0,33,3351.560059
9,0,34,2677.546387
9,0,35,2364.322266
9,0,36,1100.204956
9,0,37,-2356.521973
9,0,38,-4487.621094
9,0,39,-1481.176514
9,0,40,-2272.601562
9,0,41,3463.439697
9,0,42,2325.158691
9,0,43,-169.490707
9,0,44,-1439.193848
9,0,45,-1425.238403
9,0,46,-102.358124
9,0,47,-3293.450684
9,0,48,921.239685
9,0,49,5499.430664
9,0,50,118.537354
9,0,51,-3827.595215
9,0,52,-4585.514160
9,0,53,5739.925293
9,0,54,-614.168823
9,0,55,-1081.221680
9,0,56,1371.497070
9,0,57,-941.379883
9,0,58,1983.957642
9,0,59,1553.288574
9,0,60,-1892.286743
9,0,61,370.264954
9,0,62,-4179.982422
9,0,63,-946.994263
9,0,64,445.779175
9,0,65,370.274170
9,0,66,-1609.837524
9,0,67,-3670.999023
9,0,68,-706.502380
9,0,69,4573.726562
9,0,70,-1453.167725
9,0,71,-541.451782
9,0,72,2635.591797
9,0,73,-3450.008057
9,0,74,2814.558105
9,0,75,12443.638672
9,0,76,14468.479492
9,0,77,23029.183594
9,0,78,27562.667969
9,0,79,30300.654297
9,0,80,20940.027344
9,0,81,22198.603516
9,0,82,30390.189453
9,0,83,28723.322266
9,0,84,25716.871094
9,0,85,30163.582031
9,0,86,26077.650391
9,0,87,13651.809570
9,0,88,14815.277344
9,0,89,10105.615234
9,0,90,4534.487793
9,0,91,-2647.376953
9,0,92,1614.802490
9,0,93,-96.782837
9,0,94,-2336.976074
9,0,95,-71.635086
9,0,96,694.686707
9,0,97,-2462.792725
9,0,98,907.224304
9,0,99,3441.040039
9,0,100,2179.726318
9,0,101,2353.142578
9,0,102,-642.135132
9,0,103,3743.091553
9,0,104,-4020.547852
9,0,105,3245.281494
9,0,106,-1746.823120
9,0,107,-580.616577
9,0,108,15.084930
9,0,109,1016.327271
9,0,110,-46.414734
9,0,111,-93.988968
9,0,112,-3117.236572
9,0,113,-1777.595947
9,0,114,-2384.498535
9,0,115,-5477.667969
9,0,116,-1774.806641
9,0,117,1220.496582
9,0,118,-468.757568
9,0,119,535.270325
9,0,120,-4658.178711
9,0,121,2190.934326
9,0,122,3469.036621
9,0,123,540.850708
9,0,124,-4809.206543
9,0,125,177.292496
9,0,126,532.478760
9,0,127,-2608.201172
9,0,128,644.330322
9,0,129,-250.594315
9,0,130,437.391296
9,0,131,1595.247803
9,0,132,4070.323975
9,0,133,-538.653564
9,0,134,-398.845062
9,0,135,-5796.508789
9,0,136,-1741.243774
9,0,137,-756.805237
9,0,138,3256.462646
9,0,139,1687.564087
9,0,140,-3724.098633
9,0,141,-1992.957275
9,0,142,1321.184082
9,0,143,-2278.217773
9,0,144,-745.648071
9,0,145,-972.292114
9,0,146,4254.863281
9,0,147,-3013.718506
9,0,148,1757.434692
9,0,149,-133.132721
9,0,150,4271.667969
9,0,151,-2387.253906
9,0,152,-370.828217
9,0,153,-1167.953979
9,0,154,-3584.273438
9,0,155,2649.591797
9,0,156,2769.955078
9,0,157,5594.553711
9,0,158,4786.288086
9,0,159,9193.856445
9,0,160,1751.832153
9,0,161,7616.692383
9,0,162,1156.151489
9,0,163,-93.884155
9,0,164,-3349.302490
9,0,165,1735.079956
9,0,166,-258.980286
9,0,167,-1657.318237
9,0,168,-600.196777
9,0,169,-6148.853516
9,0,170,-4020.602783
9,0,171,468.212524
9,0,172,3077.487061
9,0,173,-1075.612305
9,0,174,786.947388
9,0,175,2571.337402
9,0,176,4590.421387
9,0,177,-2115.957031
9,0,178,-3724.128906
9,0,179,263.996155
9,0,180,-4339.208984
9,0,181,2283.208984
9,0,182,-3167.532227
9,0,183,1687.649292
9,0,184,-233.806168
9,0,185,-3841.604492
9,0,186,-1355.321777
9,0,187,-4448.460938
9,0,188,2568.485840
9,0,189,-1867.089600
9,0,190,-692.453918
9,0,191,8159.249023
9,0,192,-1953.832275
9,0,193,-2345.348877
9,0,194,-2770.476074
9,0,195,1005.112854
9,0,196,-3584.285645
9,0,197,1290.370972
9,0,198,-958.198364
9,0,199,-278.641052
9,0,200,-362.492310
9,0,201,-8458.863281
9,0,202,-6831.263184
9,0,203,568.700928
9,0,204,1231.634277
9,0,205,-1092.400391
9,0,206,-1562.238159
9,0,207,-1607.059937
9,0,208,-4521.203613
9,0,209,3069.152588
9,0,210,255.650635
9,0,211,-362.408325
9,0,212,1133.763550
9,0,213,-1567.889893
9,0,214,-796.004028
9,0,215,6344.024414
9,0,216,5426.661621
9,0,217,-3822.037354
9,0,218,-4009.477539
9,0,219,-3374.543457
9,0,220,591.069824
9,0,221,3390.708984
9,0,222,-513.295288
9,0,223,2537.665771
9,0,224,1704.297363
9,0,225,-762.400269
9,0,226,2649.599121
9,0,227,54.195129
9,0,228,-686.882080
9,0,229,-4255.371094
9,0,230,-5231.540039
9,0,231,-1931.364502
9,0,232,-977.701416
9,0,233,-1878.291626
9,0,234,2864.911133
9,0,235,2218.946533
9,0,236,1757.452148
9,0,237,2288.927002
9,0,238,-2021.002197
9,0,239,3410.305664
9,0,240,-2784.474365
9,0,241,1782.638916
9,0,242,-1771.978149
9,0,243,-1450.379639
9,0,244,2677.563721
9,0,245,-1022.591125
9,0,246,2943.274902
9,0,247,-516.291260
9,0,248,-149.931427
9,0,249,-186.280579
9,0,250,2176.862061
9,0,251,-1114.823975
9,0,252,-1646.168213
9,0,253,1234.447998
9,0,254,1732.305420
9,0,255,1128.212402
9,0,256,1914.005371
9,0,257,2582.410889
9,0,258,2000.875977
9,0,259,-2250.098877
9,0,260,-1173.505493
9,0,261,-3928.208740
9,0,262,-2736.883789
9,0,263,1130.962646
9,0,264,-6221.360840
9,0,265,1458.159912
9,0,266,1435.886475
9,0,267,-3371.707275
9,0,268,1404.929810
9,0,269,-488.306335
9,0,270,-2233.571045
9,0,271,1435.963013
9,0,272,230.346207
9,0,273,-398.831604
9,0,274,-286.934998
9,0,275,1880.560791
9,0,276,-3170.135010
9,0,277,238.786880
9,0,278,3782.275879
9,0,279,-1704.764404
9,0,280,4755.527344
9,0,281,-563.895325
9,0,282,2624.435059
9,0,283,3756.995117
9,0,284,-1142.740967
9,0,285,-633.870361
9,0,286,3799.032227
9,0,287,1679.121338
9,0,288,2666.438721
9,0,289,6618.193359
9,0,290,-6034.000488
9,0,291,5698.150879
9,0,292,1813.499756
9,0,293,5966.593262
9,0,294,518.492676
9,0,295,1679.073853
9,0,296,4903.742188
9,0,297,370.370239
9,0,298,-4325.362305
9,0,299,1558.923584
9,0,300,-3008.315430
9,0,301,-1293.795288
9,0,302,-2213.960693
9,0,303,-4135.414062
9,0,304,-474.267639
9,0,305,703.029114
9,0,306,2683.122070
9,0,307,2148.898438
9,0,308,6498.009277
9,0,309,1424.650879
9,0,310,1105.768677
9,0,311,-4565.791992
9,0,312,-4442.846680
9,0,313,-2062.914307
9,0,314,-4725.094727
9,0,315,1186.959839
9,0,316,-4800.797852
9,0,317,-2759.297607
9,0,318,-309.257690
9,0,319,842.988464
9,0,320,-689.589722
9,0,321,3396.319092
9,0,322,2820.098145
9,0,323,1631.470581
9,0,324,-3545.199951
9,0,325,784.152161
9,0,326,-2076.866699
9,0,327,1340.527344
9,0,328,412.194641
9,0,329,1740.778442
9,0,330,-2932.609863
9,0,331,-2317.469482
9,0,332,2862.156738
9,0,333,-1427.970093
9,0,334,1849.721924
9,0,335,2534.948242
9,0,336,2294.406006
9,0,337,-2736.901611
9,0,338,2887.481445
9,0,339,1234.512939
9,0,340,1559.048340
9,0,341,5440.913574
9,0,342,1620.471313
9,0,343,-1129.000977
9,0,344,-1444.807861
9,0,345,-2275.406738
9,0,346,-2177.636719
9,0,347,-3413.716553
9,0,348,496.122284
9,0,349,4341.602051
9,0,350,-2787.594727
9,0,351,-141.529236
9,0,352,3427.194336
9,0,353,-4448.472656
9,0,354,-784.776489
9,0,355,-138.721252
9,0,356,2906.702637
9,0,357,2006.376465
9,0,358,1441.318481
9,0,359,-1372.217529
9,0,360,-1089.741699
9,0,361,-2546.523682
9,0,362,-597.293457
9,0,363,3186.588623
9,0,364,2367.162842
9,0,365,-7605.833984
9,0,366,1766.040405
9,0,367,1589.529541
9,0,368,-616.927368
9,0,369,-874.193542
9,0,370,-1534.336182
9,0,371,2856.758301
9,0,372,6248.942871
9,0,373,2954.371826
9,0,374,-172.261780
9,0,375,431.900635
9,0,376,-5158.925293
9,0,377,3186.675781
9,0,378,2515.795166
9,0,379,-1794.444946
9,0,380,1463.737549
9,0,381,339.392090
9,0,382,-684.165710
9,0,383,-533.125366
9,0,384,2090.044922
9,0,385,-2527.069824
9,0,386,4022.754395
9,0,387,-2023.537720
9,0,388,-3016.324463
9,0,389,823.409058
9,0,390,2277.633789
9,0,391,2655.064453
9,0,392,2378.175049
9,0,393,4752.765137
9,0,394,4624.138672
9,0,395,-3802.408936
9,0,396,-2034.923340
9,0,397,-3908.652588
9,0,398,-1705.063354
9,0,399,-4135.445801
9,0,400,7060.058594
9,0,401,2062.304199
9,0,402,-4739.122070
9,0,403,-1481.286743
9,0,404,2557.387451
9,0,405,-3383.045898
9,0,406,462.590668
9,0,407,372.949463
9,0,408,3270.489258
9,0,409,1030.322021
9,0,410,375.806061
9,0,411,2283.139404
9,0,412,496.107422
9,0,413,949.329956
9,0,414,-3147.900146
9,0,415,3407.410400
9,0,416,3259.199951
9,0,417,5275.778809
9,0,418,1030.111084
9,0,419,4847.767578
9,0,420,213.649414
9,0,421,-2311.975098
9,0,422,1430.268555
9,0,423,-63.299805
9,0,424,2386.582031
9,0,425,196.877930
9,0,426,-1318.947266
9,0,427,-639.569824
9,0,428,1978.358154
9,0,429,-2378.835938
9,0,430,-966.724487
9,0,431,345.084167
9,0,432,2929.358398
9,0,433,-1271.386963
9,0,434,-2569.115479
9,0,435,3342.947754
9,0,436,1133.642090
9,0,437,-765.231140
9,0,438,3256.381348
9,0,439,2546.103271
9,0,440,-1729.917603
9,0,441,-91.183479
9,0,442,-1841.810303
9,0,443,-2241.808594
9,0,444,-4437.291992
9,0,445,-2087.942383
9,0,446,-1500.851074
9,0,447,-3687.788574
9,0,448,-2535.533936
9,0,449,1007.932861
9,0,450,-1914.470825
9,0,451,-4627.442383
9,0,452,1444.355225
9,0,453,2929.436035
9,0,454,-2999.867432
9,0,455,-6579.479492
9,0,456,-9258.674805
9,0,457,-1123.154663
9,0,458,3883.049072
9,0,459,-801.595642
9,0,460,-5474.885742
9,0,461,-1254.652954
9,0,462,-465.964508
9,0,463,-4126.760254
9,0,464,3496.792480
9,0,465,1463.648193
9,0,466,-1724.386353
9,0,467,2562.974609
9,0,468,1158.962402
9,0,469,669.400818
9,0,470,-3838.776855
9,0,471,-3279.440918
9,0,472,-2124.178711
9,0,473,658.227539
9,0,474,-3604.056641
9,0,475,-597.375427
9,0,476,-4403.772461
9,0,477,-1503.627686
9,0,478,-2163.579834
9,0,479,-2555.138184
9,0,480,-2247.558594
9,0,481,1279.246704
9,0,482,-4448.475586
9,0,483,809.460571
9,0,484,292.060547
9,0,485,2685.912354
9,0,486,1077.870239
9,0,487,2207.714600
9,0,488,484.822266
9,0,489,806.588745
9,0,490,244.535583
9,0,491,4808.719238
9,0,492,2434.207520
9,0,493,-6098.831055
9,0,494,1888.924072
9,0,495,403.833923
9,0,496,-3676.463379
9,0,497,3049.658447
9,0,498,-1450.368164
9,0,499,-4138.049805
9,0,500,4685.683594
9,0,501,-980.454285
9,0,502,-4333.838379
9,0,503,1676.341064
9,0,504,2369.960693
9,0,505,-2395.623047
9,0,506,-801.490173
9,0,507,-3550.848877
9,0,508,-1948.286255
9,0,509,-2443.097168
9,0,510,1564.480225
9,0,511,-4028.859863
9,0,512,-7264.981445
9,0,513,-2370.647217
9,0,514,-941.253662
9,0,515,2526.438477
9,0,516,-1556.913574
9,0,517,652.676636
9,0,518,-2164.024902
9,0,519,4993.207031
9,0,520,837.156372
9,0,521,-3503.150879
9,0,522,-1056.191406
9,0,523,1282.271362
9,0,524,1438.488647
9,0,525,-68.896912
9,0,526,-2557.989014
9,0,527,1279.070557
9,0,528,1198.056030
9,0,529,3105.136230
9,0,530,1279.183228
9,0,531,3611.732910
9,0,532,-320.492401
9,0,533,-5611.872070
9,0,534,1438.462036
9,0,535,1030.847168
9,0,536,1939.257202
9,0,537,-2147.137207
9,0,538,2425.672363
9,0,539,-6668.973633
9,0,540,3832.659180
9,0,541,591.255371
9,0,542,-1123.389526
9,0,543,2344.708740
9,0,544,-647.702698
9,0,545,739.362732
9,0,546,2887.616699
9,0,547,865.344849
9,0,548,5966.577148
9,0,549,2607.696533
9,0,550,-619.796326
9,0,551,-63.312500
9,0,552,985.268066
9,0,553,2559.865723
9,0,554,-1738.271484
9,0,555,-354.090240
9,0,556,-1.677658
9,0,557,2363.886475
9,0,558,2481.548584
9,0,559,1849.733765
9,0,560,-1895.072510
9,0,561,546.321411
9,0,562,1066.650146
9,0,563,1955.816162
9,0,564,582.683228
9,0,565,4781.301270
9,0,566,-2331.246826
9,0,567,2657.926514
9,0,568,-2966.141357
9,0,569,2576.725830
9,0,570,3737.617432
9,0,571,2235.675537
9,0,572,2336.175049
9,0,573,-913.425537
9,0,574,1475.031494
9,0,575,406.753296
9,0,576,-343.097900
9,0,577,-18.518616
9,0,578,-3159.005615
9,0,579,-4054.152832
9,0,580,-141.629883
9,0,581,-6112.620117
9,0,582,-5320.743164
9,0,583,7264.219727
9,0,584,526.201416
9,0,585,423.461975
9,0,586,6480.932129
9,0,587,-1489.770020
9,0,588,6900.379883
9,0,589,1240.011719
9,0,590,-2297.702637
9,0,591,2423.094238
9,0,592,865.328857
9,0,593,-2026.698364
9,0,594,-4034.551270
9,0,595,3147.617676
9,0,596,-1811.064941
9,0,597,-4948.825195
9,0,598,-2182.989014
9,0,599,-4434.437012
10,0,0,2068.862061
10,0,1,362.874634
10,0,2,-2584.866211
10,0,3,555.856750
10,0,4,1803.182495
10,0,5,3050.517090
10,0,6,2222.702148
10,0,7,3072.895752
10,0,8,-464.930634
10,0,9,7748.994629
10,0,10,-750.230957
10,0,11,-3.497070
10,0,12,3249.073975
10,0,13,-406.230408
10,0,14,-2442.208496
10,0,15,2779.231445
10,0,16,-1379.454468
10,0,17,9169.714844
10,0,18,4675.401855
10,0,19,3867.144043
10,0,20,-1840.963623
10,0,21,4941.076172
10,0,22,1716.439941
10,0,23,1201.895264
10,0,24,-1589.195435
10,0,25,4832.004883
10,0,26,3911.907471
10,0,27,-1127.763794
10,0,28,499.904999
10,0,29,1263.404419
10,0,30,1612.993286
10,0,31,-1692.694092
10,0,32,1705.322754
10,0,33,-1144.534546
10,0,34,158.712952
10,0,35,1831.154785
10,0,36,2317.755859
10,0,37,4180.397461
10,0,38,4759.261230
10,0,39,2275.871094
10,0,40,1643.785278
10,0,41,3067.303711
10,0,42,-515.304077
10,0,43,4697.771973
10,0,44,5380.166016
10,0,45,-1066.246094
10,0,46,4216.729004
10,0,47,3383.322021
10,0,48,6238.754883
10,0,49,1179.522095
10,0,50,3058.904541
10,0,51,2692.533447
10,0,52,8157.331055
10,0,53,1959.770630
10,0,54,-168.501038
10,0,55,3981.829346
10,0,56,1193.499878
10,0,57,899.836609
10,0,58,1909.459351
10,0,59,4471.274902
10,0,60,1213.055908
10,0,61,2203.101807
10,0,62,-1161.296753
10,0,63,-1315.174561
10,0,64,2706.525146
10,0,65,1887.103149
10,0,66,553.054260
10,0,67,6143.732422
10,0,68,-313.915955
10,0,69,1920.645020
10,0,70,-1424.233032
10,0,71,2639.379883
10,0,72,3187.608887
10,0,73,7399.416992
10,0,74,13658.398438
10,0,75,37038.992188
10,0,76,52359.328125
10,0,77,46243.003906
10,0,78,33456.441406
10,0,79,24277.556641
10,0,80,27616.855469
10,0,81,27720.238281
10,0,82,25723.396484
10,0,83,21687.755859
10,0,84,20471.210938
10,0,85,20420.871094
10,0,86,14723.989258
10,0,87,17886.990234
10,0,88,21836.013672
10,0,89,12176.122070
10,0,90,6230.394043
10,0,91,9818.580078
10,0,92,2784.820801
10,0,93,-2976.375488
10,0,94,3002.971680
10,0,95,-3703.607178
10,0,96,1375.293701
10,0,97,1800.354858
10,0,98,3928.673828
10,0,99,-188.096191
10,0,100,-2693.903564
10,0,101,-383.851807
10,0,102,3430.880615
10,0,103,1036.887695
10,0,104,-484.523621
10,0,105,569.814331
10,0,106,-392.161743
10,0,107,-6572.989258
10,0,108,3047.674316
10,0,109,-2053.469238
10,0,110,782.398743
10,0,111,5173.231445
10,0,112,-1524.918457
10,0,113,2650.620117
10,0,114,-3463.077148
10,0,115,636.921997
10,0,116,2228.282715
10,0,117,-106.991333
10,0,118,-1782.168945
10,0,119,-2349.945801
10,0,120,2533.099609
10,0,121,80.396271
10,0,122,-1029.882568
10,0,123,287.357056
10,0,124,-3902.095459
10,0,125,994.904907
10,0,126,2301.018799
10,0,127,2079.999756
10,0,128,-4232.119629
10,0,129,-909.586304
10,0,130,-901.224731
10,0,131,1280.202026
10,0,132,8898.579102
10,0,133,-2593.234375
10,0,134,-2464.593750
10,0,135,-3415.631104
10,0,136,3534.375000
10,0,137,-2184.903809
10,0,138,7995.041504
10,0,139,94.358948
10,0,140,3008.526611
10,0,141,-1141.802979
10,0,142,-2078.714355
10,0,143,-2352.739014
10,0,144,-2654.774902
10,0,145,547.348267
10,0,146,-2861.756104
10,0,147,-375.462982
10,0,148,-3499.376709
10,0,149,-7546.244629
10,0,150,6121.288574
10,0,151,-1910.903931
10,0,152,-1619.907715
10,0,153,3534.356934
10,0,154,2261.819824
10,0,155,-2576.424316
10,0,156,-3527.409668
10,0,157,-954.354858
10,0,158,603.402588
10,0,159,-148.910339
10,0,160,5617.866211
10,0,161,91.606323
10,0,162,821.596191
10,0,163,-554.438354
10,0,164,2340.199463
10,0,165,-2842.207764
10,0,166,-1726.239990
10,0,167,144.749405
10,0,168,1179.520020
10,0,169,1814.363770
10,0,170,-319.487183
10,0,171,-1491.422485
10,0,172,2426.860352
10,0,173,4423.687012
10,0,174,-1910.818115
10,0,175,-920.691589
10,0,176,-450.926331
10,0,177,2547.082031
10,0,178,2460.396240
10,0,179,-520.893066
10,0,180,-2003.083740
10,0,181,3344.158936
10,0,182,4605.412109
10,0,183,1039.709229
10,0,184,-4123.140137
10,0,185,2099.607910
10,0,186,3886.731445
10,0,187,3419.671387
10,0,188,5108.873047
10,0,189,-1038.276855
10,0,190,-4047.559326
10,0,191,871.802734
10,0,192,3019.703125
10,0,193,-1110.997559
10,0,194,-6693.162109
10,0,195,234.211548
10,0,196,2012.914551
10,0,197,1702.483765
10,0,198,-1972.374268
10,0,199,-1323.501221
10,0,200,-2302.395020
10,0,201,312.398682
10,0,202,-2747.112061
10,0,203,2340.021484
10,0,204,3791.677490
10,0,205,1425.639038
10,0,206,469.156281
10,0,207,2015.730713
10,0,208,4907.517578
10,0,209,1708.013794
10,0,210,-1994.687500
10,0,211,-2682.648682
10,0,212,-442.477295
10,0,213,-1354.204834
10,0,214,-255.242920
10,0,215,-1673.122192
10,0,216,4910.331055
10,0,217,-828.586365
10,0,218,3484.051270
10,0,219,1053.707275
10,0,220,3358.143066
10,0,221,4622.259277
10,0,222,-2237.887939
10,0,223,-1863.264160
10,0,224,-582.411011
10,0,225,1766.815186
10,0,226,-2484.198242
10,0,227,-1566.913086
10,0,228,-1186.481812
10,0,229,390.834320
10,0,230,-4349.585938
10,0,231,-5619.281250
10,0,232,1920.669434
10,0,233,5122.865234
10,0,234,2544.311523
10,0,235,-484.556335
10,0,236,-48.158447
10,0,237,-4265.713867
10,0,238,-2467.476807
10,0,239,-23.099121
10,0,240,178.383255
10,0,241,7.711182
10,0,242,3956.645508
10,0,243,1545.888306
10,0,244,1859.076416
10,0,245,-3356.748779
10,0,246,4124.541504
10,0,247,2589.047363
10,0,248,2102.421631
10,0,249,2829.581787
10,0,250,-2081.375977
10,0,251,5768.883789
10,0,252,623.010864
10,0,253,3433.646240
10,0,254,362.850342
10,0,255,2116.241699
10,0,256,-386.736725
10,0,257,-163.001709
10,0,258,2742.996826
10,0,259,-1726.133545
10,0,260,466.332733
10,0,261,-137.848389
10,0,262,6272.312012
10,0,263,-1824.316040
10,0,264,-291.556519
10,0,265,-2624.152344
10,0,266,1277.331055
10,0,267,3576.247070
10,0,268,2166.765137
10,0,269,3752.598145
10,0,270,-7828.885742
10,0,271,4088.057617
10,0,272,2085.514893
10,0,273,-3.584473
10,0,274,2437.968018
10,0,275,2723.248291
10,0,276,-546.069458
10,0,277,365.712463
10,0,278,3794.437988
10,0,279,804.946045
10,0,280,1912.374878
10,0,281,-1812.926270
10,0,282,-895.691406
10,0,283,1797.569092
10,0,284,-123.699341
10,0,285,2728.855957
10,0,286,-753.134521
10,0,287,-4092.385742
10,0,288,-2587.731201
10,0,289,-5940.922363
10,0,290,-518.193970
10,0,291,1915.141113
10,0,292,1551.529541
10,0,293,1238.265137
10,0,294,-568.432007
10,0,295,1719.135254
10,0,296,1708.009521
10,0,297,2603.079102
10,0,298,1048.076050
10,0,299,-2075.854736
10,0,300,298.572571
10,0,301,541.736572
10,0,302,6028.934082
10,0,303,6169.119629
10,0,304,-4162.106445
10,0,305,-305.686646
10,0,306,-5935.263184
10,0,307,-7101.555664
10,0,308,-4324.563477
10,0,309,-515.449524
10,0,310,-3174.907227
10,0,311,-1329.159058
10,0,312,1682.680542
10,0,313,-5004.029297
10,0,314,-1085.713623
10,0,315,3640.563477
10,0,316,1159.754639
10,0,317,3184.641357
10,0,318,-2039.267578
10,0,319,2902.316162
10,0,320,3707.653564
10,0,321,139.120972
10,0,322,-1209.017578
10,0,323,-434.260254
10,0,324,-2500.741455
10,0,325,1092.894287
10,0,326,-5171.878906
10,0,327,-3686.822754
10,0,328,659.356995
10,0,329,-616.054138
10,0,330,-5714.501953
10,0,331,-1798.747192
10,0,332,1914.961914
10,0,333,5522.617188
10,0,334,-627.117676
10,0,335,-1726.166382
10,0,336,44.102188
10,0,337,567.032104
10,0,338,-1829.878662
10,0,339,2158.405273
10,0,340,-1748.551880
10,0,341,-84.582352
10,0,342,3095.266113
10,0,343,-727.882202
10,0,344,3377.715088
10,0,345,5922.784180
10,0,346,-666.242371
10,0,347,3257.443115
10,0,348,18.883209
10,0,349,-1502.514404
10,0,350,-4852.881836
10,0,351,726.237915
10,0,352,2024.323608
10,0,353,855.073975
10,0,354,3970.522217
10,0,355,2314.813721
10,0,356,2723.208008
10,0,357,2471.743896
10,0,358,-1877.231934
10,0,359,-1007.549438
10,0,360,597.718384
10,0,361,256.448303
10,0,362,-3524.489258
10,0,363,2854.787598
10,0,364,-4271.283691
10,0,365,3495.087891
10,0,366,2720.477051
10,0,367,3458.911133
10,0,368,2821.142090
10,0,369,-2207.459473
10,0,370,-1880.001709
10,0,371,4756.783691
10,0,372,3727.274414
10,0,373,3022.560791
10,0,374,-6483.517578
10,0,375,2541.561279
10,0,376,2667.420898
10,0,377,-4707.564453
10,0,378,-1616.951538
10,0,379,1238.234009
10,0,380,3430.852783
10,0,381,-2802.848145
10,0,382,-588.071716
10,0,383,1752.850952
10,0,384,4202.728027
10,0,385,27.216309
10,0,386,2010.105347
10,0,387,-4036.227051
10,0,388,7712.319336
10,0,389,3595.878174
10,0,390,1526.352417
10,0,391,-1329.028320
10,0,392,723.775513
10,0,393,197.721191
10,0,394,1283.181274
10,0,395,6823.271973
10,0,396,-316.701660
10,0,397,5469.942383
10,0,398,743.287720
10,0,399,-3717.839355
10,0,400,-6117.104492
10,0,401,-3046.210449
10,0,402,-3130.267334
10,0,403,-4897.782227
10,0,404,-4416.736328
10,0,405,497.124969
10,0,406,-8.959198
10,0,407,-1840.955811
10,0,408,1165.617798
10,0,409,2379.292969
10,0,410,1587.846924
10,0,411,1277.449951
10,0,412,-3426.664551
10,0,413,-671.839355
10,0,414,111.312195
10,0,415,1833.965088
10,0,416,-1435.308838
10,0,417,1350.069946
10,0,418,-3700.977783
10,0,419,-1435.499634
10,0,420,4558.026367
10,0,421,-1105.415039
10,0,422,228.636185
10,0,423,-1882.965332
10,0,424,-1801.841675
10,0,425,-4581.654785
10,0,426,-1315.208496
10,0,427,2038.192261
10,0,428,-599.199158
10,0,429,-761.461792
10,0,430,-3387.650879
10,0,431,1285.848389
10,0,432,1436.866089
10,0,433,-2671.520264
10,0,434,-1141.777832
10,0,435,-3311.954834
10,0,436,1352.827515
10,0,437,-2808.565674
10,0,438,-451.126556
10,0,439,111.159607
10,0,440,3962.230957
10,0,441,-990.915161
10,0,442,-2168.012207
10,0,443,2863.131836
10,0,444,7.682587
10,0,445,1433.864136
10,0,446,-1662.284424
10,0,447,919.487305
10,0,448,-2878.422607
10,0,449,-2011.615601
10,0,450,-736.107544
10,0,451,-5515.877930
10,0,452,-2291.111816
10,0,453,-5840.322754
10,0,454,899.787964
10,0,455,-2436.692871
10,0,456,35.585617
10,0,457,3900.572998
10,0,458,-4458.693848
10,0,459,1109.480103
10,0,460,-1474.550293
10,0,461,-2338.740234
10,0,462,-294.565918
10,0,463,-1650.972656
10,0,464,3881.107178
10,0,465,1257.931396
10,0,466,2787.687988
10,0,467,-3376.376709
10,0,468,418.771637
10,0,469,-336.319794
10,0,470,3707.692871
10,0,471,-713.842041
10,0,472,245.323242
10,0,473,-2981.974121
10,0,474,-3183.300049
10,0,475,-1247.948730
10,0,476,-5395.515625
10,0,477,-786.454102
10,0,478,-649.657532
10,0,479,-1418.563477
10,0,480,-8502.808594
10,0,481,-1508.396118
10,0,482,2398.884521
10,0,483,723.952637
10,0,484,-554.325684
10,0,485,-6002.381836
10,0,486,-551.682190
10,0,487,757.213379
10,0,488,-2095.474609
10,0,489,4211.115723
10,0,490,413.199432
10,0,491,-1866.123291
10,0,492,2205.979004
10,0,493,773.974426
10,0,494,-3963.773926
10,0,495,-210.493378
10,0,496,-1024.249390
10,0,497,-1276.047729
10,0,498,-1726.321655
10,0,499,-6072.551270
10,0,500,-2834.205078
10,0,501,1336.202881
10,0,502,-297.309937
10,0,503,-1678.727417
10,0,504,-7143.409180
10,0,505,-893.015137
10,0,506,-238.334839
10,0,507,3998.663086
10,0,508,2586.281250
10,0,509,-269.207062
10,0,510,499.857422
10,0,511,840.879639
10,0,512,-293.957397
10,0,513,-7378.278320
10,0,514,3419.688477
10,0,515,-1673.066284
10,0,516,-4649.098633
10,0,517,-4827.847656
10,0,518,732.039429
10,0,519,-1877.339111
10,0,520,-3631.095947
10,0,521,-2867.221436
10,0,522,-1127.809937
10,0,523,8630.210938
10,0,524,2488.377197
10,0,525,-1141.562500
10,0,526,3637.453857
10,0,527,2602.822266
10,0,528,547.360718
10,0,529,-6489.500977
10,0,530,1668.912231
10,0,531,908.199951
10,0,532,-1633.823975
10,0,533,2024.334595
10,0,534,567.032593
10,0,535,6152.497070
10,0,536,-3465.759277
10,0,537,-537.516602
10,0,538,-1155.528931
10,0,539,2975.076660
10,0,540,2496.761719
10,0,541,-378.302856
10,0,542,-350.502808
10,0,543,2317.756348
10,0,544,-5278.240234
10,0,545,-2780.698975
10,0,546,569.818054
10,0,547,-6388.311035
10,0,548,-3479.715820
10,0,549,-3124.576660
10,0,550,-649.473511
10,0,551,-2554.017822
10,0,552,553.099060
10,0,553,3881.064453
10,0,554,-1080.392822
10,0,555,2899.422363
10,0,556,69.187836
10,0,557,-6880.251465
10,0,558,1380.911987
10,0,559,-479.118011
10,0,560,1025.642822
10,0,561,2879.778076
10,0,562,2088.449707
10,0,563,6431.403320
10,0,564,687.276672
10,0,565,-7569.045898
10,0,566,-3692.286621
10,0,567,-1924.694092
10,0,568,-1164.095947
10,0,569,1131.938721
10,0,570,4879.720215
10,0,571,-2028.192627
10,0,572,-1603.055176
10,0,573,1719.295044
10,0,574,6272.331055
10,0,575,3383.319824
10,0,576,-266.577515
10,0,577,1534.860840
10,0,578,3722.022461
10,0,579,4487.973633
10,0,580,-3837.413574
10,0,581,6957.263184
10,0,582,-3219.891357
10,0,583,544.693665
10,0,584,4544.210449
10,0,585,424.231201
10,0,586,-2954.052490
10,0,587,1470.676758
10,0,588,418.615295
10,0,589,-6075.456055
10,0,590,-747.500977
10,0,591,-3700.515625
10,0,592,21.684288
10,0,593,6135.716797
10,0,594,1769.632935
10,0,595,-2115.154541
10,0,596,2331.577881
10,0,597,-4598.484375
10,0,598,3736.103271
10,0,599,558.512207
11,0,0,-2628.023438
11,0,1,-2731.503418
11,0,2,554.654297
11,0,3,-989.143860
11,0,4,-3878.152344
11,0,5,3577.868164
11,0,6,-1601.613525
11,0,7,1502.713989
11,0,8,1939.021118
11,0,9,-113.805359
11,0,10,1368.464844
11,0,11,-1629.583374
11,0,12,-2110.623779
11,0,13,-3229.323730
11,0,14,-4910.151367
11,0,15,109.968765
11,0,16,2224.260010
11,0,17,848.298340
11,0,18,2819.953125
11,0,19,126.735474
11,0,20,755.975220
11,0,21,-5791.120605
11,0,22,-4017.996826
11,0,23,4710.579590
11,0,24,2836.760010
11,0,25,484.721832
11,0,26,-1590.430786
11,0,27,809.147827
11,0,28,5904.750977
11,0,29,9456.559570
11,0,30,1175.504639
11,0,31,-1979.189941
11,0,32,2719.289307
11,0,33,722.426270
11,0,34,-32.641357
11,0,35,4649.003906
11,0,36,7210.787598
11,0,37,-326.332153
11,0,38,224.631241
11,0,39,887.455933
11,0,40,697.265869
11,0,41,951.768005
11,0,42,-2281.253174
11,0,43,-3288.052002
11,0,44,-158.515381
11,0,45,-97.024117
11,0,46,1796.374512
11,0,47,1944.618896
11,0,48,-5304.449219
11,0,49,-7004.898926
11,0,50,-5265.301758
11,0,51,-1895.282349
11,0,52,-2927.239258
11,0,53,-3128.649902
11,0,54,-4440.256348
11,0,55,2778.045898
11,0,56,2982.180420
11,0,57,842.701172
11,0,58,-2379.112305
11,0,59,4240.711914
11,0,60,-480.158813
11,0,61,274.972534
11,0,62,543.456848
11,0,63,274.955109
11,0,64,621.797485
11,0,65,-675.888428
11,0,66,-3095.091553
11,0,67,658.137146
11,0,68,-1730.288696
11,0,69,-3039.161133
11,0,70,-1828.148560
11,0,71,-222.846832
11,0,72,3935.860596
11,0,73,7177.252930
11,0,74,19454.781250
11,0,75,30258.558594
11,0,76,40642.710938
11,0,77,37535.589844
11,0,78,32191.031250
11,0,79,27612.814453
11,0,80,28630.812500
11,0,81,18892.611328
11,0,82,18243.832031
11,0,83,19591.828125
11,0,84,16599.394531
11,0,85,17292.943359
11,0,86,16811.884766
11,0,87,21046.107422
11,0,88,17788.007812
11,0,89,8379.798828
11,0,90,9042.668945
11,0,91,8572.796875
11,0,92,-572.437378
11,0,93,-6269.318359
11,0,94,-701.048096
11,0,95,-1098.201782
11,0,96,-2060.294678
11,0,97,40.046326
11,0,98,-1425.433105
11,0,99,-4149.411133
11,0,100,-1386.275146
11,0,101,1318.126099
11,0,102,501.486572
11,0,103,-1235.282227
11,0,104,484.694702
11,0,105,2884.318848
11,0,106,-2429.509277
11,0,107,-804.577393
11,0,108,-3763.470703
11,0,109,-1769.442261
11,0,110,350.500427
11,0,111,2621.416992
11,0,112,-2228.090332
11,0,113,3686.953125
11,0,114,-1280.015137
11,0,115,-1995.979858
11,0,116,140.726929
11,0,117,-3254.518555
11,0,118,6738.191406
11,0,119,2375.295898
11,0,120,3734.485352
11,0,121,-645.139282
11,0,122,697.267334
11,0,123,691.668213
11,0,124,-1495.348145
11,0,125,-1140.197266
11,0,126,-1025.510010
11,0,127,-2457.431396
11,0,128,1622.978271
11,0,129,459.567993
11,0,130,2554.302490
11,0,131,-1215.657959
11,0,132,3404.533447
11,0,133,-3777.505859
11,0,134,-2191.721436
11,0,135,-3122.991211
11,0,136,-1148.523682
11,0,137,5297.821777
11,0,138,-1268.772583
11,0,139,4973.434570
11,0,140,-5346.385742
11,0,141,149.116028
11,0,142,641.320923
11,0,143,3507.966309
11,0,144,-2848.923828
11,0,145,-2365.139160
11,0,146,627.324829
11,0,147,-880.094238
11,0,148,859.551758
11,0,149,1986.532593
11,0,150,-3416.706055
11,0,151,-351.565674
11,0,152,-2932.885986
11,0,153,67.991180
11,0,154,-1682.742798
11,0,155,2733.265137
11,0,156,-3682.377441
11,0,157,2101.276367
11,0,158,-1612.787354
11,0,159,-2513.353760
11,0,160,1964.185181
11,0,161,-3718.771729
11,0,162,191.140503
11,0,163,-5466.789062
11,0,164,-1299.569946
11,0,165,-376.716003
11,0,166,1558.645752
11,0,167,213.452637
11,0,168,3301.024170
11,0,169,-846.547302
11,0,170,-1092.578979
11,0,171,1567.080933
11,0,172,1701.290771
11,0,173,1474.844360
11,0,174,4450.460449
11,0,175,-824.148376
11,0,176,-1702.356934
11,0,177,5241.904297
11,0,178,5946.702148
11,0,179,1676.081177
11,0,180,3583.339111
11,0,181,-3687.977295
11,0,182,-312.360870
11,0,183,-2502.239746
11,0,184,2378.231934
11,0,185,-7776.890137
11,0,186,3054.875977
11,0,187,7470.901367
11,0,188,3882.647949
11,0,189,630.241089
11,0,190,1857.975586
11,0,191,6383.044434
11,0,192,-2029.561279
11,0,193,-1803.006104
11,0,194,2014.293823
11,0,195,-1338.765625
11,0,196,2481.539062
11,0,197,3977.769287
11,0,198,-516.498230
11,0,199,-376.670593
11,0,200,-488.523865
11,0,201,722.465820
11,0,202,-1744.246826
11,0,203,789.581055
11,0,204,2934.732666
11,0,205,-5438.698242
11,0,206,-824.128235
11,0,207,725.219055
11,0,208,1659.315796
11,0,209,3575.125732
11,0,210,3784.871826
11,0,211,129.470978
11,0,212,3782.095459
11,0,213,-133.309814
11,0,214,-3461.466309
11,0,215,-849.317017
11,0,216,-1604.409668
11,0,217,1295.749268
11,0,218,2559.788086
11,0,219,-13.053955
11,0,220,3840.740479
11,0,221,4380.530273
11,0,222,591.216553
11,0,223,-642.273071
11,0,224,-726.273438
11,0,225,3169.545898
11,0,226,-217.282928
11,0,227,2050.968750
11,0,228,-250.808823
11,0,229,4495.016113
11,0,230,-2278.439697
11,0,231,-5875.070801
11,0,232,4221.217285
11,0,233,1144.756958
11,0,234,2330.557129
11,0,235,1348.851196
11,0,236,476.305298
11,0,237,-3394.500732
11,0,238,-1117.915039
11,0,239,-301.238037
11,0,240,12.075201
11,0,241,2386.472656
11,0,242,2973.771973
11,0,243,-586.382751
11,0,244,3342.959961
11,0,245,-329.207336
11,0,246,459.500732
11,0,247,632.905518
11,0,248,-242.515900
11,0,249,-586.425110
11,0,250,2271.814941
11,0,251,3913.576904
11,0,252,-572.446899
11,0,253,-7083.189453
11,0,254,2649.475342
11,0,255,3672.965820
11,0,256,1057.976685
11,0,257,-1489.728149
11,0,258,4514.958008
11,0,259,-3892.170410
11,0,260,2115.139404
11,0,261,543.415527
11,0,262,-136.142090
11,0,263,2372.606934
11,0,264,-1073.099976
11,0,265,-868.798889
11,0,266,895.867798
11,0,267,3231.072754
11,0,268,-3111.913086
11,0,269,-5133.835938
11,0,270,-189.247925
11,0,271,70.947205
11,0,272,5130.000977
11,0,273,1653.805298
11,0,274,806.421448
11,0,275,-3338.419189
11,0,276,-2527.397949
11,0,277,-2725.956055
11,0,278,-1556.865723
11,0,279,923.869751
11,0,280,-4907.485352
11,0,281,328.006287
11,0,282,-5463.964355
11,0,283,-2412.716553
11,0,284,-3271.242676
11,0,285,-5768.707031
11,0,286,-5500.167969
11,0,287,-4661.070801
11,0,288,-930.384827
11,0,289,-1775.065308
11,0,290,-3013.899170
11,0,291,-1363.855713
11,0,292,-2029.493286
11,0,293,-1067.393555
11,0,294,-5679.229980
11,0,295,-2776.328857
11,0,296,1460.791626
11,0,297,-113.745422
11,0,298,-5407.976562
11,0,299,1094.217651
11,0,300,-3022.433105
11,0,301,-1579.187012
11,0,302,1651.034546
11,0,303,2297.239990
11,0,304,2349.953125
11,0,305,-2647.549316
11,0,306,2680.103760
11,0,307,3496.849121
11,0,308,-594.883728
11,0,309,-2818.071533
11,0,310,-1145.767456
11,0,311,-4180.282227
11,0,312,-3386.011963
11,0,313,-5486.240723
11,0,314,-2661.455811
11,0,315,-24.232384
11,0,316,-7379.770996
11,0,317,266.584656
11,0,318,-773.673340
11,0,319,-2908.009033
11,0,320,3264.436768
11,0,321,4609.865234
11,0,322,2808.431641
11,0,323,1855.186157
11,0,324,-2172.508545
11,0,325,602.151611
11,0,326,4719.011230
11,0,327,3278.623535
11,0,328,2772.572754
11,0,329,3231.008301
11,0,330,5227.903809
11,0,331,5686.598633
11,0,332,5180.454590
11,0,333,-2085.701660
11,0,334,-1867.416016
11,0,335,372.843597
11,0,336,-4840.493164
11,0,337,2336.143555
11,0,338,1298.661987
11,0,339,-225.550995
11,0,340,1592.237305
11,0,341,1136.429688
11,0,342,1116.784790
11,0,343,1863.775269
11,0,344,-2012.658813
11,0,345,-5715.570801
11,0,346,-1294.128540
11,0,347,-6613.322754
11,0,348,2056.485352
11,0,349,4649.039062
11,0,350,3037.963379
11,0,351,-2300.735107
11,0,352,-7337.922363
11,0,353,-6459.544434
11,0,354,-2974.825195
11,0,355,1141.859741
11,0,356,4218.563477
11,0,357,7932.375488
11,0,358,1133.634155
11,0,359,-3584.450928
11,0,360,2229.707031
11,0,361,1634.260254
11,0,362,1483.200439
11,0,363,-4781.381836
11,0,364,-826.864258
11,0,365,-1873.086426
11,0,366,551.984619
11,0,367,202.265015
11,0,368,-1179.418579
11,0,369,-3962.000000
11,0,370,-1098.149902
11,0,371,448.267426
11,0,372,-3514.604980
11,0,373,-4230.569824
11,0,374,624.560547
11,0,375,3734.591553
11,0,376,6847.353027
11,0,377,-3925.767334
11,0,378,6649.114746
11,0,379,5311.787598
11,0,380,2984.838623
11,0,381,-3081.018066
11,0,382,-723.436462
11,0,383,2498.593750
11,0,384,-1981.966553
11,0,385,1947.427979
11,0,386,4551.067383
11,0,387,1491.413086
11,0,388,3563.645508
11,0,389,3244.998047
11,0,390,-63.410614
11,0,391,-3911.659912
11,0,392,-1282.706543
11,0,393,-3629.320068
11,0,394,781.285278
11,0,395,-5337.874023
11,0,396,-2683.999512
11,0,397,-16.031555
11,0,398,1754.329102
11,0,399,-661.783691
11,0,400,-513.650635
11,0,401,-3939.671631
11,0,402,-3187.260742
11,0,403,-2116.200928
11,0,404,-977.911072
11,0,405,-1193.229126
11,0,406,2210.715576
11,0,407,-5016.445801
11,0,408,-3922.637695
11,0,409,1578.260010
11,0,410,-3181.661377
11,0,411,-2594.440430
11,0,412,-2037.906494
11,0,413,-6607.843750
11,0,414,-774.013794
11,0,415,934.912659
11,0,416,1376.796509
11,0,417,151.928406
11,0,418,8175.883789
11,0,419,1390.858887
11,0,420,1010.453308
11,0,421,1189.665649
11,0,422,3516.399414
11,0,423,4897.996094
11,0,424,-1884.106689
11,0,425,185.762695
11,0,426,1695.607178
11,0,427,1868.946167
11,0,428,2101.203857
11,0,429,1032.953735
11,0,430,2210.271973
11,0,431,-4129.863281
11,0,432,-4616.517090
11,0,433,-2513.426270
11,0,434,1964.276367
11,0,435,-2775.993408
11,0,436,1387.836304
11,0,437,-639.663025
11,0,438,-2829.230957
11,0,439,4064.511719
11,0,440,2140.317627
11,0,441,1116.889526
11,0,442,5297.592773
11,0,443,-4281.027344
11,0,444,-9415.701172
11,0,445,2031.197144
11,0,446,2814.470703
11,0,447,5043.443848
11,0,448,-1445.060791
11,0,449,-4384.274414
11,0,450,-2642.087402
11,0,451,1368.621826
11,0,452,462.407288
11,0,453,3088.790283
11,0,454,-1098.259155
11,0,455,4254.650879
11,0,456,1969.730957
11,0,457,-6932.042969
11,0,458,2120.786377
11,0,459,1625.522217
11,0,460,-7525.037109
11,0,461,5818.045410
11,0,462,1203.516479
11,0,463,901.411987
11,0,464,-868.773315
11,0,465,767.262390
11,0,466,1362.777466
11,0,467,3376.433105
11,0,468,1620.323975
11,0,469,-2871.461670
11,0,470,943.374695
11,0,471,-2809.807373
11,0,472,-4261.146484
11,0,473,1049.495239
11,0,474,2271.983887
11,0,475,2115.242676
11,0,476,-1858.981201
11,0,477,31.614288
11,0,478,1393.420898
11,0,479,-2194.534668
11,0,480,-636.864990
11,0,481,2680.100342
11,0,482,-832.562744
11,0,483,1455.360840
11,0,484,4274.245117
11,0,485,-1464.641113
11,0,486,-309.446014
11,0,487,244.189209
11,0,488,-1694.047607
11,0,489,-4364.775391
11,0,490,143.389465
11,0,491,-2270.093750
11,0,492,-2474.206543
11,0,493,-4647.375977
11,0,494,1267.886597
11,0,495,2529.231445
11,0,496,-717.840088
11,0,497,4055.681152
11,0,498,-673.069214
11,0,499,-1484.080566
11,0,500,-1489.821045
11,0,501,-1937.124756
11,0,502,1561.453613
11,0,503,-1173.766113
11,0,504,3015.573486
11,0,505,2190.658203
11,0,506,1751.559448
11,0,507,6366.345703
11,0,508,4321.819336
11,0,509,4685.347656
11,0,510,549.177124
11,0,511,-510.857452
11,0,512,140.841370
11,0,513,-6067.880859
11,0,514,1055.332397
11,0,515,2657.665039
11,0,516,-2289.669678
11,0,517,-533.359131
11,0,518,-2015.642090
11,0,519,-52.265137
11,0,520,-852.478271
11,0,521,-2901.712402
11,0,522,2272.068115
11,0,523,3866.031494
11,0,524,795.152893
11,0,525,1659.249023
11,0,526,-1992.931396
11,0,527,-435.525391
11,0,528,-6532.105957
11,0,529,-525.139282
11,0,530,-1439.425781
11,0,531,-3915.076172
11,0,532,-2367.708496
11,0,533,1528.020264
11,0,534,3051.942139
11,0,535,560.424194
11,0,536,274.970551
11,0,537,996.470337
11,0,538,641.187378
11,0,539,2635.119385
11,0,540,3661.885010
11,0,541,-3318.806396
11,0,542,-3957.130615
11,0,543,3194.695312
11,0,544,-1785.562622
11,0,545,5448.949219
11,0,546,1374.128174
11,0,547,-1651.749512
11,0,548,2419.709717
11,0,549,6718.588379
11,0,550,5650.313477
11,0,551,-3447.523438
11,0,552,-399.325043
11,0,553,-888.577576
11,0,554,3438.559326
11,0,555,1284.705078
11,0,556,-1920.228638
11,0,557,1729.176392
11,0,558,960.101624
11,0,559,-385.213074
11,0,560,-698.292236
11,0,561,-3805.688965
11,0,562,3667.364746
11,0,563,-7276.511230
11,0,564,-3699.272949
11,0,565,-2012.562378
11,0,566,1309.548828
11,0,567,199.253662
11,0,568,543.346924
11,0,569,6005.116211
11,0,570,3989.362793
11,0,571,-4887.681641
11,0,572,3997.185303
11,0,573,-1433.833618
11,0,574,1038.476074
11,0,575,-457.687317
11,0,576,-278.925903
11,0,577,-731.770508
11,0,578,4235.124512
11,0,579,-3391.426025
11,0,580,-245.292847
11,0,581,-1663.076538
11,0,582,-304.088654
11,0,583,1933.461548
11,0,584,2618.422363
11,0,585,-3782.929443
11,0,586,118.371094
11,0,587,-1408.609375
11,0,588,-5108.777832
11,0,589,789.496399
11,0,590,-2121.614746
11,0,591,-2012.950928
11,0,592,1566.813354
11,0,593,-3645.960938
11,0,594,-1640.834717
11,0,595,-4216.320312
11,0,596,-2085.525635
11,0,597,2637.990723
11,0,598,-2759.896240
11,0,599,3169.614014
12,0,0,71.778931
12,0,1,1509.299561
12,0,2,1.864746
12,0,3,4266.843262
12,0,4,5038.724121
12,0,5,-1874.720337
12,0,6,731.791870
12,0,7,5310.033203
12,0,8,3973.176270
12,0,9,-314.168427
12,0,10,4518.544922
12,0,11,96.959961
12,0,12,2896.458496
12,0,13,6560.143555
12,0,14,46.606171
12,0,15,793.353149
12,0,16,-2003.377441
12,0,17,-3667.415039
12,0,18,-1209.114136
12,0,19,-5146.869629
12,0,20,-467.976257
12,0,21,141.695557
12,0,22,857.668823
12,0,23,-1857.950928
12,0,24,4873.672363
12,0,25,-5222.383301
12,0,26,2711.872070
12,0,27,-557.462158
12,0,28,-2487.219238
12,0,29,138.908569
12,0,30,1554.038208
12,0,31,1408.606079
12,0,32,-196.695312
12,0,33,1347.102905
12,0,34,5768.650391
12,0,35,71.775909
12,0,36,2717.488037
12,0,37,-756.027466
12,0,38,-2232.727539
12,0,39,3970.400146
12,0,40,6976.871582
12,0,41,6795.093750
12,0,42,-3066.133789
12,0,43,-568.680786
12,0,44,485.691223
12,0,45,-1348.956787
12,0,46,-1983.799316
12,0,47,-613.439331
12,0,48,2286.756836
12,0,49,-3938.686035
12,0,50,-1841.172485
12,0,51,-2713.750244
12,0,52,-915.456909
12,0,53,-811.966919
12,0,54,-2168.387207
12,0,55,-3709.375732
12,0,56,782.182495
12,0,57,1263.151489
12,0,58,4882.131836
12,0,59,-1055.298584
12,0,60,-4439.325684
12,0,61,-3116.479980
12,0,62,1092.565430
12,0,63,2737.044434
12,0,64,3260.049561
12,0,65,2516.116943
12,0,66,-1539.130127
12,0,67,1923.229004
12,0,68,-1326.561401
12,0,69,-1941.861572
12,0,70,2865.678223
12,0,71,-238.668701
12,0,72,-831.510254
12,0,73,13051.288086
12,0,74,12528.319336
12,0,75,28231.882812
12,0,76,18597.238281
12,0,77,18585.996094
12,0,78,27225.007812
12,0,79,35528.484375
12,0,80,32933.121094
12,0,81,32063.359375
12,0,82,16991.816406
12,0,83,13867.947266
12,0,84,13504.402344
12,0,85,21933.664062
12,0,86,28852.718750
12,0,87,25172.259766
12,0,88,22881.753906
12,0,89,19022.292969
12,0,90,11733.960938
12,0,91,-890.289673
12,0,92,1847.677979
12,0,93,-219.076782
12,0,94,4499.006836
12,0,95,3117.395996
12,0,96,-325.345581
12,0,97,-691.722656
12,0,98,1609.954468
12,0,99,-988.168945
12,0,100,-2842.413086
12,0,101,496.854248
12,0,102,5338.018555
12,0,103,-1206.343628
12,0,104,-1063.706421
12,0,105,-1704.105835
12,0,106,2379.116699
12,0,107,-2976.664795
12,0,108,-1027.326782
12,0,109,80.180725
12,0,110,-2067.725830
12,0,111,-465.215881
12,0,112,575.205933
12,0,113,4661.210938
12,0,114,-1379.786743
12,0,115,-137.959869
12,0,116,-2512.370605
12,0,117,-448.404297
12,0,118,536.039001
12,0,119,1327.452393
12,0,120,-4416.938965
12,0,121,-646.980469
12,0,122,-3387.781982
12,0,123,138.896851
12,0,124,-2277.446045
12,0,125,-3082.988281
12,0,126,3103.383301
12,0,127,6188.141113
12,0,128,-795.196533
12,0,129,1028.287354
12,0,130,5354.760254
12,0,131,-4028.158691
12,0,132,10562.410156
12,0,133,2874.083496
12,0,134,2334.337158
12,0,135,125.001709
12,0,136,-3921.936768
12,0,137,1772.190674
12,0,138,1361.058838
12,0,139,1875.697388
12,0,140,3648.765381
12,0,141,-1270.643433
12,0,142,-3555.536377
12,0,143,2306.369141
12,0,144,-1651.047241
12,0,145,-2411.803955
12,0,146,-638.609253
12,0,147,-2375.334473
12,0,148,-2266.310791
12,0,149,4135.416016
12,0,150,1696.671631
12,0,151,3637.589355
12,0,152,1484.109863
12,0,153,6162.991211
12,0,154,4968.807129
12,0,155,636.730835
12,0,156,-2825.539551
12,0,157,1783.486816
12,0,158,-2375.356689
12,0,159,1517.674438
12,0,160,-2691.359863
12,0,161,1816.931396
12,0,162,1534.443115
12,0,163,-6928.442871
12,0,164,-3175.186035
12,0,165,-1522.318726
12,0,166,843.713379
12,0,167,1707.880005
12,0,168,-2310.992676
12,0,169,564.047363
12,0,170,3514.444580
12,0,171,2093.795410
12,0,172,2286.779541
12,0,173,-2562.591309
12,0,174,-2162.780518
12,0,175,1117.578979
12,0,176,-2053.716309
12,0,177,5721.109375
12,0,178,930.365356
12,0,179,1719.065430
12,0,180,6134.827148
12,0,181,-5314.664062
12,0,182,-1368.530518
12,0,183,-893.087219
12,0,184,-2884.253906
12,0,185,-3826.824219
12,0,186,2541.254395
12,0,187,-946.226257
12,0,188,-179.932678
12,0,189,547.211182
12,0,190,810.106323
12,0,191,-1200.642334
12,0,192,-4170.875977
12,0,193,-4319.072266
12,0,194,-2269.117432
12,0,195,-775.604431
12,0,196,-1111.232910
12,0,197,-666.522278
12,0,198,5978.392578
12,0,199,933.076172
12,0,200,-219.089905
12,0,201,2406.975586
12,0,202,1268.779785
12,0,203,-3754.198975
12,0,204,-588.216370
12,0,205,-2355.774902
12,0,206,-2772.478271
12,0,207,-543.552246
12,0,208,-7322.712891
12,0,209,404.750732
12,0,210,1045.118530
12,0,211,-1010.481995
12,0,212,-1555.816040
12,0,213,-3270.309326
12,0,214,3178.899414
12,0,215,-1832.759033
12,0,216,4347.988281
12,0,217,161.190186
12,0,218,-2607.403564
12,0,219,1017.101562
12,0,220,1327.431274
12,0,221,-2641.026123
12,0,222,-2311.035156
12,0,223,-202.258987
12,0,224,-23.303467
12,0,225,491.278320
12,0,226,3005.489502
12,0,227,3321.472900
12,0,228,-2870.364258
12,0,229,843.628357
12,0,230,3265.637207
12,0,231,331.937927
12,0,232,-1309.866455
12,0,233,2728.672852
12,0,234,4697.544922
12,0,235,-2098.500977
12,0,236,1106.693970
12,0,237,3036.347656
12,0,238,-129.590698
12,0,239,-2674.605957
12,0,240,9236.654297
12,0,241,4876.523926
12,0,242,-1757.207886
12,0,243,854.835083
12,0,244,4543.692871
12,0,245,5967.426758
12,0,246,-5370.521484
12,0,247,1853.252441
12,0,248,3698.937744
12,0,249,292.732788
12,0,250,4328.387695
12,0,251,-5924.360352
12,0,252,1769.333740
12,0,253,499.681396
12,0,254,-468.016785
12,0,255,-7151.968262
12,0,256,-2501.187256
12,0,257,4020.704102
12,0,258,1752.551758
12,0,259,-3214.451416
12,0,260,-1494.362549
12,0,261,2574.869873
12,0,262,4568.896484
12,0,263,-2330.769531
12,0,264,-960.434570
12,0,265,-2596.303467
12,0,266,-2504.018799
12,0,267,-1256.646484
12,0,268,-1004.918457
12,0,269,6588.168457
12,0,270,-3449.464355
12,0,271,1858.868408
12,0,272,-3773.465088
12,0,273,-912.651611
12,0,274,-1237.075073
12,0,275,3648.599609
12,0,276,5351.767578
12,0,277,-2954.176025
12,0,278,4420.653320
12,0,279,1819.681885
12,0,280,471.742249
12,0,281,2429.291992
12,0,282,3111.857178
12,0,283,-744.954590
12,0,284,-784.011475
12,0,285,-4749.734375
12,0,286,-2484.338867
12,0,287,-1066.448120
12,0,288,983.472351
12,0,289,5410.693848
12,0,290,7136.273438
12,0,291,3397.013916
12,0,292,-1910.973389
12,0,293,-3494.162354
12,0,294,54.965088
12,0,295,-1211.906982
12,0,296,-1606.205200
12,0,297,-2557.235352
12,0,298,2751.079102
12,0,299,-3393.409912
12,0,300,687.086487
12,0,301,-677.763489
12,0,302,3536.881348
12,0,303,4814.703125
12,0,304,1017.067139
12,0,305,2152.780762
12,0,306,4266.870117
12,0,307,261.873901
12,0,308,-3331.797363
12,0,309,-2025.793091
12,0,310,-1234.253296
12,0,311,1914.750854
12,0,312,-1351.906982
12,0,313,-3930.441650
12,0,314,-1499.766602
12,0,315,4683.565918
12,0,316,-750.483459
12,0,317,-7459.816406
12,0,318,351.158508
12,0,319,304.003052
12,0,320,440.994019
12,0,321,-6257.169922
12,0,322,1086.939087
12,0,323,-4414.042969
12,0,324,1937.649292
12,0,325,231.200775
12,0,326,-2120.829590
12,0,327,-3801.709961
12,0,328,-4067.328857
12,0,329,-2034.167358
12,0,330,38.226013
12,0,331,-6752.365723
12,0,332,-51.282623
12,0,333,-864.953979
12,0,334,3640.431152
12,0,335,-3121.903320
12,0,336,-3295.364746
12,0,337,-1136.407227
12,0,338,-1209.243896
12,0,339,536.032227
12,0,340,-2366.933105
12,0,341,82.882477
12,0,342,-1413.192749
12,0,343,1461.787109
12,0,344,4286.318359
12,0,345,6492.982422
12,0,346,1263.237549
12,0,347,-182.787140
12,0,348,2465.750000
12,0,349,639.464600
12,0,350,4510.389160
12,0,351,-1133.528442
12,0,352,614.157227
12,0,353,5357.576172
12,0,354,-1955.876099
12,0,355,-5974.808594
12,0,356,1274.428467
12,0,357,1221.215942
12,0,358,-308.530945
12,0,359,-2090.178711
12,0,360,-4551.214355
12,0,361,-2867.536377
12,0,362,1609.838745
12,0,363,561.185730
12,0,364,-3846.385010
12,0,365,-1432.941895
12,0,366,284.335724
12,0,367,4068.118652
12,0,368,-1653.714478
12,0,369,2896.384277
12,0,370,-3452.031738
12,0,371,376.789001
12,0,372,3030.723389
12,0,373,463.252136
12,0,374,6680.387695
12,0,375,-4953.962891
12,0,376,-7568.953125
12,0,377,1595.990601
12,0,378,-1220.565430
12,0,379,-1309.708252
12,0,380,2711.789307
12,0,381,242.400879
12,0,382,-4268.640625
12,0,383,-4685.300781
12,0,384,-297.407196
12,0,385,-196.766357
12,0,386,3192.829590
12,0,387,-2750.034180
12,0,388,94.109070
12,0,389,1738.579834
12,0,390,804.541077
12,0,391,4529.766602
12,0,392,-2870.418457
12,0,393,-1418.890991
12,0,394,-4070.082520
12,0,395,-5093.702148
12,0,396,1168.092041
12,0,397,1252.238037
12,0,398,-912.782227
12,0,399,-1186.700073
12,0,400,1867.214355
12,0,401,-3552.841797
12,0,402,1786.078125
12,0,403,2334.295410
12,0,404,3545.408447
12,0,405,-3482.850586
12,0,406,-594.096130
12,0,407,-2017.356445
12,0,408,712.229126
12,0,409,1881.230225
12,0,410,-2092.746826
12,0,411,1302.463379
12,0,412,-4179.202637
12,0,413,3805.513672
12,0,414,-266.617554
12,0,415,-5208.183105
12,0,416,-2363.902588
12,0,417,-1953.060791
12,0,418,-1342.875977
12,0,419,1774.883423
12,0,420,4157.754395
12,0,421,-5487.883301
12,0,422,3072.669678
12,0,423,-1002.071045
12,0,424,-2227.073975
12,0,425,759.440674
12,0,426,5494.500488
12,0,427,-6134.272461
12,0,428,-8793.816406
12,0,429,1634.903931
12,0,430,-3692.510742
12,0,431,-5588.745605
12,0,432,1456.252930
12,0,433,826.941895
12,0,434,2672.616455
12,0,435,-2171.130859
12,0,436,793.398071
12,0,437,-260.951843
12,0,438,2633.451904
12,0,439,-2593.492676
12,0,440,1282.815552
12,0,441,2194.340088
12,0,442,340.349579
12,0,443,155.715927
12,0,444,-1236.895630
12,0,445,1939.789307
12,0,446,-420.351868
12,0,447,-98.775314
12,0,448,1573.626099
12,0,449,6929.291992
12,0,450,-5515.969238
12,0,451,1.737061
12,0,452,1601.436890
12,0,453,2356.729736
12,0,454,1075.733154
12,0,455,-1169.888184
12,0,456,-26.062012
12,0,457,351.497223
12,0,458,-4170.968750
12,0,459,-918.259888
12,0,460,-1483.185059
12,0,461,1945.619507
12,0,462,1937.156006
12,0,463,8246.296875
12,0,464,3430.594482
12,0,465,776.594055
12,0,466,-2551.546631
12,0,467,4121.454102
12,0,468,5217.711914
12,0,469,1142.897217
12,0,470,868.905884
12,0,471,-507.131348
12,0,472,-4447.816406
12,0,473,-3631.077637
12,0,474,4049.307129
12,0,475,-3264.738770
12,0,476,-3933.139404
12,0,477,2806.995117
12,0,478,944.255737
12,0,479,-3242.347168
12,0,480,3808.259033
12,0,481,650.464905
12,0,482,2518.923096
12,0,483,-1150.390015
12,0,484,69.023682
12,0,485,-2445.091309
12,0,486,552.757812
12,0,487,3808.191406
12,0,488,-4355.549805
12,0,489,-4361.001953
12,0,490,402.002441
12,0,491,1490.049316
12,0,492,3631.999512
12,0,493,-5381.984375
12,0,494,-6844.605469
12,0,495,6876.246582
12,0,496,3232.250000
12,0,497,-202.306122
12,0,498,-2568.353027
12,0,499,2879.751709
12,0,500,-1598.100098
12,0,501,1875.756836
12,0,502,2694.909424
12,0,503,-2123.635742
12,0,504,-1315.470093
12,0,505,1811.314453
12,0,506,-3141.529053
12,0,507,5142.294434
12,0,508,1123.246582
12,0,509,-6939.536133
12,0,510,-2154.518066
12,0,511,2820.928711
12,0,512,3131.244629
12,0,513,5262.506836
12,0,514,765.359375
12,0,515,203.263611
12,0,516,-3384.900635
12,0,517,-23.330635
12,0,518,-1049.748169
12,0,519,1928.803589
12,0,520,3928.625244
12,0,521,-2159.838867
12,0,522,-1052.347290
12,0,523,-923.559998
12,0,524,-2397.870850
12,0,525,122.089478
12,0,526,228.460175
12,0,527,-588.293457
12,0,528,1682.633545
12,0,529,2018.079712
12,0,530,4317.179688
12,0,531,-2470.876709
12,0,532,6067.854492
12,0,533,284.634644
12,0,534,-4554.050781
12,0,535,-1018.733276
12,0,536,2063.088379
12,0,537,-1740.734131
12,0,538,-1765.639160
12,0,539,331.815186
12,0,540,2432.281250
12,0,541,-2316.575439
12,0,542,3170.225586
12,0,543,2029.600708
12,0,544,-4425.105957
12,0,545,-1038.430786
12,0,546,3416.689209
12,0,547,6596.489746
12,0,548,76.992249
12,0,549,1626.834961
12,0,550,4426.333008
12,0,551,3517.406494
12,0,552,-143.238663
12,0,553,-5661.470703
12,0,554,-4534.301758
12,0,555,-4341.404785
12,0,556,-378.627197
12,0,557,-9588.002930
12,0,558,169.463104
12,0,559,-1500.042236
12,0,560,-1139.155762
12,0,561,-644.158508
12,0,562,7041.200195
12,0,563,4112.771484
12,0,564,3307.588867
12,0,565,5892.050781
12,0,566,-174.383835
12,0,567,-4839.075684
12,0,568,-929.550964
12,0,569,3206.663086
12,0,570,1260.578003
12,0,571,-4196.040039
12,0,572,1741.228394
12,0,573,-1807.626587
12,0,574,-1952.816895
12,0,575,-2903.822754
12,0,576,-314.176758
12,0,577,6185.339355
12,0,578,158.628662
12,0,579,-3186.331787
12,0,580,675.795044
12,0,581,737.298096
12,0,582,-2291.158203
12,0,583,-2120.712402
12,0,584,-893.285645
12,0,585,-1774.238159
12,0,586,482.677673
12,0,587,3385.948486
12,0,588,1176.429321
12,0,589,1855.993042
12,0,590,1545.645020
12,0,591,-2347.439453
12,0,592,1089.640869
12,0,593,-901.278198
12,0,594,301.121216
12,0,595,3229.149658
12,0,596,-906.938293
12,0,597,2188.942871
12,0,598,-2408.572510
12,0,599,-9490.115234
13,0,0,-31.398842
13,0,1,-4019.487061
13,0,2,1926.335571
13,0,3,-1779.306885
13,0,4,5508.910156
13,0,5,-123.681396
13,0,6,-7266.459473
13,0,7,-2363.826660
13,0,8,1431.308105
13,0,9,5341.102539
13,0,10,855.196228
13,0,11,5229.240234
13,0,12,-3921.579346
13,0,13,-1449.296631
13,0,14,3380.621826
13,0,15,-7630.039551
13,0,16,804.823120
13,0,17,1906.734863
13,0,18,4158.103516
13,0,19,995.021240
13,0,20,-1211.573242
13,0,21,-1921.937256
13,0,22,-6564.481445
13,0,23,-1617.097778
13,0,24,237.136475
13,0,25,-758.526611
13,0,26,1408.926758
13,0,27,458.047119
13,0,28,-490.020142
13,0,29,-1740.163818
13,0,30,-7409.113281
13,0,31,-775.324158
13,0,32,-3152.500000
13,0,33,-1659.063599
13,0,34,3917.582520
13,0,35,4166.475098
13,0,36,-806.058777
13,0,37,1319.449707
13,0,38,-2788.935059
13,0,39,-1334.646973
13,0,40,-730.543213
13,0,41,-495.614075
13,0,42,5301.987305
13,0,43,-1094.150635
13,0,44,874.761292
13,0,45,-2733.003418
13,0,46,-3219.622070
13,0,47,-3429.366943
13,0,48,-4609.604004
13,0,49,4451.759766
13,0,50,2589.154785
13,0,51,-2086.959961
13,0,52,-2945.539551
13,0,53,978.231506
13,0,54,4832.121094
13,0,55,6395.474121
13,0,56,3151.282471
13,0,57,4734.243164
13,0,58,4110.576172
13,0,59,860.755554
13,0,60,-674.609558
13,0,61,2980.689209
13,0,62,-487.245850
13,0,63,5824.895508
13,0,64,-4668.316895
13,0,65,41.321777
13,0,66,-478.814819
13,0,67,-1865.974365
13,0,68,-6231.673828
13,0,69,1554.415771
13,0,70,3078.571533
13,0,71,248.306427
13,0,72,4586.040039
13,0,73,8839.794922
13,0,74,7128.185059
13,0,75,14240.248047
13,0,76,23634.363281
13,0,77,32365.689453
13,0,78,33008.914062
13,0,79,37729.816406
13,0,80,29236.214844
13,0,81,22403.783203
13,0,82,18530.382812
13,0,83,21746.628906
13,0,84,27918.962891
13,0,85,38859.671875
13,0,86,22591.261719
13,0,87,15948.985352
13,0,88,9880.219727
13,0,89,4448.933594
13,0,90,1601.958496
13,0,91,-185.140869
13,0,92,3531.630859
13,0,93,4932.774414
13,0,94,4924.405273
13,0,95,2742.963135
13,0,96,3028.220703
13,0,97,136.452148
13,0,98,-1496.820679
13,0,99,1585.148804
13,0,100,32.950699
13,0,101,536.368530
13,0,102,-1460.516602
13,0,103,1638.256836
13,0,104,-414.536133
13,0,105,3156.847168
13,0,106,656.645691
13,0,107,-3546.805664
13,0,108,-2763.755615
13,0,109,-190.796997
13,0,110,569.884888
13,0,111,2278.753662
13,0,112,-2864.437012
13,0,113,5332.713867
13,0,114,930.638184
13,0,115,3170.855469
13,0,116,-4396.998535
13,0,117,-3745.384277
13,0,118,1436.909546
13,0,119,-1292.632812
13,0,120,-861.972534
13,0,121,-2198.798584
13,0,122,-238.331543
13,0,123,-2014.246460
13,0,124,-269.098206
13,0,125,830.027222
13,0,126,416.117676
13,0,127,-1770.902100
13,0,128,1076.100220
13,0,129,-3910.391113
13,0,130,-713.774658
13,0,131,-4187.258789
13,0,132,-48.110046
13,0,133,-6248.446777
13,0,134,-1810.108887
13,0,135,-1342.998047
13,0,136,902.777832
13,0,137,4843.251465
13,0,138,-4044.628418
13,0,139,2029.814209
13,0,140,-3482.494141
13,0,141,-6189.734375
13,0,142,-3124.589111
13,0,143,6291.954590
13,0,144,-3888.046875
13,0,145,1196.310791
13,0,146,-397.733154
13,0,147,628.635132
13,0,148,1395.013672
13,0,149,3495.271973
13,0,150,-1082.979492
13,0,151,-6245.642578
13,0,152,-232.876831
13,0,153,1422.950195
13,0,154,6862.517090
13,0,155,396.537018
13,0,156,3906.388184
13,0,157,-848.180298
13,0,158,2502.495117
13,0,159,499.987457
13,0,160,1403.369019
13,0,161,-7476.329102
13,0,162,-1695.367798
13,0,163,-962.756470
13,0,164,4141.331543
13,0,165,7645.650879
13,0,166,7791.047363
13,0,167,544.855103
13,0,168,1842.399902
13,0,169,3833.674561
13,0,170,-1793.366943
13,0,171,-626.982666
13,0,172,-948.712280
13,0,173,-2755.371582
13,0,174,807.624939
13,0,175,1831.123779
13,0,176,2057.797363
13,0,177,-1619.877686
13,0,178,-210.374237
13,0,179,2944.322754
13,0,180,-2774.977783
13,0,181,-5770.194336
13,0,182,2108.098877
13,0,183,6348.096191
13,0,184,981.099365
13,0,185,-2212.818115
13,0,186,1582.267944
13,0,187,6264.035645
13,0,188,-6950.435547
13,0,189,-1440.848877
13,0,190,821.706665
13,0,191,583.970154
13,0,192,-498.401672
13,0,193,3993.078125
13,0,194,1109.717163
13,0,195,-3672.706299
13,0,196,-996.232666
13,0,197,6420.640137
13,0,198,1297.021973
13,0,199,-2562.421875
13,0,200,-2117.705566
13,0,201,-1849.196899
13,0,202,4474.119141
13,0,203,-235.484497
13,0,204,61.046631
13,0,205,-1880.033325
13,0,206,2253.537598
13,0,207,480.448120
13,0,208,-1163.999268
13,0,209,-1105.318726
13,0,210,-1689.838867
13,0,211,-3392.945312
13,0,212,-5926.918457
13,0,213,1000.672852
13,0,214,-3082.627930
13,0,215,3221.223145
13,0,216,-1449.326172
13,0,217,-677.360107
13,0,218,-987.870667
13,0,219,1414.504150
13,0,220,-3026.710938
13,0,221,-3440.568848
13,0,222,-2011.501587
13,0,223,-800.416321
13,0,224,-1854.836426
13,0,225,-5040.265137
13,0,226,3484.100342
13,0,227,1898.366455
13,0,228,1162.812744
13,0,229,-2486.679932
13,0,230,3126.136230
13,0,231,1845.333252
13,0,232,-1947.099121
13,0,233,-1435.329834
13,0,234,-1885.594849
13,0,235,-811.617188
13,0,236,-2363.811768
13,0,237,1565.679199
13,0,238,-2752.598877
13,0,239,-4268.397949
13,0,240,-448.113647
13,0,241,-655.048828
13,0,242,2376.544922
13,0,243,-403.331543
13,0,244,-2523.205566
13,0,245,-213.218750
13,0,246,-2444.999023
13,0,247,346.186188
13,0,248,4194.299316
13,0,249,785.234863
13,0,250,-1365.309448
13,0,251,-671.849792
13,0,252,-2595.938477
13,0,253,1624.272705
13,0,254,432.886353
13,0,255,3593.020996
13,0,256,-4464.115234
13,0,257,-1639.462891
13,0,258,-6525.354492
13,0,259,447.044128
13,0,260,4843.240234
13,0,261,5450.329102
13,0,262,2460.495850
13,0,263,1685.669922
13,0,264,2155.602051
13,0,265,-2251.970947
13,0,266,-2699.479492
13,0,267,1171.212158
13,0,268,-3846.031738
13,0,269,4057.489990
13,0,270,1084.523804
13,0,271,-2713.398193
13,0,272,-1544.297974
13,0,273,2975.126953
13,0,274,2866.032959
13,0,275,3402.960938
13,0,276,-3988.586914
13,0,277,4501.969727
13,0,278,-968.286011
13,0,279,558.750427
13,0,280,1392.111816
13,0,281,-660.601135
13,0,282,6988.486328
13,0,283,-297.113892
13,0,284,1873.136230
13,0,285,7.767418
13,0,286,-2774.969238
13,0,287,-4626.393555
13,0,288,-4097.729004
13,0,289,6314.371582
13,0,290,676.274048
13,0,291,4331.604980
13,0,292,-2042.115723
13,0,293,7.851013
13,0,294,-4039.058105
13,0,295,3492.374512
13,0,296,754.579590
13,0,297,3514.963135
13,0,298,-859.172974
13,0,299,-2850.409180
13,0,300,-6981.095215
13,0,301,-1261.925537
13,0,302,-996.298096
13,0,303,4863.145020
13,0,304,-1317.861084
13,0,305,665.144531
13,0,306,-2595.801758
13,0,307,-3848.754883
13,0,308,561.531921
13,0,309,2502.158691
13,0,310,-3141.264893
13,0,311,1450.771729
13,0,312,-3401.307373
13,0,313,1132.039062
13,0,314,5732.523438
13,0,315,2575.110596
13,0,316,5100.498047
13,0,317,1887.117920
13,0,318,765.703613
13,0,319,827.120605
13,0,320,3313.434082
13,0,321,4709.038086
13,0,322,1951.385742
13,0,323,-6855.099609
13,0,324,2905.531738
13,0,325,2231.182617
13,0,326,3176.397949
13,0,327,-2126.212402
13,0,328,-224.293335
13,0,329,309.839661
13,0,330,382.538971
13,0,331,561.474731
13,0,332,-3060.260254
13,0,333,6412.175781
13,0,334,-803.168762
13,0,335,-5241.570801
13,0,336,-4139.965332
13,0,337,4172.085449
13,0,338,-2081.397705
13,0,339,2994.481689
13,0,340,-120.835144
13,0,341,-199.082367
13,0,342,-1759.701904
13,0,343,1752.938354
13,0,344,-1815.711914
13,0,345,-3228.064941
13,0,346,-2307.831299
13,0,347,-1547.244629
13,0,348,6823.385742
13,0,349,5766.180664
13,0,350,1075.758179
13,0,351,600.733398
13,0,352,357.432220
13,0,353,-2478.495361
13,0,354,-2802.974609
13,0,355,790.813171
13,0,356,-364.292969
13,0,357,133.694000
13,0,358,4462.965820
13,0,359,-1418.561401
13,0,360,1929.004639
13,0,361,-540.182251
13,0,362,-1650.451782
13,0,363,346.239380
13,0,364,-2073.023193
13,0,365,575.537964
13,0,366,-2310.749268
13,0,367,6331.071777
13,0,368,2823.999023
13,0,369,-1046.766724
13,0,370,522.420227
13,0,371,-4671.556641
13,0,372,-3776.192871
13,0,373,1381.046631
13,0,374,5002.543457
13,0,375,-2103.712891
13,0,376,463.745850
13,0,377,-1004.535217
13,0,378,-3569.175293
13,0,379,-1521.987183
13,0,380,3277.039307
13,0,381,2382.111816
13,0,382,1067.557617
13,0,383,-2394.583740
13,0,384,-6237.190918
13,0,385,-2814.075195
13,0,386,424.423462
13,0,387,-3269.859375
13,0,388,-4606.637695
13,0,389,3159.505615
13,0,390,1954.132935
13,0,391,-504.104858
13,0,392,368.564270
13,0,393,-1396.220703
13,0,394,916.841858
13,0,395,1333.586426
13,0,396,813.261963
13,0,397,2250.834961
13,0,398,3830.930664
13,0,399,1221.288574
13,0,400,-1871.644775
13,0,401,446.902344
13,0,402,-5071.049316
13,0,403,-257.691162
13,0,404,-1192.114380
13,0,405,-523.583374
13,0,406,-1846.360474
13,0,407,-7708.400879
13,0,408,-915.128296
13,0,409,-3272.735352
13,0,410,-2710.653564
13,0,411,-694.219177
13,0,412,2650.673828
13,0,413,-2545.760254
13,0,414,-1569.445923
13,0,415,2494.129883
13,0,416,-1504.953979
13,0,417,-2676.948486
13,0,418,807.439575
13,0,419,1800.522705
13,0,420,-990.720215
13,0,421,-1474.261230
13,0,422,-8703.974609
13,0,423,6890.504883
13,0,424,5184.503418
13,0,425,491.663757
13,0,426,449.715942
13,0,427,4885.153320
13,0,428,-1166.828979
13,0,429,-3250.260498
13,0,430,-954.363708
13,0,431,175.600418
13,0,432,-2514.874268
13,0,433,-666.104248
13,0,434,125.378784
13,0,435,-1591.752441
13,0,436,3976.323242
13,0,437,3453.350586
13,0,438,150.573608
13,0,439,3685.497803
13,0,440,1053.759277
13,0,441,1585.159424
13,0,442,4837.561523
13,0,443,-2808.613037
13,0,444,-2797.468506
13,0,445,6635.974121
13,0,446,1025.635742
13,0,447,-1905.087891
13,0,448,-3745.378418
13,0,449,-4713.010254
13,0,450,-5619.238281
13,0,451,4955.302246
13,0,452,3145.627441
13,0,453,4048.842529
13,0,454,2611.374512
13,0,455,620.494507
13,0,456,634.304077
13,0,457,1199.111206
13,0,458,-903.984497
13,0,459,6389.858887
13,0,460,3383.363525
13,0,461,-2676.896484
13,0,462,1070.504883
13,0,463,-2265.899414
13,0,464,-4436.154785
13,0,465,1193.454956
13,0,466,-67.704224
13,0,467,1288.761353
13,0,468,-140.505219
13,0,469,-2291.164795
13,0,470,-1966.862671
13,0,471,-478.866943
13,0,472,1663.471436
13,0,473,-1328.881348
13,0,474,4639.179199
13,0,475,-1440.859863
13,0,476,-2730.157227
13,0,477,-1152.991943
13,0,478,-213.023071
13,0,479,2219.914551
13,0,480,2342.952393
13,0,481,222.909378
13,0,482,142.072449
13,0,483,-2651.927246
13,0,484,-1541.611572
13,0,485,3671.472412
13,0,486,1224.375366
13,0,487,1319.443726
13,0,488,-2310.776611
13,0,489,1489.735840
13,0,490,-3258.747070
13,0,491,-1471.569092
13,0,492,-5535.253418
13,0,493,-1446.387939
13,0,494,-470.449829
13,0,495,-2067.403809
13,0,496,1931.772461
13,0,497,1291.632568
13,0,498,-157.173950
13,0,499,-680.179199
13,0,500,-985.038940
13,0,501,2633.764160
13,0,502,-803.207642
13,0,503,-1127.685913
13,0,504,4362.208984
13,0,505,-4466.997070
13,0,506,564.263794
13,0,507,-3295.212646
13,0,508,-4374.751465
13,0,509,2004.458984
13,0,510,1489.882324
13,0,511,66.490707
13,0,512,1143.478516
13,0,513,-2581.937256
13,0,514,47.012512
13,0,515,3481.134033
13,0,516,-1877.053345
13,0,517,2997.414307
13,0,518,-1759.876953
13,0,519,-5963.201660
13,0,520,-1415.370239
13,0,521,2275.862549
13,0,522,-1320.505859
13,0,523,-5529.882812
13,0,524,-3899.125732
13,0,525,-8950.083984
13,0,526,-1938.588379
13,0,527,2001.866699
13,0,528,-892.671997
13,0,529,-81.683075
13,0,530,-436.867676
13,0,531,-1474.411011
13,0,532,729.347900
13,0,533,-3543.753662
13,0,534,-3009.735352
13,0,535,4345.458008
13,0,536,-1647.769165
13,0,537,1876.126343
13,0,538,2894.064697
13,0,539,2317.980713
13,0,540,405.040100
13,0,541,4714.604004
13,0,542,4032.512207
13,0,543,1576.625000
13,0,544,469.417572
13,0,545,-1074.452881
13,0,546,564.300598
13,0,547,5917.106934
13,0,548,2527.654785
13,0,549,3626.745361
13,0,550,684.801453
13,0,551,-1544.419189
13,0,552,-5300.266602
13,0,553,343.472107
13,0,554,2513.606689
13,0,555,312.663147
13,0,556,3492.358154
13,0,557,-5518.418457
13,0,558,2080.000977
13,0,559,2650.957764
13,0,560,527.870667
13,0,561,-940.580078
13,0,562,1889.959473
13,0,563,-582.301941
13,0,564,-2590.299072
13,0,565,-4531.544922
13,0,566,4703.417969
13,0,567,2701.084717
13,0,568,-288.590820
13,0,569,4851.608398
13,0,570,2152.876953
13,0,571,-4559.111328
13,0,572,3092.392334
13,0,573,1453.613525
13,0,574,2457.405273
13,0,575,-599.171692
13,0,576,2541.581055
13,0,577,3772.041748
13,0,578,-367.073181
13,0,579,382.553650
13,0,580,-1541.508301
13,0,581,1358.572510
13,0,582,2726.250977
13,0,583,-3619.602051
13,0,584,2527.903809
13,0,585,-1454.844482
13,0,586,-1387.715820
13,0,587,-2931.667725
13,0,588,66.457169
13,0,589,-1161.248047
13,0,590,4440.425293
13,0,591,3279.803955
13,0,592,-73.321396
13,0,593,2597.651367
13,0,594,1078.912720
13,0,595,-322.264435
13,0,596,2496.817871
13,0,597,273.526245
13,0,598,-4134.342773
13,0,599,-4371.819336
14,0,0,-4026.630371
14,0,1,-1162.799438
14,0,2,-1159.988281
14,0,3,-1196.353760
14,0,4,-4546.806641
14,0,5,-690.145508
14,0,6,2735.845459
14,0,7,2735.833740
14,0,8,-1434.073364
14,0,9,-44.103577
14,0,10,2979.166504
14,0,11,1715.007446
14,0,12,-183.937195
14,0,13,-1123.649292
14,0,14,-6711.459473
14,0,15,-1134.822510
14,0,16,-4040.605957
14,0,17,2660.303711
14,0,18,926.350220
14,0,19,-2071.680176
14,0,20,-3098.131348
14,0,21,3605.599121
14,0,22,2881.249512
14,0,23,-2021.382446
14,0,24,719.410400
14,0,25,-4871.218750
14,0,26,2542.849121
14,0,27,-2997.438477
14,0,28,3342.743164
14,0,29,-251.063599
14,0,30,-883.105713
14,0,31,-424.450348
14,0,32,-284.623291
14,0,33,-3302.286133
14,0,34,3079.831055
14,0,35,1264.757568
14,0,36,1622.715088
14,0,37,171.243347
14,0,38,1220.018188
14,0,39,1080.175293
14,0,40,-1428.465332
14,0,41,4150.974609
14,0,42,-3565.130859
14,0,43,884.410156
14,0,44,5191.326660
14,0,45,-58.126770
14,0,46,81.750366
14,0,47,2344.284912
14,0,48,9702.429688
14,0,49,3566.451904
14,0,50,-983.786621
14,0,51,3124.588623
14,0,52,-4627.908203
14,0,53,3871.267090
14,0,54,940.310059
14,0,55,70.589844
14,0,56,-3735.775879
14,0,57,-1780.896484
14,0,58,976.696655
14,0,59,1494.078369
14,0,60,-1403.281494
14,0,61,-1067.680176
14,0,62,249.585571
14,0,63,-1294.219238
14,0,64,3197.287109
14,0,65,-1607.435303
14,0,66,1057.819824
14,0,67,-1895.532837
14,0,68,982.286865
14,0,69,-5763.372070
14,0,70,2310.728516
14,0,71,4931.259766
14,0,72,666.242554
14,0,73,5954.864258
14,0,74,15044.138672
14,0,75,24133.445312
14,0,76,28275.361328
14,0,77,26644.882812
14,0,78,26762.375000
14,0,79,20961.996094
14,0,80,26907.761719
14,0,81,24751.539062
14,0,82,21840.166016
14,0,83,21630.421875
14,0,84,21677.923828
14,0,85,20645.947266
14,0,86,15569.916016
14,0,87,10751.267578
14,0,88,8541.800781
14,0,89,9168.257812
14,0,90,5387.093262
14,0,91,6044.325684
14,0,92,1751.389893
14,0,93,-3240.725342
14,0,94,-1884.397705
14,0,95,1888.414185
14,0,96,-2645.019531
14,0,97,-7142.136719
14,0,98,-3525.991943
14,0,99,1499.672363
14,0,100,-133.565964
14,0,101,842.455200
14,0,102,1642.334229
14,0,103,-5245.980469
14,0,104,-1940.308594
14,0,105,-2608.698975
14,0,106,-1445.332520
14,0,107,1127.748291
14,0,108,1382.223267
14,0,109,-1081.702637
14,0,110,-1892.683350
14,0,111,3012.736328
14,0,112,3023.911865
14,0,113,-5841.706543
14,0,114,3099.369141
14,0,115,878.838806
14,0,116,-3103.685303
14,0,117,615.915283
14,0,118,2570.880615
14,0,119,-2329.023438
14,0,120,2366.657715
14,0,121,1499.687988
14,0,122,-1305.490967
14,0,123,6816.254883
14,0,124,-3752.486572
14,0,125,713.733765
14,0,126,4111.789551
14,0,127,-883.113281
14,0,128,2117.792725
14,0,129,1018.661499
14,0,130,-5836.029297
14,0,131,-7002.332031
14,0,132,-2863.170898
14,0,133,1071.796631
14,0,134,-1126.407959
14,0,135,1127.674072
14,0,136,1563.988892
14,0,137,-3209.958740
14,0,138,-1845.150146
14,0,139,1891.206787
14,0,140,2489.716553
14,0,141,6237.282227
14,0,142,7176.999023
14,0,143,-1221.487427
14,0,144,-3184.776367
14,0,145,1318.073975
14,0,146,660.694763
14,0,147,484.488678
14,0,148,1496.906372
14,0,149,1468.933228
14,0,150,-1442.458618
14,0,151,-5327.114258
14,0,152,-2801.703857
14,0,153,-2329.001465
14,0,154,-1590.647461
14,0,155,-634.226685
14,0,156,-600.678955
14,0,157,-1224.291382
14,0,158,-270.653015
14,0,159,-2454.871338
14,0,160,-7620.431641
14,0,161,-443.929352
14,0,162,-5198.517090
14,0,163,-2894.084961
14,0,164,1071.619141
14,0,165,8575.549805
14,0,166,-684.507935
14,0,167,5401.054688
14,0,168,2081.415039
14,0,169,-1512.392090
14,0,170,-3721.782471
14,0,171,2998.769531
14,0,172,870.393066
14,0,173,-746.019165
14,0,174,1357.058350
14,0,175,2828.221924
14,0,176,-835.543945
14,0,177,-804.806519
14,0,178,2559.641602
14,0,179,1401.766357
14,0,180,123.683159
14,0,181,-2670.172852
14,0,182,2489.669189
14,0,183,-4426.639648
14,0,184,-1736.222534
14,0,185,14.608032
14,0,186,78.952728
14,0,187,-1920.677490
14,0,188,-2846.394287
14,0,189,-2398.966309
14,0,190,-1554.436890
14,0,191,5801.052246
14,0,192,5996.775879
14,0,193,-5673.840820
14,0,194,-2007.286133
14,0,195,-505.540466
14,0,196,-1878.743896
14,0,197,5683.506348
14,0,198,-5556.470215
14,0,199,-955.848022
14,0,200,-3260.303711
14,0,201,3857.289795
14,0,202,1234.038574
14,0,203,-2018.401123
14,0,204,2931.735107
14,0,205,380.994781
14,0,206,674.640808
14,0,207,-2155.607422
14,0,208,-729.305237
14,0,209,-3355.425293
14,0,210,-994.901306
14,0,211,-1003.284729
14,0,212,305.494263
14,0,213,6970.215820
14,0,214,-5385.837402
14,0,215,-7547.667969
14,0,216,-3137.249268
14,0,217,-1945.849365
14,0,218,-1668.937378
14,0,219,-6015.086426
14,0,220,1860.387451
14,0,221,95.750183
14,0,222,1689.937866
14,0,223,3834.996826
14,0,224,4142.552246
14,0,225,-5150.846680
14,0,226,1113.737305
14,0,227,1555.473389
14,0,228,-2919.105957
14,0,229,-3909.001709
14,0,230,2106.588135
14,0,231,90.243530
14,0,232,5227.866699
14,0,233,3141.335205
14,0,234,4008.300537
14,0,235,-1481.588501
14,0,236,-871.988281
14,0,237,-776.884644
14,0,238,134.902344
14,0,239,2775.082520
14,0,240,-2779.179932
14,0,241,-1887.081543
14,0,242,758.588013
14,0,243,-4669.844727
14,0,244,-3738.489502
14,0,245,1555.566650
14,0,246,892.876343
14,0,247,-3232.352051
14,0,248,-7424.422852
14,0,249,814.489502
14,0,250,-480.391541
14,0,251,-2782.062988
14,0,252,-2494.027588
14,0,253,2005.892090
14,0,254,104.106583
14,0,255,1013.016357
14,0,256,-2684.103027
14,0,257,-5534.043945
14,0,258,1063.487183
14,0,259,-2189.246582
14,0,260,2344.204346
14,0,261,4299.351562
14,0,262,-779.630859
14,0,263,1373.860718
14,0,264,-3249.116943
14,0,265,11.891296
14,0,266,-2608.838379
14,0,267,8399.142578
14,0,268,-1772.443726
14,0,269,-2698.163574
14,0,270,2084.249512
14,0,271,2148.510742
14,0,272,-2141.519287
14,0,273,-3699.338379
14,0,274,3317.725342
14,0,275,-1067.569824
14,0,276,2699.526855
14,0,277,2719.102539
14,0,278,3980.395996
14,0,279,-1042.362183
14,0,280,-732.298340
14,0,281,1256.354126
14,0,282,1681.575562
14,0,283,674.757812
14,0,284,1975.156982
14,0,285,2562.581055
14,0,286,-6999.527344
14,0,287,856.617371
14,0,288,3200.096436
14,0,289,2089.780029
14,0,290,-2619.824463
14,0,291,1085.890503
14,0,292,-1604.484741
14,0,293,-2248.003418
14,0,294,-2133.255371
14,0,295,1477.211304
14,0,296,-734.879883
14,0,297,-785.233582
14,0,298,540.487793
14,0,299,875.765869
14,0,300,1695.667969
14,0,301,3706.329590
14,0,302,1152.931885
14,0,303,4151.253418
14,0,304,1435.359497
14,0,305,137.753448
14,0,306,-670.465454
14,0,307,1192.075806
14,0,308,-6258.426270
14,0,309,-3962.330322
14,0,310,-3763.720215
14,0,311,-4571.829102
14,0,312,-2505.125977
14,0,313,361.421265
14,0,314,-1529.067993
14,0,315,2126.136475
14,0,316,2380.670654
14,0,317,9.058899
14,0,318,-4110.476562
14,0,319,-2177.969482
14,0,320,-5665.323730
14,0,321,5893.301758
14,0,322,2993.323975
14,0,323,2022.581299
14,0,324,-1647.059692
14,0,325,-978.317993
14,0,326,797.716064
14,0,327,81.702881
14,0,328,-1607.349731
14,0,329,-66.433716
14,0,330,-4639.058594
14,0,331,-2533.185059
14,0,332,-2147.195068
14,0,333,4478.295898
14,0,334,-2216.964111
14,0,335,534.835510
14,0,336,1807.467651
14,0,337,-209.097412
14,0,338,2539.997803
14,0,339,2727.355957
14,0,340,3762.103516
14,0,341,2137.292969
14,0,342,2313.496338
14,0,343,-3842.037598
14,0,344,2134.704834
14,0,345,-1215.874756
14,0,346,95.741295
14,0,347,-362.951752
14,0,348,-365.771606
14,0,349,3082.578125
14,0,350,380.817261
14,0,351,-1308.208496
14,0,352,-4289.691895
14,0,353,-3478.481689
14,0,354,-4446.041016
14,0,355,22.907104
14,0,356,800.478882
14,0,357,-1462.118896
14,0,358,1910.714722
14,0,359,3219.858887
14,0,360,3821.162842
14,0,361,-5131.179199
14,0,362,-2664.542969
14,0,363,582.388733
14,0,364,-141.982910
14,0,365,2204.355225
14,0,366,-1132.044800
14,0,367,-1881.444824
14,0,368,4055.868652
14,0,369,1944.250122
14,0,370,2830.833008
14,0,371,2820.104492
14,0,372,-5078.328125
14,0,373,5169.058105
14,0,374,-760.061401
14,0,375,-3397.437988
14,0,376,-3154.106934
14,0,377,-1132.069458
14,0,378,-911.095825
14,0,379,3451.680176
14,0,380,-1406.011963
14,0,381,-6003.791016
14,0,382,-3391.822266
14,0,383,-6149.483887
14,0,384,146.046890
14,0,385,867.656311
14,0,386,5834.458008
14,0,387,-567.059082
14,0,388,-3685.285645
14,0,389,-376.958313
14,0,390,786.431335
14,0,391,-1210.346436
14,0,392,-3140.019775
14,0,393,-2519.320068
14,0,394,-5464.228516
14,0,395,-3710.665283
14,0,396,1812.915894
14,0,397,1021.255005
14,0,398,1689.854614
14,0,399,3147.266357
14,0,400,322.354309
14,0,401,-3811.272461
14,0,402,-3898.083984
14,0,403,-922.392029
14,0,404,-3601.505615
14,0,405,-4907.582520
14,0,406,621.967346
14,0,407,1301.029419
14,0,408,-1305.501709
14,0,409,1245.027588
14,0,410,-2689.847656
14,0,411,-6249.995117
14,0,412,-2871.579102
14,0,413,-349.006775
14,0,414,-2309.478516
14,0,415,-3819.723633
14,0,416,433.838684
14,0,417,6321.180664
14,0,418,-2569.283447
14,0,419,7006.566895
14,0,420,-746.127686
14,0,421,-1615.743896
14,0,422,7867.769043
14,0,423,1961.123779
14,0,424,-569.947754
14,0,425,917.586426
14,0,426,-354.320770
14,0,427,1636.753784
14,0,428,-1901.113647
14,0,429,4612.573730
14,0,430,-4860.004395
14,0,431,73.394470
14,0,432,-1546.026733
14,0,433,864.812378
14,0,434,-2555.639160
14,0,435,-1593.582275
14,0,436,-578.348694
14,0,437,-804.882080
14,0,438,2173.570068
14,0,439,274.791992
14,0,440,5247.065430
14,0,441,-2871.800293
14,0,442,1748.477295
14,0,443,-939.084229
14,0,444,-3587.603516
14,0,445,4013.859863
14,0,446,1018.647583
14,0,447,487.359436
14,0,448,990.706360
14,0,449,3910.537109
14,0,450,1586.286865
14,0,451,2509.284180
14,0,452,2257.543701
14,0,453,462.049072
14,0,454,-1526.344971
14,0,455,-1098.598389
14,0,456,-5349.394531
14,0,457,2841.958252
14,0,458,84.593567
14,0,459,699.897095
14,0,460,3345.503906
14,0,461,3482.489258
14,0,462,1468.838257
14,0,463,2235.093750
14,0,464,2909.337891
14,0,465,4889.384766
14,0,466,-807.514282
14,0,467,-2947.125488
14,0,468,-161.449463
14,0,469,2707.708984
14,0,470,1667.290894
14,0,471,3488.129883
14,0,472,4251.841797
14,0,473,1214.319092
14,0,474,848.174133
14,0,475,492.811676
14,0,476,6682.008789
14,0,477,-6364.576172
14,0,478,-3953.811523
14,0,479,2391.869873
14,0,480,-3411.441895
14,0,481,663.203125
14,0,482,1155.743408
14,0,483,-1649.651367
14,0,484,-3187.645508
14,0,485,-161.479889
14,0,486,3672.764893
14,0,487,-589.458984
14,0,488,-1168.329956
14,0,489,-3651.863770
14,0,490,-5399.721680
14,0,491,1057.727051
14,0,492,-4577.536133
14,0,493,-1118.348633
14,0,494,1762.538330
14,0,495,1846.480347
14,0,496,1376.539795
14,0,497,-4060.000000
14,0,498,3661.510010
14,0,499,422.860535
14,0,500,-5031.375977
14,0,501,1262.130859
14,0,502,5946.654785
14,0,503,3121.796875
14,0,504,-1436.841797
14,0,505,-32.926025
14,0,506,4508.694336
14,0,507,-3229.581543
14,0,508,3516.182129
14,0,509,973.986938
14,0,510,4408.183594
14,0,511,2369.449219
14,0,512,4047.766846
14,0,513,772.492126
14,0,514,-1037.080322
14,0,515,-1411.641846
14,0,516,1773.815796
14,0,517,-966.903748
14,0,518,-637.105164
14,0,519,1860.489258
14,0,520,-307.501221
14,0,521,-1610.234619
14,0,522,-1892.786621
14,0,523,2112.220703
14,0,524,2400.161621
14,0,525,-1190.615601
14,0,526,36.923584
14,0,527,685.864380
14,0,528,3460.090332
14,0,529,-1157.249023
14,0,530,484.453064
14,0,531,-3573.853516
14,0,532,-4202.715820
14,0,533,2089.583008
14,0,534,-2653.405518
14,0,535,-1380.682617
14,0,536,168.430450
14,0,537,2719.216309
14,0,538,-3394.332275
14,0,539,7792.168457
14,0,540,2856.381348
14,0,541,-2082.847412
14,0,542,-1207.245972
14,0,543,109.557495
14,0,544,-1028.760010
14,0,545,-61.104736
14,0,546,-4051.635254
14,0,547,3079.687500
14,0,548,3247.497070
14,0,549,1228.363892
14,0,550,-8157.325195
14,0,551,1334.690674
14,0,552,-2228.163330
14,0,553,-3422.620605
14,0,554,2129.550049
14,0,555,3999.845947
14,0,556,-74.818359
14,0,557,-1221.374146
14,0,558,6961.549805
14,0,559,1888.123779
14,0,560,2788.927002
14,0,561,612.855774
14,0,562,3594.424805
14,0,563,1525.023682
14,0,564,-1735.886230
14,0,565,1247.874512
14,0,566,4827.815430
14,0,567,4716.020020
14,0,568,-443.941162
14,0,569,17.507721
14,0,570,2542.560303
14,0,571,5403.972656
14,0,572,1754.127686
14,0,573,1066.172852
14,0,574,954.090698
14,0,575,-1884.405762
14,0,576,277.706055
14,0,577,-3181.997803
14,0,578,-4007.059814
14,0,579,492.906616
14,0,580,5518.509766
14,0,581,-1478.866211
14,0,582,-2849.143555
14,0,583,-337.832153
14,0,584,4968.006836
14,0,585,-2927.387207
14,0,586,271.952332
14,0,587,106.706055
14,0,588,2140.158203
14,0,589,1739.988525
14,0,590,979.607727
14,0,591,3708.950684
14,0,592,-888.732544
14,0,593,-192.208710
14,0,594,3191.707520
14,0,595,-1423.045898
14,0,596,-4325.719727
14,0,597,2017.008301
14,0,598,3451.934814
14,0,599,2058.960449
15,0,0,-2408.705566
15,0,1,-3091.078369
15,0,2,85.982117
15,0,3,-954.396118
15,0,4,1875.856812
15,0,5,1031.249634
15,0,6,1204.647705
15,0,7,-2965.243652
15,0,8,-1144.602417
15,0,9,401.999023
15,0,10,256.556519
15,0,11,-2657.613525
15,0,12,-3202.959717
15,0,13,499.896362
15,0,14,-1527.744385
15,0,15,1610.156372
15,0,16,-9131.968750
15,0,17,-1315.185791
15,0,18,-481.759888
15,0,19,3078.444092
15,0,20,-2162.576416
15,0,21,-520.932007
15,0,22,-1466.187744
15,0,23,-2352.773926
15,0,24,1898.252563
15,0,25,-3818.227539
15,0,26,1271.764648
15,0,27,-2833.798584
15,0,28,-1857.745605
15,0,29,787.939880
15,0,30,-2498.205322
15,0,31,1982.129150
15,0,32,5044.545898
15,0,33,-1197.739746
15,0,34,-719.472656
15,0,35,807.513733
15,0,36,2983.379395
15,0,37,4292.208984
15,0,38,-1908.086426
15,0,39,2337.290283
15,0,40,-5236.170898
15,0,41,-3538.571045
15,0,42,2149.935547
15,0,43,-2699.569092
15,0,44,-1642.405518
15,0,45,-325.109009
15,0,46,-736.276123
15,0,47,1134.742920
15,0,48,891.401855
15,0,49,4541.153809
15,0,50,-526.499146
15,0,51,402.004761
15,0,52,4840.366211
15,0,53,-554.458984
15,0,54,-2640.831299
15,0,55,-4802.689453
15,0,56,2272.978516
15,0,57,2038.088135
15,0,58,-1659.192749
15,0,59,3923.054688
15,0,60,-1348.749512
15,0,61,301.332275
15,0,62,407.573669
15,0,63,4507.528320
15,0,64,-207.673828
15,0,65,1696.874023
15,0,66,-643.956543
15,0,67,3128.793457
15,0,68,2102.388184
15,0,69,2368.081299
15,0,70,-613.219727
15,0,71,-1983.607178
15,0,72,3232.308594
15,0,73,2955.438477
15,0,74,17982.087891
15,0,75,25082.968750
15,0,76,40330.613281
15,0,77,43353.882812
15,0,78,31929.466797
15,0,79,20054.498047
15,0,80,22157.599609
15,0,81,17721.958984
15,0,82,18454.740234
15,0,83,14908.506836
15,0,84,11997.143555
15,0,85,15143.419922
15,0,86,18012.910156
15,0,87,22714.121094
15,0,88,23259.541016
15,0,89,11102.186523
15,0,90,6848.431152
15,0,91,7362.969238
15,0,92,-806.165710
15,0,93,-218.869537
15,0,94,807.525696
15,0,95,-4458.734863
15,0,96,2396.043213
15,0,97,-2618.417725
15,0,98,3441.976074
15,0,99,-2903.665039
15,0,100,4661.362793
15,0,101,1763.972290
15,0,102,1870.283569
15,0,103,541.830627
15,0,104,1520.676514
15,0,105,4764.867188
15,0,106,-1133.377319
15,0,107,4773.233887
15,0,108,-2000.364136
15,0,109,2177.909668
15,0,110,1951.360474
15,0,111,-3035.197021
15,0,112,1439.564697
15,0,113,670.500305
15,0,114,1207.454712
15,0,115,944.599915
15,0,116,-3857.418945
15,0,117,-1340.345703
15,0,118,91.609741
15,0,119,-2008.785278
15,0,120,-2204.524902
15,0,121,-996.361023
15,0,122,4952.281738
15,0,123,3688.144043
15,0,124,-884.440430
15,0,125,6263.878418
15,0,126,1210.279541
15,0,127,-288.823975
15,0,128,158.675903
15,0,129,-2789.063477
15,0,130,1783.591309
15,0,131,1229.808105
15,0,132,-4279.775391
15,0,133,-1357.182617
15,0,134,-4357.971191
15,0,135,-2324.837158
15,0,136,-185.272339
15,0,137,-1175.371094
15,0,138,2944.183105
15,0,139,-1709.498535
15,0,140,3646.157471
15,0,141,-4439.089844
15,0,142,-4713.176270
15,0,143,1456.366211
15,0,144,-1547.355103
15,0,145,-2422.664551
15,0,146,1929.001465
15,0,147,326.523560
15,0,148,636.789978
15,0,149,-1410.248291
15,0,150,737.610962
15,0,151,234.146240
15,0,152,-168.495728
15,0,153,-683.120728
15,0,154,-319.548462
15,0,155,1310.887207
15,0,156,-839.662354
15,0,157,-878.854370
15,0,158,5634.586426
15,0,159,5326.966309
15,0,160,-386.657654
15,0,161,-1712.306885
15,0,162,-2867.331055
15,0,163,-1278.764404
15,0,164,-3910.550049
15,0,165,-350.337769
15,0,166,1182.286133
15,0,167,-1849.325439
15,0,168,-1759.862915
15,0,169,3332.879395
15,0,170,-929.181763
15,0,171,-618.838562
15,0,172,-898.489990
15,0,173,1825.507324
15,0,174,1316.529907
15,0,175,-280.524994
15,0,176,85.975449
15,0,177,2236.621826
15,0,178,3758.059082
15,0,179,1243.745728
15,0,180,-1223.002075
15,0,181,5055.686523
15,0,182,2650.589844
15,0,183,-5292.254395
15,0,184,-299.954773
15,0,185,-140.509247
15,0,186,-1427.064453
15,0,187,-1032.723877
15,0,188,2885.511230
15,0,189,-3840.811035
15,0,190,1604.601196
15,0,191,815.932007
15,0,192,4283.881836
15,0,193,-2045.091309
15,0,194,-1796.263306
15,0,195,139.049377
15,0,196,-5711.577637
15,0,197,536.273071
15,0,198,-249.768799
15,0,199,402.033203
15,0,200,6129.616211
15,0,201,-1664.717163
15,0,202,-1309.576294
15,0,203,-1373.976562
15,0,204,-2204.607910
15,0,205,-3440.666260
15,0,206,1783.559937
15,0,207,4982.989258
15,0,208,3011.314941
15,0,209,-5278.144043
15,0,210,1392.188477
15,0,211,2608.594482
15,0,212,3976.175293
15,0,213,2110.729248
15,0,214,4311.830078
15,0,215,1185.049561
15,0,216,1587.822876
15,0,217,-1197.823975
15,0,218,731.975220
15,0,219,-3051.933350
15,0,220,653.700317
15,0,221,-45.468742
15,0,222,55.210556
15,0,223,-5694.747559
15,0,224,-4103.541992
15,0,225,1853.476074
15,0,226,-4394.419922
15,0,227,-1262.024658
15,0,228,-2803.049805
15,0,229,-6905.810547
15,0,230,-1167.013672
15,0,231,-39.755371
15,0,232,603.364197
15,0,233,3486.773193
15,0,234,-1600.442139
15,0,235,-2937.315430
15,0,236,2245.040771
15,0,237,-3172.382568
15,0,238,-1429.849731
15,0,239,-3756.754639
15,0,240,6269.613281
15,0,241,-1362.782959
15,0,242,1685.581299
15,0,243,155.915115
15,0,244,-627.181152
15,0,245,3464.390381
15,0,246,1260.553101
15,0,247,-523.716919
15,0,248,-1569.685547
15,0,249,1531.842896
15,0,250,-2517.699463
15,0,251,-1524.920532
15,0,252,-1645.199951
15,0,253,-2923.290283
15,0,254,-3781.849609
15,0,255,1171.076660
15,0,256,-353.050140
15,0,257,-912.446899
15,0,258,2591.813477
15,0,259,575.321167
15,0,260,2913.318359
15,0,261,-2207.494385
15,0,262,5052.908691
15,0,263,3621.018311
15,0,264,2767.895508
15,0,265,273.419495
15,0,266,-3119.109375
15,0,267,2826.746094
15,0,268,-1821.453125
15,0,269,871.872192
15,0,270,-4279.773438
15,0,271,3598.389893
15,0,272,-587.885498
15,0,273,-1547.348389
15,0,274,1987.761230
15,0,275,-1365.540527
15,0,276,-1432.664673
15,0,277,-1720.659912
15,0,278,-4500.660156
15,0,279,457.822113
15,0,280,3660.099609
15,0,281,5847.013184
15,0,282,1906.694824
15,0,283,-344.684326
15,0,284,2672.928223
15,0,285,-1029.955444
15,0,286,-3888.236328
15,0,287,-2014.381836
15,0,288,2457.697998
15,0,289,4722.924316
15,0,290,586.659912
15,0,291,2172.296387
15,0,292,2286.983887
15,0,293,-341.900696
15,0,294,1948.611938
15,0,295,911.004028
15,0,296,108.312805
15,0,297,-4900.644531
15,0,298,-6038.914062
15,0,299,-3158.280273
15,0,300,975.426331
15,0,301,-3384.801758
15,0,302,-2744.310303
15,0,303,3923.041992
15,0,304,4680.918457
15,0,305,-5619.269531
15,0,306,-1846.536255
15,0,307,-3435.069336
15,0,308,-560.196411
15,0,309,2913.319824
15,0,310,-302.732910
15,0,311,-2613.127197
15,0,312,-1538.793213
15,0,313,466.525055
15,0,314,1020.066284
15,0,315,-2581.957031
15,0,316,41.209045
15,0,317,7883.386230
15,0,318,-3935.552246
15,0,319,3679.717773
15,0,320,5598.247070
15,0,321,2401.622803
15,0,322,5654.266602
15,0,323,852.358398
15,0,324,-918.326172
15,0,325,239.715454
15,0,326,6305.907715
15,0,327,-641.048950
15,0,328,-98.517456
15,0,329,762.786560
15,0,330,-4151.052734
15,0,331,-5644.772461
15,0,332,10145.710938
15,0,333,1959.606323
15,0,334,-2034.016357
15,0,335,-4056.075684
15,0,336,-3214.192139
15,0,337,-1032.714844
15,0,338,-7115.703613
15,0,339,-5085.166016
15,0,340,3240.586914
15,0,341,3142.764404
15,0,342,-568.437500
15,0,343,-1413.315552
15,0,344,-2140.194824
15,0,345,1084.472290
15,0,346,3679.685059
15,0,347,3414.129395
15,0,348,1786.396118
15,0,349,1134.792725
15,0,350,97.011841
15,0,351,-1233.947388
15,0,352,-4338.832520
15,0,353,-839.745605
15,0,354,-1743.058350
15,0,355,2653.302246
15,0,356,4507.482422
15,0,357,3657.501221
15,0,358,-3118.964844
15,0,359,-1983.649414
15,0,360,-0.858276
15,0,361,-238.220093
15,0,362,4616.710449
15,0,363,186.865112
15,0,364,5234.715820
15,0,365,793.627075
15,0,366,-386.718872
15,0,367,617.245972
15,0,368,1671.549927
15,0,369,-1553.000000
15,0,370,-685.805908
15,0,371,-53.638916
15,0,372,-1952.853271
15,0,373,-479.004669
15,0,374,-4047.445312
15,0,375,-808.923767
15,0,376,7245.623535
15,0,377,1892.624268
15,0,378,-3706.384766
15,0,379,1092.658936
15,0,380,790.886780
15,0,381,2060.429932
15,0,382,5329.711914
15,0,383,2776.353027
15,0,384,1736.112305
15,0,385,5268.283691
15,0,386,8020.168945
15,0,387,-3325.990723
15,0,388,603.168152
15,0,389,-3060.362305
15,0,390,-1745.965454
15,0,391,-1206.105713
15,0,392,483.095276
15,0,393,292.989960
15,0,394,-37.133850
15,0,395,-1743.189087
15,0,396,-5664.077148
15,0,397,-268.946167
15,0,398,368.438843
15,0,399,1207.361206
15,0,400,-274.847351
15,0,401,3352.536133
15,0,402,1090.000488
15,0,403,-2389.050781
15,0,404,1028.503418
15,0,405,2038.135498
15,0,406,-2691.248291
15,0,407,-3426.718750
15,0,408,2343.090820
15,0,409,992.172180
15,0,410,-1130.645264
15,0,411,-699.912231
15,0,412,488.708191
15,0,413,-1116.681885
15,0,414,-6578.467773
15,0,415,-4595.688965
15,0,416,2060.298584
15,0,417,3774.932129
15,0,418,-3997.827881
15,0,419,-3454.774414
15,0,420,-2749.960449
15,0,421,-2187.700684
15,0,422,4658.685547
15,0,423,958.526550
15,0,424,2141.576904
15,0,425,1881.754639
15,0,426,5533.822266
15,0,427,2809.947754
15,0,428,-5761.958496
15,0,429,1503.659668
15,0,430,-2654.845947
15,0,431,-2928.727051
15,0,432,3615.391602
15,0,433,3123.146729
15,0,434,-2780.536621
15,0,435,-3074.185547
15,0,436,-1700.864868
15,0,437,1702.566040
15,0,438,902.581909
15,0,439,3858.661621
15,0,440,-1239.479248
15,0,441,978.179443
15,0,442,7994.992676
15,0,443,681.605225
15,0,444,-4377.734863
15,0,445,1495.564819
15,0,446,5011.171387
15,0,447,-2053.505859
15,0,448,-6108.843262
15,0,449,30.065308
15,0,450,-1600.707031
15,0,451,3154.112549
15,0,452,676.082336
15,0,453,-1058.158203
15,0,454,796.423584
15,0,455,5041.748535
15,0,456,-831.269043
15,0,457,1308.115967
15,0,458,-1552.962891
15,0,459,-4836.020020
15,0,460,2952.571045
15,0,461,2871.460938
15,0,462,424.464478
15,0,463,497.206055
15,0,464,2759.653076
15,0,465,-4055.722656
15,0,466,-3667.168457
15,0,467,-1533.347168
15,0,468,5707.274414
15,0,469,-2887.041260
15,0,470,-1127.709351
15,0,471,5399.705078
15,0,472,-1371.110962
15,0,473,1842.193726
15,0,474,2049.291504
15,0,475,-3946.979004
15,0,476,913.798096
15,0,477,838.281006
15,0,478,-2881.305664
15,0,479,4373.395508
15,0,480,-1729.234863
15,0,481,-2532.035400
15,0,482,3335.695312
15,0,483,-3894.050537
15,0,484,-219.123718
15,0,485,-848.143799
15,0,486,-2419.976562
15,0,487,869.036987
15,0,488,-3275.755859
15,0,489,-2033.901978
15,0,490,3156.652588
15,0,491,-1385.054199
15,0,492,-1941.637207
15,0,493,446.696411
15,0,494,-3734.337402
15,0,495,-2998.802246
15,0,496,-680.346558
15,0,497,1311.059326
15,0,498,-4075.527344
15,0,499,-4564.963867
15,0,500,349.014435
15,0,501,566.859253
15,0,502,-7479.272949
15,0,503,3117.584717
15,0,504,-4920.032227
15,0,505,-266.344299
15,0,506,-1309.702026
15,0,507,-1245.267090
15,0,508,3044.890625
15,0,509,-3513.318848
15,0,510,-1661.969971
15,0,511,3064.590332
15,0,512,1691.229614
15,0,513,3883.781250
15,0,514,2723.497070
15,0,515,2326.104492
15,0,516,1708.018066
15,0,517,169.953064
15,0,518,2767.937012
15,0,519,2127.547607
15,0,520,-1317.996948
15,0,521,3811.096436
15,0,522,-291.458771
15,0,523,-3286.738037
15,0,524,-7196.645020
15,0,525,-2489.875488
15,0,526,-1306.595337
15,0,527,253.761292
15,0,528,4552.166992
15,0,529,-1754.254028
15,0,530,-3219.762695
15,0,531,-3410.099609
15,0,532,1322.061646
15,0,533,-263.603638
15,0,534,-1536.018921
15,0,535,455.084686
15,0,536,3688.107910
15,0,537,-1927.897705
15,0,538,-635.458923
15,0,539,3744.065186
15,0,540,5718.899414
15,0,541,-1586.449463
15,0,542,-4092.168457
15,0,543,3282.394043
15,0,544,-1564.357056
15,0,545,-6175.733398
15,0,546,3366.421875
15,0,547,4417.975098
15,0,548,-17.161377
15,0,549,-1049.591797
15,0,550,-1471.838501
15,0,551,-115.445190
15,0,552,-1662.080078
15,0,553,3218.039551
15,0,554,-3999.988770
15,0,555,1624.129639
15,0,556,1674.472046
15,0,557,-2998.884033
15,0,558,3413.872070
15,0,559,-1676.321045
15,0,560,-3804.059082
15,0,561,6244.187500
15,0,562,7335.049805
15,0,563,4163.271973
15,0,564,992.273193
15,0,565,2364.897949
15,0,566,1372.353271
15,0,567,-1301.269653
15,0,568,-372.758057
15,0,569,2560.882080
15,0,570,-4399.944336
15,0,571,-3854.754395
15,0,572,-5481.949219
15,0,573,2994.548340
15,0,574,1760.882568
15,0,575,-5890.504883
15,0,576,2306.606201
15,0,577,1011.564331
15,0,578,-3077.283203
15,0,579,-353.108948
15,0,580,-1684.303589
15,0,581,-2210.157227
15,0,582,-2025.742432
15,0,583,6585.435547
15,0,584,-501.281494
15,0,585,-954.445435
15,0,586,-2758.229004
15,0,587,505.589783
15,0,588,-4352.437012
15,0,589,74.730652
15,0,590,1129.216309
15,0,591,-1472.012939
15,0,592,125.115082
15,0,593,1545.811035
15,0,594,-1457.820190
15,0,595,-1513.506836
15,0,596,-3138.602295
15,0,597,2292.430664
15,0,598,4498.991699
15,0,599,3744.246094
16,0,0,-2345.806885
16,0,1,-3758.163086
16,0,2,1038.210083
16,0,3,-894.336060
16,0,4,3753.805664
16,0,5,2830.882324
16,0,6,3255.999268
16,0,7,1838.064697
16,0,8,940.307007
16,0,9,4590.037598
16,0,10,1449.315674
16,0,11,1731.767456
16,0,12,-600.672485
16,0,13,-214.735107
16,0,14,322.241333
16,0,15,-262.283234
16,0,16,-4015.459473
16,0,17,-3204.402100
16,0,18,2514.855713
16,0,19,2844.877930
16,0,20,95.712418
16,0,21,-5492.132812
16,0,22,2509.252686
16,0,23,1164.052002
16,0,24,-2315.067871
16,0,25,5291.978027
16,0,26,2277.152588
16,0,27,-2921.956543
16,0,28,2590.372803
16,0,29,903.951538
16,0,30,-4317.503906
16,0,31,-3003.052734
16,0,32,-3760.961426
16,0,33,2095.365967
16,0,34,-827.169312
16,0,35,2920.402588
16,0,36,316.649963
16,0,37,174.026123
16,0,38,-3358.227783
16,0,39,3208.437012
16,0,40,397.747559
16,0,41,-2035.399536
16,0,42,4869.682617
16,0,43,-715.337830
16,0,44,1989.075317
16,0,45,403.359711
16,0,46,-337.792053
16,0,47,2210.015869
16,0,48,5096.201172
16,0,49,3258.786377
16,0,50,3888.052246
16,0,51,4953.562500
16,0,52,-4247.614746
16,0,53,-3724.567139
16,0,54,1398.997803
16,0,55,2861.640381
16,0,56,1513.642090
16,0,57,-3277.128906
16,0,58,4128.546875
16,0,59,5753.427734
16,0,60,3096.586426
16,0,61,4576.039551
16,0,62,1801.733765
16,0,63,-7019.101562
16,0,64,1631.072021
16,0,65,-1288.670166
16,0,66,1220.017578
16,0,67,-2038.179443
16,0,68,5577.227051
16,0,69,587.947449
16,0,70,-550.345215
16,0,71,4947.958984
16,0,72,9570.935547
16,0,73,12440.426758
16,0,74,35764.898438
16,0,75,90966.531250
16,0,76,79695.750000
16,0,77,37457.027344
16,0,78,22136.582031
16,0,79,25982.046875
16,0,80,36145.304688
16,0,81,27497.808594
16,0,82,20727.023438
16,0,83,18604.320312
16,0,84,20769.015625
16,0,85,21770.210938
16,0,86,25238.132812
16,0,87,16699.781250
16,0,88,18649.046875
16,0,89,13894.594727
16,0,90,2296.727783
16,0,91,302.640625
16,0,92,-1112.482666
16,0,93,-1741.738281
16,0,94,8899.837891
16,0,95,-3540.053467
16,0,96,-2681.454590
16,0,97,-6870.869141
16,0,98,-3450.529053
16,0,99,-709.746399
16,0,100,1164.021973
16,0,101,-3808.510254
16,0,102,4439.032227
16,0,103,2291.097900
16,0,104,1636.660767
16,0,105,1681.387451
16,0,106,-815.973877
16,0,107,2391.796875
16,0,108,4676.694824
16,0,109,724.955994
16,0,110,-1758.538086
16,0,111,2828.101807
16,0,112,-586.685364
16,0,113,-3481.316895
16,0,114,638.295410
16,0,115,2741.393066
16,0,116,2017.056885
16,0,117,2993.077881
16,0,118,-678.964111
16,0,119,2411.363281
16,0,120,1233.937744
16,0,121,3583.197510
16,0,122,2693.835693
16,0,123,3015.472168
16,0,124,2453.301514
16,0,125,2377.820068
16,0,126,1379.409912
16,0,127,-930.667114
16,0,128,543.153259
16,0,129,-5478.188477
16,0,130,506.763428
16,0,131,1256.341309
16,0,132,-2854.900879
16,0,133,-1179.602051
16,0,134,2945.549561
16,0,135,-5397.082520
16,0,136,-857.910217
16,0,137,2766.546875
16,0,138,5166.028320
16,0,139,-5631.993164
16,0,140,-1369.786621
16,0,141,442.443848
16,0,142,-156.048218
16,0,143,-4983.114746
16,0,144,3999.912354
16,0,145,291.491882
16,0,146,593.521362
16,0,147,-1976.641113
16,0,148,-6392.750000
16,0,149,-4063.007568
16,0,150,6.228760
16,0,151,-312.648071
16,0,152,-1915.080322
16,0,153,2277.134033
16,0,154,-3897.982666
16,0,155,-3058.944336
16,0,156,-4110.655273
16,0,157,4025.127441
16,0,158,87.329819
16,0,159,-1806.072510
16,0,160,-664.926025
16,0,161,-1596.383545
16,0,162,-883.182495
16,0,163,252.250702
16,0,164,-1649.507080
16,0,165,-3201.785156
16,0,166,3720.171143
16,0,167,-4166.463867
16,0,168,887.157593
16,0,169,-2745.733643
16,0,170,-3651.970215
16,0,171,-3403.030273
16,0,172,-3109.312012
16,0,173,-2631.150635
16,0,174,-1227.157104
16,0,175,-1590.734741
16,0,176,-720.882141
16,0,177,-4812.504883
16,0,178,-1213.132812
16,0,179,-2161.258301
16,0,180,-1025.838013
16,0,181,-2938.701660
16,0,182,6592.393555
16,0,183,3199.995117
16,0,184,-2049.519531
16,0,185,3381.831787
16,0,186,2402.992188
16,0,187,2456.136719
16,0,188,-2155.675293
16,0,189,-2544.463135
16,0,190,4041.893799
16,0,191,-5632.053711
16,0,192,-874.791992
16,0,193,2044.997437
16,0,194,241.192474
16,0,195,2657.487793
16,0,196,20.185913
16,0,197,1510.847656
16,0,198,-3472.952393
16,0,199,-1397.881470
16,0,200,1029.832275
16,0,201,3538.476074
16,0,202,2562.388184
16,0,203,-2835.314941
16,0,204,-642.539307
16,0,205,78.888855
16,0,206,-869.114990
16,0,207,573.868408
16,0,208,1231.131104
16,0,209,-1039.864380
16,0,210,-2547.162109
16,0,211,2540.191650
16,0,212,168.468781
16,0,213,604.659180
16,0,214,2593.260254
16,0,215,7224.485840
16,0,216,5333.858887
16,0,217,-4068.589355
16,0,218,-407.649231
16,0,219,6645.547852
16,0,220,1717.628784
16,0,221,-4946.767090
16,0,222,1927.497070
16,0,223,-374.131531
16,0,224,1301.073975
16,0,225,621.512573
16,0,226,825.592285
16,0,227,-2586.426758
16,0,228,-5562.024902
16,0,229,-1853.630737
16,0,230,-3489.691895
16,0,231,1371.034424
16,0,232,-69.419678
16,0,233,3046.291504
16,0,234,-2673.069580
16,0,235,-3579.169678
16,0,236,-3067.368164
16,0,237,397.823364
16,0,238,-343.324402
16,0,239,2540.121094
16,0,240,5205.478027
16,0,241,-1056.506104
16,0,242,-866.287964
16,0,243,-5936.797852
16,0,244,-4124.533203
16,0,245,-1414.473877
16,0,246,-779.657959
16,0,247,-625.878418
16,0,248,-2569.613037
16,0,249,526.396790
16,0,250,691.321777
16,0,251,-653.722778
16,0,252,417.310150
16,0,253,-2211.610352
16,0,254,-939.002319
16,0,255,-2773.646484
16,0,256,-3568.074463
16,0,257,1871.618652
16,0,258,-530.865845
16,0,259,3465.707031
16,0,260,-2832.304688
16,0,261,-4960.836914
16,0,262,1124.903564
16,0,263,-1573.994995
16,0,264,1561.088867
16,0,265,2805.743164
16,0,266,1675.802124
16,0,267,2844.834473
16,0,268,-2642.483887
16,0,269,688.625610
16,0,270,-1590.750732
16,0,271,-5505.958008
16,0,272,-1274.574097
16,0,273,3552.466309
16,0,274,4011.159912
16,0,275,786.474609
16,0,276,3608.283203
16,0,277,-1400.494751
16,0,278,378.172943
16,0,279,-1369.771484
16,0,280,-1380.897461
16,0,281,1611.405762
16,0,282,2551.314209
16,0,283,554.370239
16,0,284,2190.478027
16,0,285,3188.853027
16,0,286,4131.370605
16,0,287,1415.707397
16,0,288,-2135.939697
16,0,289,5135.388184
16,0,290,551.734131
16,0,291,-3861.844727
16,0,292,7736.012207
16,0,293,-466.327179
16,0,294,-2180.789795
16,0,295,-1140.304443
16,0,296,1175.266846
16,0,297,-5030.615234
16,0,298,-4384.527832
16,0,299,-2278.712402
16,0,300,-1232.975342
16,0,301,1242.399658
16,0,302,1082.947144
16,0,303,-4700.764648
16,0,304,1891.129028
16,0,305,-83.526611
16,0,306,-1532.007446
16,0,307,2394.422119
16,0,308,1119.162720
16,0,309,3655.883057
16,0,310,-223.120667
16,0,311,1888.354736
16,0,312,2394.584961
16,0,313,-2401.599121
16,0,314,1645.052979
16,0,315,2545.559814
16,0,316,-234.368042
16,0,317,-329.310303
16,0,318,453.514526
16,0,319,-530.886292
16,0,320,3804.136963
16,0,321,-2085.732178
16,0,322,-4667.027832
16,0,323,-8825.755859
16,0,324,-5086.557129
16,0,325,-936.288696
16,0,326,-1996.246094
16,0,327,3294.990479
16,0,328,4304.697266
16,0,329,-3335.903809
16,0,330,-2233.898193
16,0,331,520.818848
16,0,332,5322.756836
16,0,333,1812.700684
16,0,334,341.819214
16,0,335,6782.621094
16,0,336,3549.819336
16,0,337,-4009.857666
16,0,338,4648.850586
16,0,339,820.139648
16,0,340,2056.079590
16,0,341,-5978.638672
16,0,342,4156.686035
16,0,343,3213.839355
16,0,344,-816.092529
16,0,345,8779.616211
16,0,346,7347.517578
16,0,347,3868.588379
16,0,348,4402.690430
16,0,349,-595.101929
16,0,350,-1985.161377
16,0,351,-3039.424805
16,0,352,-2614.165771
16,0,353,2467.323242
16,0,354,3552.387207
16,0,355,1695.548218
16,0,356,467.575073
16,0,357,-2133.342773
16,0,358,6399.490234
16,0,359,-916.470459
16,0,360,-1000.358948
16,0,361,-5394.229004
16,0,362,-709.851318
16,0,363,366.999329
16,0,364,-866.346863
16,0,365,1608.621216
16,0,366,3211.285645
16,0,367,-1210.326050
16,0,368,1818.413574
16,0,369,1566.686646
16,0,370,2444.953369
16,0,371,2836.498779
16,0,372,-385.350708
16,0,373,277.500580
16,0,374,227.189453
16,0,375,-1506.949707
16,0,376,-1134.814575
16,0,377,-3808.594238
16,0,378,-2670.323242
16,0,379,-3489.651367
16,0,380,2881.161621
16,0,381,-2270.284424
16,0,382,-3514.891602
16,0,383,2128.792969
16,0,384,-829.955139
16,0,385,-2670.222168
16,0,386,1941.488647
16,0,387,-3142.826904
16,0,388,2179.108398
16,0,389,688.773621
16,0,390,2036.731812
16,0,391,-1168.439209
16,0,392,-530.831177
16,0,393,3697.799072
16,0,394,-1095.645996
16,0,395,-3430.787354
16,0,396,3476.961182
16,0,397,-471.863647
16,0,398,554.374268
16,0,399,-1188.175903
16,0,400,3507.795410
16,0,401,241.145599
16,0,402,-1450.841309
16,0,403,-4983.082520
16,0,404,898.447510
16,0,405,-799.240601
16,0,406,1158.549194
16,0,407,-827.172607
16,0,408,-3579.084961
16,0,409,-6073.778320
16,0,410,-6437.515625
16,0,411,-4896.519043
16,0,412,3787.354980
16,0,413,-1490.196289
16,0,414,1166.723145
16,0,415,3286.708008
16,0,416,-1514.988525
16,0,417,-10.505737
16,0,418,1935.499756
16,0,419,-1176.789429
16,0,420,-4267.159180
16,0,421,-5106.141602
16,0,422,322.212830
16,0,423,-4927.088379
16,0,424,-1330.523682
16,0,425,1653.244873
16,0,426,-2664.531494
16,0,427,496.044464
16,0,428,241.154541
16,0,429,53.820618
16,0,430,-2994.691895
16,0,431,-1294.207153
16,0,432,-1660.636353
16,0,433,-2040.961670
16,0,434,1211.484131
16,0,435,-1355.804688
16,0,436,-1408.990479
16,0,437,-2334.640869
16,0,438,2548.356201
16,0,439,-3976.294922
16,0,440,-4258.749512
16,0,441,-2054.960449
16,0,442,1631.068481
16,0,443,-396.413940
16,0,444,1041.161865
16,0,445,-1943.037354
16,0,446,3362.101074
16,0,447,2889.644043
16,0,448,2481.435303
16,0,449,-1585.227051
16,0,450,-4535.728027
16,0,451,4047.554688
16,0,452,2461.734131
16,0,453,613.188354
16,0,454,744.617065
16,0,455,3250.341064
16,0,456,-975.357849
16,0,457,2704.930908
16,0,458,34.178070
16,0,459,-2969.533936
16,0,460,-4454.511719
16,0,461,2962.272461
16,0,462,9232.463867
16,0,463,1952.880127
16,0,464,-2264.557861
16,0,465,2369.457764
16,0,466,1382.193359
16,0,467,-863.552002
16,0,468,-4619.541992
16,0,469,-5005.415527
16,0,470,-592.351685
16,0,471,-1347.406250
16,0,472,-2754.230225
16,0,473,-2868.751709
16,0,474,-2544.392822
16,0,475,-1165.642822
16,0,476,4156.522461
16,0,477,-4720.208496
16,0,478,2735.627197
16,0,479,1122.120361
16,0,480,-1025.834229
16,0,481,4453.331543
16,0,482,-4214.025879
16,0,483,699.881226
16,0,484,-1098.377441
16,0,485,-1327.726196
16,0,486,-2312.327637
16,0,487,-1347.400024
16,0,488,-3218.374023
16,0,489,1133.259766
16,0,490,-4801.166016
16,0,491,-332.223541
16,0,492,-2544.393555
16,0,493,1815.994995
16,0,494,2928.786865
16,0,495,1127.573730
16,0,496,4595.719727
16,0,497,755.894470
16,0,498,3731.443848
16,0,499,-782.404541
16,0,500,-27.038254
16,0,501,1756.873413
16,0,502,1605.760498
16,0,503,5591.231445
16,0,504,1424.120117
16,0,505,-706.971313
16,0,506,2909.261230
16,0,507,-609.141479
16,0,508,-312.597839
16,0,509,-494.232300
16,0,510,2484.167480
16,0,511,5722.624023
16,0,512,-427.264221
16,0,513,-804.982971
16,0,514,1544.151001
16,0,515,25.842407
16,0,516,-2648.007812
16,0,517,34.219116
16,0,518,-145.404480
16,0,519,5085.021484
16,0,520,-1987.963867
16,0,521,-2449.311279
16,0,522,1767.948120
16,0,523,4358.257324
16,0,524,159.966614
16,0,525,4922.898926
16,0,526,5915.705078
16,0,527,-273.430542
16,0,528,-583.844971
16,0,529,439.544922
16,0,530,3401.418945
16,0,531,1222.873291
16,0,532,1687.093750
16,0,533,5230.609375
16,0,534,-3875.525146
16,0,535,2889.995605
16,0,536,971.050049
16,0,537,-981.259766
16,0,538,3879.538086
16,0,539,6499.930664
16,0,540,2243.677002
16,0,541,1919.019653
16,0,542,-2340.060791
16,0,543,-709.882202
16,0,544,4091.958008
16,0,545,-4101.974121
16,0,546,1200.108032
16,0,547,-791.011963
16,0,548,2084.403809
16,0,549,2758.083984
16,0,550,-751.768555
16,0,551,2702.250000
16,0,552,-4708.742188
16,0,553,3622.400879
16,0,554,6047.167969
16,0,555,842.576477
16,0,556,4416.654785
16,0,557,2864.446289
16,0,558,109.742065
16,0,559,-2329.572754
16,0,560,-1403.110596
16,0,561,2783.295654
16,0,562,-967.035339
16,0,563,-6546.389648
16,0,564,-1288.599121
16,0,565,2055.989746
16,0,566,-3626.464600
16,0,567,3653.086426
16,0,568,-4997.112793
16,0,569,-4745.467773
16,0,570,-2373.649658
16,0,571,2005.642456
16,0,572,-4319.888184
16,0,573,4178.936523
16,0,574,274.921265
16,0,575,3091.068359
16,0,576,4514.483887
16,0,577,2232.393555
16,0,578,-443.871826
16,0,579,1698.092041
16,0,580,5123.876465
16,0,581,2651.842773
16,0,582,364.333038
16,0,583,-715.445679
16,0,584,-653.656128
16,0,585,1270.501221
16,0,586,-2608.450195
16,0,587,1457.989990
16,0,588,-1076.067871
16,0,589,2092.597168
16,0,590,-4127.179199
16,0,591,-209.451904
16,0,592,-3369.482422
16,0,593,-5447.525391
16,0,594,-2617.066895
16,0,595,-273.498291
16,0,596,2078.440430
16,0,597,-1126.518555
16,0,598,409.002747
16,0,599,-1923.445801
17,0,0,-3371.515625
17,0,1,1584.293091
17,0,2,851.556152
17,0,3,-1444.556396
17,0,4,-2521.292236
17,0,5,722.887268
17,0,6,-2174.502441
17,0,7,-3119.794678
17,0,8,-1170.480713
17,0,9,3511.218262
17,0,10,7907.661133
17,0,11,-1631.910278
17,0,12,-988.678833
17,0,13,-2356.275391
17,0,14,8081.021484
17,0,15,1740.897217
17,0,16,784.421448
17,0,17,415.272186
17,0,18,3790.893311
17,0,19,3525.204102
17,0,20,-457.308228
17,0,21,-1906.015747
17,0,22,-583.177734
17,0,23,-703.423828
17,0,24,-2691.884277
17,0,25,356.514771
17,0,26,-5966.834961
17,0,27,-3474.979492
17,0,28,4171.240234
17,0,29,-4518.124023
17,0,30,1561.931519
17,0,31,3086.133789
17,0,32,-146.909424
17,0,33,-275.534912
17,0,34,6017.087891
17,0,35,756.451355
17,0,36,-3385.479492
17,0,37,4929.145508
17,0,38,4350.227539
17,0,39,-966.293945
17,0,40,-4372.747559
17,0,41,-1654.324219
17,0,42,-915.983765
17,0,43,3452.506836
17,0,44,-1970.332764
17,0,45,2887.559082
17,0,46,-818.100098
17,0,47,627.797485
17,0,48,5622.718750
17,0,49,-1349.470093
17,0,50,-5443.856934
17,0,51,-2616.384277
17,0,52,-9680.889648
17,0,53,2652.631836
17,0,54,2146.450439
17,0,55,3181.187012
17,0,56,-4744.686523
17,0,57,-1861.277588
17,0,58,1131.204224
17,0,59,1237.495117
17,0,60,-4266.444336
17,0,61,2026.181763
17,0,62,1967.441162
17,0,63,3799.264160
17,0,64,6562.461914
17,0,65,557.933105
17,0,66,-2602.428223
17,0,67,899.058838
17,0,68,6489.681641
17,0,69,-820.911255
17,0,70,5247.947266
17,0,71,4034.178223
17,0,72,3639.870850
17,0,73,7077.030273
17,0,74,8785.822266
17,0,75,12354.462891
17,0,76,12773.943359
17,0,77,23915.984375
17,0,78,39750.933594
17,0,79,44069.085938
17,0,80,30306.482422
17,0,81,22800.078125
17,0,82,19967.052734
17,0,83,23283.972656
17,0,84,25935.259766
17,0,85,28413.126953
17,0,86,19144.769531
17,0,87,14124.726562
17,0,88,11084.706055
17,0,89,4470.495117
17,0,90,1055.625366
17,0,91,-1810.934692
17,0,92,1690.518066
17,0,93,-2157.715820
17,0,94,-2434.602539
17,0,95,4587.992188
17,0,96,1788.459229
17,0,97,2219.090332
17,0,98,-2233.228027
17,0,99,-3237.296875
17,0,100,-3452.564209
17,0,101,3967.072266
17,0,102,60.053223
17,0,103,-2473.752197
17,0,104,-4596.426758
17,0,105,-6629.664062
17,0,106,-843.291992
17,0,107,-804.117004
17,0,108,2605.071533
17,0,109,1637.438721
17,0,110,610.976013
17,0,111,963.410156
17,0,112,1506.000000
17,0,113,5572.346680
17,0,114,1813.586914
17,0,115,-4031.557861
17,0,116,-211.215546
17,0,117,-2445.789307
17,0,118,149.542236
17,0,119,211.124512
17,0,120,3527.991699
17,0,121,253.071350
17,0,122,-169.298050
17,0,123,1125.612549
17,0,124,-3625.974854
17,0,125,-2143.635742
17,0,126,-3723.903320
17,0,127,-2512.900146
17,0,128,2356.204590
17,0,129,-1254.371216
17,0,130,2300.248535
17,0,131,225.091003
17,0,132,1352.132324
17,0,133,404.087646
17,0,134,647.392944
17,0,135,-1525.694458
17,0,136,-1089.350342
17,0,137,-2121.360596
17,0,138,-3866.445557
17,0,139,-1318.649292
17,0,140,-3293.182129
17,0,141,-2538.100830
17,0,142,-90.988770
17,0,143,-7602.906738
17,0,144,-2465.397461
17,0,145,-3077.931641
17,0,146,-292.326477
17,0,147,-6377.952148
17,0,148,-401.342377
17,0,149,-499.245117
17,0,150,-3491.753662
17,0,151,-4487.393066
17,0,152,1279.437256
17,0,153,-493.652008
17,0,154,2333.693848
17,0,155,-4210.496582
17,0,156,1508.778442
17,0,157,-1181.617676
17,0,158,-21.061768
17,0,159,2079.301025
17,0,160,597.062500
17,0,161,-1313.201904
17,0,162,-2898.972168
17,0,163,759.258423
17,0,164,-2731.121094
17,0,165,-6601.899414
17,0,166,1528.303223
17,0,167,7929.934082
17,0,168,2803.689941
17,0,169,4288.675781
17,0,170,-846.028748
17,0,171,-804.062622
17,0,172,-2129.723877
17,0,173,3382.639648
17,0,174,4221.589844
17,0,175,-2210.900635
17,0,176,3027.276367
17,0,177,-3276.331299
17,0,178,-1162.114502
17,0,179,356.577759
17,0,180,-1444.378174
17,0,181,2454.042725
17,0,182,-3438.599609
17,0,183,-4929.216309
17,0,184,-1262.859619
17,0,185,188.721924
17,0,186,-1111.755371
17,0,187,2647.031494
17,0,188,625.005310
17,0,189,-426.568085
17,0,190,-172.084534
17,0,191,-496.494263
17,0,192,-988.649841
17,0,193,-418.146210
17,0,194,-1651.402100
17,0,195,1072.539551
17,0,196,-5424.288086
17,0,197,-2079.343994
17,0,198,3810.394531
17,0,199,4598.941406
17,0,200,412.461853
17,0,201,1433.153320
17,0,202,-1136.935059
17,0,203,2795.344727
17,0,204,2333.843994
17,0,205,454.435791
17,0,206,-1206.850342
17,0,207,-1953.534546
17,0,208,5885.582520
17,0,209,-1746.746094
17,0,210,1254.286377
17,0,211,4350.270020
17,0,212,-1959.223511
17,0,213,2118.441162
17,0,214,2535.222168
17,0,215,2607.856689
17,0,216,1785.649902
17,0,217,-121.774368
17,0,218,3005.064453
17,0,219,-3382.665527
17,0,220,834.545898
17,0,221,-8321.666016
17,0,222,-2345.089600
17,0,223,-1754.942383
17,0,224,-4906.865723
17,0,225,-2862.514893
17,0,226,3933.535645
17,0,227,-882.397644
17,0,228,1891.907104
17,0,229,1044.345947
17,0,230,-876.847412
17,0,231,611.077698
17,0,232,-4157.353516
17,0,233,143.940430
17,0,234,6159.698242
17,0,235,-1355.062866
17,0,236,502.012329
17,0,237,-2194.085693
17,0,238,728.494324
17,0,239,-1198.437256
17,0,240,1771.847900
17,0,241,-1587.127930
17,0,242,197.186157
17,0,243,-2526.887695
17,0,244,-1455.767944
17,0,245,-896.435852
17,0,246,68.297607
17,0,247,-697.839233
17,0,248,473.990936
17,0,249,-2185.652832
17,0,250,2073.736328
17,0,251,1148.009766
17,0,252,1917.095703
17,0,253,-3181.316406
17,0,254,-1517.205811
17,0,255,5359.771484
17,0,256,1766.039795
17,0,257,76.849609
17,0,258,-3326.849121
17,0,259,6198.947266
17,0,260,790.040161
17,0,261,1156.449097
17,0,262,-1536.840210
17,0,263,6777.955078
17,0,264,-76.802124
17,0,265,1307.370117
17,0,266,3807.723145
17,0,267,3251.171875
17,0,268,-2294.749512
17,0,269,-667.075500
17,0,270,-678.378052
17,0,271,703.472534
17,0,272,784.470032
17,0,273,-1984.339966
17,0,274,-2873.734863
17,0,275,641.709473
17,0,276,-3231.622314
17,0,277,6.951881
17,0,278,778.818115
17,0,279,2300.239258
17,0,280,703.279114
17,0,281,-717.417419
17,0,282,-272.743713
17,0,283,996.899658
17,0,284,-4730.686523
17,0,285,-1122.906250
17,0,286,-1248.757324
17,0,287,681.002197
17,0,288,-913.130859
17,0,289,1226.317627
17,0,290,-476.946594
17,0,291,-1097.708252
17,0,292,-622.289551
17,0,293,2068.245605
17,0,294,-619.504639
17,0,295,-4084.601562
17,0,296,-5636.687988
17,0,297,-1067.068848
17,0,298,-2345.165283
17,0,299,-1248.806763
17,0,300,3734.915039
17,0,301,3919.557617
17,0,302,3197.976318
17,0,303,1824.885254
17,0,304,-3357.455566
17,0,305,874.039917
17,0,306,4657.819336
17,0,307,-183.148376
17,0,308,3147.699219
17,0,309,3158.626221
17,0,310,-722.943848
17,0,311,2409.187256
17,0,312,5572.126953
17,0,313,-1296.378174
17,0,314,-5815.465332
17,0,315,5891.200195
17,0,316,-116.137878
17,0,317,2912.799805
17,0,318,1002.451538
17,0,319,-1377.303101
17,0,320,1947.816040
17,0,321,1494.786621
17,0,322,-476.505859
17,0,323,2820.289551
17,0,324,2708.730957
17,0,325,2152.076904
17,0,326,-15.431726
17,0,327,-2932.515381
17,0,328,-107.765228
17,0,329,602.611084
17,0,330,2300.208496
17,0,331,-57.221962
17,0,332,-6417.151367
17,0,333,-652.922607
17,0,334,-3010.553223
17,0,335,-82.693970
17,0,336,-4985.393066
17,0,337,2837.209473
17,0,338,-6347.318848
17,0,339,2557.411621
17,0,340,-183.161194
17,0,341,-5935.701172
17,0,342,-6036.775879
17,0,343,846.283203
17,0,344,3206.416016
17,0,345,1872.373657
17,0,346,432.022888
17,0,347,1458.422607
17,0,348,611.049927
17,0,349,513.054688
17,0,350,3318.209961
17,0,351,1791.186646
17,0,352,493.395111
17,0,353,1830.365967
17,0,354,-1162.050781
17,0,355,946.854736
17,0,356,-8858.412109
17,0,357,-2490.623779
17,0,358,510.317261
17,0,359,2361.847412
17,0,360,2937.949219
17,0,361,-1645.809326
17,0,362,-1749.303467
17,0,363,1768.843994
17,0,364,-1122.930176
17,0,365,-4283.121094
17,0,366,2722.600098
17,0,367,-577.451660
17,0,368,384.503448
17,0,369,320.252686
17,0,370,3544.849609
17,0,371,342.252136
17,0,372,-1427.734253
17,0,373,-1108.919556
17,0,374,-1259.859619
17,0,375,-818.278320
17,0,376,-5698.288086
17,0,377,1377.492920
17,0,378,504.821533
17,0,379,-3707.109619
17,0,380,286.759155
17,0,381,-2814.784668
17,0,382,1335.455566
17,0,383,1089.308105
17,0,384,1886.335449
17,0,385,2381.326660
17,0,386,-840.487610
17,0,387,-633.420654
17,0,388,-3664.927246
17,0,389,275.164978
17,0,390,-1727.224121
17,0,391,-418.256836
17,0,392,-669.910034
17,0,393,353.631226
17,0,394,-4439.831055
17,0,395,4643.922852
17,0,396,5910.820801
17,0,397,-3964.476562
17,0,398,-3452.657715
17,0,399,-795.624023
17,0,400,-1285.141602
17,0,401,-507.587524
17,0,402,-2182.821777
17,0,403,-180.524658
17,0,404,-5443.902344
17,0,405,-5656.470215
17,0,406,3799.456787
17,0,407,1105.977051
17,0,408,1676.535889
17,0,409,-3477.669922
17,0,410,-963.546814
17,0,411,994.210083
17,0,412,-3248.423340
17,0,413,2174.589355
17,0,414,3622.930664
17,0,415,4895.355957
17,0,416,-913.298950
17,0,417,2563.111328
17,0,418,3125.282471
17,0,419,767.609497
17,0,420,-1173.237549
17,0,421,-3791.106689
17,0,422,3088.776611
17,0,423,-977.496521
17,0,424,-3363.229980
17,0,425,275.451050
17,0,426,-1452.855713
17,0,427,4716.500977
17,0,428,-2546.463379
17,0,429,2188.402344
17,0,430,3670.848145
17,0,431,2233.057617
17,0,432,-932.791077
17,0,433,-2263.971436
17,0,434,-2965.994873
17,0,435,-1693.519287
17,0,436,-4112.757812
17,0,437,-2966.093262
17,0,438,-518.964722
17,0,439,2347.751709
17,0,440,2521.209473
17,0,441,5351.561035
17,0,442,1522.901978
17,0,443,3533.505615
17,0,444,-2784.331787
17,0,445,-4948.611328
17,0,446,3147.795166
17,0,447,-264.360779
17,0,448,4062.256592
17,0,449,-6688.161621
17,0,450,3880.428955
17,0,451,308.972473
17,0,452,-7.059937
17,0,453,-1679.713379
17,0,454,300.462708
17,0,455,-4104.052246
17,0,456,2948.907715
17,0,457,541.050049
17,0,458,7647.883789
17,0,459,48.801411
17,0,460,1589.891235
17,0,461,-4218.987793
17,0,462,2314.168945
17,0,463,2879.177734
17,0,464,784.397217
17,0,465,-890.776489
17,0,466,3172.751709
17,0,467,1480.633423
17,0,468,-473.853149
17,0,469,1346.517822
17,0,470,5021.333496
17,0,471,-974.690002
17,0,472,-924.660400
17,0,473,-1008.164795
17,0,474,2353.660645
17,0,475,-2560.532715
17,0,476,1863.898438
17,0,477,2840.058105
17,0,478,2526.603516
17,0,479,174.708252
17,0,480,1284.988647
17,0,481,6596.689941
17,0,482,-5276.095215
17,0,483,5933.208008
17,0,484,2865.154785
17,0,485,-714.758972
17,0,486,-675.610840
17,0,487,1315.783203
17,0,488,-3019.050293
17,0,489,-5401.795898
17,0,490,-2093.443848
17,0,491,-3391.171387
17,0,492,1402.449219
17,0,493,5421.677246
17,0,494,429.287781
17,0,495,1287.902954
17,0,496,-1514.401001
17,0,497,4987.892090
17,0,498,946.634644
17,0,499,1654.214111
17,0,500,-1346.991943
17,0,501,-1231.823364
17,0,502,3402.016113
17,0,503,1047.260498
17,0,504,-2828.999512
17,0,505,-5220.386719
17,0,506,4252.266113
17,0,507,-544.000793
17,0,508,-1363.448730
17,0,509,-2501.651611
17,0,510,3455.161377
17,0,511,725.682495
17,0,512,-1492.286987
17,0,513,1690.538086
17,0,514,1192.868530
17,0,515,-2837.220947
17,0,516,-667.228760
17,0,517,-4263.632324
17,0,518,-434.593719
17,0,519,-3186.880859
17,0,520,3446.944580
17,0,521,-3376.907227
17,0,522,6179.091797
17,0,523,4526.327148
17,0,524,-2923.785645
17,0,525,180.256775
17,0,526,5475.151855
17,0,527,314.545532
17,0,528,-2252.738770
17,0,529,415.213104
17,0,530,-2403.817383
17,0,531,197.198349
17,0,532,3323.849609
17,0,533,-1486.198120
17,0,534,5633.658203
17,0,535,1758.095093
17,0,536,-1816.489746
17,0,537,3973.262695
17,0,538,-177.515625
17,0,539,-610.959839
17,0,540,203.073303
17,0,541,-2152.177734
17,0,542,5704.192871
17,0,543,2023.318970
17,0,544,-1757.649414
17,0,545,132.762634
17,0,546,-1581.434204
17,0,547,515.860840
17,0,548,-1572.870361
17,0,549,-4982.303711
17,0,550,-1883.541504
17,0,551,-7577.789551
17,0,552,901.490417
17,0,553,-672.538940
17,0,554,806.549500
17,0,555,2037.457642
17,0,556,3888.771729
17,0,557,-82.293213
17,0,558,-775.966370
17,0,559,-1411.114258
17,0,560,-1542.375000
17,0,561,-3044.207520
17,0,562,555.095215
17,0,563,-5099.990234
17,0,564,-1083.771118
17,0,565,1690.780762
17,0,566,1100.177979
17,0,567,-5636.852539
17,0,568,-801.280518
17,0,569,4017.311768
17,0,570,2940.798828
17,0,571,-1223.485596
17,0,572,1148.186523
17,0,573,4123.729004
17,0,574,1925.596313
17,0,575,2000.964722
17,0,576,-605.432007
17,0,577,3458.111572
17,0,578,4895.728027
17,0,579,-5197.642578
17,0,580,-1061.624878
17,0,581,2269.438477
17,0,582,-899.317627
17,0,583,3446.871826
17,0,584,4864.883301
17,0,585,2655.282471
17,0,586,2725.209961
17,0,587,6017.553223
17,0,588,-1321.431030
17,0,589,-1483.326050
17,0,590,1382.795654
17,0,591,-2546.789551
17,0,592,-3640.016602
17,0,593,-2375.920654
17,0,594,1299.019531
17,0,595,-2292.090332
17,0,596,-832.043152
17,0,597,-1508.789551
17,0,598,635.891663
17,0,599,1220.930908
18,0,0,1431.648438
18,0,1,-1664.286743
18,0,2,-330.239624
18,0,3,-3412.233887
18,0,4,4337.468262
18,0,5,-397.376892
18,0,6,-2629.157715
18,0,7,2181.194336
18,0,8,2779.693604
18,0,9,525.555115
18,0,10,1884.736694
18,0,11,5953.951660
18,0,12,1716.961670
18,0,13,-391.800110
18,0,14,-495.244019
18,0,15,-344.209869
18,0,16,-2522.864014
18,0,17,4309.482910
18,0,18,3129.291260
18,0,19,4600.346191
18,0,20,1045.739014
18,0,21,229.096893
18,0,22,-570.760864
18,0,23,-3.034027
18,0,24,4359.823730
18,0,25,4040.992920
18,0,26,928.266602
18,0,27,-512.022461
18,0,28,-2903.231934
18,0,29,3339.052246
18,0,30,-1650.300781
18,0,31,-3045.835938
18,0,32,936.672791
18,0,33,-50.580200
18,0,34,5654.681152
18,0,35,1912.706665
18,0,36,-3065.443359
18,0,37,402.497925
18,0,38,-1843.248901
18,0,39,257.042786
18,0,40,2153.224365
18,0,41,8429.058594
18,0,42,989.783691
18,0,43,-2002.675049
18,0,44,-1949.552002
18,0,45,-1924.386353
18,0,46,-4340.717773
18,0,47,-1060.172119
18,0,48,-279.951904
18,0,49,402.484161
18,0,50,-2355.056152
18,0,51,-4536.490234
18,0,52,-10188.667969
18,0,53,377.334656
18,0,54,1431.694580
18,0,55,-2223.644287
18,0,56,-2506.102051
18,0,57,2354.594238
18,0,58,3607.523926
18,0,59,-1121.739258
18,0,60,-3574.437500
18,0,61,4197.622070
18,0,62,3118.120117
18,0,63,-1893.642700
18,0,64,-7442.327148
18,0,65,-2914.443359
18,0,66,-1655.892578
18,0,67,4849.313477
18,0,68,-3353.478027
18,0,69,-1079.758301
18,0,70,-8222.561523
18,0,71,1188.339355
18,0,72,4099.751953
18,0,73,9969.991211
18,0,74,7659.927734
18,0,75,20320.685547
18,0,76,19294.265625
18,0,77,25869.287109
18,0,78,28445.066406
18,0,79,22971.927734
18,0,80,13345.694336
18,0,81,21884.042969
18,0,82,21727.439453
18,0,83,21461.759766
18,0,84,12724.789062
18,0,85,12450.697266
18,0,86,22018.277344
18,0,87,9175.757812
18,0,88,5075.839844
18,0,89,3367.025879
18,0,90,7785.802246
18,0,91,-906.405884
18,0,92,-4765.848145
18,0,93,2983.816406
18,0,94,3920.753418
18,0,95,6275.648926
18,0,96,2074.905518
18,0,97,-1149.631348
18,0,98,1834.374023
18,0,99,-268.742950
18,0,100,-1395.775513
18,0,101,1219.132080
18,0,102,-4514.148438
18,0,103,-509.240234
18,0,104,-1513.254028
18,0,105,-1683.874512
18,0,106,1607.869629
18,0,107,-1502.070068
18,0,108,-142.878067
18,0,109,-4335.163086
18,0,110,2270.711914
18,0,111,1574.289062
18,0,112,-5492.974609
18,0,113,-788.922180
18,0,114,1009.331909
18,0,115,2083.376465
18,0,116,1756.055664
18,0,117,-3943.595703
18,0,118,-3096.194336
18,0,119,4261.954590
18,0,120,408.062500
18,0,121,-3669.542969
18,0,122,-3342.323975
18,0,123,-4307.162598
18,0,124,4113.687012
18,0,125,2785.309326
18,0,126,1297.412964
18,0,127,452.886078
18,0,128,2813.235107
18,0,129,-5476.167480
18,0,130,7975.945312
18,0,131,-1300.694702
18,0,132,2883.200439
18,0,133,2360.202148
18,0,134,2021.780029
18,0,135,4214.432617
18,0,136,3669.119873
18,0,137,3022.976318
18,0,138,-4827.308105
18,0,139,1470.887207
18,0,140,-654.665039
18,0,141,3775.347168
18,0,142,3982.281250
18,0,143,2125.291748
18,0,144,1146.395508
18,0,145,5151.184570
18,0,146,1487.615967
18,0,147,-1267.155396
18,0,148,-1809.766968
18,0,149,1708.560059
18,0,150,-4156.154297
18,0,151,754.919678
18,0,152,-1272.692871
18,0,153,-291.070251
18,0,154,7424.958984
18,0,155,5291.160645
18,0,156,2771.306885
18,0,157,830.356689
18,0,158,500.391510
18,0,159,-25.421692
18,0,160,629.059814
18,0,161,-788.981689
18,0,162,1196.741943
18,0,163,-2981.527344
18,0,164,-2671.027832
18,0,165,1054.024048
18,0,166,3696.967773
18,0,167,4435.301758
18,0,168,257.073730
18,0,169,-1446.096680
18,0,170,2597.847900
18,0,171,256.967773
18,0,172,-1941.168457
18,0,173,-3400.980957
18,0,174,-3149.336426
18,0,175,-2757.809082
18,0,176,3053.777588
18,0,177,4801.707031
18,0,178,-702.204102
18,0,179,36.144897
18,0,180,-4021.737061
18,0,181,-1261.533813
18,0,182,3579.524414
18,0,183,-377.810059
18,0,184,-156.926392
18,0,185,2950.313965
18,0,186,-2055.806641
18,0,187,782.838928
18,0,188,1070.888184
18,0,189,-1225.287720
18,0,190,1305.756226
18,0,191,-2212.511475
18,0,192,-928.743774
18,0,193,690.557556
18,0,194,-492.447845
18,0,195,-3627.553223
18,0,196,-2989.911133
18,0,197,-6547.305176
18,0,198,2830.031250
18,0,199,349.233643
18,0,200,-2013.884399
18,0,201,-3552.080322
18,0,202,1160.369507
18,0,203,-1628.049561
18,0,204,410.869385
18,0,205,-856.031128
18,0,206,3641.082275
18,0,207,3406.168457
18,0,208,4194.833008
18,0,209,1526.747437
18,0,210,3554.380859
18,0,211,1358.995850
18,0,212,673.681274
18,0,213,-330.375244
18,0,214,1188.386230
18,0,215,-1571.974731
18,0,216,-3303.178467
18,0,217,1440.147461
18,0,218,3238.362793
18,0,219,-2713.062988
18,0,220,-4170.143066
18,0,221,-2329.900146
18,0,222,-428.025238
18,0,223,5.377136
18,0,224,-6684.344727
18,0,225,-3171.716797
18,0,226,-2044.638916
18,0,227,-128.989380
18,0,228,2217.563232
18,0,229,3951.481445
18,0,230,743.672485
18,0,231,-3504.485840
18,0,232,-2645.983398
18,0,233,3020.205566
18,0,234,4329.046387
18,0,235,-67.337891
18,0,236,-1241.916992
18,0,237,550.867126
18,0,238,-903.604919
18,0,239,-3457.064453
18,0,240,-1974.774292
18,0,241,1342.145142
18,0,242,-6080.272461
18,0,243,-576.374512
18,0,244,4854.825195
18,0,245,-520.403320
18,0,246,547.992676
18,0,247,1459.580322
18,0,248,-4298.747559
18,0,249,3747.330566
18,0,250,1191.275513
18,0,251,1621.839966
18,0,252,-1714.596313
18,0,253,-2461.354492
18,0,254,-3686.282227
18,0,255,-4368.623047
18,0,256,-299.515228
18,0,257,-2338.247559
18,0,258,1915.544434
18,0,259,1789.638916
18,0,260,-5987.881836
18,0,261,673.938599
18,0,262,-2640.348633
18,0,263,-693.926025
18,0,264,-5322.155762
18,0,265,-1183.331665
18,0,266,1311.402588
18,0,267,-1068.625244
18,0,268,6507.651367
18,0,269,1633.222412
18,0,270,-179.151794
18,0,271,-1636.152100
18,0,272,2410.603760
18,0,273,1890.278198
18,0,274,743.634521
18,0,275,-1283.909180
18,0,276,-190.360840
18,0,277,4401.716309
18,0,278,-2450.158203
18,0,279,2569.794678
18,0,280,-607.031311
18,0,281,-3977.086426
18,0,282,-534.340332
18,0,283,-1359.308350
18,0,284,-934.257812
18,0,285,-1854.443359
18,0,286,-352.624481
18,0,287,2298.691162
18,0,288,119.946594
18,0,289,-2352.302979
18,0,290,24.898621
18,0,291,-1216.788452
18,0,292,1135.387695
18,0,293,5324.712402
18,0,294,-486.908691
18,0,295,757.699280
18,0,296,1876.242188
18,0,297,575.956726
18,0,298,-2072.679932
18,0,299,7503.252441
18,0,300,5657.654785
18,0,301,1453.989868
18,0,302,5556.931152
18,0,303,1278.290039
18,0,304,147.780746
18,0,305,1543.887695
18,0,306,-3121.247559
18,0,307,-987.735596
18,0,308,-347.116272
18,0,309,16.391479
18,0,310,-5274.790527
18,0,311,-7738.755859
18,0,312,-4122.725098
18,0,313,-2321.695801
18,0,314,-512.013794
18,0,315,-1896.356323
18,0,316,-1309.103271
18,0,317,-2794.191406
18,0,318,1031.733398
18,0,319,1806.414795
18,0,320,-3275.127441
18,0,321,-895.196350
18,0,322,-2481.119385
18,0,323,-567.948914
18,0,324,1876.710449
18,0,325,-2701.892822
18,0,326,-1465.766602
18,0,327,2818.829590
18,0,328,-106.437317
18,0,329,-2629.243164
18,0,330,2827.218262
18,0,331,-610.494873
18,0,332,1985.491089
18,0,333,-3585.520020
18,0,334,2905.499023
18,0,335,620.689209
18,0,336,-2682.467773
18,0,337,3064.958496
18,0,338,-1398.598145
18,0,339,478.095215
18,0,340,1837.165771
18,0,341,-3859.678711
18,0,342,3327.781250
18,0,343,-1748.145264
18,0,344,-858.845276
18,0,345,-1099.360229
18,0,346,1132.345459
18,0,347,410.925568
18,0,348,-7148.712402
18,0,349,-4105.864258
18,0,350,-2740.790283
18,0,351,-165.398453
18,0,352,-2536.800781
18,0,353,-6192.134766
18,0,354,1342.068848
18,0,355,2813.345459
18,0,356,-3904.330322
18,0,357,-159.679886
18,0,358,1907.120361
18,0,359,-4013.581543
18,0,360,6932.364258
18,0,361,903.124512
18,0,362,2332.196289
18,0,363,3730.530518
18,0,364,713.002197
18,0,365,581.386597
18,0,366,-1381.945312
18,0,367,-2097.807617
18,0,368,282.160767
18,0,369,1789.560059
18,0,370,2533.615967
18,0,371,3428.547363
18,0,372,1588.250122
18,0,373,1395.299683
18,0,374,3358.509033
18,0,375,-3378.484863
18,0,376,-2679.450684
18,0,377,-1820.793213
18,0,378,-1977.298584
18,0,379,-3470.911133
18,0,380,-828.250610
18,0,381,-235.247955
18,0,382,27.659668
18,0,383,-154.274658
18,0,384,1761.689941
18,0,385,-6222.938965
18,0,386,2891.544189
18,0,387,-1320.230591
18,0,388,-3112.893555
18,0,389,1512.864502
18,0,390,3255.153564
18,0,391,-3647.256836
18,0,392,1565.899414
18,0,393,643.100037
18,0,394,3076.160156
18,0,395,-2629.066650
18,0,396,3204.762939
18,0,397,-3308.844727
18,0,398,52.868652
18,0,399,-61.780457
18,0,400,-7266.187500
18,0,401,-1801.309937
18,0,402,2206.473877
18,0,403,1297.406494
18,0,404,-2799.757812
18,0,405,-2153.679199
18,0,406,5022.552734
18,0,407,-3784.076660
18,0,408,-2578.689697
18,0,409,1604.981323
18,0,410,-780.598328
18,0,411,77.916534
18,0,412,5537.252930
18,0,413,-4131.106934
18,0,414,-956.823547
18,0,415,-6239.544434
18,0,416,2580.983154
18,0,417,1157.548462
18,0,418,-1530.429932
18,0,419,86.447479
18,0,420,-2164.893799
18,0,421,4625.276855
18,0,422,-2545.364502
18,0,423,-279.951538
18,0,424,-363.855774
18,0,425,1951.946167
18,0,426,1887.460327
18,0,427,2469.466064
18,0,428,4947.137695
18,0,429,363.484497
18,0,430,4871.515625
18,0,431,4555.520020
18,0,432,3501.291260
18,0,433,-705.125488
18,0,434,2891.460938
18,0,435,413.651367
18,0,436,-1641.680542
18,0,437,3090.133545
18,0,438,-1597.166504
18,0,439,1006.596985
18,0,440,103.189941
18,0,441,-2069.740479
18,0,442,-414.219666
18,0,443,889.148499
18,0,444,4049.355957
18,0,445,2855.200439
18,0,446,-2131.223877
18,0,447,-6348.754883
18,0,448,-6139.067871
18,0,449,3148.754639
18,0,450,3518.064209
18,0,451,4510.912598
18,0,452,1744.860474
18,0,453,357.379486
18,0,454,-1434.799194
18,0,455,5984.595703
18,0,456,2265.181885
18,0,457,6798.533691
18,0,458,2723.652832
18,0,459,2628.650146
18,0,460,262.661194
18,0,461,-1188.877930
18,0,462,2306.966797
18,0,463,-763.669983
18,0,464,-2827.463623
18,0,465,4608.752441
18,0,466,-3876.401855
18,0,467,-2771.866943
18,0,468,2432.943115
18,0,469,2514.150635
18,0,470,2939.204346
18,0,471,6264.375488
18,0,472,2444.115967
18,0,473,1694.638916
18,0,474,2094.424316
18,0,475,-2690.795654
18,0,476,4261.901855
18,0,477,-3151.992676
18,0,478,-7943.063477
18,0,479,-3957.489990
18,0,480,2007.875488
18,0,481,4046.733154
18,0,482,-2422.162598
18,0,483,-3210.676514
18,0,484,-939.869446
18,0,485,533.815430
18,0,486,-5143.499512
18,0,487,1543.544678
18,0,488,2156.074951
18,0,489,-4391.055664
18,0,490,-3026.222656
18,0,491,570.298096
18,0,492,-1549.583862
18,0,493,-2668.142578
18,0,494,-1353.875854
18,0,495,1691.702271
18,0,496,-1356.423584
18,0,497,-4035.807373
18,0,498,3322.201904
18,0,499,-3412.390137
18,0,500,-1101.915039
18,0,501,5618.045898
18,0,502,-4371.976074
18,0,503,-2699.087402
18,0,504,9432.832031
18,0,505,7265.567383
18,0,506,3344.678955
18,0,507,-4228.997559
18,0,508,-1001.441284
18,0,509,-5660.596680
18,0,510,-1392.964355
18,0,511,-3663.857178
18,0,512,-8787.812500
18,0,513,441.438507
18,0,514,-1952.164673
18,0,515,1878.993164
18,0,516,-445.007202
18,0,517,-1437.675293
18,0,518,3660.642090
18,0,519,-190.420288
18,0,520,953.412781
18,0,521,1619.012573
18,0,522,1300.177612
18,0,523,-640.795593
18,0,524,-534.346863
18,0,525,-598.575684
18,0,526,-422.635620
18,0,527,-3518.324707
18,0,528,-741.279663
18,0,529,2497.305664
18,0,530,525.529541
18,0,531,-1334.839355
18,0,532,-2696.139160
18,0,533,1025.839600
18,0,534,3512.290039
18,0,535,-2184.361572
18,0,536,374.367432
18,0,537,240.360718
18,0,538,5567.915039
18,0,539,-2125.597168
18,0,540,-3440.520508
18,0,541,2259.443115
18,0,542,-287.784180
18,0,543,-6329.199219
18,0,544,1532.698853
18,0,545,6734.411133
18,0,546,6387.101562
18,0,547,805.205994
18,0,548,4493.726562
18,0,549,4776.690430
18,0,550,2360.432617
18,0,551,2293.149170
18,0,552,-3255.187256
18,0,553,-4035.914062
18,0,554,1308.766846
18,0,555,3836.440918
18,0,556,606.360718
18,0,557,-1801.265137
18,0,558,-2450.116699
18,0,559,-4276.619141
18,0,560,508.713074
18,0,561,-4547.607422
18,0,562,-2640.330078
18,0,563,-1748.164673
18,0,564,1364.454834
18,0,565,4508.365723
18,0,566,4748.572754
18,0,567,6289.447266
18,0,568,-3459.861572
18,0,569,-4928.170898
18,0,570,-719.077393
18,0,571,-2953.343506
18,0,572,1683.286621
18,0,573,2114.024170
18,0,574,852.446167
18,0,575,-2623.576172
18,0,576,2553.194824
18,0,577,-1157.970093
18,0,578,978.597229
18,0,579,-4799.274414
18,0,580,-1172.104370
18,0,581,-2326.975586
18,0,582,553.430420
18,0,583,2102.974609
18,0,584,-3605.513428
18,0,585,-5333.425293
18,0,586,1406.423462
18,0,587,2936.250000
18,0,588,-1113.164185
18,0,589,606.357056
18,0,590,-2497.576660
18,0,591,2827.349121
18,0,592,383.022400
18,0,593,1328.020630
18,0,594,2852.377930
18,0,595,-400.285645
18,0,596,1230.124512
18,0,597,-962.472534
18,0,598,-2511.646729
18,0,599,-4614.835938
19,0,0,-1820.181030
19,0,1,2167.922119
19,0,2,-4188.983398
19,0,3,-1389.498047
19,0,4,6197.997559
19,0,5,990.509094
19,0,6,-1789.427979
19,0,7,291.320374
19,0,8,-2015.969727
19,0,9,-186.893219
19,0,10,-1610.444092
19,0,11,2285.365234
19,0,12,2766.399658
19,0,13,3278.234131
19,0,14,3588.661377
19,0,15,-5766.336914
19,0,16,895.421631
19,0,17,2640.552490
19,0,18,3015.330566
19,0,19,-908.477051
19,0,20,-4723.197266
19,0,21,6706.985352
19,0,22,4841.592773
19,0,23,576.591309
19,0,24,4724.106445
19,0,25,2047.648071
19,0,26,688.468811
19,0,27,383.593384
19,0,28,1549.838989
19,0,29,-10.717682
19,0,30,2366.484131
19,0,31,-1389.487305
19,0,32,4469.632324
19,0,33,-712.703247
19,0,34,6762.887695
19,0,35,-3070.312744
19,0,36,-416.223877
19,0,37,744.405029
19,0,38,-4244.941406
19,0,39,-3624.053467
19,0,40,3759.262207
19,0,41,-3640.862305
19,0,42,-335.124146
19,0,43,453.528809
19,0,44,-2919.288330
19,0,45,-1132.169189
19,0,46,2159.540527
19,0,47,39.621681
19,0,48,-2331.959229
19,0,49,3798.369141
19,0,50,976.532654
19,0,51,-4127.469727
19,0,52,1686.878174
19,0,53,-5117.531250
19,0,54,-3176.598145
19,0,55,1991.749756
19,0,56,5163.197266
19,0,57,2016.890381
19,0,58,-402.244995
19,0,59,2321.753906
19,0,60,3739.659424
19,0,61,-2153.029541
19,0,62,-4362.376465
19,0,63,-9055.228516
19,0,64,-4653.264160
19,0,65,1544.235107
19,0,66,-379.896667
19,0,67,-142.185669
19,0,68,1085.641235
19,0,69,3473.940918
19,0,70,-6345.258789
19,0,71,7503.975586
19,0,72,7794.893555
19,0,73,7112.512207
19,0,74,13091.848633
19,0,75,21803.644531
19,0,76,33088.320312
19,0,77,41713.378906
19,0,78,31715.261719
19,0,79,25878.414062
19,0,80,20595.406250
19,0,81,22533.597656
19,0,82,13234.482422
19,0,83,13240.059570
19,0,84,15684.423828
19,0,85,19739.667969
19,0,86,20438.873047
19,0,87,20399.736328
19,0,88,14918.121094
19,0,89,11357.913086
19,0,90,11279.595703
19,0,91,4687.678223
19,0,92,-1132.185181
19,0,93,2064.425781
19,0,94,-2424.286377
19,0,95,-2273.264648
19,0,96,-978.379517
19,0,97,-2737.487549
19,0,98,1837.892090
19,0,99,-1327.960938
19,0,100,-2558.497559
19,0,101,531.828735
19,0,102,-44.286987
19,0,103,-480.548462
19,0,104,-2536.128418
19,0,105,2696.457031
19,0,106,4606.715820
19,0,107,-254.024170
19,0,108,-2606.081543
19,0,109,-846.925659
19,0,110,-1277.652100
19,0,111,-1501.370361
19,0,112,554.233154
19,0,113,4287.872070
19,0,114,-1627.224976
19,0,115,2959.388184
19,0,116,372.455658
19,0,117,-4130.254395
19,0,118,1728.879517
19,0,119,1882.665771
19,0,120,2850.288086
19,0,121,-1850.953125
19,0,122,-2113.875000
19,0,123,2142.750000
19,0,124,302.532715
19,0,125,-1403.479858
19,0,126,2229.441895
19,0,127,-3906.566162
19,0,128,-536.480957
19,0,129,-2309.639648
19,0,130,2964.951904
19,0,131,-2055.086670
19,0,132,696.809814
19,0,133,1292.589111
19,0,134,-226.063690
19,0,135,1527.389893
19,0,136,6052.524902
19,0,137,-1202.077637
19,0,138,2464.299561
19,0,139,-4127.493164
19,0,140,-1515.346436
19,0,141,-3705.123047
19,0,142,-1112.594116
19,0,143,942.972351
19,0,144,5812.013672
19,0,145,-1579.678467
19,0,146,-2259.268799
19,0,147,4427.692383
19,0,148,5714.174805
19,0,149,-3210.153564
19,0,150,-2290.041992
19,0,151,5680.589355
19,0,152,1141.513428
19,0,153,-167.326019
19,0,154,3188.664551
19,0,155,-3556.879150
19,0,156,-4007.243652
19,0,157,-268.018494
19,0,158,2607.024414
19,0,159,-2561.311768
19,0,160,-1218.942871
19,0,161,-2376.752441
19,0,162,2581.869385
19,0,163,825.533691
19,0,164,1393.267212
19,0,165,-6963.547363
19,0,166,4251.465820
19,0,167,-1255.222290
19,0,168,4519.932129
19,0,169,3686.513672
19,0,170,-997.984375
19,0,171,1837.997803
19,0,172,-337.941040
19,0,173,-4938.447266
19,0,174,-1532.129272
19,0,175,-5011.054199
19,0,176,-1727.955811
19,0,177,4100.429199
19,0,178,987.705688
19,0,179,-2569.729004
19,0,180,898.186218
19,0,181,1860.268799
19,0,182,-995.163513
19,0,183,4704.630371
19,0,184,-1459.312256
19,0,185,-2631.303711
19,0,186,4961.833008
19,0,187,-206.490479
19,0,188,28.430542
19,0,189,-2331.946777
19,0,190,-1056.612183
19,0,191,3398.554443
19,0,192,-1571.340698
19,0,193,3599.809570
19,0,194,-1934.795654
19,0,195,394.759796
19,0,196,-3168.160400
19,0,197,1952.597290
19,0,198,3507.573730
19,0,199,3510.332520
19,0,200,-1823.043213
19,0,201,-4479.869629
19,0,202,3650.183838
19,0,203,-3959.773193
19,0,204,2978.951660
19,0,205,-2477.360352
19,0,206,-2941.687744
19,0,207,-5906.206055
19,0,208,-4015.635742
19,0,209,-2905.311768
19,0,210,-5086.787598
19,0,211,-1744.640625
19,0,212,-525.387695
19,0,213,671.579773
19,0,214,-2667.552734
19,0,215,-1618.855957
19,0,216,1689.742920
19,0,217,2408.358398
19,0,218,-1084.686401
19,0,219,2327.349854
19,0,220,492.610352
19,0,221,1904.991455
19,0,222,2528.636963
19,0,223,-2046.770508
19,0,224,3177.549072
19,0,225,3767.653564
19,0,226,-958.842529
19,0,227,892.672241
19,0,228,708.012146
19,0,229,-1135.086182
19,0,230,-1392.310669
19,0,231,900.985046
19,0,232,-1604.889038
19,0,233,2198.670898
19,0,234,-1134.976685
19,0,235,2704.903320
19,0,236,-3682.836426
19,0,237,-4700.766602
19,0,238,1270.273560
19,0,239,201.900940
19,0,240,-8330.935547
19,0,241,-6767.551758
19,0,242,3404.021729
19,0,243,-220.456970
19,0,244,1219.802734
19,0,245,-5797.171875
19,0,246,145.949646
19,0,247,3952.218018
19,0,248,5963.137207
19,0,249,996.142090
19,0,250,-2941.565430
19,0,251,-2868.897461
19,0,252,411.536530
19,0,253,-567.262512
19,0,254,-337.899475
19,0,255,2190.369629
19,0,256,-3556.669678
19,0,257,-570.163818
19,0,258,-2997.732422
19,0,259,-5411.320312
19,0,260,-4007.025391
19,0,261,1379.089966
19,0,262,2646.163330
19,0,263,2738.593506
19,0,264,3524.372559
19,0,265,702.427002
19,0,266,2260.333008
19,0,267,-3693.931152
19,0,268,906.686157
19,0,269,-1221.627441
19,0,270,-463.773682
19,0,271,-3649.002197
19,0,272,-1590.747925
19,0,273,173.910278
19,0,274,1155.585449
19,0,275,106.687439
19,0,276,-3235.367676
19,0,277,226.873749
19,0,278,190.667786
19,0,279,3888.036133
19,0,280,-1280.334839
19,0,281,1077.316772
19,0,282,6620.375488
19,0,283,643.825684
19,0,284,-542.115051
19,0,285,3297.828125
19,0,286,2595.799072
19,0,287,2581.822998
19,0,288,-4675.601562
19,0,289,-259.685547
19,0,290,3166.391113
19,0,291,1770.777222
19,0,292,-4247.655762
19,0,293,372.480164
19,0,294,1946.991089
19,0,295,2039.316528
19,0,296,6679.112793
19,0,297,50.816040
19,0,298,-830.104431
19,0,299,-2524.760742
19,0,300,3138.397461
19,0,301,-1400.744995
19,0,302,7560.097656
19,0,303,1359.616943
19,0,304,-3313.547607
19,0,305,-3171.130371
19,0,306,123.369629
19,0,307,-1322.337646
19,0,308,3717.257812
19,0,309,5828.637695
19,0,310,2559.533936
19,0,311,2503.391113
19,0,312,6376.879883
19,0,313,-2471.574707
19,0,314,-2015.802002
19,0,315,1969.382568
19,0,316,1113.502197
19,0,317,2414.001953
19,0,318,3613.862793
19,0,319,2455.852539
19,0,320,627.020508
19,0,321,2086.824463
19,0,322,624.054688
19,0,323,2282.490723
19,0,324,3205.841064
19,0,325,-4382.124512
19,0,326,2344.084473
19,0,327,-304.330200
19,0,328,-50.039429
19,0,329,-2345.916504
19,0,330,-748.997498
19,0,331,623.757019
19,0,332,1947.042725
19,0,333,-1381.084351
19,0,334,-1207.730591
19,0,335,-2267.654541
19,0,336,-4303.750488
19,0,337,-2108.236328
19,0,338,-2706.713867
19,0,339,1124.807129
19,0,340,62.219116
19,0,341,1247.989624
19,0,342,2772.046631
19,0,343,534.594116
19,0,344,294.088654
19,0,345,-167.418213
19,0,346,2022.541382
19,0,347,-2642.412842
19,0,348,1292.510986
19,0,349,-5648.968750
19,0,350,-2421.377441
19,0,351,-346.359955
19,0,352,1264.958618
19,0,353,-2318.011230
19,0,354,-5167.755371
19,0,355,179.463104
19,0,356,182.147949
19,0,357,-5718.882812
19,0,358,2377.758545
19,0,359,-2765.533691
19,0,360,-421.977417
19,0,361,-4037.974609
19,0,362,148.567749
19,0,363,1502.221802
19,0,364,-3201.790283
19,0,365,4947.720703
19,0,366,305.244263
19,0,367,-843.967896
19,0,368,-4141.407227
19,0,369,-5509.093262
19,0,370,2967.803711
19,0,371,1259.075195
19,0,372,-2706.764404
19,0,373,3199.971680
19,0,374,372.558350
19,0,375,760.968262
19,0,376,2500.747314
19,0,377,859.041687
19,0,378,-1755.692139
19,0,379,-6222.083008
19,0,380,67.422852
19,0,381,391.974243
19,0,382,1138.806885
19,0,383,-1042.647827
19,0,384,1180.717896
19,0,385,5135.233398
19,0,386,-458.164215
19,0,387,3781.568115
19,0,388,-3965.048828
19,0,389,4765.915527
19,0,390,-3551.271484
19,0,391,-1269.314819
19,0,392,-2905.411621
19,0,393,-511.325623
19,0,394,-8023.372559
19,0,395,-1271.952271
19,0,396,-690.316895
19,0,397,7884.218750
19,0,398,-228.699707
19,0,399,-2222.870117
19,0,400,467.500549
19,0,401,2075.641602
19,0,402,45.138916
19,0,403,-2728.959473
19,0,404,143.100082
19,0,405,3591.531738
19,0,406,2372.132568
19,0,407,-558.862854
19,0,408,741.768311
19,0,409,-1179.631348
19,0,410,-1557.237183
19,0,411,2517.492676
19,0,412,1885.445557
19,0,413,187.838440
19,0,414,-1982.279907
19,0,415,1765.052490
19,0,416,-3145.868896
19,0,417,-2776.693115
19,0,418,1821.300171
19,0,419,1946.933960
19,0,420,1521.811035
19,0,421,4925.521973
19,0,422,1390.443726
19,0,423,7064.926758
19,0,424,-4860.416992
19,0,425,-1884.025391
19,0,426,-377.320923
19,0,427,-357.190765
19,0,428,207.452148
19,0,429,-4955.125000
19,0,430,-640.026855
19,0,431,1779.091797
19,0,432,540.148560
19,0,433,9453.254883
19,0,434,-2978.005615
19,0,435,-3411.497070
19,0,436,-2782.439941
19,0,437,548.420410
19,0,438,710.968018
19,0,439,4657.016602
19,0,440,2151.117432
19,0,441,859.025085
19,0,442,-2863.324707
19,0,443,-3254.751465
19,0,444,4564.679199
19,0,445,-3772.294434
19,0,446,467.673584
19,0,447,2307.859863
19,0,448,-3316.434814
19,0,449,3686.365234
19,0,450,3.277443
19,0,451,710.860107
19,0,452,-402.265198
19,0,453,-200.764954
19,0,454,2436.237793
19,0,455,543.046021
19,0,456,3907.461914
19,0,457,-1529.205078
19,0,458,-698.752136
19,0,459,5414.763184
19,0,460,-3632.492676
19,0,461,3211.017090
19,0,462,4600.916504
19,0,463,5937.643555
19,0,464,4665.069336
19,0,465,-2930.570801
19,0,466,-2236.966797
19,0,467,1678.471680
19,0,468,2226.654785
19,0,469,2229.461914
19,0,470,2433.557617
19,0,471,-399.447632
19,0,472,1756.769287
19,0,473,2318.869141
19,0,474,-6303.646484
19,0,475,123.487518
19,0,476,912.165039
19,0,477,1194.499023
19,0,478,5286.194824
19,0,479,610.131958
19,0,480,8617.331055
19,0,481,2251.987305
19,0,482,-4130.241211
19,0,483,3317.429688
19,0,484,-4530.001953
19,0,485,517.788330
19,0,486,-4918.989746
19,0,487,-777.044983
19,0,488,5387.016602
19,0,489,5946.237305
19,0,490,2070.075195
19,0,491,-2074.562256
19,0,492,-1107.080200
19,0,493,864.656616
19,0,494,-16.269775
19,0,495,-1355.958008
19,0,496,3342.530518
19,0,497,-2656.404785
19,0,498,1918.972168
19,0,499,-1904.214233
19,0,500,-223.361755
19,0,501,-1450.854492
19,0,502,4821.948242
19,0,503,322.079346
19,0,504,-2208.879883
19,0,505,2800.080811
19,0,506,324.671631
19,0,507,-4141.453613
19,0,508,2696.493164
19,0,509,-7061.070312
19,0,510,856.185791
19,0,511,3722.748047
19,0,512,-2748.704346
19,0,513,-4312.079102
19,0,514,-3151.589600
19,0,515,-3492.558594
19,0,516,-628.963135
19,0,517,-2519.501709
19,0,518,-3704.976807
19,0,519,979.335205
19,0,520,1667.181152
19,0,521,3940.962891
19,0,522,-2015.847290
19,0,523,-2955.831299
19,0,524,-1151.847412
19,0,525,-5388.921387
19,0,526,-5517.277344
19,0,527,-2189.486572
19,0,528,-1107.166992
19,0,529,-4659.070312
19,0,530,1085.584473
19,0,531,2682.475586
19,0,532,2646.166016
19,0,533,-1383.823242
19,0,534,495.389343
19,0,535,-3165.271484
19,0,536,3090.602539
19,0,537,-3358.426025
19,0,538,-1386.699341
19,0,539,1340.028931
19,0,540,755.345398
19,0,541,1997.390869
19,0,542,-5025.527344
19,0,543,593.369507
19,0,544,4925.274902
19,0,545,2386.088623
19,0,546,2511.703613
19,0,547,-598.146484
19,0,548,-2180.855957
19,0,549,-2522.039062
19,0,550,-1132.079712
19,0,551,509.457611
19,0,552,-2038.255737
19,0,553,-978.369629
19,0,554,2397.249023
19,0,555,5274.991211
19,0,556,1443.622559
19,0,557,1203.120117
19,0,558,4215.091309
19,0,559,3583.107910
19,0,560,3143.901367
19,0,561,-4513.317871
19,0,562,2075.611572
19,0,563,-6420.609375
19,0,564,403.161163
19,0,565,-248.355499
19,0,566,-2351.552246
19,0,567,-1467.847534
19,0,568,3026.537109
19,0,569,-298.624512
19,0,570,532.124878
19,0,571,1686.760010
19,0,572,-2049.532959
19,0,573,-2846.577637
19,0,574,1085.471558
19,0,575,-2491.370605
19,0,576,663.285278
19,0,577,-1456.346191
19,0,578,6164.793457
19,0,579,-1185.356079
19,0,580,-5727.120117
19,0,581,126.204102
19,0,582,-250.929993
19,0,583,-1095.940186
19,0,584,-866.446411
19,0,585,-1836.896973
19,0,586,-6510.060059
19,0,587,-3724.555908
19,0,588,-2950.101318
19,0,589,2075.634766
19,0,590,2109.236816
19,0,591,361.269836
19,0,592,4531.048340
19,0,593,-670.963135
19,0,594,649.272217
19,0,595,-5263.014648
19,0,596,2106.254883
19,0,597,-458.231445
19,0,598,-410.287231
19,0,599,-4642.255371
20,0,0,-3370.799316
20,0,1,-1740.300903
20,0,2,-1804.646606
20,0,3,1159.888794
20,0,4,4199.885742
20,0,5,-940.468262
20,0,6,5673.763672
20,0,7,-1717.944702
20,0,8,-3496.652832
20,0,9,-1941.688721
20,0,10,-1768.293579
20,0,11,-2366.795166
20,0,12,-1125.059082
20,0,13,-420.264648
20,0,14,-630.040894
20,0,15,2074.389160
20,0,16,-3362.407715
20,0,17,1461.925049
20,0,18,-7266.640137
20,0,19,-2965.292236
20,0,20,-1357.147461
20,0,21,-5364.854492
20,0,22,-2330.461914
20,0,23,-5303.332031
20,0,24,3780.395508
20,0,25,259.340424
20,0,26,3500.730469
20,0,27,-3026.827393
20,0,28,-1519.380371
20,0,29,-196.531525
20,0,30,6065.323242
20,0,31,662.073792
20,0,32,4529.918457
20,0,33,6540.732422
20,0,34,3579.022949
20,0,35,-3175.047363
20,0,36,-4028.057373
20,0,37,-4643.292480
20,0,38,-2389.174072
20,0,39,-6324.124023
20,0,40,-4651.682617
20,0,41,-2492.636475
20,0,42,-848.152100
20,0,43,-2182.203613
20,0,44,-3155.446045
20,0,45,-1111.068359
20,0,46,127.879333
20,0,47,1324.893799
20,0,48,-101.449524
20,0,49,-2145.853516
20,0,50,-4374.816406
20,0,51,-1768.289551
20,0,52,-946.048340
20,0,53,-6114.403320
20,0,54,-4909.017578
20,0,55,-3432.313965
20,0,56,158.648376
20,0,57,4292.195312
20,0,58,441.122162
20,0,59,-4609.756348
20,0,60,2916.203857
20,0,61,-2022.802856
20,0,62,1881.422485
20,0,63,1327.664307
20,0,64,-5518.702148
20,0,65,-3169.476562
20,0,66,1017.282654
20,0,67,1285.724243
20,0,68,2309.309814
20,0,69,-369.885864
20,0,70,-3216.985840
20,0,71,-4050.423584
20,0,72,18.830750
20,0,73,13865.303711
20,0,74,34407.089844
20,0,75,83593.031250
20,0,76,74584.781250
20,0,77,33475.984375
20,0,78,26067.337891
20,0,79,31923.666016
20,0,80,41899.585938
20,0,81,28257.109375
20,0,82,16180.948242
20,0,83,14777.009766
20,0,84,18077.189453
20,0,85,14754.677734
20,0,86,25343.039062
20,0,87,21578.681641
20,0,88,11661.542969
20,0,89,2449.133301
20,0,90,-2914.933350
20,0,91,-2461.851807
20,0,92,-2780.686279
20,0,93,910.961853
20,0,94,1523.455322
20,0,95,-5054.422852
20,0,96,-3314.841797
20,0,97,-4000.040039
20,0,98,-2201.777832
20,0,99,-1415.914795
20,0,100,-2926.132324
20,0,101,-5225.012695
20,0,102,-244.065582
20,0,103,-2431.051270
20,0,104,-1874.538574
20,0,105,-3272.967529
20,0,106,-263.613037
20,0,107,513.832764
20,0,108,-1231.314941
20,0,109,-2839.494141
20,0,110,-7803.606934
20,0,111,-1080.274170
20,0,112,-2171.024902
20,0,113,841.074463
20,0,114,2197.445801
20,0,115,-4089.582520
20,0,116,-2414.313232
20,0,117,-1796.264526
20,0,118,-699.999268
20,0,119,-3127.504395
20,0,120,-5605.380859
20,0,121,-1547.378906
20,0,122,2443.552490
20,0,123,905.383789
20,0,124,1073.168457
20,0,125,804.664124
20,0,126,-6553.425781
20,0,127,698.404419
20,0,128,-3099.505371
20,0,129,-1530.630127
20,0,130,-3807.119629
20,0,131,3355.268555
20,0,132,1660.463745
20,0,133,1145.936035
20,0,134,690.016602
20,0,135,3036.450684
20,0,136,200.482117
20,0,137,2256.153076
20,0,138,1948.547363
20,0,139,580.922607
20,0,140,-1197.748779
20,0,141,-2308.028564
20,0,142,-1796.201782
20,0,143,-6184.277344
20,0,144,5637.431641
20,0,145,5013.741211
20,0,146,-887.294922
20,0,147,3285.333496
20,0,148,-2445.073730
20,0,149,-3460.263184
20,0,150,8132.084961
20,0,151,5477.954102
20,0,152,1850.539429
20,0,153,2798.763428
20,0,154,3970.590088
20,0,155,-101.455811
20,0,156,-353.099609
20,0,157,-7014.942383
20,0,158,-202.185913
20,0,159,6325.356445
20,0,160,-392.309814
20,0,161,3151.193359
20,0,162,-2596.103271
20,0,163,-6122.731934
20,0,164,-3147.032715
20,0,165,2060.458252
20,0,166,-79.073273
20,0,167,-1799.031738
20,0,168,-95.871521
20,0,169,-1027.150269
20,0,170,-5742.491211
20,0,171,614.626953
20,0,172,-48.272827
20,0,173,-2791.827637
20,0,174,-4774.748047
20,0,175,3914.598633
20,0,176,3836.405762
20,0,177,2955.349854
20,0,178,1515.043945
20,0,179,-2031.156738
20,0,180,351.678101
20,0,181,1227.010620
20,0,182,1238.154419
20,0,183,298.535767
20,0,184,-420.375000
20,0,185,-2850.709473
20,0,186,-6682.097656
20,0,187,-2931.745605
20,0,188,-2201.753662
20,0,189,-4816.728027
20,0,190,-10729.058594
20,0,191,-2528.900146
20,0,192,-3622.479248
20,0,193,3358.062988
20,0,194,-912.512268
20,0,195,-246.888550
20,0,196,648.065063
20,0,197,1568.185913
20,0,198,-1085.922119
20,0,199,1042.440308
20,0,200,1425.563721
20,0,201,955.658386
20,0,202,-2861.821777
20,0,203,-2895.415771
20,0,204,3176.216797
20,0,205,2787.603027
20,0,206,1543.009033
20,0,207,-6774.319336
20,0,208,346.062988
20,0,209,-2408.685303
20,0,210,368.375244
20,0,211,-1066.370361
20,0,212,-1888.547729
20,0,213,-3988.946777
20,0,214,1970.916382
20,0,215,-1692.757324
20,0,216,-2025.556763
20,0,217,1182.154541
20,0,218,3383.141357
20,0,219,-3256.162354
20,0,220,1109.411499
20,0,221,1716.392822
20,0,222,-1636.814697
20,0,223,-3085.571777
20,0,224,-1924.864502
20,0,225,1179.455566
20,0,226,-1099.845703
20,0,227,1369.548218