/** * 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); } }