/**
* Copyright (C) 2013 Gundog Studios LLC.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.gundogstudios.models.tristripper;
import java.util.Arrays;
/**
* To use, call generateStrips method, passing your triangle index list and then construct geometry/render resulting
* PrimitiveGroup objects. Features:
* <ul>
* <li>generates strips from arbitrary geometry.
* <li>flexibly optimizes for post TnL vertex caches (16 on GeForce1/2, 24 on GeForce3).
* <li>can stitch together strips using degenerate triangles, or not.
* <li>can output lists instead of strips.
* <li>can optionally throw excessively small strips into a list instead.
* <li>can remap indices to improve spatial locality in your vertex buffers.
* </ul>
* On cache sizes: Note that it's better to UNDERESTIMATE the cache size instead of OVERESTIMATING. So, if you're
* targetting GeForce1, 2, and 3, be conservative and use the GeForce1_2 cache size, NOT the GeForce3 cache size. This
* will make sure you don't "blow" the cache of the GeForce1 and 2. Also note that the cache size you specify is the
* "actual" cache size, not the "effective" cache size you may have heard about. This is 16 for GeForce1 and 2, and 24
* for GeForce3.
*
* Credit goes to Curtis Beeson and Joe Demers for the basis for this stripifier and to Jason Regier and Jon Stone at
* Blizzard for providing a much cleaner version of CreateStrips().
*
* Ported to java by Artur Biesiadowski <abies@pg.gda.pl>
*/
public class TriStrip {
public static float[] VERTICES = new float[] { 20.282211f, 8.880501f, 171.44498f, 21.87819f, 8.880501f, 185.03712f,
21.87819f, 0.16980362f, 170.79774f, 24.538155f, -0.52705383f, 185.03712f, 21.87819f, 0.16980362f,
170.79774f, 21.87819f, 8.880501f, 185.03712f, 3.2584648f, 9.577354f, 169.50325f, 2.194481f, 12.364777f,
183.74263f, 11.23835f, 12.713207f, 170.1505f, 10.706352f, 15.152203f, 183.74263f, 11.23835f, 12.713207f,
170.1505f, 2.194481f, 12.364777f, 183.74263f, 11.23835f, 12.713207f, 170.1505f, 10.706352f, 15.152203f,
183.74263f, 20.282211f, 8.880501f, 171.44498f, 21.87819f, 8.880501f, 185.03712f, 20.282211f, 8.880501f,
171.44498f, 10.706352f, 15.152203f, 183.74263f, 0.5985031f, -0.1786232f, 169.50325f, -1.5294647f,
1.2150879f, 183.74263f, 3.2584648f, 9.577354f, 169.50325f, 2.194481f, 12.364777f, 183.74263f, 3.2584648f,
9.577354f, 169.50325f, -1.5294647f, 1.2150879f, 183.74263f, 22.942177f, 10.622639f, 195.39304f, 24.006157f,
-0.87548065f, 196.04028f, 21.87819f, 8.880501f, 185.03712f, 24.538155f, -0.52705383f, 185.03712f,
21.87819f, 8.880501f, 185.03712f, 24.006157f, -0.87548065f, 196.04028f, -0.9974747f, 14.803772f,
196.04028f, 6.4504166f, 16.545914f, 192.80405f, 2.194481f, 12.364777f, 183.74263f, 10.706352f, 15.152203f,
183.74263f, 2.194481f, 12.364777f, 183.74263f, 6.4504166f, 16.545914f, 192.80405f, 6.4504166f, 16.545914f,
192.80405f, 22.942177f, 10.622639f, 195.39304f, 10.706352f, 15.152203f, 183.74263f, 21.87819f, 8.880501f,
185.03712f, 10.706352f, 15.152203f, 183.74263f, 22.942177f, 10.622639f, 195.39304f, -5.2534103f,
1.9119415f, 196.04028f, -0.9974747f, 14.803772f, 196.04028f, -1.5294647f, 1.2150879f, 183.74263f,
2.194481f, 12.364777f, 183.74263f, -1.5294647f, 1.2150879f, 183.74263f, -0.9974747f, 14.803772f,
196.04028f, -4.7214165f, 2.2603722f, 210.27966f, 1.130497f, 15.152203f, 210.92691f, -5.2534103f,
1.9119415f, 196.04028f, -0.9974747f, 14.803772f, 196.04028f, -5.2534103f, 1.9119415f, 196.04028f,
1.130497f, 15.152203f, 210.92691f, 16.026276f, 15.152203f, 199.92375f, 22.942177f, 10.622639f, 195.39304f,
6.4504166f, 16.545914f, 192.80405f, 16.026276f, 15.152203f, 199.92375f, 19.750221f, 9.228928f, 209.63242f,
22.942177f, 10.622639f, 195.39304f, 1.130497f, 15.152203f, 210.92691f, 1.662487f, 20.03019f, 201.86548f,
-0.9974747f, 14.803772f, 196.04028f, 1.662487f, 20.03019f, 201.86548f, 6.4504166f, 16.545914f, 192.80405f,
-0.9974747f, 14.803772f, 196.04028f, 6.9824104f, 23.166042f, 205.10172f, 6.9824104f, 14.455345f,
214.81038f, 13.898308f, 21.772327f, 204.45447f, 13.898308f, 21.772327f, 204.45447f, 19.750221f, 9.228928f,
209.63242f, 16.026276f, 15.152203f, 199.92375f, 1.130497f, 17.242767f, 181.8009f, 8.046394f, 20.03019f,
182.44815f, 10.174362f, 19.681763f, 186.3316f, -2.0614586f, 24.211323f, 185.03712f, 1.130497f, 17.242767f,
181.8009f, 1.662487f, 20.03019f, 201.86548f, 6.4504166f, 16.545914f, 192.80405f, 1.662487f, 20.03019f,
201.86548f, 1.130497f, 17.242767f, 181.8009f, 1.662487f, 20.03019f, 201.86548f, 8.578384f, 25.25661f,
196.68753f, -2.0614586f, 24.211323f, 185.03712f, 5.9184265f, 26.998745f, 185.68436f, -2.0614586f,
24.211323f, 185.03712f, 8.578384f, 25.25661f, 196.68753f, 10.174362f, 19.681763f, 186.3316f, 8.046394f,
20.03019f, 182.44815f, 5.9184265f, 26.998745f, 185.68436f, 6.9824104f, 23.166042f, 205.10172f, 1.662487f,
20.03019f, 201.86548f, 1.130497f, 15.152203f, 210.92691f, 21.346199f, 23.862896f, 148.14418f, 15.494286f,
12.713207f, 139.73001f, 4.3224487f, 9.925785f, 152.02765f, 28.2621f, 0.86665726f, 163.0308f, 23.474167f,
12.364777f, 162.38356f, 21.87819f, 0.16980362f, 170.79774f, 20.282211f, 8.880501f, 171.44498f, 21.87819f,
0.16980362f, 170.79774f, 23.474167f, 12.364777f, 162.38356f, 4.3224487f, 9.925785f, 152.02765f, 3.7904587f,
-0.87548065f, 152.02765f, 3.2584648f, 9.577354f, 169.50325f, 0.5985031f, -0.1786232f, 169.50325f,
3.2584648f, 9.577354f, 169.50325f, 3.7904587f, -0.87548065f, 152.02765f, 36.77397f, 0.51823044f,
154.61664f, 23.474167f, 1.9119415f, 146.8497f, 31.986046f, 8.183643f, 150.73315f, 15.494286f, -1.2239075f,
138.43552f, 15.494286f, 12.713207f, 139.73001f, 23.474167f, 1.9119415f, 146.8497f, 15.494286f, -1.2239075f,
138.43552f, 3.7904587f, -0.87548065f, 152.02765f, 15.494286f, 12.713207f, 139.73001f, 4.3224487f,
9.925785f, 152.02765f, 15.494286f, 12.713207f, 139.73001f, 3.7904587f, -0.87548065f, 152.02765f, 28.2621f,
21.4239f, 152.02765f, 37.30597f, 40.23901f, 139.08276f, 21.346199f, 23.862896f, 148.14418f, 33.582024f,
41.632717f, 133.25755f, 21.346199f, 23.862896f, 148.14418f, 37.30597f, 40.23901f, 139.08276f, 21.346199f,
23.862896f, 148.14418f, 33.582024f, 41.632717f, 133.25755f, 15.494286f, 12.713207f, 139.73001f, 30.922058f,
33.967304f, 131.96307f, 15.494286f, 12.713207f, 139.73001f, 33.582024f, 41.632717f, 133.25755f, 40.497917f,
32.22517f, 130.02133f, 39.433937f, 33.618877f, 126.78511f, 41.029907f, 35.36102f, 137.14102f, 41.561905f,
39.54215f, 127.43236f, 41.029907f, 35.36102f, 137.14102f, 39.433937f, 33.618877f, 126.78511f, 33.050026f,
36.4063f, 130.66858f, 39.433937f, 33.618877f, 126.78511f, 40.497917f, 32.22517f, 130.02133f, 21.346199f,
36.754726f, 122.90164f, 33.050026f, 42.32957f, 130.02133f, 38.36995f, 44.071712f, 129.37408f, 21.346199f,
36.754726f, 122.90164f, 22.410187f, 28.740887f, 126.13786f, 33.050026f, 42.32957f, 130.02133f, 33.050026f,
36.4063f, 130.66858f, 33.050026f, 42.32957f, 130.02133f, 22.410187f, 28.740887f, 126.13786f, 28.2621f,
26.301891f, 118.37093f, 41.561905f, 39.54215f, 127.43236f, 39.433937f, 33.618877f, 126.78511f, 33.050026f,
36.4063f, 130.66858f, 22.410187f, 28.740887f, 126.13786f, 39.433937f, 33.618877f, 126.78511f, 28.2621f,
26.301891f, 118.37093f, 39.433937f, 33.618877f, 126.78511f, 22.410187f, 28.740887f, 126.13786f, 1.130497f,
17.242767f, 181.8009f, 2.726471f, 18.288052f, 174.68121f, 8.046394f, 20.03019f, 182.44815f, 11.23835f,
21.075474f, 176.62294f, 8.046394f, 20.03019f, 182.44815f, 2.726471f, 18.288052f, 174.68121f, -2.0614586f,
24.211323f, 185.03712f, -2.0614586f, 26.650318f, 177.27019f, 1.130497f, 17.242767f, 181.8009f, 2.726471f,
18.288052f, 174.68121f, 1.130497f, 17.242767f, 181.8009f, -2.0614586f, 26.650318f, 177.27019f, 8.046394f,
29.786175f, 179.21191f, -2.0614586f, 26.650318f, 177.27019f, 5.9184265f, 26.998745f, 185.68436f,
-2.0614586f, 24.211323f, 185.03712f, 5.9184265f, 26.998745f, 185.68436f, -2.0614586f, 26.650318f,
177.27019f, 5.9184265f, 26.998745f, 185.68436f, 8.046394f, 20.03019f, 182.44815f, 8.046394f, 29.786175f,
179.21191f, 11.23835f, 21.075474f, 176.62294f, 8.046394f, 29.786175f, 179.21191f, 8.046394f, 20.03019f,
182.44815f, 36.77397f, 0.51823044f, 154.61664f, 24.006157f, -0.52705383f, 146.8497f, 23.474167f,
1.9119415f, 146.8497f, 24.006157f, -0.52705383f, 146.8497f, 15.494286f, -1.2239075f, 138.43552f,
23.474167f, 1.9119415f, 146.8497f, 16.558273f, 5.0477943f, 218.0466f, 17.622253f, 6.7899323f, 218.0466f,
16.558273f, 6.4415054f, 221.28282f, 17.090263f, 8.53207f, 221.28282f, 16.558273f, 6.4415054f, 221.28282f,
17.622253f, 6.7899323f, 218.0466f, 18.686241f, 7.4867897f, 227.10802f, 20.282211f, 3.3056526f, 228.40251f,
19.750221f, 4.350937f, 223.8718f, 19.750221f, 2.608799f, 217.39935f, 16.558273f, 5.0477943f, 218.0466f,
21.346199f, 2.608799f, 221.28282f, 16.558273f, 6.4415054f, 221.28282f, 21.346199f, 2.608799f, 221.28282f,
16.558273f, 5.0477943f, 218.0466f, 21.346199f, 7.8352165f, 229.04976f, 24.538155f, 6.0930786f, 227.75526f,
20.282211f, 3.3056526f, 228.40251f, 19.750221f, 4.350937f, 223.8718f, 21.346199f, 2.608799f, 222.5773f,
21.346199f, 2.608799f, 221.28282f, 21.346199f, 2.608799f, 222.5773f, 19.750221f, 4.350937f, 223.8718f,
22.410187f, 2.9572258f, 223.8718f, 17.622253f, 6.7899323f, 218.0466f, 16.558273f, 5.0477943f, 218.0466f,
16.558273f, 1.2150879f, 216.10486f, 21.346199f, -0.1786232f, 206.3962f, 19.750221f, 9.228928f, 209.63242f,
21.346199f, 0.16980362f, 212.86864f, 17.622253f, 6.7899323f, 218.0466f, 21.346199f, 0.16980362f,
212.86864f, 19.750221f, 9.228928f, 209.63242f, 21.346199f, 2.2603722f, 228.40251f, 22.410187f, 2.9572258f,
223.8718f, 20.282211f, 3.3056526f, 228.40251f, 19.750221f, 4.350937f, 223.8718f, 20.282211f, 3.3056526f,
228.40251f, 22.410187f, 2.9572258f, 223.8718f, 1.130497f, 17.242767f, 181.8009f, 10.174362f, 19.681763f,
186.3316f, 6.4504166f, 16.545914f, 192.80405f, 16.026276f, 15.152203f, 199.92375f, 6.4504166f, 16.545914f,
192.80405f, 10.174362f, 19.681763f, 186.3316f, 10.174362f, 19.681763f, 186.3316f, 5.9184265f, 26.998745f,
185.68436f, 16.026276f, 15.152203f, 199.92375f, 8.578384f, 25.25661f, 196.68753f, 16.026276f, 15.152203f,
199.92375f, 5.9184265f, 26.998745f, 185.68436f, 33.582024f, 41.632717f, 133.25755f, 33.050026f, 42.32957f,
130.02133f, 33.050026f, 36.4063f, 130.66858f, 33.582024f, 41.632717f, 133.25755f, 37.30597f, 40.23901f,
139.08276f, 33.050026f, 42.32957f, 130.02133f, 38.36995f, 44.071712f, 129.37408f, 33.050026f, 42.32957f,
130.02133f, 37.30597f, 40.23901f, 139.08276f, 33.050026f, 36.4063f, 130.66858f, 40.497917f, 32.22517f,
130.02133f, 30.922058f, 33.967304f, 131.96307f, 42.093895f, 30.134602f, 133.25755f, 30.922058f, 33.967304f,
131.96307f, 40.497917f, 32.22517f, 130.02133f, 41.029907f, 35.36102f, 137.14102f, 42.093895f, 30.134602f,
133.25755f, 40.497917f, 32.22517f, 130.02133f, 41.029907f, 35.36102f, 137.14102f, 37.30597f, 40.23901f,
139.08276f, 31.986046f, 8.183643f, 150.73315f, 28.2621f, 21.4239f, 152.02765f, 31.986046f, 8.183643f,
150.73315f, 37.30597f, 40.23901f, 139.08276f, 41.561905f, 39.54215f, 127.43236f, 38.36995f, 44.071712f,
129.37408f, 41.029907f, 35.36102f, 137.14102f, 37.30597f, 40.23901f, 139.08276f, 41.029907f, 35.36102f,
137.14102f, 38.36995f, 44.071712f, 129.37408f, 18.686241f, 7.4867897f, 227.10802f, 19.750221f, 4.350937f,
223.8718f, 16.558273f, 6.4415054f, 221.28282f, 23.474167f, 12.364777f, 162.38356f, 28.2621f, 21.4239f,
152.02765f, 12.834328f, 15.500629f, 159.79459f, 21.346199f, 23.862896f, 148.14418f, 12.834328f, 15.500629f,
159.79459f, 28.2621f, 21.4239f, 152.02765f, 12.834328f, 15.500629f, 159.79459f, 4.3224487f, 9.925785f,
152.02765f, 3.2584648f, 9.577354f, 169.50325f, 20.282211f, 8.880501f, 171.44498f, 23.474167f, 12.364777f,
162.38356f, 11.23835f, 12.713207f, 170.1505f, 12.834328f, 15.500629f, 159.79459f, 11.23835f, 12.713207f,
170.1505f, 23.474167f, 12.364777f, 162.38356f, 3.2584648f, 9.577354f, 169.50325f, 11.23835f, 12.713207f,
170.1505f, 12.834328f, 15.500629f, 159.79459f, 20.814209f, 33.618877f, 100.895325f, 14.430298f, 32.922024f,
103.48431f, 38.36995f, 44.071712f, 129.37408f, 21.346199f, 36.754726f, 122.90164f, 38.36995f, 44.071712f,
129.37408f, 14.430298f, 32.922024f, 103.48431f, 14.430298f, 32.922024f, 103.48431f, 14.430298f, 29.786175f,
104.77879f, 21.346199f, 36.754726f, 122.90164f, 22.410187f, 28.740887f, 126.13786f, 21.346199f, 36.754726f,
122.90164f, 14.430298f, 29.786175f, 104.77879f, 20.814209f, 33.618877f, 100.895325f, 41.561905f, 39.54215f,
127.43236f, 18.154243f, 27.695606f, 103.48431f, 28.2621f, 26.301891f, 118.37093f, 18.154243f, 27.695606f,
103.48431f, 41.561905f, 39.54215f, 127.43236f, 18.154243f, 27.695606f, 103.48431f, 28.2621f, 26.301891f,
118.37093f, 14.430298f, 29.786175f, 104.77879f, 22.410187f, 28.740887f, 126.13786f, 14.430298f, 29.786175f,
104.77879f, 28.2621f, 26.301891f, 118.37093f, 15.494286f, 34.664158f, 80.1835f, 11.23835f, 36.4063f,
82.772484f, 18.154243f, 35.36102f, 82.12524f, 2.726471f, 26.301891f, 97.01186f, 14.430298f, 29.786175f,
104.77879f, 14.430298f, 32.922024f, 103.48431f, 18.154243f, 30.483028f, 80.83075f, 15.494286f, 34.664158f,
80.1835f, 18.154243f, 35.36102f, 82.12524f, 5.9184265f, 23.166042f, 100.895325f, 6.9824104f, 20.727047f,
96.36462f, 18.154243f, 27.695606f, 103.48431f, 14.962296f, 36.4063f, 93.775635f, 19.218231f, 30.483028f,
92.48115f, 18.154243f, 35.36102f, 82.12524f, 14.962296f, 36.4063f, 93.775635f, 2.726471f, 26.301891f,
97.01186f, 14.430298f, 32.922024f, 103.48431f, 12.30233f, 25.953465f, 89.24493f, 6.9824104f, 20.727047f,
96.36462f, 7.5144043f, 32.573597f, 89.24493f, 2.726471f, 26.301891f, 97.01186f, 7.5144043f, 32.573597f,
89.24493f, 6.9824104f, 20.727047f, 96.36462f, 12.30233f, 25.953465f, 89.24493f, 19.218231f, 30.483028f,
92.48115f, 6.9824104f, 20.727047f, 96.36462f, 19.218231f, 30.483028f, 92.48115f, 20.814209f, 33.618877f,
100.895325f, 18.154243f, 27.695606f, 103.48431f, 18.154243f, 27.695606f, 103.48431f, 14.430298f,
29.786175f, 104.77879f, 5.9184265f, 23.166042f, 100.895325f, 18.154243f, 35.36102f, 82.12524f, 11.23835f,
36.4063f, 82.772484f, 14.962296f, 36.4063f, 93.775635f, 14.962296f, 36.4063f, 93.775635f, 11.23835f,
36.4063f, 82.772484f, 7.5144043f, 32.573597f, 89.24493f, 15.494286f, 34.664158f, 80.1835f, 12.30233f,
25.953465f, 89.24493f, 11.23835f, 36.4063f, 82.772484f, 7.5144043f, 32.573597f, 89.24493f, 11.23835f,
36.4063f, 82.772484f, 12.30233f, 25.953465f, 89.24493f, 15.494286f, 34.664158f, 80.1835f, 18.154243f,
30.483028f, 80.83075f, 12.30233f, 25.953465f, 89.24493f, 12.30233f, 25.953465f, 89.24493f, 18.154243f,
30.483028f, 80.83075f, 19.218231f, 30.483028f, 92.48115f, 19.218231f, 30.483028f, 92.48115f, 18.154243f,
30.483028f, 80.83075f, 18.154243f, 35.36102f, 82.12524f, 6.9824104f, 20.727047f, 96.36462f, 4.3224487f,
22.120762f, 97.6591f, 2.726471f, 26.301891f, 97.01186f, 2.726471f, 26.301891f, 97.01186f, 4.3224487f,
22.120762f, 97.6591f, 5.9184265f, 23.166042f, 100.895325f, 5.9184265f, 23.166042f, 100.895325f, 4.3224487f,
22.120762f, 97.6591f, 6.9824104f, 20.727047f, 96.36462f, 2.726471f, 26.301891f, 97.01186f, 5.9184265f,
23.166042f, 100.895325f, 14.430298f, 29.786175f, 104.77879f, 20.814209f, 33.618877f, 100.895325f,
38.36995f, 44.071712f, 129.37408f, 41.561905f, 39.54215f, 127.43236f, 14.962296f, 36.4063f, 93.775635f,
14.430298f, 32.922024f, 103.48431f, 20.814209f, 33.618877f, 100.895325f, 14.962296f, 36.4063f, 93.775635f,
7.5144043f, 32.573597f, 89.24493f, 2.726471f, 26.301891f, 97.01186f, 19.218231f, 30.483028f, 92.48115f,
18.154243f, 27.695606f, 103.48431f, 6.9824104f, 20.727047f, 96.36462f, 14.962296f, 36.4063f, 93.775635f,
20.814209f, 33.618877f, 100.895325f, 19.218231f, 30.483028f, 92.48115f, 14.962296f, 0.16980362f,
240.05292f, 17.090263f, 7.138359f, 234.87495f, 12.834328f, 5.744648f, 238.75842f, 12.834328f, 5.744648f,
238.75842f, 17.090263f, 7.138359f, 234.87495f, 10.706352f, 8.183643f, 232.28598f, 14.962296f, 0.16980362f,
240.05292f, 21.346199f, 1.9119415f, 235.5222f, 17.090263f, 7.138359f, 234.87495f, 5.3864326f, 3.3056526f,
237.46393f, 4.8544426f, -2.6176186f, 237.46393f, 9.110382f, -1.5723343f, 240.05292f, 4.8544426f,
-2.6176186f, 237.46393f, 5.3864326f, 3.3056526f, 237.46393f, 1.662487f, -3.314476f, 232.28598f, 3.2584648f,
4.00251f, 231.63873f, 1.662487f, -3.314476f, 232.28598f, 5.3864326f, 3.3056526f, 237.46393f, 1.662487f,
-3.314476f, 232.28598f, 3.2584648f, 4.00251f, 231.63873f, 0.06651306f, -3.314476f, 224.51904f, 2.194481f,
3.6540833f, 227.10802f, 0.06651306f, -3.314476f, 224.51904f, 3.2584648f, 4.00251f, 231.63873f, 10.706352f,
8.183643f, 232.28598f, 2.194481f, 3.6540833f, 227.10802f, 3.2584648f, 4.00251f, 231.63873f, 3.2584648f,
4.00251f, 231.63873f, 5.3864326f, 3.3056526f, 237.46393f, 10.706352f, 8.183643f, 232.28598f, 5.3864326f,
3.3056526f, 237.46393f, 12.834328f, 5.744648f, 238.75842f, 10.706352f, 8.183643f, 232.28598f, 14.430298f,
26.301891f, 158.50009f, 11.23835f, 21.075474f, 176.62294f, 10.174362f, 25.953465f, 156.55836f, 2.726471f,
18.288052f, 174.68121f, 10.174362f, 25.953465f, 156.55836f, 11.23835f, 21.075474f, 176.62294f, 10.174362f,
25.953465f, 156.55836f, 2.726471f, 18.288052f, 174.68121f, 7.5144043f, 30.134602f, 155.91112f, -2.0614586f,
26.650318f, 177.27019f, 7.5144043f, 30.134602f, 155.91112f, 2.726471f, 18.288052f, 174.68121f, 13.898308f,
31.528309f, 159.14734f, 7.5144043f, 30.134602f, 155.91112f, 8.046394f, 29.786175f, 179.21191f, -2.0614586f,
26.650318f, 177.27019f, 8.046394f, 29.786175f, 179.21191f, 7.5144043f, 30.134602f, 155.91112f, 14.430298f,
26.301891f, 158.50009f, 13.898308f, 31.528309f, 159.14734f, 11.23835f, 21.075474f, 176.62294f, 8.046394f,
29.786175f, 179.21191f, 11.23835f, 21.075474f, 176.62294f, 13.898308f, 31.528309f, 159.14734f, 10.174362f,
25.953465f, 156.55836f, 10.174362f, 24.559757f, 153.32214f, 14.430298f, 26.301891f, 158.50009f, 18.686241f,
26.650318f, 155.26387f, 14.430298f, 26.301891f, 158.50009f, 10.174362f, 24.559757f, 153.32214f, 6.9824104f,
30.831455f, 152.02765f, 10.174362f, 24.559757f, 153.32214f, 7.5144043f, 30.134602f, 155.91112f, 10.174362f,
25.953465f, 156.55836f, 7.5144043f, 30.134602f, 155.91112f, 10.174362f, 24.559757f, 153.32214f, 17.090263f,
35.012592f, 152.6749f, 6.9824104f, 30.831455f, 152.02765f, 13.898308f, 31.528309f, 159.14734f, 7.5144043f,
30.134602f, 155.91112f, 13.898308f, 31.528309f, 159.14734f, 6.9824104f, 30.831455f, 152.02765f, 14.430298f,
26.301891f, 158.50009f, 18.686241f, 26.650318f, 155.26387f, 13.898308f, 31.528309f, 159.14734f, 17.090263f,
35.012592f, 152.6749f, 13.898308f, 31.528309f, 159.14734f, 18.686241f, 26.650318f, 155.26387f, 17.622253f,
26.998745f, 149.43867f, 11.77034f, 25.25661f, 148.79143f, 17.090263f, 32.922024f, 148.14418f, 9.642372f,
30.483028f, 146.8497f, 17.090263f, 32.922024f, 148.14418f, 11.77034f, 25.25661f, 148.79143f, 10.174362f,
24.559757f, 153.32214f, 11.77034f, 25.25661f, 148.79143f, 18.686241f, 26.650318f, 155.26387f, 17.622253f,
26.998745f, 149.43867f, 18.686241f, 26.650318f, 155.26387f, 11.77034f, 25.25661f, 148.79143f, 10.174362f,
24.559757f, 153.32214f, 6.9824104f, 30.831455f, 152.02765f, 11.77034f, 25.25661f, 148.79143f, 9.642372f,
30.483028f, 146.8497f, 11.77034f, 25.25661f, 148.79143f, 6.9824104f, 30.831455f, 152.02765f, 6.9824104f,
30.831455f, 152.02765f, 17.090263f, 35.012592f, 152.6749f, 9.642372f, 30.483028f, 146.8497f, 17.090263f,
32.922024f, 148.14418f, 9.642372f, 30.483028f, 146.8497f, 17.090263f, 35.012592f, 152.6749f, 18.686241f,
26.650318f, 155.26387f, 17.622253f, 26.998745f, 149.43867f, 17.090263f, 35.012592f, 152.6749f, 17.090263f,
32.922024f, 148.14418f, 17.090263f, 35.012592f, 152.6749f, 17.622253f, 26.998745f, 149.43867f, 6.9824104f,
14.455345f, 214.81038f, 13.366318f, 8.880501f, 218.69385f, 12.834328f, 13.7584915f, 213.51588f, 21.346199f,
-0.1786232f, 206.3962f, 24.006157f, -0.87548065f, 196.04028f, 19.750221f, 9.228928f, 209.63242f,
22.942177f, 10.622639f, 195.39304f, 19.750221f, 9.228928f, 209.63242f, 24.006157f, -0.87548065f,
196.04028f, 33.582024f, 41.632717f, 133.25755f, 33.050026f, 36.4063f, 130.66858f, 30.922058f, 33.967304f,
131.96307f, 30.922058f, 33.967304f, 131.96307f, 42.093895f, 30.134602f, 133.25755f, 15.494286f, 12.713207f,
139.73001f, 23.474167f, 1.9119415f, 146.8497f, 15.494286f, 12.713207f, 139.73001f, 42.093895f, 30.134602f,
133.25755f, 42.093895f, 30.134602f, 133.25755f, 41.029907f, 35.36102f, 137.14102f, 23.474167f, 1.9119415f,
146.8497f, 31.986046f, 8.183643f, 150.73315f, 23.474167f, 1.9119415f, 146.8497f, 41.029907f, 35.36102f,
137.14102f, 12.834328f, 15.500629f, 159.79459f, 21.346199f, 23.862896f, 148.14418f, 4.3224487f, 9.925785f,
152.02765f, 26.134132f, 3.6540833f, 227.10802f, 21.346199f, 2.2603722f, 228.40251f, 24.538155f, 6.0930786f,
227.75526f, 20.282211f, 3.3056526f, 228.40251f, 24.538155f, 6.0930786f, 227.75526f, 21.346199f, 2.2603722f,
228.40251f, 19.750221f, 9.228928f, 209.63242f, 13.366318f, 8.880501f, 218.69385f, 17.622253f, 6.7899323f,
218.0466f, 5.3864326f, 3.3056526f, 237.46393f, 9.110382f, -1.5723343f, 240.05292f, 12.834328f, 5.744648f,
238.75842f, 14.962296f, 0.16980362f, 240.05292f, 12.834328f, 5.744648f, 238.75842f, 9.110382f, -1.5723343f,
240.05292f, 1.130497f, 15.152203f, 210.92691f, -4.7214165f, 2.2603722f, 210.27966f, -0.4654808f,
-0.52705383f, 220.63557f, 6.9824104f, 14.455345f, 214.81038f, 1.130497f, 15.152203f, 210.92691f,
4.3224487f, 8.183643f, 219.34108f, 13.366318f, 8.880501f, 218.69385f, 6.9824104f, 14.455345f, 214.81038f,
4.3224487f, 8.183643f, 219.34108f, 6.9824104f, 14.455345f, 214.81038f, 12.834328f, 13.7584915f, 213.51588f,
13.898308f, 21.772327f, 204.45447f, 8.578384f, 25.25661f, 196.68753f, 13.898308f, 21.772327f, 204.45447f,
16.026276f, 15.152203f, 199.92375f, 1.662487f, 20.03019f, 201.86548f, 6.9824104f, 23.166042f, 205.10172f,
8.578384f, 25.25661f, 196.68753f, 6.9824104f, 23.166042f, 205.10172f, 13.898308f, 21.772327f, 204.45447f,
8.578384f, 25.25661f, 196.68753f, 6.9824104f, 23.166042f, 205.10172f, 1.130497f, 15.152203f, 210.92691f,
6.9824104f, 14.455345f, 214.81038f, 36.77397f, 0.51823044f, 154.61664f, 34.114014f, 13.410061f, 153.96939f,
28.2621f, 0.86665726f, 163.0308f, 23.474167f, 12.364777f, 162.38356f, 28.2621f, 0.86665726f, 163.0308f,
34.114014f, 13.410061f, 153.96939f, 31.986046f, 8.183643f, 150.73315f, 34.114014f, 13.410061f, 153.96939f,
36.77397f, 0.51823044f, 154.61664f, 23.474167f, 12.364777f, 162.38356f, 34.114014f, 13.410061f, 153.96939f,
28.2621f, 21.4239f, 152.02765f, 31.986046f, 8.183643f, 150.73315f, 28.2621f, 21.4239f, 152.02765f,
34.114014f, 13.410061f, 153.96939f, 18.686241f, 8.880501f, 227.75526f, 17.090263f, 7.138359f, 234.87495f,
21.346199f, 7.8352165f, 229.04976f, 0.06651306f, -3.314476f, 224.51904f, 2.194481f, 3.6540833f, 227.10802f,
-0.4654808f, -0.52705383f, 220.63557f, 4.3224487f, 8.183643f, 219.34108f, -0.4654808f, -0.52705383f,
220.63557f, 2.194481f, 3.6540833f, 227.10802f, 10.706352f, 8.183643f, 232.28598f, 10.706352f, 8.183643f,
225.81354f, 2.194481f, 3.6540833f, 227.10802f, 13.366318f, 8.880501f, 218.69385f, 4.3224487f, 8.183643f,
219.34108f, 2.194481f, 3.6540833f, 227.10802f, 10.706352f, 8.183643f, 225.81354f, 13.366318f, 8.880501f,
218.69385f, 2.194481f, 3.6540833f, 227.10802f, 17.622253f, 8.880501f, 224.51904f, 18.686241f, 7.4867897f,
227.10802f, 17.090263f, 8.53207f, 221.28282f, 16.558273f, 6.4415054f, 221.28282f, 17.090263f, 8.53207f,
221.28282f, 18.686241f, 7.4867897f, 227.10802f, 4.3224487f, 8.183643f, 219.34108f, 1.130497f, 15.152203f,
210.92691f, -0.4654808f, -0.52705383f, 220.63557f, 19.750221f, 2.608799f, 217.39935f, 16.558273f,
1.2150879f, 216.10486f, 16.558273f, 5.0477943f, 218.0466f, 21.346199f, 0.16980362f, 212.86864f, 17.622253f,
6.7899323f, 218.0466f, 16.558273f, 1.2150879f, 216.10486f, 13.366318f, 8.880501f, 218.69385f, 17.090263f,
8.53207f, 221.28282f, 17.622253f, 6.7899323f, 218.0466f, 13.366318f, 8.880501f, 218.69385f, 17.622253f,
8.880501f, 224.51904f, 17.090263f, 8.53207f, 221.28282f, 10.706352f, 8.183643f, 225.81354f, 18.686241f,
8.880501f, 227.75526f, 17.622253f, 8.880501f, 224.51904f, 10.706352f, 8.183643f, 225.81354f, 10.706352f,
8.183643f, 232.28598f, 18.686241f, 8.880501f, 227.75526f, 10.706352f, 8.183643f, 232.28598f, 17.090263f,
7.138359f, 234.87495f, 18.686241f, 8.880501f, 227.75526f, 18.686241f, 7.4867897f, 227.10802f, 17.622253f,
8.880501f, 224.51904f, 18.686241f, 8.880501f, 227.75526f, 17.090263f, 7.138359f, 234.87495f, 24.538155f,
6.0930786f, 227.75526f, 21.346199f, 7.8352165f, 229.04976f, 21.346199f, 1.9119415f, 235.5222f, 26.134132f,
3.6540833f, 227.10802f, 17.090263f, 7.138359f, 234.87495f, 24.538155f, 6.0930786f, 227.75526f, 17.090263f,
7.138359f, 234.87495f, 26.134132f, 3.6540833f, 227.10802f, 21.346199f, 7.8352165f, 229.04976f, 20.282211f,
3.3056526f, 228.40251f, 18.686241f, 7.4867897f, 227.10802f, 13.366318f, 8.880501f, 218.69385f, 10.706352f,
8.183643f, 225.81354f, 17.622253f, 8.880501f, 224.51904f, 19.750221f, 9.228928f, 209.63242f, 12.834328f,
13.7584915f, 213.51588f, 13.366318f, 8.880501f, 218.69385f, 19.750221f, 9.228928f, 209.63242f, 13.898308f,
21.772327f, 204.45447f, 12.834328f, 13.7584915f, 213.51588f, 10.706352f, 7.4867897f, 224.51904f,
10.174362f, 8.880501f, 232.93323f, 12.834328f, 8.183643f, 228.40251f, 8.578384f, 8.53207f, 227.10802f,
7.5144043f, 9.228928f, 229.69699f, 10.174362f, 8.880501f, 232.93323f, 7.5144043f, 9.228928f, 229.69699f,
6.4504166f, 10.9710655f, 232.28598f, 10.174362f, 8.880501f, 232.93323f, 6.9824104f, 10.622639f, 234.87495f,
10.174362f, 8.880501f, 232.93323f, 6.4504166f, 10.9710655f, 232.28598f, 6.4504166f, 10.9710655f,
232.28598f, 2.726471f, 13.061634f, 235.5222f, 6.9824104f, 10.622639f, 234.87495f, 10.706352f, 7.4867897f,
224.51904f, 8.578384f, 8.53207f, 227.10802f, 10.174362f, 8.880501f, 232.93323f, 10.174362f, 8.880501f,
232.93323f, 9.110382f, 7.4867897f, 232.93323f, 12.834328f, 8.183643f, 228.40251f, 12.30233f, 6.7899323f,
229.04976f, 12.834328f, 8.183643f, 228.40251f, 9.110382f, 7.4867897f, 232.93323f, 6.9824104f, 10.622639f,
234.87495f, 6.4504166f, 9.577354f, 234.87495f, 10.174362f, 8.880501f, 232.93323f, 9.110382f, 7.4867897f,
232.93323f, 10.174362f, 8.880501f, 232.93323f, 6.4504166f, 9.577354f, 234.87495f, 2.726471f, 13.061634f,
235.5222f, 6.4504166f, 9.577354f, 234.87495f, 6.9824104f, 10.622639f, 234.87495f, 2.726471f, 13.061634f,
235.5222f, 5.3864326f, 9.925785f, 233.58046f, 6.4504166f, 9.577354f, 234.87495f, 6.4504166f, 9.577354f,
234.87495f, 5.3864326f, 9.925785f, 233.58046f, 9.110382f, 7.4867897f, 232.93323f, 9.110382f, 7.4867897f,
232.93323f, 8.046394f, 6.4415054f, 228.40251f, 12.30233f, 6.7899323f, 229.04976f, 6.4504166f, 10.9710655f,
232.28598f, 5.3864326f, 9.925785f, 233.58046f, 2.726471f, 13.061634f, 235.5222f, 6.4504166f, 10.9710655f,
232.28598f, 7.5144043f, 9.228928f, 229.69699f, 5.3864326f, 9.925785f, 233.58046f, 8.578384f, 8.53207f,
227.10802f, 8.046394f, 6.4415054f, 228.40251f, 7.5144043f, 9.228928f, 229.69699f, 5.3864326f, 9.925785f,
233.58046f, 7.5144043f, 9.228928f, 229.69699f, 8.046394f, 6.4415054f, 228.40251f, 8.578384f, 8.53207f,
227.10802f, 10.706352f, 7.4867897f, 224.51904f, 8.046394f, 6.4415054f, 228.40251f, 5.3864326f, 9.925785f,
233.58046f, 8.046394f, 6.4415054f, 228.40251f, 9.110382f, 7.4867897f, 232.93323f, 18.686241f, 8.880501f,
227.75526f, 21.346199f, 7.8352165f, 229.04976f, 18.686241f, 7.4867897f, 227.10802f, 16.558273f, 6.4415054f,
221.28282f, 19.750221f, 4.350937f, 223.8718f, 21.346199f, 2.608799f, 221.28282f, 24.538155f, -0.52705383f,
185.03712f, 20.282211f, -9.586178f, 185.03712f, 21.87819f, 0.16980362f, 170.79774f, 19.750221f, -8.88932f,
172.09222f, 21.87819f, 0.16980362f, 170.79774f, 20.282211f, -9.586178f, 185.03712f, 8.578384f, -14.11574f,
183.74263f, 0.5985031f, -10.283031f, 183.74263f, 10.706352f, -13.070456f, 170.79774f, 2.194481f,
-9.237747f, 170.1505f, 10.706352f, -13.070456f, 170.79774f, 0.5985031f, -10.283031f, 183.74263f,
20.282211f, -9.586178f, 185.03712f, 8.578384f, -14.11574f, 183.74263f, 19.750221f, -8.88932f, 172.09222f,
10.706352f, -13.070456f, 170.79774f, 19.750221f, -8.88932f, 172.09222f, 8.578384f, -14.11574f, 183.74263f,
0.5985031f, -10.283031f, 183.74263f, -1.5294647f, 1.2150879f, 183.74263f, 2.194481f, -9.237747f, 170.1505f,
0.5985031f, -0.1786232f, 169.50325f, 2.194481f, -9.237747f, 170.1505f, -1.5294647f, 1.2150879f, 183.74263f,
24.538155f, -0.52705383f, 185.03712f, 24.006157f, -0.87548065f, 196.04028f, 20.282211f, -9.586178f,
185.03712f, 20.814209f, -12.025171f, 195.39304f, 20.282211f, -9.586178f, 185.03712f, 24.006157f,
-0.87548065f, 196.04028f, 8.578384f, -14.11574f, 183.74263f, 3.2584648f, -14.11574f, 192.80405f,
0.5985031f, -10.283031f, 183.74263f, -3.1254425f, -11.676744f, 196.04028f, 0.5985031f, -10.283031f,
183.74263f, 3.2584648f, -14.11574f, 192.80405f, 20.282211f, -9.586178f, 185.03712f, 20.814209f,
-12.025171f, 195.39304f, 8.578384f, -14.11574f, 183.74263f, 3.2584648f, -14.11574f, 192.80405f, 8.578384f,
-14.11574f, 183.74263f, 20.814209f, -12.025171f, 195.39304f, 0.5985031f, -10.283031f, 183.74263f,
-3.1254425f, -11.676744f, 196.04028f, -1.5294647f, 1.2150879f, 183.74263f, -5.2534103f, 1.9119415f,
196.04028f, -1.5294647f, 1.2150879f, 183.74263f, -3.1254425f, -11.676744f, 196.04028f, -3.1254425f,
-11.676744f, 196.04028f, -3.1254425f, -10.631462f, 210.27966f, -5.2534103f, 1.9119415f, 196.04028f,
-4.7214165f, 2.2603722f, 210.27966f, -5.2534103f, 1.9119415f, 196.04028f, -3.1254425f, -10.631462f,
210.27966f, 20.814209f, -12.025171f, 195.39304f, 11.23835f, -16.206306f, 198.62926f, 3.2584648f,
-14.11574f, 192.80405f, 16.558273f, -11.676744f, 208.98517f, 11.23835f, -16.206306f, 198.62926f,
20.814209f, -12.025171f, 195.39304f, -4.7214165f, -14.464167f, 201.21823f, -3.1254425f, -10.631462f,
210.27966f, -3.1254425f, -11.676744f, 196.04028f, 3.2584648f, -14.11574f, 192.80405f, -4.7214165f,
-14.464167f, 201.21823f, -3.1254425f, -11.676744f, 196.04028f, 3.7904587f, -13.767311f, 214.16313f,
-0.4654808f, -20.039013f, 203.80722f, 5.9184265f, -21.084297f, 203.15997f, 16.558273f, -11.676744f,
208.98517f, 5.9184265f, -21.084297f, 203.15997f, 11.23835f, -16.206306f, 198.62926f, -1.5294647f,
-17.25159f, 181.15366f, -5.785404f, -11.328316f, 180.50641f, 2.194481f, -17.948446f, 185.68436f,
3.2584648f, -14.11574f, 192.80405f, -5.785404f, -11.328316f, 180.50641f, -4.7214165f, -14.464167f,
201.21823f, -11.637318f, -15.509451f, 183.74263f, -4.7214165f, -14.464167f, 201.21823f, -5.785404f,
-11.328316f, 180.50641f, -6.3173943f, -21.781153f, 184.38988f, -2.0614586f, -21.781153f, 196.04028f,
-11.637318f, -15.509451f, 183.74263f, -4.7214165f, -14.464167f, 201.21823f, -11.637318f, -15.509451f,
183.74263f, -2.0614586f, -21.781153f, 196.04028f, -1.5294647f, -17.25159f, 181.15366f, 2.194481f,
-17.948446f, 185.68436f, -6.3173943f, -21.781153f, 184.38988f, -4.7214165f, -14.464167f, 201.21823f,
-0.4654808f, -20.039013f, 203.80722f, -3.1254425f, -10.631462f, 210.27966f, 17.090263f, -14.11574f,
141.02449f, 24.538155f, -23.87172f, 150.0859f, 5.3864326f, -11.676744f, 153.32214f, 19.750221f, -8.88932f,
172.09222f, 24.538155f, -11.676744f, 163.67805f, 21.87819f, 0.16980362f, 170.79774f, 28.2621f, 0.86665726f,
163.0308f, 21.87819f, 0.16980362f, 170.79774f, 24.538155f, -11.676744f, 163.67805f, 0.5985031f,
-0.1786232f, 169.50325f, 3.7904587f, -0.87548065f, 152.02765f, 2.194481f, -9.237747f, 170.1505f,
5.3864326f, -11.676744f, 153.32214f, 2.194481f, -9.237747f, 170.1505f, 3.7904587f, -0.87548065f,
152.02765f, 24.006157f, -1.9207649f, 146.8497f, 36.77397f, 0.51823044f, 154.61664f, 33.050026f, -6.450325f,
151.3804f, 17.090263f, -14.11574f, 141.02449f, 15.494286f, -1.2239075f, 138.43552f, 24.006157f,
-1.9207649f, 146.8497f, 5.3864326f, -11.676744f, 153.32214f, 3.7904587f, -0.87548065f, 152.02765f,
17.090263f, -14.11574f, 141.02449f, 15.494286f, -1.2239075f, 138.43552f, 17.090263f, -14.11574f,
141.02449f, 3.7904587f, -0.87548065f, 152.02765f, 39.965927f, -39.899403f, 136.49377f, 43.689873f,
-37.460407f, 142.31898f, 24.538155f, -23.87172f, 150.0859f, 30.922058f, -20.039013f, 153.96939f,
24.538155f, -23.87172f, 150.0859f, 43.689873f, -37.460407f, 142.31898f, 35.70999f, -32.930843f, 134.55205f,
39.965927f, -39.899403f, 136.49377f, 17.090263f, -14.11574f, 141.02449f, 24.538155f, -23.87172f, 150.0859f,
17.090263f, -14.11574f, 141.02449f, 39.965927f, -39.899403f, 136.49377f, 46.88183f, -36.76355f, 130.66858f,
44.221863f, -31.537132f, 129.37408f, 46.34983f, -31.88556f, 139.73001f, 44.753853f, -29.794992f,
132.61032f, 46.34983f, -31.88556f, 139.73001f, 44.221863f, -31.537132f, 129.37408f, 44.221863f,
-31.537132f, 129.37408f, 38.36995f, -35.02141f, 133.9048f, 44.753853f, -29.794992f, 132.61032f, 39.433937f,
-40.944683f, 133.9048f, 26.666122f, -38.15726f, 126.78511f, 44.753853f, -41.293114f, 132.61032f, 38.36995f,
-35.02141f, 133.9048f, 26.134132f, -29.794992f, 129.37408f, 39.433937f, -40.944683f, 133.9048f, 26.666122f,
-38.15726f, 126.78511f, 39.433937f, -40.944683f, 133.9048f, 26.134132f, -29.794992f, 129.37408f, 46.88183f,
-36.76355f, 130.66858f, 31.454048f, -26.659142f, 121.607155f, 44.221863f, -31.537132f, 129.37408f,
31.454048f, -26.659142f, 121.607155f, 26.134132f, -29.794992f, 129.37408f, 44.221863f, -31.537132f,
129.37408f, 38.36995f, -35.02141f, 133.9048f, 44.221863f, -31.537132f, 129.37408f, 26.134132f, -29.794992f,
129.37408f, 1.130497f, -19.690584f, 175.97571f, -4.7214165f, -13.070456f, 173.38672f, -1.5294647f,
-17.25159f, 181.15366f, -5.785404f, -11.328316f, 180.50641f, -1.5294647f, -17.25159f, 181.15366f,
-4.7214165f, -13.070456f, 173.38672f, -4.7214165f, -13.070456f, 173.38672f, -13.233292f, -17.948446f,
175.97571f, -5.785404f, -11.328316f, 180.50641f, -11.637318f, -15.509451f, 183.74263f, -5.785404f,
-11.328316f, 180.50641f, -13.233292f, -17.948446f, 175.97571f, -11.637318f, -15.509451f, 183.74263f,
-13.233292f, -17.948446f, 175.97571f, -6.3173943f, -21.781153f, 184.38988f, -5.785404f, -25.61386f,
178.56467f, -6.3173943f, -21.781153f, 184.38988f, -13.233292f, -17.948446f, 175.97571f, 1.130497f,
-19.690584f, 175.97571f, -1.5294647f, -17.25159f, 181.15366f, -5.785404f, -25.61386f, 178.56467f,
-6.3173943f, -21.781153f, 184.38988f, -5.785404f, -25.61386f, 178.56467f, -1.5294647f, -17.25159f,
181.15366f, 24.006157f, -0.52705383f, 146.8497f, 36.77397f, 0.51823044f, 154.61664f, 24.006157f,
-1.9207649f, 146.8497f, 15.494286f, -1.2239075f, 138.43552f, 24.006157f, -0.52705383f, 146.8497f,
24.006157f, -1.9207649f, 146.8497f, 20.282211f, -4.3597603f, 220.63557f, 19.750221f, -3.6629028f,
217.39935f, 19.218231f, -2.6176186f, 220.63557f, 18.154243f, -1.5723343f, 218.0466f, 19.218231f,
-2.6176186f, 220.63557f, 19.750221f, -3.6629028f, 217.39935f, 20.814209f, 1.2150879f, 228.40251f,
21.87819f, -3.314476f, 226.46077f, 20.814209f, 0.16980362f, 223.8718f, 19.218231f, -2.6176186f, 220.63557f,
18.154243f, -1.5723343f, 218.0466f, 21.346199f, 2.608799f, 221.28282f, 19.750221f, 2.608799f, 217.39935f,
21.346199f, 2.608799f, 221.28282f, 18.154243f, -1.5723343f, 218.0466f, 25.602135f, 0.51823044f, 227.10802f,
24.006157f, -2.6176186f, 228.40251f, 20.814209f, 1.2150879f, 228.40251f, 21.346199f, 2.608799f, 222.5773f,
20.814209f, 0.16980362f, 223.8718f, 21.346199f, 2.608799f, 221.28282f, 20.814209f, 0.16980362f, 223.8718f,
21.346199f, 2.608799f, 222.5773f, 22.410187f, 2.9572258f, 223.8718f, 18.154243f, -1.5723343f, 218.0466f,
19.750221f, -3.6629028f, 217.39935f, 16.558273f, 1.2150879f, 216.10486f, 19.750221f, -3.6629028f,
217.39935f, 16.558273f, -11.676744f, 208.98517f, 21.346199f, 0.16980362f, 212.86864f, 21.346199f,
-0.1786232f, 206.3962f, 21.346199f, 0.16980362f, 212.86864f, 16.558273f, -11.676744f, 208.98517f,
20.814209f, 0.16980362f, 223.8718f, 22.410187f, 2.9572258f, 223.8718f, 20.814209f, 1.2150879f, 228.40251f,
21.346199f, 2.2603722f, 228.40251f, 20.814209f, 1.2150879f, 228.40251f, 22.410187f, 2.9572258f, 223.8718f,
11.23835f, -16.206306f, 198.62926f, 2.194481f, -17.948446f, 185.68436f, 3.2584648f, -14.11574f, 192.80405f,
-5.785404f, -11.328316f, 180.50641f, 3.2584648f, -14.11574f, 192.80405f, 2.194481f, -17.948446f,
185.68436f, -2.0614586f, -21.781153f, 196.04028f, -6.3173943f, -21.781153f, 184.38988f, 11.23835f,
-16.206306f, 198.62926f, 2.194481f, -17.948446f, 185.68436f, 11.23835f, -16.206306f, 198.62926f,
-6.3173943f, -21.781153f, 184.38988f, 39.433937f, -40.944683f, 133.9048f, 39.965927f, -39.899403f,
136.49377f, 38.36995f, -35.02141f, 133.9048f, 44.753853f, -41.293114f, 132.61032f, 43.689873f, -37.460407f,
142.31898f, 39.433937f, -40.944683f, 133.9048f, 39.965927f, -39.899403f, 136.49377f, 39.433937f,
-40.944683f, 133.9048f, 43.689873f, -37.460407f, 142.31898f, 46.34983f, -27.00757f, 135.84653f, 44.753853f,
-29.794992f, 132.61032f, 35.70999f, -32.930843f, 134.55205f, 38.36995f, -35.02141f, 133.9048f, 35.70999f,
-32.930843f, 134.55205f, 44.753853f, -29.794992f, 132.61032f, 46.34983f, -27.00757f, 135.84653f, 46.34983f,
-31.88556f, 139.73001f, 44.753853f, -29.794992f, 132.61032f, 30.922058f, -20.039013f, 153.96939f,
43.689873f, -37.460407f, 142.31898f, 33.050026f, -6.450325f, 151.3804f, 46.34983f, -31.88556f, 139.73001f,
33.050026f, -6.450325f, 151.3804f, 43.689873f, -37.460407f, 142.31898f, 43.689873f, -37.460407f,
142.31898f, 44.753853f, -41.293114f, 132.61032f, 46.34983f, -31.88556f, 139.73001f, 46.88183f, -36.76355f,
130.66858f, 46.34983f, -31.88556f, 139.73001f, 44.753853f, -41.293114f, 132.61032f, 20.814209f,
0.16980362f, 223.8718f, 21.87819f, -3.314476f, 226.46077f, 19.218231f, -2.6176186f, 220.63557f, 24.538155f,
-23.87172f, 150.0859f, 30.922058f, -20.039013f, 153.96939f, 14.430298f, -16.206306f, 161.08908f,
24.538155f, -11.676744f, 163.67805f, 14.430298f, -16.206306f, 161.08908f, 30.922058f, -20.039013f,
153.96939f, 5.3864326f, -11.676744f, 153.32214f, 14.430298f, -16.206306f, 161.08908f, 2.194481f,
-9.237747f, 170.1505f, 14.430298f, -16.206306f, 161.08908f, 24.538155f, -11.676744f, 163.67805f,
10.706352f, -13.070456f, 170.79774f, 19.750221f, -8.88932f, 172.09222f, 10.706352f, -13.070456f,
170.79774f, 24.538155f, -11.676744f, 163.67805f, 10.706352f, -13.070456f, 170.79774f, 2.194481f,
-9.237747f, 170.1505f, 14.430298f, -16.206306f, 161.08908f, 26.666122f, -38.15726f, 126.78511f, 18.686241f,
-36.76355f, 108.015015f, 44.753853f, -41.293114f, 132.61032f, 25.070145f, -36.415123f, 104.77879f,
44.753853f, -41.293114f, 132.61032f, 18.686241f, -36.76355f, 108.015015f, 26.134132f, -29.794992f,
129.37408f, 18.154243f, -33.27927f, 108.66226f, 26.666122f, -38.15726f, 126.78511f, 18.686241f, -36.76355f,
108.015015f, 26.666122f, -38.15726f, 126.78511f, 18.154243f, -33.27927f, 108.66226f, 31.454048f,
-26.659142f, 121.607155f, 46.88183f, -36.76355f, 130.66858f, 21.346199f, -30.840277f, 106.72053f,
25.070145f, -36.415123f, 104.77879f, 21.346199f, -30.840277f, 106.72053f, 46.88183f, -36.76355f,
130.66858f, 26.134132f, -29.794992f, 129.37408f, 31.454048f, -26.659142f, 121.607155f, 18.154243f,
-33.27927f, 108.66226f, 21.346199f, -30.840277f, 106.72053f, 18.154243f, -33.27927f, 108.66226f,
31.454048f, -26.659142f, 121.607155f, 15.494286f, -43.03525f, 87.95044f, 19.218231f, -41.293114f,
84.71422f, 21.346199f, -40.944683f, 86.655945f, 18.154243f, -33.27927f, 108.66226f, 5.9184265f, -33.27927f,
101.54257f, 18.686241f, -36.76355f, 108.015015f, 19.218231f, -41.293114f, 84.71422f, 20.814209f,
-36.415123f, 84.71422f, 21.346199f, -40.944683f, 86.655945f, 9.110382f, -27.00757f, 99.60084f, 8.578384f,
-28.74971f, 104.77879f, 21.346199f, -30.840277f, 106.72053f, 22.410187f, -34.67298f, 96.36462f, 19.218231f,
-41.293114f, 98.30635f, 21.346199f, -40.944683f, 86.655945f, 5.9184265f, -33.27927f, 101.54257f,
19.218231f, -41.293114f, 98.30635f, 18.686241f, -36.76355f, 108.015015f, 5.9184265f, -33.27927f,
101.54257f, 9.110382f, -27.00757f, 99.60084f, 11.23835f, -39.202545f, 94.42288f, 14.962296f, -31.88556f,
93.128395f, 11.23835f, -39.202545f, 94.42288f, 9.110382f, -27.00757f, 99.60084f, 22.410187f, -34.67298f,
96.36462f, 14.962296f, -31.88556f, 93.128395f, 9.110382f, -27.00757f, 99.60084f, 25.070145f, -36.415123f,
104.77879f, 22.410187f, -34.67298f, 96.36462f, 21.346199f, -30.840277f, 106.72053f, 18.154243f, -33.27927f,
108.66226f, 21.346199f, -30.840277f, 106.72053f, 8.578384f, -28.74971f, 104.77879f, 15.494286f, -43.03525f,
87.95044f, 21.346199f, -40.944683f, 86.655945f, 19.218231f, -41.293114f, 98.30635f, 15.494286f, -43.03525f,
87.95044f, 19.218231f, -41.293114f, 98.30635f, 11.23835f, -39.202545f, 94.42288f, 11.23835f, -39.202545f,
94.42288f, 14.962296f, -31.88556f, 93.128395f, 15.494286f, -43.03525f, 87.95044f, 19.218231f, -41.293114f,
84.71422f, 15.494286f, -43.03525f, 87.95044f, 14.962296f, -31.88556f, 93.128395f, 20.814209f, -36.415123f,
84.71422f, 19.218231f, -41.293114f, 84.71422f, 14.962296f, -31.88556f, 93.128395f, 20.814209f, -36.415123f,
84.71422f, 14.962296f, -31.88556f, 93.128395f, 22.410187f, -34.67298f, 96.36462f, 20.814209f, -36.415123f,
84.71422f, 22.410187f, -34.67298f, 96.36462f, 21.346199f, -40.944683f, 86.655945f, 6.4504166f, -28.401281f,
101.54257f, 9.110382f, -27.00757f, 99.60084f, 5.9184265f, -33.27927f, 101.54257f, 6.4504166f, -28.401281f,
101.54257f, 5.9184265f, -33.27927f, 101.54257f, 8.578384f, -28.74971f, 104.77879f, 6.4504166f, -28.401281f,
101.54257f, 8.578384f, -28.74971f, 104.77879f, 9.110382f, -27.00757f, 99.60084f, 8.578384f, -28.74971f,
104.77879f, 5.9184265f, -33.27927f, 101.54257f, 18.154243f, -33.27927f, 108.66226f, 44.753853f,
-41.293114f, 132.61032f, 25.070145f, -36.415123f, 104.77879f, 46.88183f, -36.76355f, 130.66858f,
18.686241f, -36.76355f, 108.015015f, 19.218231f, -41.293114f, 98.30635f, 25.070145f, -36.415123f,
104.77879f, 11.23835f, -39.202545f, 94.42288f, 19.218231f, -41.293114f, 98.30635f, 5.9184265f, -33.27927f,
101.54257f, 21.346199f, -30.840277f, 106.72053f, 22.410187f, -34.67298f, 96.36462f, 9.110382f, -27.00757f,
99.60084f, 25.070145f, -36.415123f, 104.77879f, 19.218231f, -41.293114f, 98.30635f, 22.410187f, -34.67298f,
96.36462f, 20.282211f, -4.708187f, 234.2277f, 14.962296f, 0.16980362f, 240.05292f, 16.026276f, -5.7534714f,
238.11118f, 20.282211f, -4.708187f, 234.2277f, 16.026276f, -5.7534714f, 238.11118f, 15.494286f, -8.192467f,
231.63873f, 21.346199f, 1.9119415f, 235.5222f, 14.962296f, 0.16980362f, 240.05292f, 20.282211f, -4.708187f,
234.2277f, 4.8544426f, -2.6176186f, 237.46393f, 8.578384f, -7.1471825f, 236.8167f, 9.110382f, -1.5723343f,
240.05292f, 6.4504166f, -8.88932f, 230.99149f, 8.578384f, -7.1471825f, 236.8167f, 1.662487f, -3.314476f,
232.28598f, 4.8544426f, -2.6176186f, 237.46393f, 1.662487f, -3.314476f, 232.28598f, 8.578384f, -7.1471825f,
236.8167f, 5.3864326f, -8.540894f, 226.46077f, 6.4504166f, -8.88932f, 230.99149f, 0.06651306f, -3.314476f,
224.51904f, 1.662487f, -3.314476f, 232.28598f, 0.06651306f, -3.314476f, 224.51904f, 6.4504166f, -8.88932f,
230.99149f, 5.3864326f, -8.540894f, 226.46077f, 15.494286f, -8.192467f, 231.63873f, 6.4504166f, -8.88932f,
230.99149f, 8.578384f, -7.1471825f, 236.8167f, 6.4504166f, -8.88932f, 230.99149f, 15.494286f, -8.192467f,
231.63873f, 16.026276f, -5.7534714f, 238.11118f, 8.578384f, -7.1471825f, 236.8167f, 15.494286f, -8.192467f,
231.63873f, -4.7214165f, -13.070456f, 173.38672f, 1.130497f, -19.690584f, 175.97571f, -2.0614586f,
-24.220146f, 155.91112f, 1.662487f, -26.659142f, 157.85284f, -2.0614586f, -24.220146f, 155.91112f,
1.130497f, -19.690584f, 175.97571f, -13.233292f, -17.948446f, 175.97571f, -4.7214165f, -13.070456f,
173.38672f, -6.3173943f, -26.310715f, 155.26387f, -2.0614586f, -24.220146f, 155.91112f, -6.3173943f,
-26.310715f, 155.26387f, -4.7214165f, -13.070456f, 173.38672f, -13.233292f, -17.948446f, 175.97571f,
-6.3173943f, -26.310715f, 155.26387f, -5.785404f, -25.61386f, 178.56467f, -1.5294647f, -30.840277f,
158.50009f, -5.785404f, -25.61386f, 178.56467f, -6.3173943f, -26.310715f, 155.26387f, -5.785404f,
-25.61386f, 178.56467f, -1.5294647f, -30.840277f, 158.50009f, 1.130497f, -19.690584f, 175.97571f,
1.662487f, -26.659142f, 157.85284f, 1.130497f, -19.690584f, 175.97571f, -1.5294647f, -30.840277f,
158.50009f, 5.3864326f, -29.446564f, 154.61664f, -0.9974747f, -23.174864f, 152.6749f, 1.662487f,
-26.659142f, 157.85284f, -2.0614586f, -24.220146f, 155.91112f, 1.662487f, -26.659142f, 157.85284f,
-0.9974747f, -23.174864f, 152.6749f, -2.0614586f, -24.220146f, 155.91112f, -0.9974747f, -23.174864f,
152.6749f, -6.3173943f, -26.310715f, 155.26387f, -6.849388f, -27.00757f, 151.3804f, -6.3173943f,
-26.310715f, 155.26387f, -0.9974747f, -23.174864f, 152.6749f, -6.3173943f, -26.310715f, 155.26387f,
-6.849388f, -27.00757f, 151.3804f, -1.5294647f, -30.840277f, 158.50009f, -0.9974747f, -35.718266f,
152.6749f, -1.5294647f, -30.840277f, 158.50009f, -6.849388f, -27.00757f, 151.3804f, -0.9974747f,
-35.718266f, 152.6749f, 5.3864326f, -29.446564f, 154.61664f, -1.5294647f, -30.840277f, 158.50009f,
1.662487f, -26.659142f, 157.85284f, -1.5294647f, -30.840277f, 158.50009f, 5.3864326f, -29.446564f,
154.61664f, -4.7214165f, -28.052853f, 146.20245f, 0.06651306f, -24.568575f, 148.14418f, 0.06651306f,
-33.6277f, 147.49695f, 3.7904587f, -29.446564f, 148.79143f, 0.06651306f, -33.6277f, 147.49695f,
0.06651306f, -24.568575f, 148.14418f, 3.7904587f, -29.446564f, 148.79143f, 0.06651306f, -24.568575f,
148.14418f, 5.3864326f, -29.446564f, 154.61664f, -0.9974747f, -23.174864f, 152.6749f, 5.3864326f,
-29.446564f, 154.61664f, 0.06651306f, -24.568575f, 148.14418f, -4.7214165f, -28.052853f, 146.20245f,
-6.849388f, -27.00757f, 151.3804f, 0.06651306f, -24.568575f, 148.14418f, -0.9974747f, -23.174864f,
152.6749f, 0.06651306f, -24.568575f, 148.14418f, -6.849388f, -27.00757f, 151.3804f, 0.06651306f, -33.6277f,
147.49695f, -0.9974747f, -35.718266f, 152.6749f, -4.7214165f, -28.052853f, 146.20245f, -6.849388f,
-27.00757f, 151.3804f, -4.7214165f, -28.052853f, 146.20245f, -0.9974747f, -35.718266f, 152.6749f,
0.06651306f, -33.6277f, 147.49695f, 3.7904587f, -29.446564f, 148.79143f, -0.9974747f, -35.718266f,
152.6749f, 5.3864326f, -29.446564f, 154.61664f, -0.9974747f, -35.718266f, 152.6749f, 3.7904587f,
-29.446564f, 148.79143f, 13.898308f, -9.237747f, 218.0466f, 3.7904587f, -13.767311f, 214.16313f,
10.174362f, -14.464167f, 212.86864f, 20.814209f, -12.025171f, 195.39304f, 24.006157f, -0.87548065f,
196.04028f, 16.558273f, -11.676744f, 208.98517f, 21.346199f, -0.1786232f, 206.3962f, 16.558273f,
-11.676744f, 208.98517f, 24.006157f, -0.87548065f, 196.04028f, 38.36995f, -35.02141f, 133.9048f,
39.965927f, -39.899403f, 136.49377f, 35.70999f, -32.930843f, 134.55205f, 24.006157f, -1.9207649f,
146.8497f, 46.34983f, -27.00757f, 135.84653f, 17.090263f, -14.11574f, 141.02449f, 35.70999f, -32.930843f,
134.55205f, 17.090263f, -14.11574f, 141.02449f, 46.34983f, -27.00757f, 135.84653f, 33.050026f, -6.450325f,
151.3804f, 46.34983f, -31.88556f, 139.73001f, 24.006157f, -1.9207649f, 146.8497f, 46.34983f, -27.00757f,
135.84653f, 24.006157f, -1.9207649f, 146.8497f, 46.34983f, -31.88556f, 139.73001f, 24.538155f, -23.87172f,
150.0859f, 14.430298f, -16.206306f, 161.08908f, 5.3864326f, -11.676744f, 153.32214f, 20.814209f,
1.2150879f, 228.40251f, 21.346199f, 2.2603722f, 228.40251f, 25.602135f, 0.51823044f, 227.10802f,
26.134132f, 3.6540833f, 227.10802f, 25.602135f, 0.51823044f, 227.10802f, 21.346199f, 2.2603722f,
228.40251f, 13.898308f, -9.237747f, 218.0466f, 16.558273f, -11.676744f, 208.98517f, 19.750221f,
-3.6629028f, 217.39935f, 14.962296f, 0.16980362f, 240.05292f, 9.110382f, -1.5723343f, 240.05292f,
16.026276f, -5.7534714f, 238.11118f, 8.578384f, -7.1471825f, 236.8167f, 16.026276f, -5.7534714f,
238.11118f, 9.110382f, -1.5723343f, 240.05292f, -4.7214165f, 2.2603722f, 210.27966f, -3.1254425f,
-10.631462f, 210.27966f, -0.4654808f, -0.52705383f, 220.63557f, -3.1254425f, -10.631462f, 210.27966f,
3.7904587f, -13.767311f, 214.16313f, 3.7904587f, -8.192467f, 218.69385f, 3.7904587f, -13.767311f,
214.16313f, 13.898308f, -9.237747f, 218.0466f, 3.7904587f, -8.192467f, 218.69385f, 10.174362f, -14.464167f,
212.86864f, 3.7904587f, -13.767311f, 214.16313f, 5.9184265f, -21.084297f, 203.15997f, 5.9184265f,
-21.084297f, 203.15997f, -2.0614586f, -21.781153f, 196.04028f, 11.23835f, -16.206306f, 198.62926f,
-0.4654808f, -20.039013f, 203.80722f, -4.7214165f, -14.464167f, 201.21823f, -2.0614586f, -21.781153f,
196.04028f, 5.9184265f, -21.084297f, 203.15997f, -0.4654808f, -20.039013f, 203.80722f, -2.0614586f,
-21.781153f, 196.04028f, -3.1254425f, -10.631462f, 210.27966f, -0.4654808f, -20.039013f, 203.80722f,
3.7904587f, -13.767311f, 214.16313f, 24.538155f, -11.676744f, 163.67805f, 35.70999f, -11.328316f,
155.26387f, 28.2621f, 0.86665726f, 163.0308f, 36.77397f, 0.51823044f, 154.61664f, 28.2621f, 0.86665726f,
163.0308f, 35.70999f, -11.328316f, 155.26387f, 35.70999f, -11.328316f, 155.26387f, 33.050026f, -6.450325f,
151.3804f, 36.77397f, 0.51823044f, 154.61664f, 35.70999f, -11.328316f, 155.26387f, 24.538155f, -11.676744f,
163.67805f, 30.922058f, -20.039013f, 153.96939f, 30.922058f, -20.039013f, 153.96939f, 33.050026f,
-6.450325f, 151.3804f, 35.70999f, -11.328316f, 155.26387f, 20.282211f, -4.708187f, 234.2277f, 22.410187f,
-4.3597603f, 227.10802f, 24.006157f, -2.6176186f, 228.40251f, 3.7904587f, -8.192467f, 218.69385f,
5.3864326f, -8.540894f, 226.46077f, -0.4654808f, -0.52705383f, 220.63557f, 0.06651306f, -3.314476f,
224.51904f, -0.4654808f, -0.52705383f, 220.63557f, 5.3864326f, -8.540894f, 226.46077f, 14.962296f,
-7.844036f, 224.51904f, 15.494286f, -8.192467f, 231.63873f, 5.3864326f, -8.540894f, 226.46077f, 3.7904587f,
-8.192467f, 218.69385f, 13.898308f, -9.237747f, 218.0466f, 5.3864326f, -8.540894f, 226.46077f, 13.898308f,
-9.237747f, 218.0466f, 14.962296f, -7.844036f, 224.51904f, 5.3864326f, -8.540894f, 226.46077f, 19.218231f,
-2.6176186f, 220.63557f, 21.87819f, -3.314476f, 226.46077f, 20.282211f, -4.3597603f, 220.63557f,
21.346199f, -5.056614f, 223.8718f, 20.282211f, -4.3597603f, 220.63557f, 21.87819f, -3.314476f, 226.46077f,
-3.1254425f, -10.631462f, 210.27966f, 3.7904587f, -8.192467f, 218.69385f, -0.4654808f, -0.52705383f,
220.63557f, 16.558273f, 1.2150879f, 216.10486f, 19.750221f, 2.608799f, 217.39935f, 18.154243f, -1.5723343f,
218.0466f, 19.750221f, -3.6629028f, 217.39935f, 21.346199f, 0.16980362f, 212.86864f, 16.558273f,
1.2150879f, 216.10486f, 20.282211f, -4.3597603f, 220.63557f, 13.898308f, -9.237747f, 218.0466f, 19.750221f,
-3.6629028f, 217.39935f, 21.346199f, -5.056614f, 223.8718f, 13.898308f, -9.237747f, 218.0466f, 20.282211f,
-4.3597603f, 220.63557f, 22.410187f, -4.3597603f, 227.10802f, 14.962296f, -7.844036f, 224.51904f,
21.346199f, -5.056614f, 223.8718f, 15.494286f, -8.192467f, 231.63873f, 14.962296f, -7.844036f, 224.51904f,
22.410187f, -4.3597603f, 227.10802f, 20.282211f, -4.708187f, 234.2277f, 15.494286f, -8.192467f, 231.63873f,
22.410187f, -4.3597603f, 227.10802f, 21.346199f, -5.056614f, 223.8718f, 21.87819f, -3.314476f, 226.46077f,
22.410187f, -4.3597603f, 227.10802f, 25.602135f, 0.51823044f, 227.10802f, 20.282211f, -4.708187f,
234.2277f, 24.006157f, -2.6176186f, 228.40251f, 25.602135f, 0.51823044f, 227.10802f, 26.134132f,
3.6540833f, 227.10802f, 20.282211f, -4.708187f, 234.2277f, 21.346199f, 1.9119415f, 235.5222f, 20.282211f,
-4.708187f, 234.2277f, 26.134132f, 3.6540833f, 227.10802f, 20.814209f, 1.2150879f, 228.40251f, 24.006157f,
-2.6176186f, 228.40251f, 21.87819f, -3.314476f, 226.46077f, 14.962296f, -7.844036f, 224.51904f, 13.898308f,
-9.237747f, 218.0466f, 21.346199f, -5.056614f, 223.8718f, 10.174362f, -14.464167f, 212.86864f, 16.558273f,
-11.676744f, 208.98517f, 13.898308f, -9.237747f, 218.0466f, 5.9184265f, -21.084297f, 203.15997f,
16.558273f, -11.676744f, 208.98517f, 10.174362f, -14.464167f, 212.86864f, 14.962296f, -9.237747f,
231.63873f, 14.430298f, -7.1471825f, 223.8718f, 17.090263f, -6.7987556f, 227.75526f, 13.366318f,
-10.631462f, 228.40251f, 13.366318f, -9.586178f, 225.81354f, 14.962296f, -9.237747f, 231.63873f,
13.366318f, -12.722027f, 233.58046f, 12.834328f, -13.070456f, 231.63873f, 14.962296f, -9.237747f,
231.63873f, 13.366318f, -10.631462f, 228.40251f, 14.962296f, -9.237747f, 231.63873f, 12.834328f,
-13.070456f, 231.63873f, 10.706352f, -16.903162f, 234.2277f, 12.834328f, -13.070456f, 231.63873f,
13.366318f, -12.722027f, 233.58046f, 13.366318f, -9.586178f, 225.81354f, 14.430298f, -7.1471825f,
223.8718f, 14.962296f, -9.237747f, 231.63873f, 16.026276f, -6.101898f, 228.40251f, 13.366318f, -8.88932f,
232.28598f, 17.090263f, -6.7987556f, 227.75526f, 14.962296f, -9.237747f, 231.63873f, 17.090263f,
-6.7987556f, 227.75526f, 13.366318f, -8.88932f, 232.28598f, 13.366318f, -8.88932f, 232.28598f, 12.30233f,
-12.3736f, 233.58046f, 14.962296f, -9.237747f, 231.63873f, 13.366318f, -12.722027f, 233.58046f, 14.962296f,
-9.237747f, 231.63873f, 12.30233f, -12.3736f, 233.58046f, 12.30233f, -12.3736f, 233.58046f, 10.706352f,
-16.903162f, 234.2277f, 13.366318f, -12.722027f, 233.58046f, 11.23835f, -12.722027f, 232.93323f,
10.706352f, -16.903162f, 234.2277f, 12.30233f, -12.3736f, 233.58046f, 11.23835f, -12.722027f, 232.93323f,
12.30233f, -12.3736f, 233.58046f, 13.366318f, -8.88932f, 232.28598f, 12.30233f, -7.844036f, 227.75526f,
13.366318f, -8.88932f, 232.28598f, 16.026276f, -6.101898f, 228.40251f, 11.23835f, -12.722027f, 232.93323f,
12.834328f, -13.070456f, 231.63873f, 10.706352f, -16.903162f, 234.2277f, 13.366318f, -10.631462f,
228.40251f, 12.834328f, -13.070456f, 231.63873f, 11.23835f, -12.722027f, 232.93323f, 11.23835f,
-12.722027f, 232.93323f, 12.30233f, -7.844036f, 227.75526f, 13.366318f, -10.631462f, 228.40251f,
13.366318f, -9.586178f, 225.81354f, 13.366318f, -10.631462f, 228.40251f, 12.30233f, -7.844036f, 227.75526f,
14.430298f, -7.1471825f, 223.8718f, 13.366318f, -9.586178f, 225.81354f, 12.30233f, -7.844036f, 227.75526f,
12.30233f, -7.844036f, 227.75526f, 11.23835f, -12.722027f, 232.93323f, 13.366318f, -8.88932f, 232.28598f,
24.006157f, -2.6176186f, 228.40251f, 22.410187f, -4.3597603f, 227.10802f, 21.87819f, -3.314476f,
226.46077f, 20.814209f, 0.16980362f, 223.8718f, 19.218231f, -2.6176186f, 220.63557f, 21.346199f, 2.608799f,
221.28282f, -56.32466f, 14.803772f, 153.96939f, -56.32466f, 15.152203f, 155.91112f, -56.32466f, 16.545914f,
154.61664f, 76.1414f, 33.967304f, 186.97885f, 76.673386f, 33.27045f, 185.68436f, 76.1414f, 35.012592f,
185.68436f, -23.341145f, 23.166042f, 146.8497f, -22.809155f, 24.211323f, 149.43867f, 1.662487f, 29.786175f,
147.49695f, 1.662487f, 29.089314f, 150.0859f, 1.662487f, 29.786175f, 147.49695f, -22.809155f, 24.211323f,
149.43867f, -22.809155f, 24.211323f, 149.43867f, -22.27716f, 21.4239f, 148.79143f, 1.662487f, 29.089314f,
150.0859f, 2.726471f, 25.25661f, 149.43867f, 1.662487f, 29.089314f, 150.0859f, -22.27716f, 21.4239f,
148.79143f, -22.27716f, 21.4239f, 148.79143f, -23.341145f, 23.166042f, 146.8497f, 2.726471f, 25.25661f,
149.43867f, 2.194481f, 25.953465f, 146.8497f, 2.726471f, 25.25661f, 149.43867f, -23.341145f, 23.166042f,
146.8497f, -23.341145f, 23.166042f, 146.8497f, 1.662487f, 29.786175f, 147.49695f, 2.194481f, 25.953465f,
146.8497f, 49.009796f, 33.27045f, 163.67805f, 47.41382f, 34.31573f, 166.26703f, 76.1414f, 35.012592f,
185.68436f, 76.1414f, 33.967304f, 186.97885f, 76.1414f, 35.012592f, 185.68436f, 47.41382f, 34.31573f,
166.26703f, 26.134132f, 33.27045f, 153.32214f, 24.538155f, 32.573597f, 155.26387f, 49.009796f, 33.27045f,
163.67805f, 47.41382f, 34.31573f, 166.26703f, 49.009796f, 33.27045f, 163.67805f, 24.538155f, 32.573597f,
155.26387f, -23.341145f, 23.166042f, 146.8497f, -56.32466f, 16.545914f, 154.61664f, -22.809155f,
24.211323f, 149.43867f, -56.32466f, 15.152203f, 155.91112f, -22.809155f, 24.211323f, 149.43867f,
-56.32466f, 16.545914f, 154.61664f, 47.41382f, 34.31573f, 166.26703f, 47.94581f, 31.179882f, 165.61978f,
76.1414f, 33.967304f, 186.97885f, 24.538155f, 32.573597f, 155.26387f, 25.070145f, 28.39246f, 154.61664f,
47.41382f, 34.31573f, 166.26703f, 47.94581f, 31.179882f, 165.61978f, 47.41382f, 34.31573f, 166.26703f,
25.070145f, 28.39246f, 154.61664f, -22.27716f, 21.4239f, 148.79143f, -22.809155f, 24.211323f, 149.43867f,
-56.32466f, 15.152203f, 155.91112f, 49.009796f, 33.27045f, 163.67805f, 76.673386f, 33.27045f, 185.68436f,
47.94581f, 31.179882f, 165.61978f, 76.1414f, 33.967304f, 186.97885f, 47.94581f, 31.179882f, 165.61978f,
76.673386f, 33.27045f, 185.68436f, 25.070145f, 28.39246f, 154.61664f, 26.666122f, 29.43774f, 152.6749f,
47.94581f, 31.179882f, 165.61978f, 49.009796f, 33.27045f, 163.67805f, 47.94581f, 31.179882f, 165.61978f,
26.666122f, 29.43774f, 152.6749f, -23.341145f, 23.166042f, 146.8497f, -22.27716f, 21.4239f, 148.79143f,
-56.32466f, 14.803772f, 153.96939f, -56.32466f, 15.152203f, 155.91112f, -56.32466f, 14.803772f, 153.96939f,
-22.27716f, 21.4239f, 148.79143f, 49.009796f, 33.27045f, 163.67805f, 76.1414f, 35.012592f, 185.68436f,
76.673386f, 33.27045f, 185.68436f, 26.134132f, 33.27045f, 153.32214f, 49.009796f, 33.27045f, 163.67805f,
26.666122f, 29.43774f, 152.6749f, -23.341145f, 23.166042f, 146.8497f, -56.32466f, 14.803772f, 153.96939f,
-56.32466f, 16.545914f, 154.61664f, 1.662487f, 29.089314f, 150.0859f, 24.538155f, 32.573597f, 155.26387f,
1.662487f, 29.786175f, 147.49695f, 26.134132f, 33.27045f, 153.32214f, 1.662487f, 29.786175f, 147.49695f,
24.538155f, 32.573597f, 155.26387f, 2.726471f, 25.25661f, 149.43867f, 25.070145f, 28.39246f, 154.61664f,
1.662487f, 29.089314f, 150.0859f, 24.538155f, 32.573597f, 155.26387f, 1.662487f, 29.089314f, 150.0859f,
25.070145f, 28.39246f, 154.61664f, 2.194481f, 25.953465f, 146.8497f, 26.666122f, 29.43774f, 152.6749f,
2.726471f, 25.25661f, 149.43867f, 25.070145f, 28.39246f, 154.61664f, 2.726471f, 25.25661f, 149.43867f,
26.666122f, 29.43774f, 152.6749f, 1.662487f, 29.786175f, 147.49695f, 26.134132f, 33.27045f, 153.32214f,
2.194481f, 25.953465f, 146.8497f, 26.666122f, 29.43774f, 152.6749f, 2.194481f, 25.953465f, 146.8497f,
26.134132f, 33.27045f, 153.32214f, -10.573334f, 6.4415054f, 184.38988f, -9.509346f, 14.803772f, 188.9206f,
-5.2534103f, 5.744648f, 184.38988f, -4.1894264f, 14.455345f, 188.9206f, -5.2534103f, 5.744648f, 184.38988f,
-9.509346f, 14.803772f, 188.9206f, -5.2534103f, 5.0477943f, 205.10172f, -10.04134f, 5.396221f, 205.10172f,
-6.3173943f, -2.9660492f, 200.57098f, -11.105324f, -2.6176186f, 200.57098f, -6.3173943f, -2.9660492f,
200.57098f, -10.04134f, 5.396221f, 205.10172f, -4.1894264f, 14.455345f, 188.9206f, -4.1894264f,
-0.1786232f, 218.0466f, -5.2534103f, 5.744648f, 184.38988f, -5.785404f, -11.328316f, 211.57416f,
-5.2534103f, 5.744648f, 184.38988f, -4.1894264f, -0.1786232f, 218.0466f, -9.509346f, 14.803772f, 188.9206f,
-11.637318f, 0.51823044f, 218.0466f, -4.1894264f, 14.455345f, 188.9206f, -4.1894264f, -0.1786232f,
218.0466f, -4.1894264f, 14.455345f, 188.9206f, -11.637318f, 0.51823044f, 218.0466f, -10.573334f,
6.4415054f, 184.38988f, -13.233292f, -10.283031f, 211.57416f, -9.509346f, 14.803772f, 188.9206f,
-11.637318f, 0.51823044f, 218.0466f, -9.509346f, 14.803772f, 188.9206f, -13.233292f, -10.283031f,
211.57416f, -5.2534103f, 5.744648f, 184.38988f, -5.785404f, -11.328316f, 211.57416f, -10.573334f,
6.4415054f, 184.38988f, -13.233292f, -10.283031f, 211.57416f, -10.573334f, 6.4415054f, 184.38988f,
-5.785404f, -11.328316f, 211.57416f, -4.1894264f, -0.1786232f, 218.0466f, -5.2534103f, 5.0477943f,
205.10172f, -5.785404f, -11.328316f, 211.57416f, -6.3173943f, -2.9660492f, 200.57098f, -5.785404f,
-11.328316f, 211.57416f, -5.2534103f, 5.0477943f, 205.10172f, -11.637318f, 0.51823044f, 218.0466f,
-10.04134f, 5.396221f, 205.10172f, -4.1894264f, -0.1786232f, 218.0466f, -5.2534103f, 5.0477943f,
205.10172f, -4.1894264f, -0.1786232f, 218.0466f, -10.04134f, 5.396221f, 205.10172f, -13.233292f,
-10.283031f, 211.57416f, -11.105324f, -2.6176186f, 200.57098f, -11.637318f, 0.51823044f, 218.0466f,
-10.04134f, 5.396221f, 205.10172f, -11.637318f, 0.51823044f, 218.0466f, -11.105324f, -2.6176186f,
200.57098f, -5.785404f, -11.328316f, 211.57416f, -6.3173943f, -2.9660492f, 200.57098f, -13.233292f,
-10.283031f, 211.57416f, -11.105324f, -2.6176186f, 200.57098f, -13.233292f, -10.283031f, 211.57416f,
-6.3173943f, -2.9660492f, 200.57098f, -13.7652855f, -21.781153f, 230.99149f, -14.829269f, -21.432724f,
230.99149f, -13.7652855f, -22.478008f, 230.34424f, -14.829269f, -22.12958f, 230.34424f, -13.7652855f,
-22.478008f, 230.34424f, -14.829269f, -21.432724f, 230.99149f, -13.7652855f, -22.478008f, 230.34424f,
-4.7214165f, 11.319496f, 188.9206f, -13.7652855f, -21.781153f, 230.99149f, -4.1894264f, 12.01635f,
189.56784f, -13.7652855f, -21.781153f, 230.99149f, -4.7214165f, 11.319496f, 188.9206f, -13.7652855f,
-21.781153f, 230.99149f, -4.1894264f, 12.01635f, 189.56784f, -14.829269f, -21.432724f, 230.99149f,
-5.2534103f, 12.364777f, 189.56784f, -14.829269f, -21.432724f, 230.99149f, -4.1894264f, 12.01635f,
189.56784f, -14.829269f, -21.432724f, 230.99149f, -5.2534103f, 12.364777f, 189.56784f, -14.829269f,
-22.12958f, 230.34424f, -5.785404f, 11.667923f, 188.9206f, -14.829269f, -22.12958f, 230.34424f,
-5.2534103f, 12.364777f, 189.56784f, -14.829269f, -22.12958f, 230.34424f, -5.785404f, 11.667923f,
188.9206f, -13.7652855f, -22.478008f, 230.34424f, -4.7214165f, 11.319496f, 188.9206f, -13.7652855f,
-22.478008f, 230.34424f, -5.785404f, 11.667923f, 188.9206f, -14.829269f, -25.26543f, 230.34424f,
-14.297279f, -21.084297f, 233.58046f, -10.04134f, -7.4956093f, 212.86864f, -14.297279f, -21.084297f,
233.58046f, -14.829269f, -25.26543f, 230.34424f, -10.04134f, -7.4956093f, 212.86864f, -7.913372f,
-20.38744f, 234.2277f, -8.977356f, -20.38744f, 234.2277f, -7.913372f, -21.084297f, 233.58046f, -8.977356f,
-21.084297f, 233.58046f, -7.913372f, -21.084297f, 233.58046f, -8.977356f, -20.38744f, 234.2277f,
-7.913372f, -21.084297f, 233.58046f, -5.785404f, 10.9710655f, 190.21509f, -7.913372f, -20.38744f,
234.2277f, -5.785404f, 11.667923f, 190.86234f, -7.913372f, -20.38744f, 234.2277f, -5.785404f, 10.9710655f,
190.21509f, -7.913372f, -20.38744f, 234.2277f, -5.785404f, 11.667923f, 190.86234f, -8.977356f, -20.38744f,
234.2277f, -6.849388f, 11.667923f, 190.86234f, -8.977356f, -20.38744f, 234.2277f, -5.785404f, 11.667923f,
190.86234f, -8.977356f, -20.38744f, 234.2277f, -6.849388f, 11.667923f, 190.86234f, -8.977356f, -21.084297f,
233.58046f, -6.849388f, 10.9710655f, 190.21509f, -8.977356f, -21.084297f, 233.58046f, -6.849388f,
11.667923f, 190.86234f, -8.977356f, -21.084297f, 233.58046f, -6.849388f, 10.9710655f, 190.21509f,
-7.913372f, -21.084297f, 233.58046f, -5.785404f, 10.9710655f, 190.21509f, -7.913372f, -21.084297f,
233.58046f, -6.849388f, 10.9710655f, 190.21509f, -8.977356f, -24.220146f, 234.2277f, -8.445362f,
-19.690584f, 237.46393f, -7.381378f, -7.1471825f, 215.45761f, -8.445362f, -19.690584f, 237.46393f,
-8.977356f, -24.220146f, 234.2277f, -7.381378f, -7.1471825f, 215.45761f, -11.637318f, -12.025171f,
238.75842f, -12.701302f, -12.025171f, 238.75842f, -11.637318f, -13.070456f, 238.75842f, -12.701302f,
-12.722027f, 238.75842f, -11.637318f, -13.070456f, 238.75842f, -12.701302f, -12.025171f, 238.75842f,
-11.637318f, -13.070456f, 238.75842f, -6.3173943f, 7.8352165f, 188.27335f, -11.637318f, -12.025171f,
238.75842f, -6.3173943f, 8.53207f, 188.9206f, -11.637318f, -12.025171f, 238.75842f, -6.3173943f,
7.8352165f, 188.27335f, -11.637318f, -12.025171f, 238.75842f, -6.3173943f, 8.53207f, 188.9206f,
-12.701302f, -12.025171f, 238.75842f, -7.381378f, 8.880501f, 188.9206f, -12.701302f, -12.025171f,
238.75842f, -6.3173943f, 8.53207f, 188.9206f, -12.701302f, -12.025171f, 238.75842f, -7.381378f, 8.880501f,
188.9206f, -12.701302f, -12.722027f, 238.75842f, -7.381378f, 7.8352165f, 188.27335f, -12.701302f,
-12.722027f, 238.75842f, -7.381378f, 8.880501f, 188.9206f, -12.701302f, -12.722027f, 238.75842f,
-7.381378f, 7.8352165f, 188.27335f, -11.637318f, -13.070456f, 238.75842f, -6.3173943f, 7.8352165f,
188.27335f, -11.637318f, -13.070456f, 238.75842f, -7.381378f, 7.8352165f, 188.27335f, -12.701302f,
-15.857878f, 239.40567f, -12.169308f, -10.631462f, 241.99464f, -10.04134f, -3.6629028f, 217.39935f,
-12.169308f, -10.631462f, 241.99464f, -12.701302f, -15.857878f, 239.40567f, -10.04134f, -3.6629028f,
217.39935f, };
private static final int[] indices = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687,
688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708,
709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729,
730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771,
772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792,
793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813,
814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897,
898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380,
1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398,
1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416,
1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452,
1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524,
1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542,
1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578,
1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686,
1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722,
1723, 1724, 1725, 1726, 1727, };
public static int[] INDICES = new int[] { 0, 1, 2, 2, 3, 0, // front
// 4, 5, 6, 6, 7, 4,
5, 4, 7, 7, 6, 5, // back
8, 9, 10, 10, 11, 8, // right
12, 13, 14, 14, 15, 12, // left
16, 17, 18, 18, 19, 16, // top
20, 21, 22, 22, 23, 20 };
public static void main(String argsv[]) {
System.out.println(INDICES.length + " " + indices.length);
TriStrip strip = new TriStrip();
PrimitiveGroup[] groups = strip.generateStrips(INDICES);
for (PrimitiveGroup p : groups) {
System.out.println(p.getFullInfo());
for (int i : p.indices) {
System.out.println(i + ",");
}
System.out.println("---------------");
}
TriStrip.remapArrays(VERTICES, 3, groups[0].indices);
for (int i : groups[0].indices) {
System.out.println(i + ",");
}
}
public static final int CACHESIZE_GEFORCE1_2 = 16;
public static final int CACHESIZE_GEFORCE3 = 24;
int cacheSize = CACHESIZE_GEFORCE1_2;
boolean bStitchStrips = true;
int minStripSize = 0;
boolean bListsOnly = false;
/**
*
*/
public TriStrip() {
super();
}
/**
* If set to true, will return an optimized list, with no strips at all. Default value: false
*/
public void setListsOnly(boolean _bListsOnly) {
bListsOnly = _bListsOnly;
}
/**
* Sets the cache size which the stripfier uses to optimize the data. Controls the length of the generated
* individual strips. This is the "actual" cache size, so 24 for GeForce3 and 16 for GeForce1/2 You may want to play
* around with this number to tweak performance. Default value: 16
*/
public void setCacheSize(int _cacheSize) {
cacheSize = _cacheSize;
}
/**
* bool to indicate whether to stitch together strips into one huge strip or not. If set to true, you'll get back
* one huge strip stitched together using degenerate triangles. If set to false, you'll get back a large number of
* separate strips. Default value: true
*/
public void setStitchStrips(boolean _bStitchStrips) {
bStitchStrips = _bStitchStrips;
}
/**
* Sets the minimum acceptable size for a strip, in triangles. All strips generated which are shorter than this will
* be thrown into one big, separate list. Default value: 0
*/
public void setMinStripSize(int _minStripSize) {
minStripSize = _minStripSize;
}
public PrimitiveGroup[] generateStrips(short[] in_indices) {
int[] indices = new int[in_indices.length];
for (int i = 0; i < indices.length; i++)
indices[i] = in_indices[i];
return generateStrips(indices);
}
/**
* @param in_indices
* input index list, the indices you would use to render
* @return array of optimized/stripified PrimitiveGroups
*/
public PrimitiveGroup[] generateStrips(int[] in_indices) {
int numGroups = 0;
PrimitiveGroup[] primGroups;
// put data in format that the stripifier likes
IntVec tempIndices = new IntVec();
int maxIndex = 0;
for (int i = 0; i < in_indices.length; i++) {
tempIndices.add(in_indices[i]);
if (in_indices[i] > maxIndex)
maxIndex = in_indices[i];
}
StripInfoVec tempStrips = new StripInfoVec();
FaceInfoVec tempFaces = new FaceInfoVec();
Stripifier stripifier = new Stripifier();
// do actual stripification
stripifier.stripify(tempIndices, cacheSize, minStripSize, maxIndex, tempStrips, tempFaces);
// stitch strips together
IntVec stripIndices = new IntVec();
int numSeparateStrips = 0;
if (bListsOnly) {
// if we're outputting only lists, we're done
numGroups = 1;
primGroups = new PrimitiveGroup[numGroups];
PrimitiveGroup[] primGroupArray = primGroups;
// count the total number of indices
int numIndices = 0;
for (int i = 0; i < tempStrips.size(); i++) {
numIndices += tempStrips.at(i).m_faces.size() * 3;
}
// add in the list
numIndices += tempFaces.size() * 3;
primGroupArray[0].type = PrimitiveGroup.PT_LIST;
primGroupArray[0].indices = new int[numIndices];
primGroupArray[0].numIndices = numIndices;
// do strips
int indexCtr = 0;
for (int i = 0; i < tempStrips.size(); i++) {
for (int j = 0; j < tempStrips.at(i).m_faces.size(); j++) {
// degenerates are of no use with lists
if (!Stripifier.isDegenerate(tempStrips.at(i).m_faces.at(j))) {
primGroupArray[0].indices[indexCtr++] = tempStrips.at(i).m_faces.at(j).m_v0;
primGroupArray[0].indices[indexCtr++] = tempStrips.at(i).m_faces.at(j).m_v1;
primGroupArray[0].indices[indexCtr++] = tempStrips.at(i).m_faces.at(j).m_v2;
} else {
// we've removed a tri, reduce the number of indices
primGroupArray[0].numIndices -= 3;
}
}
}
// do lists
for (int i = 0; i < tempFaces.size(); i++) {
primGroupArray[0].indices[indexCtr++] = tempFaces.at(i).m_v0;
primGroupArray[0].indices[indexCtr++] = tempFaces.at(i).m_v1;
primGroupArray[0].indices[indexCtr++] = tempFaces.at(i).m_v2;
}
} else {
numSeparateStrips = stripifier.createStrips(tempStrips, stripIndices, bStitchStrips);
// if we're stitching strips together, we better get back only one
// strip from CreateStrips()
assert ((bStitchStrips && (numSeparateStrips == 1)) || !bStitchStrips);
// convert to output format
numGroups = numSeparateStrips; // for the strips
if (tempFaces.size() != 0)
numGroups++; // we've got a list as well, increment
primGroups = new PrimitiveGroup[numGroups];
for (int i = 0; i < primGroups.length; i++) {
primGroups[i] = new PrimitiveGroup();
}
PrimitiveGroup[] primGroupArray = primGroups;
// first, the strips
int startingLoc = 0;
for (int stripCtr = 0; stripCtr < numSeparateStrips; stripCtr++) {
int stripLength = 0;
if (!bStitchStrips) {
int i;
// if we've got multiple strips, we need to figure out the
// correct length
for (i = startingLoc; i < stripIndices.size(); i++) {
if (stripIndices.get(i) == -1)
break;
}
stripLength = i - startingLoc;
} else
stripLength = stripIndices.size();
primGroupArray[stripCtr].type = PrimitiveGroup.PT_STRIP;
primGroupArray[stripCtr].indices = new int[stripLength];
primGroupArray[stripCtr].numIndices = stripLength;
int indexCtr = 0;
for (int i = startingLoc; i < stripLength + startingLoc; i++)
primGroupArray[stripCtr].indices[indexCtr++] = stripIndices.get(i);
// we add 1 to account for the -1 separating strips
// this doesn't break the stitched case since we'll exit the
// loop
startingLoc += stripLength + 1;
}
// next, the list
if (tempFaces.size() != 0) {
int faceGroupLoc = numGroups - 1; // the face group is the last
// one
primGroupArray[faceGroupLoc].type = PrimitiveGroup.PT_LIST;
primGroupArray[faceGroupLoc].indices = new int[tempFaces.size() * 3];
primGroupArray[faceGroupLoc].numIndices = tempFaces.size() * 3;
int indexCtr = 0;
for (int i = 0; i < tempFaces.size(); i++) {
primGroupArray[faceGroupLoc].indices[indexCtr++] = tempFaces.at(i).m_v0;
primGroupArray[faceGroupLoc].indices[indexCtr++] = tempFaces.at(i).m_v1;
primGroupArray[faceGroupLoc].indices[indexCtr++] = tempFaces.at(i).m_v2;
}
}
}
return primGroups;
}
/**
* Function to remap your indices to improve spatial locality in your vertex buffer.
*
* in_primGroups: array of PrimitiveGroups you want remapped numGroups: number of entries in in_primGroups numVerts:
* number of vertices in your vertex buffer, also can be thought of as the range of acceptable values for indices in
* your primitive groups. remappedGroups: array of remapped PrimitiveGroups
*
* Note that, according to the remapping handed back to you, you must reorder your vertex buffer.
*
*/
public static int[] remapIndices(int[] indices, int numVerts) {
int[] indexCache = new int[numVerts];
Arrays.fill(indexCache, -1);
int numIndices = indices.length;
int[] remappedIndices = new int[numIndices];
int indexCtr = 0;
for (int j = 0; j < numIndices; j++) {
int cachedIndex = indexCache[indices[j]];
if (cachedIndex == -1) // we haven't seen this index before
{
// point to "last" vertex in VB
remappedIndices[j] = indexCtr;
// add to index cache, increment
indexCache[indices[j]] = indexCtr++;
} else {
// we've seen this index before
remappedIndices[j] = cachedIndex;
}
}
return remappedIndices;
}
public static void remapArrays(float[] vertexBuffer, int vertexSize, int[] indices) {
int[] remapped = remapIndices(indices, vertexBuffer.length / vertexSize);
float[] bufferCopy = (float[]) vertexBuffer.clone();
for (int i = 0; i < remapped.length; i++) {
int from = indices[i] * vertexSize;
int to = remapped[i] * vertexSize;
for (int j = 0; j < vertexSize; j++) {
vertexBuffer[to + j] = bufferCopy[from + j];
}
}
System.arraycopy(remapped, 0, indices, 0, indices.length);
}
}