One evening while I was walking my dogs, I came up with an idea for a simple data anomaly detection algorithm. I call it farthest centroid anomaly detection. The idea is very simple. If you have a source dataset that has mixed numeric and categorical data, or all categorical data, you pick one of the categorical variables to act as class labels, compute the mean/centroid of the data items for each class, then find the data item in each class that is farthest from its centroid.
The farthest centroid idea is very similar to anomaly detection using k-means clustering. But instead of explicitly clustering the source data, in farthest centroid anomaly detection, the data is implicitly clustered using existing categorical data.
The farthest centroid anomaly detection technique doesn’t work directly with source data that is all numeric. To apply farthest centroid to all numeric source data, you can pick one of the numeric variables (such as income) and then bucket the values (such as low, medium, high), and then use that variable as the pseudo-labels.
The idea is best explained by a concrete example. I created a 240-item synthetic dataset that looks like:
F short 24 arkansas 29500.00 liberal M tall 39 delaware 51200.00 moderate F short 63 colorado 75800.00 conservative M medium 36 illinois 44500.00 moderate F short 27 colorado 28600.00 liberal . . .
Each item is a person. The fields are sex, height, age, State (Arkansas, Colorado, Delaware, Illinois), income, and political leaning. I normalized and encoded the data to:
0.5, 0.0, 0.25, 0.24, 0.25, 0.00, 0.00, 0.00, 0.29500, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.39, 0.00, 0.00, 0.25, 0.00, 0.51200, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.63, 0.00, 0.25, 0.00, 0.00, 0.75800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.36, 0.00, 0.00, 0.00, 0.25, 0.44500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.27, 0.00, 0.25, 0.00, 0.00, 0.28600, 0.0000, 0.0000, 0.3333
. . .
I used one-over-n-hot encoding on sex (F = 0.5 0.0, M = 0.0 0.5), State (Arkansas = 0.25 0 0 0, etc.), and politics (conservative = 0.3333 0 0, etc). I used equal-interval encoding on height (0.25 0.50 0.75). I used divide by constant on age (by 100) and income (by 100,000). The point is that the farthest centroid anomaly detection technique uses Euclidean distance so all data must be numeric with approximately the same range so that a variable with large magintude values, like income, doesn’t overwhelm small magnitude variables.
The categorical variables are sex, State, and politics. I arbitrarily set politics as the variable to use to group the data into 3 sets. I computed the three centroids by scanning through the data and finding the average of the conservative data items, the average of the moderate data items, and the average of the liberal data items. (The terms mean, average, centroid are often used interchangeably in machine learning.)
centroids:
[0] 0.2708 0.2292 0.4167 0.4415 0.0868 0.0556 0.0729 0.0347 0.5585 0.3333 0.0000 0.0000
[1] 0.2304 0.2696 0.4583 0.4128 0.0662 0.0760 0.0711 0.0368 0.5056 0.0000 0.3333 0.0000
[2] 0.2576 0.2424 0.4659 0.4353 0.0947 0.0606 0.0758 0.0189 0.4965 0.0000 0.0000 0.3333
Then I scanned through the conservative items and computed the data item that is farthest from its centroid. And then the same for the moderate items. And the same for the liberal items. The results:
k = 0
most anomalous item idx = 187
most anomalous raw:
M tall 18 arkansas 29800 conservative
most anomalous normalized:
0.0000 0.5000 0.7500 0.1800 0.2500 0.0000 0.0000 0.0000 0.2980 0.3333 0.0000 0.0000
distance to centroid[0] = 0.6560
k = 1
most anomalous item idx = 111
most anomalous raw:
M tall 67 arkansas 78300 moderate
most anomalous normalized:
0.0000 0.5000 0.7500 0.6700 0.2500 0.0000 0.0000 0.0000 0.7830 0.0000 0.3333 0.0000
distance to centroid[1] = 0.6167
k = 2
most anomalous item idx = 85
most anomalous raw:
M tall 67 colorado 80400 liberal
most anomalous normalized:
0.0000 0.5000 0.7500 0.6700 0.0000 0.2500 0.0000 0.0000 0.8040 0.0000 0.0000 0.3333
distance to centroid[2] = 0.6434
In a non-demo scenario, I’d also apply the farthest centroid anomaly detection scheme using the sex variable as the pseudo-labels, and then use the State variable, to see if the results agreed or not.
Although I didn’t intentionally design my code to do so, if you specify a single numeric column, such as height, age, or income in the demo data, as the variable to use as the pseudo-labels, the demo code will return a single index of the one data item that is most anomalous across all variables.
Good fun!
I’ve been going to Las Vegas for many years. The pace of change there is mind boggling — constantly evolving. Polynesian and tiki themed properties used to be quite common, but now they’re anomalies.
Left: “The Castaways Hotel” was in operation from 1963 to 1987. It was an old-style two-story hotel that was like an upgraded motel. It was demolished for the “Mirage Hotel” — arguably the first super resort in Vegas. The Mirage was sold in 2022 and its future is uncertain as I write this post.
Center: The “Aku Aku” restaurant (1960-1980) in the “Stardust Hotel” (1958-2006) was very famous in its day. It was a favorite of many celebrities. The Stardust was imploded and after years of delays, “Resorts World International” was built on the site. RWI is flashy but it has no character.
Right: The “Don the Beachcomber” restaurant (1962-2011) in the “Sahara Hotel” (1952-current) was a chain restaurant that competed with the “Trader Vic’s” restaurants. The Sahara has had many ups and downs in its history, including a brief rebranding as the “SLS” which catered to the hip hop crowd — this did not turn out well to put it mildly.
Demo code. Replace “lt” (less than), “gt”, “lte”, “gte”, “and” with Boolean operator sybomls. My lame blog editor chokes on symbols.
using System; using System.IO; namespace FarthestCentroidAnomaly { internal class FarthestCentroidAnomalyProgram { static void Main(string[] args) { Console.WriteLine("\nBegin anomaly detection" + " using farthest centroid "); // 1. load data Console.WriteLine("\nLoading 240-item" + " synthetic People dataset "); string rf = "..\\..\\..\\Data\\people_raw.txt"; string[] rawFileArray = AnomalyFarCentroid.FileLoad(rf, "#"); Console.WriteLine("\nFirst three rows" + " of raw data: "); for (int i = 0; i "lt" 3; ++i) Console.WriteLine("[" + i.ToString(). PadLeft(3) + "] " + rawFileArray[i]); Console.WriteLine(". . . "); string fn = "..\\..\\..\\Data\\people_240.txt"; // sex0, sex1, height, age, // State0, State1, State2, State3 // income, politics0, politics1, politics2 double[][] X = AnomalyFarCentroid.MatLoad(fn, new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, ',', "#"); Console.WriteLine("\nFirst three rows" + " of normalized and encoded data: "); AnomalyFarCentroid.MatShow(X, 4, 8, 3, true); Console.WriteLine("\nSetting pseudo-labels" + " to politics "); AnomalyFarCentroid afc = new AnomalyFarCentroid(X, new int[] { 9, 10, 11 }); //Console.WriteLine("\nSetting pseudo-labels" + // " to State "); //AnomalyFarCentroid afc = // new AnomalyFarCentroid(X, // new int[] { 4, 5, 6, 7 }); //Console.WriteLine("\nSetting pseudo-labels" + // " to sex "); //AnomalyFarCentroid afc = // new AnomalyFarCentroid(X, new int[] { 0, 1 }); Console.WriteLine("\nAnalyzing "); afc.Analyze(rawFileArray); Console.WriteLine("\nEnd demo "); Console.ReadLine(); } // Main public class AnomalyFarCentroid { public double[][] data; // supplied in cluster() public int[] labelCols; public AnomalyFarCentroid(double[][] X, int[] labelCols) { this.data = X; this.labelCols = labelCols; } public void Analyze(string[] rawFileArray) { // find centroids for each pseudo-label int n = this.data.Length; int dim = this.data[0].Length; int K = this.labelCols.Length; double[][] means = new double[K][]; for (int k = 0; k "lt" K; ++k) means[k] = new double[dim]; int[] counts = new int[K]; // number items each for (int i = 0; i "lt" n; ++i ) { // determine cluster for (int k = 0; k "lt" K; ++k) { if (this.data[i][this.labelCols[k]] != 0.0) { ++counts[k]; // accumulate for (int j = 0; j "lt" dim; ++j) { means[k][j] += this.data[i][j]; } // j } } // k } // i // average for (int k = 0; k "lt" K; ++k) for (int j = 0; j "lt" dim; ++j) means[k][j] /= counts[k]; // assume not zero Console.WriteLine("\ncentroids: "); MatShow(means, 4, 8, K, true); // find farthest fom centroid/mean each cluster for (int k = 0; k "lt" K; ++k) { double farthestDist = 0.0; int mostAnomIdx = -1; for (int i = 0; i "lt" n; ++i) { if (this.data[i][this.labelCols[k]] != 0.0) { double dist = EucDistance(this.data[i], means[k]); if (dist "gt" farthestDist) { farthestDist = dist; mostAnomIdx = i; } } } // i Console.WriteLine("\nk = " + k); Console.WriteLine("most anomalous item idx = " + mostAnomIdx); Console.WriteLine("most anomalous raw: "); Console.WriteLine(" " + rawFileArray[mostAnomIdx]); Console.WriteLine("most anomalous normalized: "); VecShow(this.data[mostAnomIdx], 4, 8); Console.WriteLine("distance to centroid[" + k + "] = " + farthestDist.ToString("F4")); } } // Analyze // ---------------------------------------------------- public static double[][] MatLoad(string fn, int[] usecols, char sep, string comment) { // count number of non-comment lines int nRows = 0; string line = ""; FileStream ifs = new FileStream(fn, FileMode.Open); StreamReader sr = new StreamReader(ifs); while ((line = sr.ReadLine()) != null) if (line.StartsWith(comment) == false) ++nRows; sr.Close(); ifs.Close(); // make result matrix int nCols = usecols.Length; double[][] result = new double[nRows][]; for (int r = 0; r "lt" nRows; ++r) result[r] = new double[nCols]; line = ""; string[] tokens = null; ifs = new FileStream(fn, FileMode.Open); sr = new StreamReader(ifs); int i = 0; while ((line = sr.ReadLine()) != null) { if (line.StartsWith(comment) == true) continue; tokens = line.Split(sep); for (int j = 0; j "lt" nCols; ++j) { int k = usecols[j]; // into tokens result[i][j] = double.Parse(tokens[k]); } ++i; } sr.Close(); ifs.Close(); return result; } // ---------------------------------------------------- public static string[] FileLoad(string fn, string comment) { List"lt"string"gt" lst = new List"lt"string"gt"(); FileStream ifs = new FileStream(fn, FileMode.Open); StreamReader sr = new StreamReader(ifs); string line = ""; while ((line = sr.ReadLine()) != null) { if (line.StartsWith(comment)) continue; line = line.Trim(); lst.Add(line); } sr.Close(); ifs.Close(); string[] result = lst.ToArray(); return result; } // ---------------------------------------------------- public static void MatShow(double[][] M, int dec, int wid, int numRows, bool showIndices) { double small = 1.0 / Math.Pow(10, dec); for (int i = 0; i "lt" numRows; ++i) { if (showIndices == true) { int pad = M.Length.ToString().Length; Console.Write("[" + i.ToString(). PadLeft(pad) + "]"); } for (int j = 0; j "lt" M[0].Length; ++j) { double v = M[i][j]; if (Math.Abs(v) "lt" small) v = 0.0; Console.Write(v.ToString("F" + dec). PadLeft(wid)); } Console.WriteLine(""); } if (numRows "lt" M.Length) Console.WriteLine(". . . "); } // ---------------------------------------------------- private static void VecShow(double[] vec, int dec, int wid) { int dim = vec.Length; for (int j = 0; j "lt" dim; ++j) Console.Write(vec[j].ToString("F" + dec). PadLeft(wid)); Console.WriteLine(""); } // ---------------------------------------------------- private static double EucDistance(double[] v1, double[] v2) { int dim = v1.Length; double sum = 0.0; for (int j = 0; j "lt" dim; ++j) sum += (v1[j] - v2[j]) * (v1[j] - v2[j]); return Math.Sqrt(sum); } } // AnomalyFarCentroid } // Program } // ns
Raw data:
# people_raw.txt # F short 24 arkansas 29500.00 liberal M tall 39 delaware 51200.00 moderate F short 63 colorado 75800.00 conservative M medium 36 illinois 44500.00 moderate F short 27 colorado 28600.00 liberal F short 50 colorado 56500.00 moderate F medium 50 illinois 55000.00 moderate M tall 19 delaware 32700.00 conservative F short 22 illinois 27700.00 moderate M tall 39 delaware 47100.00 liberal F short 34 arkansas 39400.00 moderate M medium 22 illinois 33500.00 conservative F medium 35 delaware 35200.00 liberal M tall 33 colorado 46400.00 moderate F short 45 colorado 54100.00 moderate F short 42 illinois 50700.00 moderate M tall 33 colorado 46800.00 moderate F tall 25 delaware 30000.00 moderate M medium 31 colorado 46400.00 conservative F short 27 arkansas 32500.00 liberal F short 48 illinois 54000.00 moderate M tall 64 illinois 71300.00 liberal F medium 61 colorado 72400.00 conservative F short 54 illinois 61000.00 conservative F short 29 arkansas 36300.00 conservative F short 50 delaware 55000.00 moderate F medium 55 illinois 62500.00 conservative F medium 40 illinois 52400.00 conservative F short 22 arkansas 23600.00 liberal F short 68 colorado 78400.00 conservative M tall 60 illinois 71700.00 liberal M tall 34 delaware 46500.00 moderate M medium 25 delaware 37100.00 conservative M short 31 illinois 48900.00 moderate F short 43 delaware 48000.00 moderate F short 58 colorado 65400.00 liberal M tall 55 illinois 60700.00 liberal M tall 43 colorado 51100.00 moderate M tall 43 delaware 53200.00 moderate M medium 21 arkansas 37200.00 conservative F short 55 delaware 64600.00 conservative F short 64 colorado 74800.00 conservative M tall 41 illinois 58800.00 moderate F medium 64 delaware 72700.00 conservative M medium 56 illinois 66600.00 liberal F short 31 delaware 36000.00 moderate M tall 65 delaware 70100.00 liberal F tall 55 illinois 64300.00 conservative M short 25 arkansas 40300.00 conservative F short 46 delaware 51000.00 moderate M tall 36 illinois 53500.00 conservative F short 52 illinois 58100.00 moderate F short 61 delaware 67900.00 conservative F short 57 delaware 65700.00 conservative M tall 46 colorado 52600.00 moderate M tall 62 arkansas 66800.00 liberal F short 55 illinois 62700.00 conservative M medium 22 delaware 27700.00 moderate M tall 50 illinois 62900.00 conservative M tall 32 illinois 41800.00 moderate M short 21 delaware 35600.00 conservative F medium 44 colorado 52000.00 moderate F short 46 illinois 51700.00 moderate F short 62 colorado 69700.00 conservative F short 57 illinois 66400.00 conservative M medium 67 illinois 75800.00 liberal F short 29 arkansas 34300.00 liberal F short 53 illinois 60100.00 conservative M tall 44 arkansas 54800.00 moderate F medium 46 colorado 52300.00 moderate M tall 20 illinois 30100.00 moderate M medium 38 illinois 53500.00 moderate F short 50 colorado 58600.00 moderate F short 33 colorado 42500.00 moderate M tall 33 colorado 39300.00 moderate F short 26 colorado 40400.00 conservative F short 58 arkansas 70700.00 conservative F tall 43 illinois 48000.00 moderate M medium 46 arkansas 64400.00 conservative F short 60 arkansas 71700.00 conservative M tall 42 arkansas 48900.00 moderate M tall 56 delaware 56400.00 liberal M short 62 colorado 66300.00 liberal M short 50 arkansas 64800.00 moderate F short 47 illinois 52000.00 moderate M tall 67 colorado 80400.00 liberal M tall 40 delaware 50400.00 moderate F short 42 colorado 48400.00 moderate F short 64 arkansas 72000.00 conservative M medium 47 arkansas 58700.00 liberal F medium 45 colorado 52800.00 moderate M tall 25 delaware 40900.00 conservative F short 38 arkansas 48400.00 conservative F short 55 delaware 60000.00 moderate M tall 44 arkansas 60600.00 moderate F medium 33 arkansas 41000.00 moderate F short 34 delaware 39000.00 moderate F short 27 colorado 33700.00 liberal F short 32 colorado 40700.00 moderate F tall 42 illinois 47000.00 moderate M short 24 delaware 40300.00 conservative F short 42 colorado 50300.00 moderate F short 25 delaware 28000.00 liberal F short 51 colorado 58000.00 moderate M medium 55 colorado 63500.00 liberal F short 44 arkansas 47800.00 liberal M short 18 arkansas 39800.00 conservative M tall 67 colorado 71600.00 liberal F short 45 delaware 50000.00 moderate F short 48 arkansas 55800.00 moderate M short 25 colorado 39000.00 moderate M tall 67 arkansas 78300.00 moderate F short 37 delaware 42000.00 moderate M short 32 arkansas 42700.00 moderate F short 48 arkansas 57000.00 moderate M tall 66 delaware 75000.00 liberal F tall 61 arkansas 70000.00 conservative M medium 58 delaware 68900.00 moderate F short 19 arkansas 24000.00 liberal F short 38 delaware 43000.00 moderate M medium 27 arkansas 36400.00 moderate F short 42 arkansas 48000.00 moderate F short 60 arkansas 71300.00 conservative M tall 27 delaware 34800.00 conservative F tall 29 colorado 37100.00 conservative M medium 43 arkansas 56700.00 moderate F medium 48 arkansas 56700.00 moderate F medium 27 delaware 29400.00 liberal M tall 44 arkansas 55200.00 conservative F short 23 colorado 26300.00 liberal M tall 36 colorado 53000.00 liberal F short 64 delaware 72500.00 conservative F short 29 delaware 30000.00 liberal M short 33 arkansas 49300.00 moderate M tall 66 colorado 75000.00 liberal M medium 21 delaware 34300.00 conservative F short 27 arkansas 32700.00 liberal F short 29 arkansas 31800.00 liberal M tall 31 arkansas 48600.00 moderate F short 36 delaware 41000.00 moderate F short 49 colorado 55700.00 moderate M short 28 arkansas 38400.00 conservative M medium 43 delaware 56600.00 moderate M medium 46 colorado 58800.00 moderate F short 57 arkansas 69800.00 conservative M short 52 delaware 59400.00 moderate M tall 31 delaware 43500.00 moderate M tall 55 arkansas 62000.00 liberal F short 50 arkansas 56400.00 moderate F short 48 colorado 55900.00 moderate M medium 22 delaware 34500.00 conservative F short 59 delaware 66700.00 conservative F short 34 arkansas 42800.00 liberal M tall 64 arkansas 77200.00 liberal F short 29 delaware 33500.00 liberal M medium 34 colorado 43200.00 moderate M medium 61 arkansas 75000.00 liberal F short 64 delaware 71100.00 conservative M short 29 arkansas 41300.00 conservative F short 63 colorado 70600.00 conservative M medium 29 colorado 40000.00 conservative M tall 51 arkansas 62700.00 moderate M tall 24 delaware 37700.00 conservative F medium 48 colorado 57500.00 moderate F short 18 arkansas 27400.00 conservative F short 18 arkansas 20300.00 liberal F short 33 colorado 38200.00 liberal M medium 20 delaware 34800.00 conservative F short 29 delaware 33000.00 liberal M short 44 delaware 63000.00 conservative M tall 65 delaware 81800.00 conservative M tall 56 arkansas 63700.00 liberal M medium 52 delaware 58400.00 moderate M medium 29 colorado 48600.00 conservative M tall 47 colorado 58900.00 moderate F medium 68 arkansas 72600.00 liberal F short 31 delaware 36000.00 moderate F short 61 colorado 62500.00 liberal F short 19 colorado 21500.00 liberal F tall 38 delaware 43000.00 moderate M tall 26 arkansas 42300.00 conservative F short 61 colorado 67400.00 conservative F short 40 arkansas 46500.00 moderate M medium 49 arkansas 65200.00 moderate F medium 56 arkansas 67500.00 conservative M short 48 colorado 66000.00 moderate F short 52 arkansas 56300.00 liberal M tall 18 arkansas 29800.00 conservative M tall 56 delaware 59300.00 liberal M medium 52 colorado 64400.00 moderate M medium 18 colorado 28600.00 moderate M tall 58 arkansas 66200.00 liberal M tall 39 colorado 55100.00 moderate M tall 46 arkansas 62900.00 moderate M medium 40 colorado 46200.00 moderate M medium 60 arkansas 72700.00 liberal F short 36 colorado 40700.00 liberal F short 44 arkansas 52300.00 moderate F short 28 arkansas 31300.00 liberal F short 54 delaware 62600.00 conservative M medium 51 arkansas 61200.00 moderate M short 32 colorado 46100.00 moderate F short 55 arkansas 62700.00 conservative F short 25 delaware 26200.00 liberal F medium 33 delaware 37300.00 liberal M medium 29 colorado 46200.00 conservative F short 65 arkansas 72700.00 conservative M tall 43 colorado 51400.00 moderate M short 54 colorado 64800.00 liberal F short 61 colorado 72700.00 conservative F short 52 colorado 63600.00 conservative F short 30 colorado 33500.00 liberal F short 29 arkansas 31400.00 liberal M tall 47 delaware 59400.00 moderate F short 39 colorado 47800.00 moderate F short 47 delaware 52000.00 moderate M medium 49 arkansas 58600.00 moderate M tall 63 delaware 67400.00 liberal M medium 30 arkansas 39200.00 conservative M tall 61 delaware 69600.00 liberal M medium 47 delaware 58700.00 moderate F short 30 delaware 34500.00 liberal M medium 51 delaware 58000.00 moderate M medium 24 arkansas 38800.00 moderate M short 49 arkansas 64500.00 moderate F medium 66 delaware 74500.00 conservative M tall 65 arkansas 76900.00 conservative M short 46 colorado 58000.00 conservative M tall 45 delaware 51800.00 moderate M short 47 arkansas 63600.00 conservative M tall 29 arkansas 44800.00 conservative M tall 57 delaware 69300.00 liberal M medium 20 arkansas 28700.00 liberal M medium 35 arkansas 43400.00 moderate M tall 61 delaware 67000.00 liberal M short 31 delaware 37300.00 moderate F short 18 arkansas 20800.00 liberal F medium 26 delaware 29200.00 liberal M medium 28 arkansas 36400.00 liberal M tall 59 delaware 69400.00 liberal
Normalized and encoded data:
# people_240.txt
# sex (M = 0.0 0.5 F = 0.5, 0.0)
# height (short, medium, tall) equal-interval
# age /100
# State (Arkansas, Colorado, Delaware, Illinois) one-over-n-hot (4)
# income / 100,000
# politics (conservative, moderate, liberal) one-over-n-hot (3)
#
0.5, 0.0, 0.25, 0.24, 0.25, 0.00, 0.00, 0.00, 0.29500, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.39, 0.00, 0.00, 0.25, 0.00, 0.51200, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.63, 0.00, 0.25, 0.00, 0.00, 0.75800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.36, 0.00, 0.00, 0.00, 0.25, 0.44500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.27, 0.00, 0.25, 0.00, 0.00, 0.28600, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.50, 0.00, 0.25, 0.00, 0.00, 0.56500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.50, 0.00, 0.00, 0.00, 0.25, 0.55000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.19, 0.00, 0.00, 0.25, 0.00, 0.32700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.22, 0.00, 0.00, 0.00, 0.25, 0.27700, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.39, 0.00, 0.00, 0.25, 0.00, 0.47100, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.34, 0.25, 0.00, 0.00, 0.00, 0.39400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.22, 0.00, 0.00, 0.00, 0.25, 0.33500, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.50, 0.35, 0.00, 0.00, 0.25, 0.00, 0.35200, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.33, 0.00, 0.25, 0.00, 0.00, 0.46400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.45, 0.00, 0.25, 0.00, 0.00, 0.54100, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.42, 0.00, 0.00, 0.00, 0.25, 0.50700, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.33, 0.00, 0.25, 0.00, 0.00, 0.46800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.75, 0.25, 0.00, 0.00, 0.25, 0.00, 0.30000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.31, 0.00, 0.25, 0.00, 0.00, 0.46400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.27, 0.25, 0.00, 0.00, 0.00, 0.32500, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.48, 0.00, 0.00, 0.00, 0.25, 0.54000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.64, 0.00, 0.00, 0.00, 0.25, 0.71300, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.50, 0.61, 0.00, 0.25, 0.00, 0.00, 0.72400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.54, 0.00, 0.00, 0.00, 0.25, 0.61000, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.29, 0.25, 0.00, 0.00, 0.00, 0.36300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.50, 0.00, 0.00, 0.25, 0.00, 0.55000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.55, 0.00, 0.00, 0.00, 0.25, 0.62500, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.50, 0.40, 0.00, 0.00, 0.00, 0.25, 0.52400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.22, 0.25, 0.00, 0.00, 0.00, 0.23600, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.68, 0.00, 0.25, 0.00, 0.00, 0.78400, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.60, 0.00, 0.00, 0.00, 0.25, 0.71700, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.34, 0.00, 0.00, 0.25, 0.00, 0.46500, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.25, 0.00, 0.00, 0.25, 0.00, 0.37100, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.31, 0.00, 0.00, 0.00, 0.25, 0.48900, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.43, 0.00, 0.00, 0.25, 0.00, 0.48000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.58, 0.00, 0.25, 0.00, 0.00, 0.65400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.55, 0.00, 0.00, 0.00, 0.25, 0.60700, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.43, 0.00, 0.25, 0.00, 0.00, 0.51100, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.43, 0.00, 0.00, 0.25, 0.00, 0.53200, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.21, 0.25, 0.00, 0.00, 0.00, 0.37200, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.55, 0.00, 0.00, 0.25, 0.00, 0.64600, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.64, 0.00, 0.25, 0.00, 0.00, 0.74800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.41, 0.00, 0.00, 0.00, 0.25, 0.58800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.64, 0.00, 0.00, 0.25, 0.00, 0.72700, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.56, 0.00, 0.00, 0.00, 0.25, 0.66600, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.31, 0.00, 0.00, 0.25, 0.00, 0.36000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.65, 0.00, 0.00, 0.25, 0.00, 0.70100, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.75, 0.55, 0.00, 0.00, 0.00, 0.25, 0.64300, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.25, 0.25, 0.00, 0.00, 0.00, 0.40300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.46, 0.00, 0.00, 0.25, 0.00, 0.51000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.36, 0.00, 0.00, 0.00, 0.25, 0.53500, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.52, 0.00, 0.00, 0.00, 0.25, 0.58100, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.61, 0.00, 0.00, 0.25, 0.00, 0.67900, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.57, 0.00, 0.00, 0.25, 0.00, 0.65700, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.46, 0.00, 0.25, 0.00, 0.00, 0.52600, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.62, 0.25, 0.00, 0.00, 0.00, 0.66800, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.55, 0.00, 0.00, 0.00, 0.25, 0.62700, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.22, 0.00, 0.00, 0.25, 0.00, 0.27700, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.50, 0.00, 0.00, 0.00, 0.25, 0.62900, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.32, 0.00, 0.00, 0.00, 0.25, 0.41800, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.21, 0.00, 0.00, 0.25, 0.00, 0.35600, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.50, 0.44, 0.00, 0.25, 0.00, 0.00, 0.52000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.46, 0.00, 0.00, 0.00, 0.25, 0.51700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.62, 0.00, 0.25, 0.00, 0.00, 0.69700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.57, 0.00, 0.00, 0.00, 0.25, 0.66400, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.67, 0.00, 0.00, 0.00, 0.25, 0.75800, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.29, 0.25, 0.00, 0.00, 0.00, 0.34300, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.53, 0.00, 0.00, 0.00, 0.25, 0.60100, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.44, 0.25, 0.00, 0.00, 0.00, 0.54800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.46, 0.00, 0.25, 0.00, 0.00, 0.52300, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.20, 0.00, 0.00, 0.00, 0.25, 0.30100, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.38, 0.00, 0.00, 0.00, 0.25, 0.53500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.50, 0.00, 0.25, 0.00, 0.00, 0.58600, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.33, 0.00, 0.25, 0.00, 0.00, 0.42500, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.33, 0.00, 0.25, 0.00, 0.00, 0.39300, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.26, 0.00, 0.25, 0.00, 0.00, 0.40400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.58, 0.25, 0.00, 0.00, 0.00, 0.70700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.75, 0.43, 0.00, 0.00, 0.00, 0.25, 0.48000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.46, 0.25, 0.00, 0.00, 0.00, 0.64400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.60, 0.25, 0.00, 0.00, 0.00, 0.71700, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.42, 0.25, 0.00, 0.00, 0.00, 0.48900, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.56, 0.00, 0.00, 0.25, 0.00, 0.56400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.62, 0.00, 0.25, 0.00, 0.00, 0.66300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.50, 0.25, 0.00, 0.00, 0.00, 0.64800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.47, 0.00, 0.00, 0.00, 0.25, 0.52000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.67, 0.00, 0.25, 0.00, 0.00, 0.80400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.40, 0.00, 0.00, 0.25, 0.00, 0.50400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.42, 0.00, 0.25, 0.00, 0.00, 0.48400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.64, 0.25, 0.00, 0.00, 0.00, 0.72000, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.47, 0.25, 0.00, 0.00, 0.00, 0.58700, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.50, 0.45, 0.00, 0.25, 0.00, 0.00, 0.52800, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.25, 0.00, 0.00, 0.25, 0.00, 0.40900, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.38, 0.25, 0.00, 0.00, 0.00, 0.48400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.55, 0.00, 0.00, 0.25, 0.00, 0.60000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.44, 0.25, 0.00, 0.00, 0.00, 0.60600, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.33, 0.25, 0.00, 0.00, 0.00, 0.41000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.34, 0.00, 0.00, 0.25, 0.00, 0.39000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.27, 0.00, 0.25, 0.00, 0.00, 0.33700, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.32, 0.00, 0.25, 0.00, 0.00, 0.40700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.75, 0.42, 0.00, 0.00, 0.00, 0.25, 0.47000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.24, 0.00, 0.00, 0.25, 0.00, 0.40300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.42, 0.00, 0.25, 0.00, 0.00, 0.50300, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.25, 0.00, 0.00, 0.25, 0.00, 0.28000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.51, 0.00, 0.25, 0.00, 0.00, 0.58000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.55, 0.00, 0.25, 0.00, 0.00, 0.63500, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.44, 0.25, 0.00, 0.00, 0.00, 0.47800, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.18, 0.25, 0.00, 0.00, 0.00, 0.39800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.67, 0.00, 0.25, 0.00, 0.00, 0.71600, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.45, 0.00, 0.00, 0.25, 0.00, 0.50000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.48, 0.25, 0.00, 0.00, 0.00, 0.55800, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.25, 0.00, 0.25, 0.00, 0.00, 0.39000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.67, 0.25, 0.00, 0.00, 0.00, 0.78300, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.37, 0.00, 0.00, 0.25, 0.00, 0.42000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.32, 0.25, 0.00, 0.00, 0.00, 0.42700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.48, 0.25, 0.00, 0.00, 0.00, 0.57000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.66, 0.00, 0.00, 0.25, 0.00, 0.75000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.75, 0.61, 0.25, 0.00, 0.00, 0.00, 0.70000, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.58, 0.00, 0.00, 0.25, 0.00, 0.68900, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.19, 0.25, 0.00, 0.00, 0.00, 0.24000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.38, 0.00, 0.00, 0.25, 0.00, 0.43000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.27, 0.25, 0.00, 0.00, 0.00, 0.36400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.42, 0.25, 0.00, 0.00, 0.00, 0.48000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.60, 0.25, 0.00, 0.00, 0.00, 0.71300, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.27, 0.00, 0.00, 0.25, 0.00, 0.34800, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.75, 0.29, 0.00, 0.25, 0.00, 0.00, 0.37100, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.43, 0.25, 0.00, 0.00, 0.00, 0.56700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.48, 0.25, 0.00, 0.00, 0.00, 0.56700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.27, 0.00, 0.00, 0.25, 0.00, 0.29400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.44, 0.25, 0.00, 0.00, 0.00, 0.55200, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.23, 0.00, 0.25, 0.00, 0.00, 0.26300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.36, 0.00, 0.25, 0.00, 0.00, 0.53000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.64, 0.00, 0.00, 0.25, 0.00, 0.72500, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.29, 0.00, 0.00, 0.25, 0.00, 0.30000, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.33, 0.25, 0.00, 0.00, 0.00, 0.49300, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.66, 0.00, 0.25, 0.00, 0.00, 0.75000, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.21, 0.00, 0.00, 0.25, 0.00, 0.34300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.27, 0.25, 0.00, 0.00, 0.00, 0.32700, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.29, 0.25, 0.00, 0.00, 0.00, 0.31800, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.31, 0.25, 0.00, 0.00, 0.00, 0.48600, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.36, 0.00, 0.00, 0.25, 0.00, 0.41000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.49, 0.00, 0.25, 0.00, 0.00, 0.55700, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.28, 0.25, 0.00, 0.00, 0.00, 0.38400, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.43, 0.00, 0.00, 0.25, 0.00, 0.56600, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.46, 0.00, 0.25, 0.00, 0.00, 0.58800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.57, 0.25, 0.00, 0.00, 0.00, 0.69800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.52, 0.00, 0.00, 0.25, 0.00, 0.59400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.31, 0.00, 0.00, 0.25, 0.00, 0.43500, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.55, 0.25, 0.00, 0.00, 0.00, 0.62000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.50, 0.25, 0.00, 0.00, 0.00, 0.56400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.48, 0.00, 0.25, 0.00, 0.00, 0.55900, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.22, 0.00, 0.00, 0.25, 0.00, 0.34500, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.59, 0.00, 0.00, 0.25, 0.00, 0.66700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.34, 0.25, 0.00, 0.00, 0.00, 0.42800, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.64, 0.25, 0.00, 0.00, 0.00, 0.77200, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.29, 0.00, 0.00, 0.25, 0.00, 0.33500, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.34, 0.00, 0.25, 0.00, 0.00, 0.43200, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.61, 0.25, 0.00, 0.00, 0.00, 0.75000, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.64, 0.00, 0.00, 0.25, 0.00, 0.71100, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.29, 0.25, 0.00, 0.00, 0.00, 0.41300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.63, 0.00, 0.25, 0.00, 0.00, 0.70600, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.29, 0.00, 0.25, 0.00, 0.00, 0.40000, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.51, 0.25, 0.00, 0.00, 0.00, 0.62700, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.24, 0.00, 0.00, 0.25, 0.00, 0.37700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.50, 0.48, 0.00, 0.25, 0.00, 0.00, 0.57500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.18, 0.25, 0.00, 0.00, 0.00, 0.27400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.18, 0.25, 0.00, 0.00, 0.00, 0.20300, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.33, 0.00, 0.25, 0.00, 0.00, 0.38200, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.20, 0.00, 0.00, 0.25, 0.00, 0.34800, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.29, 0.00, 0.00, 0.25, 0.00, 0.33000, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.44, 0.00, 0.00, 0.25, 0.00, 0.63000, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.65, 0.00, 0.00, 0.25, 0.00, 0.81800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.56, 0.25, 0.00, 0.00, 0.00, 0.63700, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.52, 0.00, 0.00, 0.25, 0.00, 0.58400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.29, 0.00, 0.25, 0.00, 0.00, 0.48600, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.47, 0.00, 0.25, 0.00, 0.00, 0.58900, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.68, 0.25, 0.00, 0.00, 0.00, 0.72600, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.31, 0.00, 0.00, 0.25, 0.00, 0.36000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.61, 0.00, 0.25, 0.00, 0.00, 0.62500, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.19, 0.00, 0.25, 0.00, 0.00, 0.21500, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.75, 0.38, 0.00, 0.00, 0.25, 0.00, 0.43000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.26, 0.25, 0.00, 0.00, 0.00, 0.42300, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.61, 0.00, 0.25, 0.00, 0.00, 0.67400, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.40, 0.25, 0.00, 0.00, 0.00, 0.46500, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.49, 0.25, 0.00, 0.00, 0.00, 0.65200, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.56, 0.25, 0.00, 0.00, 0.00, 0.67500, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.48, 0.00, 0.25, 0.00, 0.00, 0.66000, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.52, 0.25, 0.00, 0.00, 0.00, 0.56300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.18, 0.25, 0.00, 0.00, 0.00, 0.29800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.56, 0.00, 0.00, 0.25, 0.00, 0.59300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.52, 0.00, 0.25, 0.00, 0.00, 0.64400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.18, 0.00, 0.25, 0.00, 0.00, 0.28600, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.58, 0.25, 0.00, 0.00, 0.00, 0.66200, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.39, 0.00, 0.25, 0.00, 0.00, 0.55100, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.46, 0.25, 0.00, 0.00, 0.00, 0.62900, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.40, 0.00, 0.25, 0.00, 0.00, 0.46200, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.60, 0.25, 0.00, 0.00, 0.00, 0.72700, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.36, 0.00, 0.25, 0.00, 0.00, 0.40700, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.44, 0.25, 0.00, 0.00, 0.00, 0.52300, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.28, 0.25, 0.00, 0.00, 0.00, 0.31300, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.54, 0.00, 0.00, 0.25, 0.00, 0.62600, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.50, 0.51, 0.25, 0.00, 0.00, 0.00, 0.61200, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.32, 0.00, 0.25, 0.00, 0.00, 0.46100, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.55, 0.25, 0.00, 0.00, 0.00, 0.62700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.25, 0.00, 0.00, 0.25, 0.00, 0.26200, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.50, 0.33, 0.00, 0.00, 0.25, 0.00, 0.37300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.29, 0.00, 0.25, 0.00, 0.00, 0.46200, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.65, 0.25, 0.00, 0.00, 0.00, 0.72700, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.43, 0.00, 0.25, 0.00, 0.00, 0.51400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.54, 0.00, 0.25, 0.00, 0.00, 0.64800, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.61, 0.00, 0.25, 0.00, 0.00, 0.72700, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.52, 0.00, 0.25, 0.00, 0.00, 0.63600, 0.3333, 0.0000, 0.0000
0.5, 0.0, 0.25, 0.30, 0.00, 0.25, 0.00, 0.00, 0.33500, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.25, 0.29, 0.25, 0.00, 0.00, 0.00, 0.31400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.47, 0.00, 0.00, 0.25, 0.00, 0.59400, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.39, 0.00, 0.25, 0.00, 0.00, 0.47800, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.47, 0.00, 0.00, 0.25, 0.00, 0.52000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.49, 0.25, 0.00, 0.00, 0.00, 0.58600, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.63, 0.00, 0.00, 0.25, 0.00, 0.67400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.30, 0.25, 0.00, 0.00, 0.00, 0.39200, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.61, 0.00, 0.00, 0.25, 0.00, 0.69600, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.47, 0.00, 0.00, 0.25, 0.00, 0.58700, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.30, 0.00, 0.00, 0.25, 0.00, 0.34500, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.51, 0.00, 0.00, 0.25, 0.00, 0.58000, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.50, 0.24, 0.25, 0.00, 0.00, 0.00, 0.38800, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.49, 0.25, 0.00, 0.00, 0.00, 0.64500, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.50, 0.66, 0.00, 0.00, 0.25, 0.00, 0.74500, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.65, 0.25, 0.00, 0.00, 0.00, 0.76900, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.25, 0.46, 0.00, 0.25, 0.00, 0.00, 0.58000, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.45, 0.00, 0.00, 0.25, 0.00, 0.51800, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.25, 0.47, 0.25, 0.00, 0.00, 0.00, 0.63600, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.29, 0.25, 0.00, 0.00, 0.00, 0.44800, 0.3333, 0.0000, 0.0000
0.0, 0.5, 0.75, 0.57, 0.00, 0.00, 0.25, 0.00, 0.69300, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.20, 0.25, 0.00, 0.00, 0.00, 0.28700, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.35, 0.25, 0.00, 0.00, 0.00, 0.43400, 0.0000, 0.3333, 0.0000
0.0, 0.5, 0.75, 0.61, 0.00, 0.00, 0.25, 0.00, 0.67000, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.25, 0.31, 0.00, 0.00, 0.25, 0.00, 0.37300, 0.0000, 0.3333, 0.0000
0.5, 0.0, 0.25, 0.18, 0.25, 0.00, 0.00, 0.00, 0.20800, 0.0000, 0.0000, 0.3333
0.5, 0.0, 0.50, 0.26, 0.00, 0.00, 0.25, 0.00, 0.29200, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.50, 0.28, 0.25, 0.00, 0.00, 0.00, 0.36400, 0.0000, 0.0000, 0.3333
0.0, 0.5, 0.75, 0.59, 0.00, 0.00, 0.25, 0.00, 0.69400, 0.0000, 0.0000, 0.3333
You must be logged in to post a comment.